Function at 0x405440
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ecf03
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x673f64]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
push 0x150
mov dword [ebp - 0x10], 0
call fcn.00454d05
mov esi, eax
add esp, 4
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x40581e
xor eax, eax
mov dword [esi], 0
push eax
push 0x640d7c
mov ecx, esi
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
call fcn.004059d0
mov byte [ebp - 4], 1
lea ecx, [esi + 0x18]
xor eax, eax
mov dword [ecx], 0
push eax
push 0x640d7c
mov dword [ebp - 0x10], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 2
lea ecx, [esi + 0x30]
xor eax, eax
mov dword [ecx], 0
push eax
push 0x640d7c
mov dword [ebp - 0x10], 3
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 3
lea ecx, [esi + 0x48]
push 6
xor eax, eax
mov dword [ecx], 0
push str.WinZip
mov dword [ebp - 0x10], 7
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 4
lea ecx, [esi + 0x60]
xor eax, eax
mov dword [ecx], 0
push eax
push 0x640d7c
mov dword [ebp - 0x10], 0xf
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 5
lea ecx, [esi + 0x78]
push 0xc
xor eax, eax
mov dword [ecx], 0
push 0x640d90
mov dword [ebp - 0x10], 0x1f
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 6
lea ecx, [esi + 0x90]
xor eax, eax
mov dword [ecx], 0
push eax
push 0x640d7c
mov dword [ebp - 0x10], 0x3f
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 7
lea ecx, [esi + 0xa8]
xor eax, eax
mov dword [ecx], 0
push eax
push 0x640d7c
mov dword [ebp - 0x10], 0x7f
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 8
lea ecx, [esi + 0xc0]
xor eax, eax
mov dword [ecx], 0
push eax
push 0x640d7c
mov dword [ebp - 0x10], 0xff
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 9
lea ecx, [esi + 0xd8]
xor eax, eax
mov dword [ecx], 0
push eax
push 0x640d7c
mov dword [ebp - 0x10], 0x1ff
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], ax
call fcn.004059d0
mov dword [ebp - 4], 0xa
lea ecx, [esi + 0xf0]
mov dword [ebp - 0x10], 0x3ff
call fcn.004097e0
mov dword [ebp - 4], 0xb
lea ecx, [esi + 0x108]
mov dword [ebp - 0x10], 0x7ff
call fcn.00409530
mov dword [ebp - 4], 0xc
lea ecx, [esi + 0x120]
mov dword [ebp - 0x10], 0xfff
call fcn.004098a0
mov dword [ebp - 4], 0xd
lea edi, [esi + 0x138]
mov dword [ebp - 0x10], 0x1fff
mov dword [ebp - 0x14], edi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ecx, ax
mov eax, ecx
cmp eax, 0x804
ja 0x405778
je 0x4057be
sub eax, 0x404
cmp eax, 0x15
ja case.0x40572f.1030
movzx eax, byte [eax + 0x405868]
jmp dword [eax*4 + 0x405838]
mov eax, 1
jmp 0x4057c3
mov eax, 2
jmp 0x4057c3
mov eax, 3
jmp 0x4057c3
mov eax, 4
jmp 0x4057c3
mov eax, 5
jmp 0x4057c3
mov eax, 8
jmp 0x4057c3
mov eax, 9
jmp 0x4057c3
mov eax, 0xa
jmp 0x4057c3
mov eax, 0xb
jmp 0x4057c3
cmp eax, 0xc0a
ja 0x4057a2
je 0x40579b
sub eax, 0x80a
je 0x40579b
sub eax, 0xc
je case.0x40572f.1046
sub eax, 0x3ee
jmp 0x4057ae
mov eax, 7
jmp 0x4057c3
mov eax, 6
jmp 0x4057c3
cmp eax, 0x1004
je 0x4057be
cmp eax, 0x1404
je case.0x40572f.1028
call fcn.00409b00
jmp 0x4057c3
mov eax, 0xd
jmp 0x4057c3
mov eax, 0xc
mov edx, dword [eax*8 + 0x640dd0]
xor eax, eax
mov dword [edi], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
mov eax, edx
lea ecx, [eax + 2]
mov dword [ebp - 0x14], ecx
nop dword [eax + eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4057f0
sub eax, dword [ebp - 0x14]
mov ecx, edi
sar eax, 1
push eax
push edx
call fcn.004059d0
mov dword [ebx + 0x2c], esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x2c], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret