RtlHashUnicodeString

NTSTATUS __stdcall RtlHashUnicodeString(
        const _UNICODE_STRING *String,
        UINT8 CaseInSensitive,
        UINT64 HashAlgorithm,
        UINT64 *HashValue){
  int v4; 
  wchar_t *Buffer; 
  int v7; 
  unsigned __int64 v8; 
  int v10; 

  v4 = 0;
  if( !String )
    return -1073741811;
  if( !HashValue )
    return -1073741811;
  Buffer = String->Buffer;
  *(_DWORD *)HashValue = 0;
  v7 = String->Length >> 1;
  if( (unsigned int)HashAlgorithm > 1 )
    return -1073741811;
  if( v7 )
  {
    if( CaseInSensitive )
    {
      do
      {
        v8 = *Buffer++;
        --v7;
        if( (unsigned int)v8 >= 0x61 )
        {
          if( (unsigned int)v8 > 0x7A )
          {
            if( Nls844UnicodeUpcaseTable )
            {
              if( (unsigned __int16)v8 >= 0xC0u )
                LOWORD(v8) = *(_WORD *)(Nls844UnicodeUpcaseTable
                                      + 2
                                      * ((v8 & 0xF)
                                       + *(unsigned __int16 *)(Nls844UnicodeUpcaseTable
                                                             + 2i64
                                                             * (((unsigned __int8)v8 >> 4)
                                                              + (unsigned int)*(unsigned __int16 *)(Nls844UnicodeUpcaseTable
                                                                                                  + 2 * (v8 >> 8))))))
                           + v8;
            }
          }
          else
          {
            LOWORD(v8) = v8 - 32;
          }
        }
        v4 = (unsigned __int16)v8 + 65599 * v4;
      }
      while( v7 );
    }
    else
    {
      do
      {
        v10 = *Buffer++;
        v4 = v10 + 65599 * v4;
        --v7;
      }
      while( v7 );
    }
  }
  *(_DWORD *)HashValue = v4;
  return 0;
}

Referenced by:

KsepCacheDeviceHash
KsepCacheHwIdHash
PiCreateDriverSwDeviceCallback
PiDevCfgBuildDriverNodeStrongName
PiDevCfgResolveVariable
PiDmInitializeComparisonObject
PiDmObjectCreate
PiUEventHashStringIntoBucket
PipFindDeviceOverrideEntry
PipInitDeviceOverrideCache
PnpGenerateDeviceIdsHash
PopFxInitializeSocSubsystemStaticInfo
PopPluginQuerySocSubsystemBlockingTime
PopPluginQuerySocSubsystemMetadata
SepGetCachedHandlesEntry