PipCheckValidNewDependencyEdge
CHAR __fastcall PipCheckValidNewDependencyEdge(INT64 a1, INT64 a2){
__int64 v2;
_QWORD *v3;
__int64 v4;
_QWORD *v5;
INT64 v6;
INT64 v7;
INT64 v8;
INT64 *v9;
__int64 v10;
if( a1 == a2 )
return 0;
v2 = *(_QWORD *)(a1 + 48);
if( v2 )
v3 = *(_QWORD **)(*(_QWORD *)(v2 + 312) + 40i64);
else
v3 = 0i64;
v4 = *(_QWORD *)(a2 + 48);
if( v4 )
v5 = *(_QWORD **)(*(_QWORD *)(v4 + 312) + 40i64);
else
v5 = 0i64;
if( v3 && v5 )
{
do
{
v5 = (_QWORD *)v5[2];
if( v5 == v3 )
return 0;
}
while( v5 != IopRootDeviceNode );
}
v6 = a2 + 16;
v7 = *(_QWORD *)(a2 + 16);
while( v7 != v6 )
{
v8 = PiListEntryToDependencyEdge(v7, 0i64);
v7 = *v9;
if( *(_QWORD *)(v8 + 32) == v10 )
return 0;
}
return 1;
}Referenced by:
PipAddDependencyEdgeBetweenNodes