x86BiosReadPciAddressPort

INT64 __fastcall x86BiosReadPciAddressPort(INT64 a1, UINT16 a2){
  unsigned int v2; 
  int v4; 
  int v5; 
  v2 = 0;
  if( !XmPciBiosPresent )
    return 0i64;
  if( a2 + (int)a1 > 3 )
    LODWORD(a1) = 3 - a2;
  if( (_DWORD)a1 )
  {
    v4 = a1 - 1;
    if( v4 )
    {
      v5 = v4 - 1;
      if( v5 )
      {
        if( v5 == 1 )
          return(unsigned int)XmPCIConfigAddress;
      }
      else
      {
        return(HIBYTE(XmPCIConfigAddress) << 16) | (unsigned int)*(unsigned __int16 *)((char *)&XmPCIConfigAddress + a2);
      }
    }
    else
    {
      return *(unsigned __int16 *)((char *)&XmPCIConfigAddress + a2);
    }
  }
  else
  {
    return *((unsigned __int8 *)&XmPCIConfigAddress + a2);
  }
  return v2;
}

Referenced by:

x86BiosReadIoSpace