RtlpMuiRegGetInstalledLangInfoIndex

NTSTATUS __stdcall RtlpMuiRegGetInstalledLangInfoIndex(
        _MUILANGUAGES *Languages,
        INT64 LangType,
        INT64 LangSpec,
        INT16 *ResultIndexRtrn){
  int v5; 
  INT16 v6; 
  __int64 v7; 
  int v8; 
  __int64 v9; 
  int v11; 
  __int64 v12; 
  __int64 v13; 

  if( Languages && (_DWORD)LangType )
  {
    switch( (_DWORD)LangType )
    {
      case 1:
        if( (_WORD)LangSpec )
        {
          v5 = *((unsigned __int16 *)Languages + 3);
          v6 = 0;
          if( *((_WORD *)Languages + 3) )
          {
            v7 = *((_QWORD *)Languages + 2);
            v8 = (__int16)LangSpec;
            while( 1 )
            {
              v9 = 28i64 * v6;
              if( *(unsigned __int16 *)(v9 + v7 + 4) == v8 && (*(_WORD *)(v9 + v7) & 0x1020) == 32 )
                break;
              if( ++v6 >= v5 )
                return -1073741823;
            }
LABEL_19:
            if( ResultIndexRtrn )
              *ResultIndexRtrn = v6;
            return 0;
          }
          return -1073741823;
        }
        break;
      case 3:
        if( (LangSpec & 0x8000u) == 0i64 )
        {
          v11 = *((unsigned __int16 *)Languages + 3);
          v6 = 0;
          if( *((_WORD *)Languages + 3) )
          {
            v12 = *((_QWORD *)Languages + 2);
            while( 1 )
            {
              v13 = 28i64 * v6;
              if( *(_WORD *)(v13 + v12 + 6) == (_WORD)LangSpec && (*(_WORD *)(v13 + v12) & 0x1020) == 32 )
                break;
              if( ++v6 >= v11 )
                return -1073741823;
            }
            goto LABEL_19;
          }
          return -1073741823;
        }
        break;
      case 2:
        if( (LangSpec & 0x8000u) == 0i64 && (__int16)LangSpec < (int)*((unsigned __int16 *)Languages + 3) )
        {
          if( (*(_WORD *)(28i64 * (__int16)LangSpec + *((_QWORD *)Languages + 2)) & 0x1020) == 32 )
          {
            if( ResultIndexRtrn )
              *ResultIndexRtrn = LangSpec;
            return 0;
          }
          return -1073741823;
        }
        break;
      default:
        return -1073741823;
    }
  }
  return -1073741811;
}

Referenced by:

RtlpMuiRegValidateLIPLanguage
RtlpMuiRegValidatePartialLanguage