Function at 0x420649
Capabilities:
Identify system language via api

Disassembly:
dec word [0x43bbe0]
push esi
push edi
push 0x61bffff
push 0x7273ffff
call fcn.004117aa
mov byte [0x43bbcf], al
push 0x2e81ffff
movsx eax, byte [0x43bbd1]
push eax
call fcn.004116ab
add byte [0x43bbcd], al
movsx eax, byte [0x43bbc8]
movzx esi, word [esp + 0x22]
push eax
push dword [0x43bc08]
call fcn.004118e8
movsx ecx, byte [0x43bbcc]
mov byte [0x43bbc8], al
push ecx
movsx eax, al
push eax
call fcn.00411820
add dword [0x43bbf4], eax
add esp, 0x20
movsx eax, word [0x43bbe2]
imul eax, eax, 0xa00fffff
add dword [0x43bc00], eax
movzx eax, word [esp + 0xe]
add eax, 0xfffffffe
cmp eax, 0xa
ja case.default.0x4206dc
push 0x1f
pop edi
jmp dword [eax*4 + 0x42091f]
mov eax, dword [0x43bc04]
mov ecx, dword [0x43bbf0]
add ecx, eax
movsx eax, word [0x43bbd4]
add word [0x43bbde], cx
push eax
movsx eax, word [0x43bbd8]
push eax
call fcn.004118a0
pop ecx
mov word [0x43bbe0], ax
pop ecx
add esi, 0x1e
movsx eax, word [0x43bbda]
push eax
movsx eax, byte [0x43bbc9]
push eax
call fcn.004117d2
sub dword [0x43bc04], 0x6a680000
pop ecx
pop ecx
mov word [0x43bbe4], ax
add esi, edi
mov eax, dword [0x43bbf8]
or eax, 0xcaadffff
mov dword [0x43bbe8], eax
movsx eax, byte [0x43bbcd]
push eax
push 0x9827ffff
call fcn.004118a0
add byte [0x43bbd0], al
mov ax, word [0x43bbdc]
and ax, word [0x43bbe0]
pop ecx
pop ecx
add word [0x43bbe2], ax
add esi, 0x1e
movsx eax, byte [0x43bbca]
push 0x22f5ffff
push eax
call fcn.004118a0
mov word [0x43bbde], ax
and al, byte [0x43bbdc]
add esi, edi
mov word [0x43bbd6], 1
add byte [0x43bbc9], al
movsx eax, byte [0x43bbcf]
push eax
push dword [0x43bbf4]
call fcn.004117aa
add esp, 0x10
add word [0x43bbd6], ax
push 0xd461ffff
push 0xc6d1ffff
add esi, edi
call fcn.004116ab
pop ecx
mov word [0x43bbde], ax
pop ecx
call dword [sym.imp.USER32.dll_GetInputState]
add byte [0x43bbc8], al
push dword [0x43bbe8]
movsx eax, byte [0x43bbcb]
push eax
call fcn.004118e8
add byte [0x43bbce], al
pop ecx
pop ecx
add esi, 0x1e
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov word [0x43bbda], ax
add esi, edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov word [0x43bbd4], ax
mov al, byte [0x43bbcb]
add al, byte [0x43bbce]
push dword [0x43bbfc]
mov byte [0x43bbc8], al
movsx eax, byte [0x43bbc9]
push eax
call fcn.0041172e
add dword [0x43bc0c], eax
pop ecx
pop ecx
add esi, 0x1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
add word [0x43bbde], ax
movsx eax, word [0x43bbe0]
push eax
push 0x53cdffff
add esi, edi
call fcn.004116de
push 0x9831ffff
push 0xb129ffff
mov dword [0x43bc04], eax
call fcn.004117d2
movsx ecx, byte [0x43bbd1]
push ecx
push eax
mov dword [0x43bc0c], eax
call fcn.004117aa
add esp, 0x18
add word [0x43bbd6], ax
mov al, byte [esp + 0xc]
push 0x183dffff
push dword [0x43bc00]
not al
and eax, 4
or al, 0x70
shr eax, 2
add esi, eax
call fcn.004117d2
pop ecx
mov byte [0x43bbc9], al
pop ecx
mov dword [0x43bc0c], 0x6883ffff
add esi, edi
inc word [0x43bbe0]
mov byte [0x43bbd0], 1
movzx ecx, word [esp + 0xc]
push 4
lea eax, [ecx - 0x7b1]
pop edi
cdq
imul ecx, ecx, 0x16d
idiv edi
add ecx, esi
pop edi
pop esi
lea eax, [ecx + eax - 0xaf8ca]
xor ecx, ecx
cmp word [0x43bbe4], cx
setne cl
mov dword [0x43bbf0], ecx
ret