ViDeadlockCheckDuplicatesAmongChildren
VOID **__fastcall ViDeadlockCheckDuplicatesAmongChildren(INT64 a1, INT64 a2, INT64 **a3){
VOID **result;
INT64 v4;
_QWORD *v6;
int v8;
_VI_DEADLOCK_NODE *v9;
_VI_DEADLOCK_NODE *v10;
void *retaddr;
result = &retaddr;
v4 = a1 + 8;
v6 = *(_QWORD **)(a1 + 8);
v8 = 0;
while( v6 != (_QWORD *)v4 )
{
v9 = (_VI_DEADLOCK_NODE *)(v6 - 3);
v6 = (_QWORD *)*v6;
result = (VOID **)ViDeadlockSimilarNodes(v9, (_VI_DEADLOCK_NODE *)a2);
if( (_DWORD)result )
{
if( v8 )
ViDeadlockMergeNodes((_VI_DEADLOCK_NODE *)a2, v10, (VOID **)a3);
else
v8 = 1;
}
}
return result;
}Referenced by:
VfDeadlockAcquireResource