MiAllowGuardFault

_BOOL8 __fastcall MiAllowGuardFault(unsigned __int64 a1){
  _ETHREAD *CurrentThread; 
  unsigned __int64 v2; 
  _BYTE *v3; 

  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  if( CurrentThread->Tcb.ApcStateIndex == 1 )
    return 0i64;
  v2 = a1 & 1;
  v3 = (_BYTE *)(a1 & 0xFFFFFFFFFFFFFFFEui64);
  if( (a1 & 1) == 0 )
    goto LABEL_3;
  if( *v3 == 1 )
    goto LABEL_11;
  if( (a1 & 1) == 0 )
  {
LABEL_3:
    if( KeInvalidAccessAllowed((VOID *)a1) != 1 )
      return(CurrentThread->Tcb._bf_0 & 0x20) == 0;
LABEL_11:
    if( !v2 || *v3 != 6 )
      return 0i64;
    return(CurrentThread->Tcb._bf_0 & 0x20) == 0;
  }
  if( *v3 == 3 || *v3 == 6 )
    goto LABEL_11;
  return(CurrentThread->Tcb._bf_0 & 0x20) == 0;
}

Referenced by:

MiAccessCheck
MiResolveProtoPteFault
MiUserFault
MiZeroFault