KiKernelSysretExit
VOID __fastcall KiKernelSysretExit(VOID *a1){
int v1;
int v2;
unsigned __int64 v3;
char v4;
char v5;
v2 = *((_DWORD *)KeGetPcr() + 9222);
if( (v2 & 2) == 0 )
{
v3 = *(_QWORD *)(*((_QWORD *)KeGetCurrentThread() + 68) + 904i64);
if( (v3 & 1) != 0 )
{
if( (v4 & 1) != 0 )
__writegsdword(0x9018u, *((_DWORD *)KeGetPcr() + 9222) & 0xFFFFFFFE);
else
v3 |= 0x8000000000000000ui64;
}
__writecr3(v3);
}
if( (v5 & 2) == 0 )
__asm { verw word ptr gs:902Ah }
__swapgs();
__sysretq(a1, v1);
}Referenced by:
KiCallUserMode
KiSystemCall64
KiUmsFastReturnToUser