HvIsRangeDirty
BOOL __fastcall HvIsRangeDirty(INT64 a1, INT64 a2, UINT64 a3){
BOOL result;
unsigned int v4;
unsigned int v5;
volatile INT64 *v7;
UINT8 v8;
result = *(_DWORD *)(a1 + 160);
v4 = a3;
v5 = a2;
if( result || (int)a2 < 0 )
{
LOBYTE(result) = 1;
}
else
{
v7 = (volatile INT64 *)(a1 + 80);
ExAcquirePushLockExclusiveEx(a1 + 80, 0i64);
v8 = RtlAreBitsClear((RTL_BITMAP *)(a1 + 88), v5 >> 9, v4);
if( (_InterlockedExchangeAdd64(v7, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
ExfTryToWakePushLock(v7);
KeAbPostRelease((PVOID)v7);
LOBYTE(result) = v8 == 0;
}
return result;
}Referenced by:
HvpRemapAndEnlistHiveBins