Function at 0x406058
Capabilities:
Identify system language via api

Disassembly:
push esi
mov esi, ecx
movzx eax, word [esi + 0x10c]
test ax, ax
jne 0x406407
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, ax
mov cx, ax
shr cx, 0xa
and eax, 0x3ff
dec eax
movzx ecx, cx
cmp eax, 0x2c
ja case.0x40608d.9
jmp dword [eax*4 + 0x40640c]
push str.Arabic
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x401
jmp 0x406400
push str.Basque
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x42d
jmp 0x406400
push str.Bulgarian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x402
jmp 0x406400
push str.Catalan
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x403
jmp 0x406400
cmp cx, 2
je 0x406122
cmp cx, 4
je 0x406122
push str.ChineseTraditional
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x404
jmp 0x406400
push str.ChineseSimplified
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x804
jmp 0x406400
push str.Croatian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x41a
jmp 0x406400
push str.Czech
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x405
jmp 0x406400
push str.Danish
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x406
jmp 0x406400
push str.Dutch
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x413
jmp 0x406400
push str.Estonian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x425
jmp 0x406400
push str.Finnish
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x40b
jmp 0x406400
push str.French
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x40c
jmp 0x406400
push str.German
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x407
jmp 0x406400
push str.Greek
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x408
jmp 0x406400
push str.Hebrew
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x40d
jmp 0x406400
push str.Hungarian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x40e
jmp 0x406400
push str.Italian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x410
jmp 0x406400
push str.Japanese
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x411
jmp 0x406400
push str.Korean
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x412
jmp 0x406400
push str.Latvian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x426
jmp 0x406400
push str.Lithuanian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x427
jmp 0x406400
push str.Norwegian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x414
jmp 0x406400
push str.Polish
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x415
jmp 0x406400
push str.Portuguese
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x416
jmp 0x406400
push str.Romanian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x418
jmp 0x406400
push str.Russian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x419
jmp 0x406400
push str.Slovak
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x41b
jmp 0x406400
push str.Slovenian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x424
jmp 0x406400
push str.Spanish
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x40a
jmp 0x406400
push str.Swedish
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x41d
jmp 0x406400
push str.Turkish
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x41f
jmp 0x406400
push str.Ukrainian
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x422
jmp 0x406400
push str.English
lea ecx, [esi + 0x110]
call fcn.00401a1b
mov eax, 0x409
mov word [esi + 0x10c], ax
pop esi
ret