PiDevCfgGetMigrationDeviceIdScore
VOID __stdcall PiDevCfgGetMigrationDeviceIdScore(const WCHAR *SourceDeviceIds, const WCHAR *TargetDeviceIds){
const wchar_t *v2;
const WCHAR *v3;
__int16 v4;
char v5;
unsigned __int16 v6;
const wchar_t *v7;
wchar_t v8;
const wchar_t *v9;
__int64 v10;
__int16 v11;
__int64 v12;
const wchar_t *v13;
unsigned __int16 v14;
__int64 v15;
__int64 v16;
const WCHAR *v17;
bool v18;
__int64 v19;
const wchar_t *v20;
v2 = TargetDeviceIds;
v3 = SourceDeviceIds;
v4 = 0;
v5 = 0;
if( SourceDeviceIds )
{
if( TargetDeviceIds )
{
v6 = 0x4000;
v7 = TargetDeviceIds;
if( *TargetDeviceIds )
{
do
{
v8 = *v3;
v9 = v3;
if( *v3 )
{
while( wcsicmp(v9, v7) )
{
v10 = -1i64;
do
++v10;
while( v9[v10] );
v9 += v10 + 1;
if( !*v9 )
{
v8 = 0;
goto LABEL_11;
}
}
v8 = *v9;
v5 = 1;
}
LABEL_11:
v11 = v4 | v6;
if( v8 )
v11 = v4;
v4 = v11;
v12 = -1i64;
do
++v12;
while( v7[v12] );
v13 = &v7[v12];
v14 = v6 >> 1;
v7 = v13 + 1;
if( v6 <= 2u )
v14 = v6;
v6 = v14;
}
while( *v7 );
if( v5 )
{
wcsicmp(v3, v2);
v15 = -1i64;
do
++v15;
while( v3[v15] );
while( 1 )
{
v18 = v3[v15 + 1] == 0;
v16 = -1i64;
if( v18 )
break;
do
++v16;
while( v3[v16] );
v17 = &v3[v16];
v15 = -1i64;
v3 = v17 + 1;
do
++v15;
while( v3[v15] );
}
do
++v16;
while( v2[v16] );
while( v2[v16 + 1] )
{
v19 = -1i64;
do
++v19;
while( v2[v19] );
v20 = &v2[v19];
v16 = -1i64;
v2 = v20 + 1;
do
++v16;
while( v2[v16] );
}
wcsicmp(v3, v2);
}
}
}
}
}Referenced by:
PiDevCfgFindDeviceMigrationNode