RtlpMuiRegGetOrAddLangInfo

__int64 __fastcall RtlpMuiRegGetOrAddLangInfo(__int64 *a1, __int64 a2, __int16 *a3){
  __int64 v6; 
  __int16 LangInfoIndex; 
  int v8; 
  unsigned int v9; 
  __int64 v10; 
  __int64 v11; 
  INT64 v13; 
  if( !a1 )
    return 3221225485i64;
  v6 = *a1;
  if( !*a1 || !a2 || !*(_WORD *)(a2 + 4) && *(__int16 *)(a2 + 6) < 0 )
    return 3221225485i64;
  LangInfoIndex = RtlpMuiRegGetLangInfoIndex(*a1, (CHAR *)a2);
  if( LangInfoIndex < 0 )
  {
    v8 = *(unsigned __int16 *)(v6 + 6);
    v9 = *(unsigned __int16 *)(v6 + 4);
    if( (unsigned __int16)v8 >= (unsigned __int16)v9 )
    {
      v13 = (unsigned int)(v8 + 4);
      if( (unsigned int)v13 >= v9 )
        v6 = (__int64)RtlpMuiRegResizeLanguages((UINT16 *)v6, v13);
      if( !v6 )
        return 3221225495i64;
      *a1 = v6;
    }
    LangInfoIndex = *(_WORD *)(v6 + 6);
    v10 = *(_QWORD *)(v6 + 16);
    v11 = 28i64 * LangInfoIndex;
    *(_WORD *)(v6 + 6) = LangInfoIndex + 1;
    *(_OWORD *)(v11 + v10) = *(_OWORD *)a2;
    *(_QWORD *)(v11 + v10 + 16) = *(_QWORD *)(a2 + 16);
    *(_DWORD *)(v11 + v10 + 24) = *(_DWORD *)(a2 + 24);
  }
  if( a3 )
    *a3 = LangInfoIndex;
  return 0i64;
}

Referenced by:

RtlpMuiRegAddBaseLanguage
RtlpMuiRegAddLanguageByName
RtlpMuiRegValidateInstalled