Function at 0x40a505
Capabilities:
Identify system language via api

Disassembly:
push 0x18
mov eax, 0x447768
call fcn.00427f6a
mov dword [ebp - 0x1c], ecx
and dword [ebp - 4], 0
and dword [ebp - 0x20], 0
call fcn.0040e19e
push eax
lea ecx, [ebp - 0x10]
call fcn.00401339
xor esi, esi
inc esi
mov dword [ebp - 4], esi
call fcn.0040e19e
push eax
lea ecx, [ebp - 0x18]
call fcn.00401339
push 2
pop eax
mov byte [ebp - 4], al
call fcn.0040e19e
mov ebx, dword [ebp + 8]
mov ecx, ebx
push eax
call fcn.00401339
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 - 0x14], 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 0x40a6d7
je 0x40a6c1
lea eax, [edi - 0x88]
cmp eax, 0xc
ja case.default.0x40a59c
jmp dword [eax*4 + 0x40a961]
push str.CANCEL
call fcn.0042c48c
pop ecx
push eax
push str.CANCEL
jmp 0x40a769
push str.DWNLD_FAILED
call fcn.0042c48c
pop ecx
push eax
push str.DWNLD_FAILED
jmp 0x40a769
push str.DWNLD_STATUS
call fcn.0042c48c
pop ecx
push eax
push str.DWNLD_STATUS
jmp 0x40a769
push str.DWNLD_TITLE
call fcn.0042c48c
pop ecx
push eax
push str.DWNLD_TITLE
jmp 0x40a769
push str.INSTMSI_TITLE
call fcn.0042c48c
pop ecx
push eax
push str.INSTMSI_TITLE
jmp 0x40a769
push str.MSI_UNAVAILBLE
call fcn.0042c48c
pop ecx
push eax
push str.MSI_UNAVAILBLE
jmp 0x40a769
push str.NOOS_MSG
call fcn.0042c48c
pop ecx
push eax
push str.NOOS_MSG
jmp 0x40a769
push 0x44dd40
call fcn.0042c48c
pop ecx
push eax
push 0x44dd40
jmp 0x40a769
push str.REBOOT_MSG
call fcn.0042c48c
pop ecx
push eax
push str.REBOOT_MSG
jmp 0x40a769
push str.SELECTLANG
call fcn.0042c48c
pop ecx
push eax
push str.SELECTLANG
jmp 0x40a769
push str.UNSUPPORTED_IE
call fcn.0042c48c
pop ecx
push eax
push str.UNSUPPORTED_IE
jmp 0x40a769
push str.UNSUPPORTED_OS
call fcn.0042c48c
pop ecx
push eax
push str.UNSUPPORTED_OS
jmp 0x40a769
push str.UNSUPPORTED_SP
call fcn.0042c48c
pop ecx
push eax
push str.UNSUPPORTED_SP
jmp 0x40a769
push str.ENGLISH_WITH_ARABIC_SUPPORT
call fcn.0042c48c
pop ecx
push eax
push str.ENGLISH_WITH_ARABIC_SUPPORT
jmp 0x40a769
mov eax, edi
sub eax, 0x3ee
je 0x40a758
sub eax, 1
je 0x40a745
sub eax, 4
je 0x40a732
sub eax, 1
je 0x40a71f
sub eax, 1
je 0x40a70c
sub eax, 1
jne case.default.0x40a59c
push str.MIG_INSTALL_FAILED_TEXT
call fcn.0042c48c
pop ecx
push eax
push str.MIG_INSTALL_FAILED_TEXT
jmp 0x40a769
push str.PATCH_INSTALL_DLG_TEXT
call fcn.0042c48c
pop ecx
push eax
push str.PATCH_INSTALL_DLG_TEXT
jmp 0x40a769
push str.PATCH_INSTALL_FAILURE_TEXT
call fcn.0042c48c
pop ecx
push eax
push str.PATCH_INSTALL_FAILURE_TEXT
jmp 0x40a769
push str.VCRT_INST_TITLE
call fcn.0042c48c
pop ecx
push eax
push str.VCRT_INST_TITLE
jmp 0x40a769
push str.FRENCH_MOROCCO
call fcn.0042c48c
pop ecx
push eax
push str.FRENCH_MOROCCO
jmp 0x40a769
push str.ENGLISH_WITH_HEBREW_SUPPORT
call fcn.0042c48c
pop ecx
push eax
push str.ENGLISH_WITH_HEBREW_SUPPORT
lea ecx, [ebp - 0x10]
call fcn.00401822
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
movzx eax, ax
dec eax
push 3
pop edx
cmp eax, 0x26
ja case.0x40a787.3
jmp dword [eax*4 + 0x40a995]
mov eax, 0x401
cmp ax, cx
je 0x40a7bc
cmp edi, 0x3ed
je case.0x40a787.3
cmp edi, 0x3ee
je case.0x40a787.3
cmp edi, 0x3ef
je case.0x40a787.3
mov esi, str.Arabic
jmp 0x40a8ce
mov esi, str.Bulgarian
jmp 0x40a8ce
push 2
pop eax
cmp si, ax
je 0x40a7e7
cmp si, dx
je 0x40a7e7
mov esi, str.ChineseTraditional
jmp 0x40a8ce
mov esi, str.ChineseSimplified
jmp 0x40a8ce
mov esi, str.Croatian
jmp 0x40a8ce
mov esi, str.Czech
jmp 0x40a8ce
mov esi, str.Danish
jmp 0x40a8ce
mov esi, str.Dutch
jmp 0x40a8ce
mov esi, str.Estonian
jmp 0x40a8ce
mov esi, str.Finnish
jmp 0x40a8ce
mov esi, str.French
jmp 0x40a8ce
mov esi, str.German
jmp 0x40a8ce
mov esi, str.Greek
jmp 0x40a8ce
mov esi, str.Hebrew
jmp 0x40a8ce
mov esi, str.Hungarian
jmp 0x40a8ce
mov esi, str.Italian
jmp 0x40a8ce
mov esi, str.Japanese
jmp 0x40a8ce
mov esi, str.Korean
jmp 0x40a8ce
mov esi, str.Latvian
jmp 0x40a8ce
mov esi, str.Lithuanian
jmp 0x40a8ce
mov esi, str.Norwegian
jmp 0x40a8ce
mov esi, str.Polish
jmp 0x40a8ce
mov esi, str.Portuguese
jmp 0x40a8ce
mov esi, str.Romanian
jmp 0x40a8ce
mov esi, str.Russian
jmp 0x40a8ce
mov esi, str.Slovak
jmp 0x40a8ce
mov esi, str.Slovenian
jmp 0x40a8ce
mov esi, str.Spanish
jmp 0x40a8ce
mov esi, str.Swedish
jmp 0x40a8ce
mov esi, str.Turkish
jmp 0x40a8ce
mov esi, str.Ukrainian
jmp 0x40a8ce
mov esi, str.English
push esi
call fcn.0042c48c
pop ecx
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.00401822
mov ecx, dword [ebp - 0x1c]
lea esi, [ecx + 0x140]
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x40a900
call fcn.00409c56
mov eax, dword [esi]
mov ecx, dword [ebp - 0x1c]
cmp dword [eax - 0xc], 0
je 0x40a92f
push esi
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0040a491
push eax
mov ecx, ebx
mov byte [ebp - 4], 3
call fcn.0040138a
mov ecx, dword [ebp - 0x24]
push 2
pop eax
mov byte [ebp - 4], al
lea ecx, [ecx - 0x10]
call fcn.004017a5
mov eax, dword [ebx]
cmp dword [eax - 0xc], 0
jne 0x40a93f
push edi
mov ecx, ebx
call fcn.00401b05
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.004017a5
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.004017a5
mov eax, ebx
call fcn.00427f33
ret 8