HalpBlkNmiInterrupt
VOID __stdcall HalpBlkNmiInterrupt(UINT64 a1, UINT64 a2, UINT64 a3, UINT64 a4){
unsigned __int64 v4;
unsigned __int64 v5;
unsigned __int64 v6;
_M128A v7;
_M128A v8;
_M128A v9;
_M128A v10;
_M128A v11;
_M128A v12;
_KTRAP_FRAME *__shifted(_KTRAP_FRAME,0x80) TrapFrame;
unsigned __int8 v14;
void *retaddr;
__int16 v17;
int v18;
void *v19;
__int16 v20;
TrapFrame = KeGetTrapFrame();
ADJ(TrapFrame)->ExceptionActive = 1;
ADJ(TrapFrame)->Rax = v4;
ADJ(TrapFrame)->Rcx = a1;
ADJ(TrapFrame)->Rdx = a2;
ADJ(TrapFrame)->R8 = a3;
ADJ(TrapFrame)->R9 = a4;
ADJ(TrapFrame)->R10 = v5;
ADJ(TrapFrame)->R11 = v6;
ADJ(TrapFrame)->MxCsr = _mm_getcsr();
_mm_setcsr(0x1F80u);
ADJ(TrapFrame)->Xmm0 = v7;
ADJ(TrapFrame)->Xmm1 = v8;
ADJ(TrapFrame)->Xmm2 = v9;
ADJ(TrapFrame)->Xmm3 = v10;
ADJ(TrapFrame)->Xmm4 = v11;
ADJ(TrapFrame)->Xmm5 = v12;
HalpBlkMceFastForward((UINT64)ADJ(TrapFrame), 1);
v14 = _bittestandset(MK_FP(__GS__, 2468i64), 0);
if( v14
&& (unsigned __int64)HalpBlkNmiInterrupt <= ADJ(TrapFrame)->Rip
&& (unsigned __int64)HalpBlkNmiInterruptEnd > ADJ(TrapFrame)->Rip )
{
HalpBlkFatalErrorHalt(0x12u, (UINT64)ADJ(TrapFrame));
}
__writegsbyte(0x9A4u, 0);
_mm_setcsr(ADJ(TrapFrame)->MxCsr);
__iretq(retaddr, v17, v18, v19, v20);
}Referenced by:
No references.