RtlpHpSegPageRangeSplit
UINT64 __fastcall RtlpHpSegPageRangeSplit(INT64 a1, INT64 a2, UINT64 a3){
int v3;
__int64 v5;
UINT64 v6;
int v7;
UINT64 v8;
INT64 v9;
__int16 v10;
v3 = *(unsigned __int8 *)(a2 + 31);
v5 = (unsigned int)a3;
if( v3 == (_DWORD)a3 )
return 0i64;
v7 = v3 - a3;
v8 = (unsigned __int8)v7;
v9 = 32i64 * (unsigned int)(v7 - 1);
v6 = a2 + 32 * v5;
*(_BYTE *)(v6 + 24) |= 2u;
*(_BYTE *)(v9 + v6 + 31) = v8 - 1;
*(_BYTE *)(v6 + 31) = v8;
v10 = RtlpHpSegPageRangeCountCommittedPages(v9, v6, v8);
*(_DWORD *)v6 = -857879331;
*(_WORD *)(v6 + 28) = ~v10;
*(_BYTE *)(32i64 * (unsigned int)(v5 - 1) + a2 + 31) = v5 - 1;
*(_BYTE *)(a2 + 31) = v5;
*(_WORD *)(a2 + 28) = ~(*(_WORD *)(v6 + 28) - *(_WORD *)(a2 + 28));
return v6;
}Referenced by:
RtlpHpSegLargeRangeAllocate