KiKernelIstMceExit
VOID __stdcall KiKernelIstMceExit(){
unsigned __int64 v0;
unsigned __int64 v1;
unsigned __int64 v4;
void *v5;
__int16 v6;
unsigned __int64 v7;
void *v8;
__int16 v9;
unsigned __int64 v10;
unsigned __int64 v11;
v0 = v11;
if( (v11 & 1) != 0 )
{
if( !_interlockedbittestandreset(MK_FP(__GS__, 36888i64), 0) )
{
v4 = __readcr3();
if( v4 == v11 )
goto LABEL_8;
v0 = v11 | 0x8000000000000000ui64;
}
}
else
{
v1 = __readcr3();
if( v1 == v11 )
goto LABEL_8;
}
__writecr3(v0);
LABEL_8:
__writemsr(0xC0000101, v10);
if( (v9 & 4) == 0 )
{
__writemsr(0x17Au, 0i64);
__asm { verw [rsp+arg_18] }
__iretq(v5, v6, v7, v8, v9);
}
__writeeflags(v7);
__writemsr(0x17Au, 0i64);
__asm
{
verw word ptr [rsp+arg_0]
retfq
}
}Referenced by:
KiMcheckAbort