RtlpMuiRegLoadInstalled

NTSTATUS __fastcall RtlpMuiRegLoadInstalled(__int64 a1){
  int InstallUILanguage; 
  PVOID v3; 
  VOID *v4; 
  UINT64 v5; 
  INT64 Languages; 
  _QWORD *StringPool; 
  __int64 v8; 
  __int64 v9; 
  WCHAR v10; 
  bool v11; 
  WCHAR v12; 
  const WCHAR *v13; 
  NTSTATUS result; 
  InstallUILanguage = 0;
  if( !a1 )
    return -1073741811;
  if( PsUILanguageComitted )
  {
    InstallUILanguage = ZwQueryInstallUILanguage((UINT16 *)(a1 + 4));
    if( InstallUILanguage < 0 || ((*(_WORD *)(a1 + 4) - 4096) & 0xFBFF) == 0 )
      goto LABEL_12;
    RtlpLoadInstallLanguageFallback(a1, (_WORD *)(a1 + 6), (_WORD *)(a1 + 8));
  }
  RtlpMuiRegFreeRegistryInfo(a1, 0x3FFu);
  Languages = RtlpMuiRegCreateLanguages(v4, v3, v5);
  *(_QWORD *)(a1 + 24) = Languages;
  if( !Languages )
  {
    InstallUILanguage = -1073741801;
LABEL_12:
    RtlpMuiRegFreeRegistryInfo(a1, 0x3FFu);
    return InstallUILanguage;
  }
  *(_DWORD *)a1 |= 1u;
  StringPool = RtlpMuiRegCreateStringPool(-1, -1);
  *(_QWORD *)(a1 + 32) = StringPool;
  if( !StringPool )
    goto LABEL_12;
  *(_DWORD *)a1 |= 2u;
  v11 = IsMachineLanguageListInMutableLocation(v9, v8, v10);
  v13 = L"\\Registry\\Machine\\OSDATA\\System\\CurrentControlSet\\Control\\MUI\\UILanguages";
  if( !v11 )
    v13 = L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\MUI\\UILanguages";
  InstallUILanguage = RtlpMuiRegLoadInstalledFromKey(a1, v13, v12);
  if( InstallUILanguage < 0 )
    goto LABEL_12;
  result = RtlpMuiRegValidateInstalled(a1);
  InstallUILanguage = result;
  if( result < 0 )
    goto LABEL_12;
  return result;
}

Referenced by:

RtlpMuiRegLoadRegistryInfo