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