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