KiSetSpecCtrlNmi
INT64 __fastcall KiSetSpecCtrlNmi(){
__int64 v0;
INT64 result;
if( *((_BYTE *)KeGetPcr() + 635) )
{
result = __readmsr(0x48u);
result = (unsigned int)result;
*(_BYTE *)(v0 - 86) = result;
LOBYTE(result) = *((_BYTE *)KeGetPcr() + 635);
__writemsr(0x48u, (unsigned __int8)result);
if( (result & 1) != 0 )
goto LABEL_5;
}
if( (*((_BYTE *)KeGetPcr() + 633) & 2) != 0 )
{
__writemsr(0x49u, 1ui64);
LABEL_5:
__flush_rsb();
HIDWORD(result) = 0;
}
_mm_lfence();
LODWORD(result) = *((unsigned __int8 *)KeGetPcr() + 2131);
*(_BYTE *)(v0 - 88) = result;
__writegsbyte(0x853u, *((_BYTE *)KeGetPcr() + 2131) | 2);
return result;
}Referenced by:
KiMcheckAbort
KiNmiInterruptStart