RtlpHpSegContextInitialize
__int64 __fastcall RtlpHpSegContextInitialize(
__int64 *a1,
unsigned int a2,
__int64 a3,
__int64 a4,
__int64 a5,
__int16 a6,
__int128 *a7,
char a8){
__int64 v9;
unsigned __int64 v12;
unsigned int v13;
unsigned int v14;
int v15;
__int128 v16;
__int64 result;
v9 = a2;
memset(a1, 0i64, 0xC0u);
*(_WORD *)((char *)a1 + 11) = 1031;
v12 = (unsigned int)v9 >> 8;
*a1 = ~(v9 - 1);
_BitScanReverse(&v13, v12);
*((_BYTE *)a1 + 8) = v13;
_BitScanForward(&v14, (unsigned int)v9 >> 20);
*((_BYTE *)a1 + 9) = v14;
v15 = ~*(_DWORD *)a1;
*((_BYTE *)a1 + 10) = (v12 + 0x1FFF) / v12;
*((_DWORD *)a1 + 4) = (((((_DWORD)v12 - 1) & (unsigned int)(v12 + 0x1FFF)) - (unsigned int)v12 + v15 - 8190) >> 1)
- ((v12 - 1) & (((((_DWORD)v12 - 1) & (unsigned int)(v12 + 0x1FFF))
- (unsigned int)v12
+ v15
- 8190) >> 1));
*((_BYTE *)a1 + 13) = a8;
a1[8] = 0i64;
v16 = *a7;
a1[10] = (__int64)(a1 + 9);
a1[9] = (__int64)(a1 + 9);
a1[12] = 0i64;
a1[13] = 0i64;
a1[3] = a4;
a1[7] = a3;
*((_WORD *)a1 + 10) = a6 + ((unsigned int)v9 >= 0x200000 ? 0x10 : 0) - (_WORD)a1 + 32;
result = a5;
a1[4] = a5;
*((_WORD *)a1 + 11) = a6 - (_WORD)a1;
*(_OWORD *)(a1 + 5) = v16;
return result;
}Referenced by:
RtlpHpHeapCreate