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