Function at 0x406e10
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
push esi
mov eax, ecx
mov dword [esp + 0x18], edx
xor ebx, ebx
mov dword [esp + 8], eax
mov dword [esp + 0x14], ebx
mov esi, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], 3
push edi
test eax, eax
jns 0x406e5d
push dword [ebp + 0x14]
mov edi, dword [ebp + 0xc]
push dword [ebp + 0x10]
push edi
push dword [ebp + 8]
call fcn.00407210
add esp, 0x10
mov esi, eax
jmp 0x4070b8
cmp dword [0x84b2a0], 0x43535224
jne 0x407037
cmp dword [0x84b2a8], ebx
je 0x407037
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ecx, ax
mov eax, ecx
and eax, 0x3ff
cmp eax, 9
je 0x406e98
mov edx, ecx
cmp byte [0x837fad], bl
je 0x406e9d
mov edx, 0xffff
mov edi, dword [0x84b2a8]
xor ecx, ecx
cmp byte [0x875c28], 1
movzx eax, dx
mov dword [esp + 0x10], eax
je 0x406ee2
cmp dword [edi], ecx
je 0x406edb
mov eax, edi
nop dword [eax + eax]
cmp word [eax + 4], dx
je 0x406ed4
inc ecx
mov eax, ecx
shl eax, 5
add eax, edi
cmp dword [eax], ebx
jne 0x406ec0
jmp 0x406edb
mov byte [0x875c29], 1
mov byte [0x875c28], 1
cmp byte [0x875c29], bl
mov eax, 0xffff
mov ecx, dword [esp + 0x10]
cmove ecx, eax
xor eax, eax
mov dword [esp + 0x10], ecx
mov word [0x870840], ax
test esi, esi
je 0x40705b
mov eax, ebx
shl eax, 5
cmp dword [eax + edi], 0
je 0x406ff8
mov edx, dword [esp + 0xc]
lea ebx, [eax + 0x10]
mov eax, 0xfffffff0
add ebx, edi
sub eax, edi
mov dword [esp + 0x24], eax
nop dword [eax + eax]
cmp dword [ebx - 0x10], edx
jne 0x406fd9
cmp word [ebx - 0xc], cx
jne 0x406fd9
mov esi, dword [esp + 0x1c]
cmp word [ebx], si
mov esi, dword [esp + 0x14]
jne 0x406fd9
mov edx, dword [ebp + 8]
add eax, ebx
test edx, edx
je 0x406f83
mov ecx, dword [eax + edi + 8]
test ecx, ecx
je 0x406fd1
mov esi, 0xc
nop word [eax + eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x406fcd
add edx, 4
add ecx, 4
sub esi, 4
jae 0x406f70
jmp 0x406f8a
cmp dword [eax + edi + 8], 0
jne 0x406fd5
mov edx, dword [ebx + 8]
mov esi, edx
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x406f90
mov edi, 0x870840
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x406fa5
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [0x84b2a8]
xor esi, esi
mov dword [esp + 0x14], esi
jmp 0x406fd1
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
inc dword [esp + 0x18]
lea eax, [ebx + 0x10]
add ebx, 0x20
cmp dword [eax], 0
mov eax, dword [esp + 0x24]
jne 0x406f30
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x18], ebx
test esi, esi
je 0x40705b
mov edx, dword [esp + 0x20]
mov eax, 0xffff
dec edx
mov dword [esp + 0x20], edx
cmp cx, ax
je 0x40702f
mov eax, ecx
or eax, 0xff00
cmp cx, ax
mov ecx, 0xffff
je 0x407023
movzx ecx, ax
mov dword [esp + 0x10], ecx
test edx, edx
jne 0x406f00
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
cmp dword [ebp + 8], 0
mov edi, dword [ebp + 0xc]
je 0x407112
push dword [ebp + 0x14]
mov ecx, eax
push dword [ebp + 0x10]
push edi
push 0
call fcn.00406e10
add esp, 0x10
mov esi, eax
jmp 0x4070b8
mov esi, 0x870840
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x407063
mov edi, dword [ebp + 0xc]
sub esi, ecx
mov ecx, dword [ebp + 0x10]
sar esi, 1
lea eax, [esi + 1]
cmp eax, ecx
jbe 0x40709c
push dword [esp + 0xc]
push 0x4dac54
push ecx
push edi
call fcn.00406dd0
add esp, 0x10
mov dword [esp + 0x14], 2
jmp 0x4070ab
push 0x870840
push ecx
push edi
call fcn.0049aea2
add esp, 0xc
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4070b4
mov dword [eax], esi
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x407175
cmp byte [0x87041c], 0
je 0x407175
test edi, edi
je 0x407175
push str.Dell
push edi
call fcn.0048f5db
mov edx, eax
add esp, 8
test edx, edx
je 0x407175
cmp word [edx + 8], 0x20
lea ecx, [edx + 8]
jne 0x407126
lea ecx, [edx + 0xa]
sub edx, ecx
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x407100
jmp 0x4070d5
push eax
push 0x4dac90
push dword [ebp + 0x10]
push edi
call fcn.00406dd0
add esp, 0x10
jmp 0x4070b8
cmp edx, edi
je 0x407159
cmp word [edx - 2], 0x20
jne 0x407142
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx - 0xc], ax
test ax, ax
jne 0x407131
jmp 0x4070d5
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x407144
jmp 0x4070d5
sub edx, ecx
nop dword [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x407160
jmp 0x4070d5
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret