HvIsRangeDirty

BOOL __stdcall HvIsRangeDirty(INT64 a1, INT64 a2, UINT64 a3){
  unsigned int v3; 
  unsigned int v4; 
  _EX_PUSH_LOCK *v6; 
  UINT8 v7; 

  v3 = a3;
  v4 = a2;
  if( (*(_DWORD *)(a1 + 160) & 1) != 0 || (int)a2 < 0 )
    return 1;
  v6 = (_EX_PUSH_LOCK *)(a1 + 80);
  ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)(a1 + 80), 0i64);
  v7 = RtlAreBitsClear((_RTL_BITMAP *)(a1 + 88), v4 >> 9, v3);
  if( (_InterlockedExchangeAdd64(&v6->_bf_0, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock(v6);
  KeAbPostRelease(v6);
  return v7 == 0;
}

Referenced by:

HvpRemapAndEnlistHiveBins