PipQueryBindingResolution
INT64 *__fastcall PipQueryBindingResolution(INT64 a1){
INT64 *v1;
__int64 *v3;
INT64 *v4;
UNICODE_STRING *v5;
UNICODE_STRING *v6;
UNICODE_STRING *v7;
__int64 v9;
v1 = 0i64;
if( *(_DWORD *)a1 )
{
if( *(_DWORD *)a1 == 1 )
{
v3 = (__int64 *)PiDependencyNodeListHead;
LABEL_4:
while( v3 != &PiDependencyNodeListHead )
{
v4 = v3;
v3 = (__int64 *)*v3;
v5 = (UNICODE_STRING *)v4[7];
if( v5 != (UNICODE_STRING *)(v4 + 7) )
{
v6 = *(UNICODE_STRING **)(a1 + 8);
while( 1 )
{
v7 = v5;
v5 = *(UNICODE_STRING **)&v5->Length;
if( RtlEqualUnicodeString(v7 + 1, v6, 1u) )
return v4;
if( v5 == (UNICODE_STRING *)(v4 + 7) )
goto LABEL_4;
}
}
}
}
}
else
{
v9 = *(_QWORD *)(a1 + 8);
if( v9 )
return *(INT64 **)(*(_QWORD *)(v9 + 312) + 80i64);
}
return v1;
}Referenced by:
IoDuplicateDependency
IoResolveDependency
PipSetDependency