x86BiosWritePciAddressPort

INT64 __fastcall x86BiosWritePciAddressPort(INT64 a1, UINT16 a2, INT64 a3){
  INT64 result; 
  int v4; 
  int v5; 
  if( XmPciBiosPresent )
  {
    result = a2 + (unsigned int)a1;
    if( (int)result > 3 )
      LODWORD(a1) = 3 - a2;
    if( (_DWORD)a1 )
    {
      v4 = a1 - 1;
      if( v4 )
      {
        v5 = v4 - 1;
        if( v5 )
        {
          if( v5 == 1 )
            XmPCIConfigAddress = a3;
        }
        else
        {
          result = a2;
          *(_WORD *)((char *)&XmPCIConfigAddress + a2) = a3;
          HIBYTE(XmPCIConfigAddress) = BYTE2(a3);
        }
      }
      else
      {
        result = a2;
        *(_WORD *)((char *)&XmPCIConfigAddress + a2) = a3;
      }
    }
    else
    {
      result = a2;
      *((_BYTE *)&XmPCIConfigAddress + a2) = a3;
    }
    XmPCIConfigAddress &= 0xFFFFFFFC;
  }
  return result;
}

Referenced by:

x86BiosWriteIoSpace