RtlpHpExtrasSetPresent

CHAR __fastcall RtlpHpExtrasSetPresent(__int128 *a1, UINT64 a2, CHAR a3){
  int v3; 
  union _RTL_RUN_ONCE *HeapManager; 
  __int64 v8; 
  INT64 v9; 
  __int128 v11; 
  v3 = 0;
  if( !(_WORD)a2 )
  {
    v11 = *a1;
    HeapManager = RtlpHpEnvGetHeapManager(&v11);
    v9 = RtlCSparseBitmapBitmaskRead((INT64)&HeapManager[2], 2 * ((v8 - HeapManager[1].Value) >> 20));
    if( !v9 )
      return RtlpHpLargeAllocSetExtraPresent((INT64)a1, a2, a3);
    v3 = v9 - 1;
  }
  if( v3 == 2 )
    return RtlpHpLargeAllocSetExtraPresent((INT64)a1, a2, a3);
  return RtlpHpSegSetExtraPresent((INT64)&a1[12 * v3 + 16], a2);
}

Referenced by:

RtlpHpExtrasAppend