CmpCompareTwoCompressedNames

INT64 __stdcall CmpCompareTwoCompressedNames(
        _WCHAR *CompressedName1,
        UINT64 NameLength1,
        _WCHAR *CompressedName2,
        UINT64 NameLength2){
  unsigned __int16 v4; 
  unsigned __int16 v6; 
  unsigned int v8; 
  unsigned int v9; 

  v4 = NameLength2;
  v6 = NameLength1;
  if( (_WORD)NameLength1 )
  {
    while( v4 )
    {
      v8 = *(unsigned __int8 *)CompressedName1;
      CompressedName1 = (_WCHAR *)((char *)CompressedName1 + 1);
      v9 = *(unsigned __int8 *)CompressedName2;
      CompressedName2 = (_WCHAR *)((char *)CompressedName2 + 1);
      if( (_WORD)v8 != (_WORD)v9 )
      {
        if( v8 >= 0x61 )
        {
          if( v8 <= 0x7A )
            LOWORD(v8) = v8 - 32;
          else
            LOWORD(v8) = NLS_UPCASE(v8);
        }
        if( v9 >= 0x61 )
        {
          if( v9 <= 0x7A )
            LOWORD(v9) = v9 - 32;
          else
            LOWORD(v9) = NLS_UPCASE(v9);
        }
        if( (unsigned __int16)v8 != (unsigned __int16)v9 )
          return(unsigned __int16)v8 - (unsigned int)(unsigned __int16)v9;
      }
      --v4;
      if( !--v6 )
        return v6 - (unsigned int)v4;
    }
  }
  return v6 - (unsigned int)v4;
}

Referenced by:

CmpCompareKeysByName
CmpDoCompareKeyName
CmpFindKcbInHashEntryByCompressedName
CmpFindNameInListCellWithStatus
CmpSortedValueEnumStackValueCompareFunction