KiRestoreDebugRegisterState
NTSTATUS __stdcall KiRestoreDebugRegisterState(){
unsigned __int64 *v0;
unsigned __int64 v1;
unsigned __int64 v2;
unsigned __int64 v3;
unsigned __int64 v4;
int v5;
__writedr(7u, 0i64);
v1 = v0[12];
__writedr(0, v0[11]);
__writedr(1u, v1);
v2 = v0[14];
__writedr(2u, v0[13]);
__writedr(3u, v2);
v3 = v0[16];
LODWORD(v4) = 0;
__writedr(6u, 0i64);
__writedr(7u, v3);
if( (__readgsbyte(0x8722u) & 2) != 0 && (v3 & 0x300) != 0 && (KiCpuTracingFlags & 2) == 0 )
{
if( (v3 & 0x200) != 0 )
LODWORD(v4) = 2;
if( (v3 & 0x100) != 0 )
LODWORD(v4) = v4 | 1;
v5 = v4;
v4 = __readmsr(0x1D9u);
LODWORD(v4) = v5 | v4 & 0xFFFFFFFC;
__writemsr(0x1D9u, v4);
}
return v4;
}Referenced by:
KiApcInterrupt
KiBoundFault
KiCallUserMode
KiControlProtectionFault
KiDpcInterrupt
KiExceptionDispatch
KiFastFailDispatch
KiInvalidOpcodeFault
KiIpiInterrupt
KiMcheckAbort
KiNmiInterruptStart
KiPageFault
KiRestoreSetContextState
KiSpuriousDispatchNoEOI
KiSwInterrupt
KiSystemCall64
KiUmsFastReturnToUser
KiVirtualizationException
KxIsrLinkage
KxMcheckAlternateReturn
KxStartUserThread
NtCallEnclave
NtContinueEx
NtRaiseException