HalpPciCheckAmdK8
BOOL __fastcall HalpPciCheckAmdK8(INT16 a1, CHAR a2, CHAR a3){
BOOL result;
__int32 v6;
__int32 v7;
__int64 v8;
result = HalpPciAmdK8SpecialLocationHack;
if( HalpPciAmdK8SpecialLocationHack == -1 )
{
v8 = __cpuid(0, 0);
v7 = ECX(v8);
v6 = EDX(v8);
if( EBX(v8) != 1752462657
|| v6 != 1769238117
|| v7 != 1145913699
|| (result = EAX(__cpuid(1, 0)), (((unsigned int)result >> 8) & 0xF) != 15)
|| (result & 0xFF00000) != 0 )
{
result = 0;
HalpPciAmdK8SpecialLocationHack = 0;
return result;
}
HalpPciAmdK8SpecialLocationHack = 1;
}
else if( HalpPciAmdK8SpecialLocationHack != 1 )
{
LABEL_3:
LOBYTE(result) = 0;
return result;
}
if( a1 || a2 || (a3 & 0x1Fu) < 0x18 )
goto LABEL_3;
LOBYTE(result) = 1;
return result;
}Referenced by:
HalpPciAccessMmConfigSpace