IopSelectNextConfiguration
CHAR __fastcall IopSelectNextConfiguration(INT64 a1, UINT64 a2, _QWORD *a3){
unsigned int v3;
unsigned int v5;
unsigned int v7;
INT64 v8;
__int64 v9;
INT64 v11;
__int64 v12;
v3 = 0;
v5 = a2;
v7 = 0;
if( (_DWORD)a2 )
{
v8 = a1 + 32;
do
{
v9 = *(_QWORD *)v8;
IopAddRemoveReqDescs(
**(_QWORD **)(*(_QWORD *)v8 + 16i64) + 24i64,
*(_DWORD *)(**(_QWORD **)(*(_QWORD *)v8 + 16i64) + 20i64),
0i64,
0);
*(_QWORD *)(v9 + 16) += 8i64;
if( *(_QWORD *)(v9 + 16) < *(_QWORD *)(v9 + 24) )
break;
++v7;
v8 += 64i64;
*(_QWORD *)(v9 + 16) = v9 + 40;
}
while( v7 < v5 );
}
if( v7 == v5 )
return 0;
if( v5 )
{
v11 = a1 + 32;
do
{
v12 = *(_QWORD *)v11;
IopAddRemoveReqDescs(
**(_QWORD **)(*(_QWORD *)v11 + 16i64) + 24i64,
*(_DWORD *)(**(_QWORD **)(*(_QWORD *)v11 + 16i64) + 20i64),
a3,
1);
if( *(_QWORD *)(v12 + 16) != v12 + 40 )
break;
++v3;
v11 += 64i64;
}
while( v3 < v5 );
}
return 1;
}Referenced by:
PnpFindBestConfigurationWorker