StringListElementSubstringMatch
INT64 __fastcall StringListElementSubstringMatch(WCHAR *a1, INT64 a2, CHAR *a3, INT64 a4, INT64 a5){
unsigned int v5;
CHAR *v6;
int v7;
unsigned int v9;
_DEVPROP_OPERATOR v10;
WCHAR *v11;
__int64 v12;
__int64 v13;
v5 = a4;
v6 = a3;
v7 = a2;
v9 = 0;
v10 = DEVPROP_OPERATOR_NONE;
switch( (_DWORD)a5 )
{
case 0x2000:
v10 = DEVPROP_OPERATOR_BEGINS_WITH;
break;
case 0x3000:
v10 = DEVPROP_OPERATOR_ENDS_WITH;
break;
case 0x4000:
v10 = DEVPROP_OPERATOR_CONTAINS;
break;
}
if( *(_WORD *)a3 )
{
do
{
v11 = a1;
if( *a1 )
{
while( !(unsigned int)SubstringMatch(v11, (const wchar_t *)v6, v5, v10) )
{
v12 = -1i64;
do
++v12;
while( v11[v12] );
v11 += v12 + 1;
if( !*v11 )
goto LABEL_15;
}
v9 = 1;
}
LABEL_15:
if( v7 == 18 || v7 == 8210 && v9 )
break;
v13 = -1i64;
do
++v13;
while( *(_WORD *)&v6[2 * v13] );
v6 += 2 * v13 + 2;
}
while( *(_WORD *)v6 );
}
return v9;
}Referenced by:
PropertyEval