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