IopTestConfiguration

INT64 __fastcall IopTestConfiguration(INT64 a1, UINT64 a2, INT64 **a3){
  INT64 *v3; 
  int v4; 
  unsigned int v6; 
  __int64 v8; 
  char v9; 
  __int128 v11; 
  __int128 i; 
  v3 = *a3;
  v4 = 0;
  v6 = a2;
  v11 = 0i64;
  for( i = 0i64; v3 != (INT64 *)a3; v3 = (INT64 *)*v3 )
  {
    if( *((_BYTE *)v3 + 17) )
    {
      v8 = *(v3 - 8);
      DWORD2(v11) = 0;
      *(_QWORD *)&i = 0i64;
      *(_QWORD *)&v11 = v3 - 6;
      PnpLookupArbitersNewResources((_PNP_RESOURCE_REQUEST *)a1, v6, (_DEVICE_NODE *)*(v3 - 7), *((_BYTE *)v3 - 72));
      v4 = (*(__int64(__fastcall **)(_QWORD, _QWORD, __int128 *))(v8 + 32))(*(_QWORD *)(v8 + 8), 0i64, &v11);
      if( v4 < 0 )
      {
        PnpLogDeviceConflictingResource((INT64)(v3 - 11), *(_QWORD *)(v8 + 8));
        *((_BYTE *)v3 + 16) |= 2u;
        return(unsigned int)v4;
      }
      v9 = v3[2] & 0xFD;
      *((_BYTE *)v3 + 17) = 0;
      *((_BYTE *)v3 + 16) = v9 | 1;
    }
    else if( (v3[2] & 2) != 0 )
    {
      return(unsigned int)-1073741823;
    }
  }
  return(unsigned int)v4;
}

Referenced by:

PnpFindBestConfigurationWorker