StringListElementSubstringMatch
NTSTATUS __stdcall StringListElementSubstringMatch(
WCHAR *StringList,
UINT64 PropertyType,
WCHAR *SubstringList,
INT64 IgnoreCase,
_DEVPROP_OPERATOR Op){
unsigned int v5;
WCHAR *v6;
int v7;
NTSTATUS v9;
_DEVPROP_OPERATOR v10;
WCHAR *v11;
__int64 v12;
__int64 v13;
v5 = IgnoreCase;
v6 = SubstringList;
v7 = PropertyType;
v9 = 0;
v10 = DEVPROP_OPERATOR_NONE;
switch( Op )
{
case DEVPROP_OPERATOR_LIST_ELEMENT_BEGINS_WITH:
v10 = DEVPROP_OPERATOR_BEGINS_WITH;
break;
case DEVPROP_OPERATOR_LIST_ELEMENT_ENDS_WITH:
v10 = DEVPROP_OPERATOR_ENDS_WITH;
break;
case DEVPROP_OPERATOR_LIST_ELEMENT_CONTAINS:
v10 = DEVPROP_OPERATOR_CONTAINS;
break;
}
if( *SubstringList )
{
do
{
v11 = StringList;
if( *StringList )
{
while( !SubstringMatch(v11, 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( v6[v13] );
v6 += v13 + 1;
}
while( *v6 );
}
return v9;
}Referenced by:
PropertyEval