RtlpSetupExtendedBlock

VOID *__stdcall RtlpSetupExtendedBlock(
        VOID *Heap,
        UINT8 Flags,
        VOID *BaseAddress,
        UINT64 ExtraSize,
        UINT64 Interceptor,
        VOID *a6){
  char v7; 
  char v8; 
  char *v10; 
  __int64 v11; 
  int v12; 
  unsigned __int16 v13; 
  int v15; 

  v7 = *((char *)BaseAddress - 1);
  v8 = 0;
  v10 = (char *)BaseAddress + (unsigned __int16)Interceptor;
  if( v7 == 4 )
  {
    if( ((Flags | *((_BYTE *)Heap + 116)) & 1) == 0 )
    {
      ExAcquireResourceExclusiveLite(*((_QWORD *)Heap + 44), 1, (INT64)BaseAddress);
      v8 = 1;
    }
    if( *((_DWORD *)Heap + 31) )
    {
      *((_DWORD *)BaseAddress - 2) ^= *((_DWORD *)Heap + 34);
      if( *((char *)BaseAddress - 5) != (*((char *)BaseAddress - 8) ^ (unsigned __int8)(*((char *)BaseAddress - 7) ^ *((char *)BaseAddress - 6))) )
        RtlpAnalyzeHeapFailure((_HEAP *)Heap, (_HEAP_ENTRY *)BaseAddress - 1);
    }
    *((_WORD *)BaseAddress - 4) += Interceptor;
    LOWORD(v11) = *((_WORD *)BaseAddress - 4);
    *((char *)BaseAddress - 2) = (unsigned __int16)Interceptor >> 4;
    if( *((_DWORD *)Heap + 31) )
    {
      *((char *)BaseAddress - 5) = *((char *)BaseAddress - 8) ^ *((char *)BaseAddress - 7) ^ *((char *)BaseAddress - 6);
      *((_DWORD *)BaseAddress - 2) ^= *((_DWORD *)Heap + 34);
    }
    *(v10 - 2) = (unsigned __int16)Interceptor >> 4;
  }
  else
  {
    if( v7 == 5 )
    {
      LOWORD(v11) = *((_WORD *)BaseAddress - 2) ^ *((_WORD *)Heap + 70);
    }
    else if( (v7 & 0x40) != 0 )
    {
      LOWORD(v11) = *((_WORD *)BaseAddress + 8 * (v7 & 0x3F) - 2);
    }
    else if( (v7 & 0x3F) == 63 )
    {
      if( *((_DWORD *)Heap + 31) )
      {
        v12 = *((_DWORD *)BaseAddress - 2);
        LOWORD(v15) = v12;
        if( (v12 & *((_DWORD *)Heap + 31)) != 0 )
          v15 = *((_DWORD *)Heap + 34) ^ v12;
        v13 = v15;
      }
      else
      {
        v13 = *((_WORD *)BaseAddress - 4);
      }
      v11 = *((_QWORD *)BaseAddress + 2 * v13 - 2);
    }
    else
    {
      LOWORD(v11) = v7 & 0x3F;
    }
    *(v10 - 2) = (unsigned __int16)Interceptor >> 4;
    *((char *)BaseAddress - 1) = ((unsigned __int16)Interceptor >> 4) | *((char *)BaseAddress - 1) & 0xC0 | 0x40;
  }
  *(v10 - 1) = 5;
  *((_WORD *)v10 - 2) = Interceptor + v11;
  *((_DWORD *)v10 - 2) = (_DWORD)a6;
  if( v8 )
    ExReleaseResourceLite(*((PERESOURCE *)Heap + 44));
  return v10;
}

Referenced by:

RtlpAllocateHeapInternal