KeInvalidAccessAllowed

UINT8 __stdcall KeInvalidAccessAllowed(PVOID TrapInformation){
  char v1; 
  char v2; 
  __int16 v4; 
  UINT8 IsTraceMemoryAccess; 
  INT64(*v6)(void); 
  UINT64 v8; 
  v2 = v1;
  if( !TrapInformation )
    return 0;
  v4 = *((_WORD *)TrapInformation + 184);
  IsTraceMemoryAccess = 0;
  if( v4 == 16 )
  {
    if( (*((_DWORD *)TrapInformation + 94) & 0x200) != 0
      || !KiRspInIstStack(3ui64, *((_QWORD *)TrapInformation + 48)) && !KiRspInIstStack(2ui64, v8) )
    {
      v6 = ExpInterlockedPopEntrySListFault;
      IsTraceMemoryAccess = KiIsTraceMemoryAccess(*((_QWORD *)TrapInformation + 45));
      goto LABEL_5;
    }
    return 0;
  }
  if( v4 != 51 )
    return 0;
  v6 = (INT64(*)(void))KeUserPopEntrySListFault;
LABEL_5:
  if( (v2 & 1) == 0 && *((INT64(**)(void))TrapInformation + 45) == v6 )
    return 1;
  return IsTraceMemoryAccess;
}

Referenced by:

MiAllowGuardFault
MiCheckSystemPageTables
MiRaisedIrqlFault
MiResolveMappedFileFault
MiResolveProtoPteFault
MiSystemFault
MiValidFault
MmAccessFault