Function at 0x402120
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54f1e8
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x5a7110]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov ecx, 0x411
cmp ax, cx
mov word [esi + 0x13c], ax
lea ecx, [ebp - 0x10]
jne 0x4023b0
mov edx, 0xc9
call fcn.00402680
mov dword [ebp - 4], 0
push dword [eax]
mov ecx, esi
push 0x3e8
call fcn.0041ae66
mov ecx, eax
call fcn.0041b722
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
or edi, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4021b4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0xca
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 1
push dword [eax]
mov ecx, esi
push 0x3e9
call fcn.0041ae66
mov ecx, eax
call fcn.0041b722
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402200
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0xcb
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 2
push dword [eax]
mov ecx, esi
push 2
call fcn.0041ae66
mov ecx, eax
call fcn.0041b722
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402249
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0xcc
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 3
mov edx, dword [eax]
test edx, edx
jne 0x402267
xor ecx, ecx
jmp 0x40227f
mov ecx, edx
lea ebx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402270
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x144]
call fcn.00404620
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4022af
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0xcd
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 4
mov edx, dword [eax]
test edx, edx
jne 0x4022cd
xor ecx, ecx
jmp 0x4022e1
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4022d2
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x148]
call fcn.00404620
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402311
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0xcf
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 5
mov edx, dword [eax]
test edx, edx
jne 0x40232f
xor ecx, ecx
jmp 0x402343
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402334
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x14c]
call fcn.00404620
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402373
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0xd0
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 6
mov edx, dword [eax]
test edx, edx
jne 0x402394
xor ecx, ecx
jmp 0x4025f1
mov ecx, edx
lea ebx, [ecx + 2]
lea esp, [esp]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4023a0
jmp 0x4025ed
mov edx, 0x65
call fcn.00402680
mov dword [ebp - 4], 7
push dword [eax]
mov ecx, esi
push 0x3e8
call fcn.0041ae66
mov ecx, eax
call fcn.0041b722
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
or edi, 0xffffffff
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x4023fc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x66
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 8
push dword [eax]
mov ecx, esi
push 0x3e9
call fcn.0041ae66
mov ecx, eax
call fcn.0041b722
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402448
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x63
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 9
push dword [eax]
mov ecx, esi
push 2
call fcn.0041ae66
mov ecx, eax
call fcn.0041b722
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402491
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x68
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 0xa
mov edx, dword [eax]
test edx, edx
jne 0x4024af
xor ecx, ecx
jmp 0x4024c3
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4024b4
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x144]
call fcn.00404620
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4024f3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x69
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 0xb
mov edx, dword [eax]
test edx, edx
jne 0x402511
xor ecx, ecx
jmp 0x402525
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402516
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x148]
call fcn.00404620
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402555
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x6b
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 0xc
mov edx, dword [eax]
test edx, edx
jne 0x402573
xor ecx, ecx
jmp 0x40258f
mov ecx, edx
lea ebx, [ecx + 2]
jmp 0x402580
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402580
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x14c]
call fcn.00404620
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4025bf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x6c
lea ecx, [ebp - 0x10]
call fcn.00402680
mov dword [ebp - 4], 0xd
mov edx, dword [eax]
test edx, edx
jne 0x4025dd
xor ecx, ecx
jmp 0x4025f1
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4025e2
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x150]
call fcn.00404620
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x402621
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, 0x67
lea ecx, [ebp - 0x14]
call fcn.00402680
mov dword [ebp - 4], 0xe
push dword [eax]
mov ecx, esi
push 1
call fcn.0041ae66
mov ecx, eax
call fcn.0041b722
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x402668
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret