RtlCompareUnicodeStrings
NTSTATUS __stdcall RtlCompareUnicodeStrings(
WCHAR *String1,
UINT64 String1Length,
WCHAR *String2,
UINT64 String2Length,
UINT8 CaseInSensitive){
UINT64 v5;
int v6;
int v7;
UINT16 *v8;
WCHAR *v9;
signed __int64 v10;
int v11;
int v12;
int v14;
UINT16 v15;
UINT16 v16;
v5 = String1Length;
v6 = String2Length;
if( String1Length > String2Length )
v5 = String2Length;
v7 = String1Length;
v8 = String1;
v9 = &String1[v5];
if( String1 >= v9 )
return String1Length - String2Length;
v10 = (char *)String2 - (char *)String1;
if( CaseInSensitive )
{
do
{
if( *v8 != *(UINT16 *)((char *)v8 + v10) )
{
v14 = NLS_UPCASE(*v8);
v16 = NLS_UPCASE(v15);
if( (_WORD)v14 != v16 )
{
v12 = v16;
v11 = v14;
return v11 - v12;
}
}
++v8;
}
while( v8 < v9 );
return v7 - v6;
}
else
{
while( 1 )
{
v11 = *v8;
v12 = *(UINT16 *)((char *)v8 + v10);
if( (_WORD)v11 != (_WORD)v12 )
break;
if( ++v8 >= v9 )
return String1Length - String2Length;
}
return v11 - v12;
}
}Referenced by:
ApiSetpSearchForApiSet
ApiSetpSearchForApiSetHost
AsiSortValueList
EtwpAvlCompareKeyNames
EtwpExpandFileName
PiDevCfgResolveVariableExpression
PnpCheckDeviceIdsChanged
PnpCompareMultiSz
PopDirectedDripsUmTestDeviceCompare
RtlpMuiRegInitLIPLanguage
RtlpMuiRegPopulateBaseLanguages
sub_1407A6B40