SubstringMatch
NTSTATUS __stdcall SubstringMatch(WCHAR *Str, WCHAR *Substr, INT64 IgnoreCase, _DEVPROP_OPERATOR Op){
NTSTATUS v4;
WCHAR *v8;
WCHAR *v9;
bool v10;
__int64 v11;
__int64 v12;
v4 = 0;
if( (_DWORD)IgnoreCase )
v8 = wcsistr(Str, (char *)Substr);
else
v8 = wcsstr(Str, (INT8 *)Substr);
v9 = v8;
if( v8 )
{
if( Op == DEVPROP_OPERATOR_BEGINS_WITH )
{
v10 = v8 == Str;
}
else if( Op == DEVPROP_OPERATOR_ENDS_WITH )
{
v11 = -1i64;
v12 = -1i64;
do
++v12;
while( v9[v12] );
do
++v11;
while( Substr[v11] );
v10 = v12 == v11;
}
else
{
v10 = Op == DEVPROP_OPERATOR_CONTAINS;
}
if( v10 )
return 1;
}
return v4;
}Referenced by:
PropertyEval
StringListElementSubstringMatch