SdbpMatchList
__int64 __fastcall SdbpMatchList(int *a1, __int64 a2, __int64 a3, unsigned int a4, __int64 a5, int a6, int a7){
unsigned int FirstChild;
__int64(__fastcall *Matcher)(int *, __int64, __int64, _QWORD, unsigned int, __int64, _QWORD);
int v13;
__int64 result;
_QWORD a1a[2];
a1a[0] = 0i64;
a7 = 1;
FirstChild = SdbGetFirstChild(a3, a4);
if( FirstChild )
{
while( 1 )
{
Matcher = (__int64(__fastcall *)(int *, __int64, __int64, _QWORD, unsigned int, __int64, _QWORD))SdbpFindMatcher(a1a, a2, a3, FirstChild);
if( Matcher )
{
result = Matcher(&a7, a2, a3, a4, FirstChild, a5, a1a[0]);
if( !(_DWORD)result )
return result;
if( (unsigned int)SdbFindFirstTag(a3, FirstChild, 4099) )
{
v13 = a7 == 0;
a7 = v13;
}
else
{
v13 = a7;
}
if( v13 == a6 )
break;
}
FirstChild = SdbGetNextChild(a3, a4, FirstChild);
if( !FirstChild )
goto LABEL_4;
}
}
else
{
LABEL_4:
v13 = a7;
}
*a1 = v13;
return 1i64;
}Referenced by:
SdbpCheckForMatch
SdbpMatchOne