ExEnterCriticalRegionAndAcquireFastMutexUnsafe

NTSTATUS __fastcall ExEnterCriticalRegionAndAcquireFastMutexUnsafe(INT64 a1){
  _ETHREAD *CurrentThread; 
  _ETHREAD *v3; 
  _BYTE *v4; 
  _BYTE *v5; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --CurrentThread->Tcb.KernelApcDisable;
  v3 = (_ETHREAD *)KeGetCurrentThread();
  v4 = KeAbPreAcquire((VOID *)a1, 0i64, 0i64);
  v5 = v4;
  if( !_interlockedbittestandreset((volatile signed __int32 *)a1, 0) )
    ExpAcquireFastMutexContended((_FAST_MUTEX *)a1, v4);
  if( v5 )
    v5[26] |= 1u;
  *(_QWORD *)(a1 + 8) = v3;
  return(int)v4;
}

Referenced by:

No references.