RtlpHpVsChunkAlignSplit
UINT64 __stdcall RtlpHpVsChunkAlignSplit(INT64 a1, INT64 a2, INT64 a3){
unsigned int v4;
UINT64 v5;
INT64 v6;
unsigned int v7;
unsigned __int64 v8;
v4 = WORD1(RtlpHpHeapGlobals) ^ WORD1(a3) ^ *(unsigned __int16 *)(a3 + 2);
if( ((a3 + 4111) & 0xFFFFFFFFFFFFF000ui64) - a3 >= 16 * (unsigned __int64)v4 )
return 0i64;
v5 = ((a3 + 4111) & 0xFFFFFFFFFFFFF000ui64) - 32;
v6 = (__int64)(v5 - a3) >> 4;
v7 = v4 - v6;
*(_WORD *)(a3 + 2) = WORD1(RtlpHpHeapGlobals) ^ v6 ^ WORD1(a3);
*(_OWORD *)v5 = 0i64;
*(_OWORD *)(v5 + 16) = 0i64;
*(_WORD *)(v5 + 2) = v7;
*(_WORD *)(v5 + 4) = v6;
*(_QWORD *)v5 ^= v5 ^ RtlpHpHeapGlobals;
v8 = v5 + 16i64 * v7;
if( v8 < a2 + 16 * ((unsigned __int64)*(unsigned __int16 *)(a2 + 32) + 3) )
*(_WORD *)(v8 + 4) = WORD2(v8) ^ v7 ^ WORD2(RtlpHpHeapGlobals);
return v5;
}Referenced by:
RtlpHpVsChunkFree
RtlpHpVsContextFree