HalpMceRecovery
INT64 __fastcall HalpMceRecovery(INT64 a1, _DWORD *a2){
__int64 v3;
int v4;
int v5;
v3 = *(_QWORD *)(a1 + 40);
v4 = -1073741637;
if( !HalpMcaRecoverySupported || !HalpMcaRecoveryPolicy )
return(unsigned int)v4;
v5 = *(_DWORD *)(a1 + 4);
if( v5 == 1 )
{
if( (v3 & 0x80000000000000i64) == 0 )
goto LABEL_5;
}
else if( v5 != 2 || (v3 & 0x2000100000000000i64) != 0x2000000000000000i64 )
{
LABEL_5:
if( v5 == 1 )
HalpMceRecoveryNotRequiredIntel((_QWORD *)a1);
else
HalpMceRecoveryNotRequiredAmd((UINT64 *)a1);
v4 = 0;
goto LABEL_15;
}
if( ((v3 & 0x4000000000000000i64) == 0 || HalpMcaOverflowRecoverySupported) && (v3 & 0x200000000000000i64) == 0 )
{
v4 = HalpMceRecoveryRequired(a1);
LABEL_15:
if( v4 >= 0 )
*a2 = 2;
}
return(unsigned int)v4;
}Referenced by:
No references.