XmInt1aFindPciDevice
INT64 __fastcall XmInt1aFindPciDevice(INT64 a1){
unsigned int v1;
INT64 result;
unsigned int v4;
unsigned __int8 i;
int v6;
unsigned int j;
int v8;
int v9;
v1 = 0;
v9 = 0;
result = 0xFFFFi64;
if( *(_WORD *)(a1 + 24) == 0xFFFF )
{
*(_DWORD *)(a1 + 16) |= 1u;
*(_BYTE *)(a1 + 25) = -125;
}
else
{
v4 = 0;
for( i = 0; i < (unsigned __int8)XmNumberPciBusses; ++i )
{
v6 = 0;
while( 2 )
{
for( j = 0; j < 8; ++j )
{
v4 = v6 & 0x1F | v4 & 0xFFFFFF00 | (32 * (j & 7));
result = ((__int64(__fastcall *)(_QWORD, _QWORD, int *, _QWORD, int))XmGetPciData)(i, v4, &v9, 0i64, 4);
v8 = v9;
if( (_DWORD)result != 4 )
v8 = -1;
v9 = v8;
if( v8 == __PAIR32__(*(_WORD *)(a1 + 28), *(_WORD *)(a1 + 32)) )
{
result = v1++;
if( (_DWORD)result == *(unsigned __int16 *)(a1 + 48) )
{
*(_BYTE *)(a1 + 37) = i;
*(_DWORD *)(a1 + 16) &= ~1u;
*(_BYTE *)(a1 + 36) = j | (8 * v6);
*(_BYTE *)(a1 + 25) = 0;
return result;
}
}
}
if( (unsigned int)++v6 < 0x20 )
continue;
break;
}
}
*(_DWORD *)(a1 + 16) |= 1u;
*(_BYTE *)(a1 + 25) = -122;
}
return result;
}Referenced by:
XmExecuteInt1a