EmpReleasePagingReference

VOID __stdcall EmpReleasePagingReference(){
  ExAcquirePushLockExclusiveEx((UINT64)&EmpPagingLock, 0i64);
  dword_140C47698 ^= (dword_140C47698 ^ (dword_140C47698 - 1)) & 0x7FFFFFFF;
  if( (dword_140C47698 & 0x7FFFFFFF) == 0 && EmpPagingStatus )
    KeSetEvent(EmpPagingStatus, 0);
  if( (_InterlockedExchangeAdd64((volatile signed __int64 *)&EmpPagingLock, 0xFFFFFFFFFFFFFFFFui64) & 6) == 2 )
    ExfTryToWakePushLock((volatile INT64 *)&EmpPagingLock);
  KeAbPostRelease(&EmpPagingLock);
}

Referenced by:

EmClientQueryRuleState
EmClientRuleEvaluate