KiKernelIstExit
VOID __fastcall KiKernelIstExit(INT64 a1, INT64 a2, INT64 a3, INT64 a4, INT64 a5, INT64 a6, INT64 a7, INT64 a8){
unsigned __int64 v8;
unsigned __int64 v9;
unsigned __int64 v12;
void *v13;
__int16 v14;
int v15;
void *v16;
__int16 v17;
unsigned __int64 v18;
unsigned __int64 v19;
v8 = v19;
if( (v19 & 1) != 0 )
{
if( !_interlockedbittestandreset(MK_FP(__GS__, 36888i64), 0) )
{
v12 = __readcr3();
if( v12 == v19 )
goto LABEL_8;
v8 = v19 | 0x8000000000000000ui64;
}
}
else
{
v9 = __readcr3();
if( v9 == v19 )
goto LABEL_8;
}
__writecr3(v8);
LABEL_8:
__writemsr(0xC0000101, v18);
__asm { verw [rsp+arg_18] }
__iretq(v13, v14, v15, v16, v17);
}Referenced by:
KiDebugTrapOrFault
KiNmiInterruptStart