ExEnterCriticalRegionAndAcquireFastMutexUnsafe

VOID __stdcall ExEnterCriticalRegionAndAcquireFastMutexUnsafe(FAST_MUTEX *FastMutex){
  _ETHREAD *CurrentThread; 
  _ETHREAD *v3; 
  _BYTE *v4; 
  _BYTE *v5; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --*((_WORD *)CurrentThread + 242);
  v3 = (_ETHREAD *)KeGetCurrentThread();
  LODWORD(v4) = KeAbPreAcquire(FastMutex, 0i64, 0i64);
  v5 = v4;
  if( !_interlockedbittestandreset(&FastMutex->Count, 0) )
    ExpAcquireFastMutexContended(FastMutex, v4);
  if( v5 )
    v5[26] |= 1u;
  FastMutex->Owner = v3;
}

Referenced by:

No references.