FilterEvalImpliedAnd
__int64 __fastcall FilterEvalImpliedAnd(
__int64 (__fastcall *a1)(__int64, __int64, unsigned int *, unsigned int *, wchar_t **),
__int64 a2,
unsigned int a3,
__int64 a4,
int *a5){
int *v5;
unsigned int v6;
unsigned int v7;
int v10;
__int64(__fastcall *v12)(__int64, __int64, unsigned int *, unsigned int *, wchar_t **);
WCHAR **v13;
unsigned int v14;
UINT64 PropertyType;
UINT64 ContainsArraySize;
UINT64 v18;
UINT8 *v19;
UINT64 v21;
v5 = a5;
v6 = 0;
LODWORD(v18) = 0;
v7 = 0;
v19 = 0i64;
LODWORD(v21) = 0;
*a5 = 0;
v10 = 1;
v12 = a1;
if( a3 )
{
v13 = (WCHAR **)(a4 + 48);
while( (*(_DWORD *)(v13 - 6) & 0xFF00000) == 0 )
{
v14 = v12(a2, 56i64 * v7 + a4 + 8, (unsigned int *)&v18, (unsigned int *)&v21, (wchar_t **)&v19);
v6 = v14;
if( v14 == -1073741275 )
{
v6 = 0;
v10 = 0;
}
else
{
if( v14 )
goto LABEL_10;
LODWORD(ContainsArraySize) = *((_DWORD *)v13 - 1);
LODWORD(PropertyType) = *((_DWORD *)v13 - 2);
PropertyEval(
(unsigned int)v18,
v19,
(unsigned int)v21,
*((unsigned int *)v13 - 12),
PropertyType,
*v13,
ContainsArraySize,
(INT64 *)v5);
if( *v5 == v6 )
return 0i64;
}
v12 = a1;
++v7;
v13 += 7;
if( v7 >= a3 )
goto LABEL_10;
}
v6 = -1073741811;
LABEL_10:
if( !v10 && !v6 )
return(unsigned int)-1073741823;
}
return v6;
}Referenced by:
FilterEval