Function at 0x40943a
Capabilities:
Identify system language via api

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