KeInvalidAccessAllowed

UINT8 __stdcall KeInvalidAccessAllowed(VOID *TrapInformation){
  char v1; 
  BOOL v2; 
  char v3; 
  __int16 v5; 
  UINT8 IsTraceMemoryAccess; 
  NTSTATUS(__stdcall *v7)(); 
  int v9; 
  UINT64 v10; 
  int v11; 

  v3 = v1;
  if( !TrapInformation )
    return 0;
  v5 = *((_WORD *)TrapInformation + 184);
  IsTraceMemoryAccess = 0;
  if( v5 == 16 )
  {
    if( (*((_DWORD *)TrapInformation + 94) & 0x200) != 0
      || (LOBYTE(v9) = KiRspInIstStack(3ui64, *((_QWORD *)TrapInformation + 48)), !v9)
      && (LOBYTE(v11) = KiRspInIstStack(2ui64, v10), !v11) )
    {
      v7 = ExpInterlockedPopEntrySListFault;
      IsTraceMemoryAccess = KiIsTraceMemoryAccess(*((PRKEVENT *)TrapInformation + 45), v1, v2);
      goto LABEL_5;
    }
    return 0;
  }
  if( v5 != 51 )
    return 0;
  v7 = (NTSTATUS(__stdcall *)())KeUserPopEntrySListFault;
LABEL_5:
  if( (v3 & 1) == 0 && *((NTSTATUS(__stdcall **)())TrapInformation + 45) == v7 )
    return 1;
  return IsTraceMemoryAccess;
}

Referenced by:

MiAllowGuardFault
MiCheckSystemPageTables
MiRaisedIrqlFault
MiResolveMappedFileFault
MiResolveProtoPteFault
MiSystemFault
MiValidFault
MmAccessFault