Function at 0x40900f
Capabilities:
Identify system language via api

Disassembly:
push 0x18
mov eax, 0x439e9c
call fcn.00421730
mov dword [ebp - 0x1c], ecx
and dword [ebp - 4], 0
and dword [ebp - 0x20], 0
call fcn.0040b8b7
push eax
lea ecx, [ebp - 0x14]
call fcn.004012cf
xor esi, esi
inc esi
mov dword [ebp - 4], esi
call fcn.0040b8b7
push eax
lea ecx, [ebp - 0x10]
call fcn.004012cf
push 2
pop eax
mov byte [ebp - 4], al
call fcn.0040b8b7
mov ebx, dword [ebp + 8]
mov ecx, ebx
push eax
call fcn.004012cf
mov dword [ebp - 0x20], esi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov edi, dword [ebp + 0xc]
movzx ecx, ax
mov eax, ecx
mov dword [ebp - 0x18], ecx
and eax, 0x3ff
mov dword [ebp - 0x24], eax
mov ax, cx
shr ax, 0xa
movzx esi, ax
mov eax, 0x3ed
cmp edi, eax
ja 0x40911e
je 0x409117
lea eax, [edi - 0x88]
cmp eax, 0xc
ja case.default.0x4090a6
jmp dword [eax*4 + 0x40934f]
push str.CANCEL
jmp 0x409160
push str.DWNLD_FAILED
jmp 0x409160
push str.DWNLD_STATUS
jmp 0x409160
push str.DWNLD_TITLE
jmp 0x409160
push str.INSTMSI_TITLE
jmp 0x409160
push str.MSI_UNAVAILBLE
jmp 0x409160
push str.NOOS_MSG
jmp 0x409160
push 0x43fc68
jmp 0x409160
push str.REBOOT_MSG
jmp 0x409160
push str.SELECTLANG
jmp 0x409160
push str.UNSUPPORTED_IE
jmp 0x409160
push str.UNSUPPORTED_OS
jmp 0x409160
push str.UNSUPPORTED_SP
jmp 0x409160
push str.ENGLISH_WITH_ARABIC_SUPPORT
jmp 0x409160
mov eax, edi
sub eax, 0x3ee
je 0x40915b
dec eax
je 0x409154
sub eax, 4
je 0x40914d
dec eax
je 0x409146
dec eax
je 0x40913f
dec eax
jne case.default.0x4090a6
push str.MIG_INSTALL_FAILED_TEXT
jmp 0x409160
push str.PATCH_INSTALL_DLG_TEXT
jmp 0x409160
push str.PATCH_INSTALL_FAILURE_TEXT
jmp 0x409160
push str.VCRT_INST_TITLE
jmp 0x409160
push str.FRENCH_MOROCCO
jmp 0x409160
push str.ENGLISH_WITH_HEBREW_SUPPORT
lea ecx, [ebp - 0x14]
call fcn.00401ec3
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
movzx eax, ax
dec eax
push 3
pop edx
cmp eax, 0x26
ja case.0x40917e.3
jmp dword [eax*4 + 0x409383]
mov eax, 0x401
cmp ax, cx
je 0x4091b3
cmp edi, 0x3ed
je case.0x40917e.3
cmp edi, 0x3ee
je case.0x40917e.3
cmp edi, 0x3ef
je case.0x40917e.3
push str.Arabic
jmp 0x4092c5
push str.Bulgarian
jmp 0x4092c5
push 2
pop eax
cmp si, ax
je 0x4091de
cmp si, dx
je 0x4091de
push str.ChineseTraditional
jmp 0x4092c5
push str.ChineseSimplified
jmp 0x4092c5
push str.Croatian
jmp 0x4092c5
push str.Czech
jmp 0x4092c5
push str.Danish
jmp 0x4092c5
push str.Dutch
jmp 0x4092c5
push str.Estonian
jmp 0x4092c5
push str.Finnish
jmp 0x4092c5
push str.French
jmp 0x4092c5
push str.German
jmp 0x4092c5
push str.Greek
jmp 0x4092c5
push str.Hebrew
jmp 0x4092c5
push str.Hungarian
jmp 0x4092c5
push str.Italian
jmp 0x4092c5
push str.Japanese
jmp 0x4092c5
push str.Korean
jmp 0x4092c5
push str.Latvian
jmp 0x4092c5
push str.Lithuanian
jmp 0x4092c5
push str.Norwegian
jmp 0x4092c5
push str.Polish
jmp 0x4092c5
push str.Portuguese
jmp 0x4092c5
push str.Romanian
jmp 0x4092c5
push str.Russian
jmp 0x4092c5
push str.Slovak
jmp 0x4092c5
push str.Slovenian
jmp 0x4092c5
push str.Spanish
jmp 0x4092c5
push str.Swedish
jmp 0x4092c5
push str.Turkish
jmp 0x4092c5
push str.Ukrainian
jmp 0x4092c5
push str.English
lea ecx, [ebp - 0x10]
call fcn.00401ec3
mov ecx, dword [ebp - 0x1c]
lea esi, [ecx + 0x124]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x4092e6
call fcn.00408635
mov ecx, dword [ebp - 0x1c]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x40931d
push esi
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.00408f9a
push eax
mov ecx, ebx
mov byte [ebp - 4], 3
call fcn.0040132a
mov ecx, dword [ebp + 0xc]
push 2
pop eax
mov byte [ebp - 4], al
lea ecx, [ecx - 0x10]
call fcn.0040184e
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
jne 0x40932d
push edi
mov ecx, ebx
call fcn.00401be7
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0040184e
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0040184e
mov eax, ebx
call fcn.004216fe
ret 8