RtlpRemovePendingDeleteLanguages

__int64 __fastcall RtlpRemovePendingDeleteLanguages(__int64 a1, __int16 a2, WCHAR a3){
  __int16 *v3; 
  UINT64 v6; 
  unsigned int v8; 
  NTSTATUS v9; 
  __int64 v10; 
  unsigned __int64 v11; 
  __int64 v12; 
  void *v13; 
  UINT64 Length; 
  __int16 v15[2]; 
  v3 = (__int16 *)((unsigned __int64)v15 & 0xFFFFFFFFFFFFFFE0ui64);
  *((_QWORD *)v3 + 1) = 0i64;
  *((_DWORD *)v3 + 1) = 0;
  *v3 = -1;
  *((_OWORD *)v3 + 1) = 0i64;
  if( !a1 )
    return 3221225485i64;
  RtlInitUnicodeString(
    (PUNICODE_STRING)v3 + 1,
    L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\MUI\\UILanguages\\PendingDelete",
    a3);
  if( (int)LdrpOpenKey((_UNICODE_STRING *)v3 + 1, 0i64, v6, (VOID **)v3 + 1) >= 0 )
  {
    v8 = 0;
    do
    {
      LODWORD(Length) = 512;
      v9 = ZwEnumerateKey(
             *(VOID **)(((unsigned __int64)v15 & 0xFFFFFFFFFFFFFFE0ui64) + 8),
             v8,
             KeyBasicInformation,
             v3 + 16,
             Length,
             (UINT64 *)(v3 + 2));
      if( v9 >= 0 )
      {
        v11 = *(unsigned int *)(((unsigned __int64)v15 & 0xFFFFFFFFFFFFFFE0ui64) + 0x2C);
        if( v11 + 24 < 0x1FE )
        {
          *(_WORD *)(((unsigned __int64)v15 & 0xFFFFFFFFFFFFFFE0ui64) + 2 * (v11 >> 1) + 0x30) = 0;
          if( (int)RtlpMuiRegGetInstalledLanguageIndexByName(
                      a1,
                      (const wchar_t *)v3 + 24,
                      v10,
                      (_WORD *)((unsigned __int64)v15 & 0xFFFFFFFFFFFFFFE0ui64)) >= 0 )
          {
            v12 = *v3;
            if( (_WORD)v12 != 0xFFFF && (_WORD)v12 != a2 )
            {
              *(_WORD *)(28 * v12 + *(_QWORD *)(*(_QWORD *)(a1 + 24) + 16i64)) &= ~0x20u;
              *(_WORD *)(28i64 * *v3 + *(_QWORD *)(*(_QWORD *)(a1 + 24) + 16i64)) |= 0x8000u;
            }
          }
        }
      }
      ++v8;
    }
    while( v9 != -2147483622 );
    v13 = *(void **)(((unsigned __int64)v15 & 0xFFFFFFFFFFFFFFE0ui64) + 8);
    if( v13 )
      NtClose(v13);
  }
  return 0i64;
}

Referenced by:

RtlpMuiRegValidateInstalled