RtlpMuiRegGetOrAddString
NTSTATUS __stdcall RtlpMuiRegGetOrAddString(
_MUIREGISTRYINFO *RegInfo,
const WCHAR *NewString,
UINT8 CreateIfMissing,
INT16 *ResultIndexRtrn){
INT16 v4;
UINT8 v9;
INT64 v10;
NTSTATUS result;
_MUISTRINGPOOL *v12;
INT64 PoolSpaceNeededRtrn;
v4 = -1;
LODWORD(PoolSpaceNeededRtrn) = 0;
if( !RegInfo || !NewString || !*NewString )
goto LABEL_12;
if( !CreateIfMissing || (v9 = 1, (*RegInfo & 2) == 0) )
v9 = 0;
v4 = RtlpMuiRegGetOrAddStringToPool(*((_MUISTRINGPOOL **)RegInfo + 4), (WCHAR *)NewString, v9, &PoolSpaceNeededRtrn);
if( v4 >= 0 )
goto LABEL_7;
if( CreateIfMissing )
{
v12 = RtlpMuiRegGrowStringPool(*((_MUISTRINGPOOL **)RegInfo + 4), v10, PoolSpaceNeededRtrn);
if( v12 )
{
*RegInfo |= 2u;
*((_QWORD *)RegInfo + 4) = v12;
v4 = RtlpMuiRegGetOrAddStringToPool(v12, (WCHAR *)NewString, 1u, 0i64);
if( v4 >= 0 )
{
LABEL_7:
result = 0;
goto LABEL_8;
}
}
result = -1073741801;
}
else
{
LABEL_12:
result = -1073741811;
}
LABEL_8:
if( ResultIndexRtrn )
*ResultIndexRtrn = v4;
return result;
}Referenced by:
RtlMuiRegAddLIPParent
RtlpLoadPolicyLanguageSpec
RtlpMuiRegGetInstalledLanguageIndexByName
RtlpMuiRegGetLanguageSpec
RtlpMuiRegInitAnyLanguage
RtlpMuiRegValidateInstalled