Function at 0x4043c0
Capabilities:
Identify system language via api

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