KiKernelExit

VOID __fastcall KiKernelExit(INT64 a1, INT64 a2, INT64 a3, INT64 a4, CHAR a5){
  char v5; 
  bool v6; 
  void *v7; 
  __int16 v8; 
  __int32 v9; 
  void *v10; 
  __int16 v11; 
  __writegsqword(0x9010u, (unsigned __int64)&v7);
  if( (*((_DWORD *)KeGetPcr() + 9222) & 2) == 0 )
  {
    v6 = (v5 & 1) != 0;
    if( v6 && (*((_DWORD *)KeGetPcr() + 9222) & 1) != 0 )
      __writegsdword(0x9018u, *((_DWORD *)KeGetPcr() + 9222) & 0xFFFFFFFE);
    __writecr3((unsigned __int64)&v7);
  }
  if( (*((_DWORD *)KeGetPcr() + 9222) & 2) == 0 )
    __asm { verw    [rsp+arg_18] }
  __swapgs();
  __iretq(v7, v8, v9, v10, v11);
}

Referenced by:

KiApcInterrupt
KiBoundFault
KiControlProtectionFault
KiDpcInterrupt
KiExceptionDispatch
KiFastFailDispatch
KiInvalidOpcodeFault
KiIpiInterrupt
KiPageFault
KiRestoreSetContextState
KiSpuriousDispatchNoEOI
KiSwInterrupt
KiSystemCall64
KiVirtualizationException
KxIsrLinkage
KxMcheckAlternateReturn
KxStartUserThread
NtCallEnclave
NtContinueEx
NtRaiseException