HalpBlkHandleMachineCheckAbort
NTSTATUS __stdcall HalpBlkHandleMachineCheckAbort(UINT64 a1){
unsigned __int64 v1;
unsigned __int8 v2;
unsigned __int64 v3;
char v4;
__int64 v5;
unsigned int v6;
__int64 v7;
__int64 v8;
v1 = __readmsr(0x179u);
v2 = v1;
if( BYTE3(KeGetPcr()->NtTib.ExceptionList[2].Handler) != 2 || (v1 & 0x1000000) == 0 )
HalpBlkFatalErrorHalt(0x12u, a1);
v3 = __readmsr(0x17Au);
v4 = v3;
if( (v3 & 1) == 0 )
HalpBlkFatalErrorHalt(0x12u, a1);
LODWORD(v5) = v2;
if( v2 )
{
v6 = 1025;
v7 = v2;
do
{
v5 = __readmsr(v6);
v8 = v5;
if( v5 < 0 )
{
LODWORD(v5) = 0;
if( (v8 & 0x2000000000000000i64) != 0 )
{
LODWORD(v5) = 0;
if( (v8 & 0x4200000000000000i64) != 0 )
HalpBlkFatalErrorHalt(0x12u, a1);
if( (v4 & 8) != 0 && (v8 & 0x180000000000000i64) == 0x180000000000000i64 )
HalpBlkFatalErrorHalt(0x12u, a1);
}
}
v6 += 4;
--v7;
}
while( v7 );
}
return v5;
}Referenced by:
HalpBlkMachineCheckAbort