RtlpHpSegLfhVsDecommit
UINT64 __stdcall RtlpHpSegLfhVsDecommit(INT64 a1, UINT64 a2, UINT64 a3){
unsigned int v3;
int v4;
UINT64 result;
__int64 v7;
UINT64 v8;
unsigned int v9;
__int64 v10;
unsigned __int64 v11;
unsigned __int64 v12;
unsigned __int64 v13;
v3 = a3;
v4 = a2;
result = RtlpHpSegDescriptorValidate(a1, a2);
v7 = v3 >> 12;
v8 = result;
v9 = (v4
- (unsigned int)((__int64)(result - (result & *(_QWORD *)a1)) >> 5 << *(_BYTE *)(a1 + 8))
- ((unsigned int)result & *(_DWORD *)a1)) >> 12;
if( (*(_BYTE *)(a1 + 13) & 8) != 0 )
goto LABEL_10;
v10 = *(__int16 *)(a1 + 22);
v11 = *(_QWORD *)(v10 + a1 + 8) >> *(_BYTE *)(a1 + 11);
if( v11 <= 8 )
v11 = 8i64;
v12 = *(_QWORD *)(v10 + a1 + 8) >> *(_BYTE *)(a1 + 12);
if( v12 <= 8 )
v12 = 8i64;
if( (v13 = v7 + *(_QWORD *)(v10 + a1 + 16) + *(_QWORD *)(v10 + a1 + 24), v13 > v11)
&& (result = RtlpHpScheduleCompaction(*(_QWORD **)(a1 + 56)), (result & 0x80000000) != 0i64)
|| v13 > v12 )
{
LABEL_10:
LODWORD(result) = RtlpHpSegPageRangeCommit((UINT16 *)a1, v8, v9, -(int)v7, 0, 0i64);
}
return result;
}Referenced by:
No references.