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