Function at 0x10018ffd
Capabilities:
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x54], edx
inc esi
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x1c], esi
push 3
mov dword [ebp - 4], ebx
pop ecx
jmp 0x1001902c
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x80], 0xd7f
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x1001901e
mov dword [ebp - 4], ebx
jmp 0x10019044
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x50], 0xffffffff
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10019036
mov dword [ebp - 0x48], ebx
cmp dword [ebp - 0x48], 2
jg 0x100190bd
mov dword [ebp - 0x20], 6
mov eax, dword [ebp - 0x48]
cmp dword [ebp + eax*4 - 0x80], ebx
je 0x1001906b
mov eax, dword [ebp - 0x48]
cmp dword [ebp + eax*4 - 0x80], ebx
jne 0x1001906d
mov esi, ebx
mov eax, dword [ebp - 0x48]
xor edx, edx
mov ecx, dword [ebp + eax*4 - 0x80]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp + eax*4 - 0x80]
cmp ecx, eax
sete dl
or eax, 0xffffffff
sub eax, edx
cmp eax, dword [ebp - 0x48]
jne 0x10019093
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp + eax*4 - 0x80]
mov eax, dword [ebp - 0x48]
xor ecx, ecx
push 1
mov eax, dword [ebp + eax*4 - 0x80]
test eax, eax
setg cl
lea eax, [ecx + 1]
xor ecx, ecx
cmp esi, eax
pop esi
setg cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], 2
jle 0x10019052
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ebx
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x100190d7
call dword [sym.imp.USER32.dll_EndMenu]
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x100190f0
push 0x1a3a
push 0x1587
push ebx
call dword [sym.imp.USER32.dll_InflateRect]
push 4
pop eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 4], 9
mov dword [ebp - 0xd0], 0xd7f825e
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], 5
jge 0x10019163
push 3
pop eax
mov dword [ebp - 0xc], 0xf40fc027
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], ebx
jl 0x1001915a
mov dword [ebp - 0x10], 0xfffffffe
mov dword [ebp - 0x10], ebx
jmp 0x10019150
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x1c], 0xd4e677b5
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], eax
jle 0x10019143
dec dword [ebp - 0xc]
jns 0x10019137
inc dword [ebp - 4]
cmp dword [ebp - 4], 5
jl 0x10019128
mov dword [ebp - 0x3c], 0x3ae35568
xor ecx, ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], 0xe22401db
mov dword [ebp - 0x44], esi
mov eax, dword [ebp - 0x14]
cmp eax, 0xffffffff
mov eax, dword [ebp - 0x14]
setge cl
xor edx, edx
cmp ecx, esi
setl dl
xor ecx, ecx
cmp edx, eax
setl cl
xor eax, eax
cmp ecx, 0x3b28
setg al
cmp eax, 0x452a26f
jle 0x100191ac
mov edx, ebx
cmp dword [ebp - 0x14], ebx
je 0x100191ae
mov edx, esi
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, 0x3e58
setge al
xor ecx, ecx
cmp eax, 0x512a30a
setne cl
xor edx, edx
imul ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x14]
neg edx
sbb edx, edx
inc edx
imul edx, dword [ebp - 0x14]
sub edx, 0xf29c
neg edx
sbb edx, edx
add edx, 8
imul eax, edx, 0x860b
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], ebx
jmp 0x1001931d
mov dword [ebp - 0xc], 4
or eax, 0xffffffff
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x10], 0x1843ad33
cmp dword [ebp - 0xc], ebx
je 0x1001922e
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 0xc]
cmp eax, ecx
mov eax, dword [ebp - 0x70]
setne dl
imul eax, edx
test eax, eax
je 0x1001924b
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 4]
xor edx, edx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
imul ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setle dl
add edx, 0x8e6f
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x14], ebx
je 0x100192d1
mov dword [ebp - 0x10], ebx
jmp 0x100192b3
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x70], 0xadfd
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 4
jl 0x100192a5
mov dword [ebp - 4], ebx
jmp 0x100192c9
mov dword [ebp - 0x1c], esi
cmp dword [ebp - 0x1c], ebx
jne 0x10019315
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xfffffff6
je 0x100192be
jmp 0x10019315
mov dword [ebp - 0x1c], 0xfffffff6
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x100192ec
push 0xae1
push ebx
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
cmp dword [ebp - 0x14], ebx
je 0x10019302
mov eax, dword [ebp - 0x68]
mov ecx, esi
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 4], 0xce9e
jge 0x10019304
mov ecx, ebx
xor eax, eax
cmp ecx, 0xfffffff9
sete al
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x44], ebx
jne 0x10019327
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x1d
jne 0x10019206
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x3c], 0xfffffffe
jmp 0x100193fa
mov dword [ebp - 0x20], 0xfff8
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0xc], ebx
jmp 0x1001935a
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x60], 4
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x1001934c
mov dword [ebp - 0x60], ebx
jmp 0x1001937d
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x1001937a
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_IsIconic]
dec dword [ebp - 0x60]
cmp dword [ebp - 0x60], 0xfffffffa
jge 0x10019365
mov eax, dword [ebp - 0x60]
neg eax
sbb eax, eax
add eax, 0xffff0009
neg eax
sbb eax, eax
inc eax
cmp eax, 7
ja 0x1001939c
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x60]
xor edx, edx
mov eax, dword [ebp - 0x20]
cmp eax, ecx
mov eax, dword [ebp - 0x60]
setl dl
xor ecx, ecx
cmp eax, 0xfffffff9
setne cl
cmp ecx, edx
jne 0x100193bf
mov eax, esi
cmp dword [ebp - 0x5c], ebx
jne 0x100193c1
mov eax, ebx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x29]
push eax
push ebx
mov dword [ebp - 0x8c], esi
mov byte [ebp - 0x29], bl
push 0x5669
call fcn.1001bf33
push ebx
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.1001b94e
add esp, 0x1c
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], 7
jg 0x10019339
cmp dword [edi + 0x10], ebx
jne 0x10019410
xor al, al
jmp 0x1001990b
lea eax, [ebp - 0x54]
push ebx
push eax
call fcn.1001c28a
mov dword [ebp - 0x20], 0xa624cdb8
mov dword [ebp - 0x1c], 0xa5273358
mov dword [ebp - 4], ebx
mov dword [ebp - 0x18], 0xfffffff9
mov dword [ebp - 0x10], 0xc8100c43
mov dword [ebp - 0x1c], 7
pop ecx
mov dword [ebp - 0x88], 0x7ea4c570
pop ecx
mov dword [ebp - 0x14], 0xc3f3
mov dword [ebp - 0x44], 0xd4c3f121
push 0xfffffffffffffffe
pop eax
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xc], ebx
jmp 0x1001948b
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xfc], 0x90611bc3
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x1001947a
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x1001949f
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
cmp dword [ebp - 0x88], ebx
jne 0x100194c3
imul eax, dword [ebp - 0x10], 0x2699
sub eax, dword [ebp - 0x10]
jne 0x100194b6
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x44]
mov ecx, ebx
imul eax, dword [ebp - 4]
test eax, eax
je 0x100194c5
mov ecx, esi
mov eax, dword [ebp - 0x44]
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x1c]
setle dl
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x1c]
imul eax, dword [ebp - 4]
test eax, eax
je 0x100194ea
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0xf8]
imul eax, dword [ebp - 0x10]
test eax, eax
je 0x10019501
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x1c], 0xd3a1
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
add ecx, 0xa
imul ecx, eax
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0xc0], ecx
lea eax, [ecx + 0xb53]
mov dword [ebp - 0xf0], eax
jb 0x10019539
mov esi, dword [edi]
jmp 0x1001953b
mov esi, edi
cmp dword [edi + 0x14], 0x10
mov edx, 0x8131dda8
jb 0x1001954a
mov ecx, dword [edi]
jmp 0x1001954c
mov ecx, edi
mov eax, dword [edi + 0x10]
add eax, ecx
cmp esi, eax
je 0x10019845
mov dword [ebp - 0x38], 8
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0xb02971c
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x28], 0x124f84b8
mov dword [ebp - 0x18], 0x90350d8a
mov dword [ebp - 0x18], 0x5db2b058
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x18], 0x83eb6194
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb4], edx
push eax
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xac], edx
lea edx, [ebp - 0x28]
push 0x2fa5
push ebx
call fcn.1001865f
add esp, 0xc
mov dword [ebp - 0x40], 0xffffffed
push 3
pop edx
cmp dword [ebp - 0x40], 4
jge 0x100196b1
mov dword [ebp - 0x18], 0x4fda7ef5
mov dword [ebp - 0x18], 0x8d9dcee3
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x18], 9
mov dword [ebp - 0x18], 8
mov dword [ebp - 0x18], 0x80c6548a
mov dword [ebp - 0x18], 0x1d7feae2
mov dword [ebp - 0x18], 0xf4caa5d7
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x38], 0xd
cmp dword [ebp - 0x38], 6
jle 0x100196a9
xor ecx, ecx
inc ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], ebx
jmp 0x10019639
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xe4], 0xffff
inc dword [ebp - 4]
cmp dword [ebp - 4], 2
jl 0x10019628
mov dword [ebp - 4], ebx
jmp 0x10019655
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xdc], 0x1a969ac5
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10019644
mov dword [ebp - 0x28], ebx
jmp 0x10019697
mov dword [ebp - 0x18], 0xd2ae
mov dword [ebp - 0xc], ebx
jmp 0x1001967c
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x114], 0x64276038
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 2
jl 0x1001966b
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0xe4], ebx
jne 0x1001969c
inc dword [ebp - 0xac]
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], ecx
jle 0x1001965f
dec dword [ebp - 0x38]
cmp dword [ebp - 0x38], 6
jg 0x10019620
inc dword [ebp - 0x40]
jmp 0x100195c4
mov al, byte [esi]
cmp al, 0x30
jl 0x10019760
cmp al, 0x39
jg 0x10019760
mov dword [ebp - 0x10], 0x720e83c7
mov dword [ebp - 0x18], 5
mov dword [ebp - 4], ebx
jmp 0x100196e7
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xa8], 1
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jl 0x100196d6
mov dword [ebp - 4], ebx
jmp 0x10019702
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x10c], 9
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x100196f1
mov dword [ebp - 0x10], ebx
jmp 0x1001971a
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0xa8], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edx
jl 0x1001970d
mov eax, dword [ebp - 0xa4]
xor edx, edx
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x108]
cmp ecx, eax
movsx eax, byte [esi]
setle dl
mov dword [ebp - 0x18], edx
mov edx, dword [ebp - 0x54]
imul ecx, dword [edx], 0xa
add ecx, 0xffffffd0
add eax, ecx
inc esi
mov dword [edx], eax
jmp 0x1001953b
mov dword [ebp - 0xc], ebx
jmp 0x10019776
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x98], 0xbbca6318
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x10019765
push 0x774a
lea eax, [ebp - 0x31]
mov byte [ebp - 0x31], bl
push eax
push 0xbde
push 0x3fa9
push ebx
call fcn.10024278
add esp, 0x14
mov dword [ebp - 0x90], ebx
push 3
pop esi
jmp 0x100197ba
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x100197b4
push ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
inc dword [ebp - 0x90]
cmp dword [ebp - 0x90], esi
jg 0x100197a5
mov eax, dword [ebp - 0x54]
mov dword [eax], ebx
mov dword [ebp - 0x18], 4
mov dword [ebp - 0x18], 0xfffffff7
mov dword [ebp - 0x9c], 0xf341
mov dword [ebp - 4], ebx
jmp 0x100197f5
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x12c], 0x4e2db58e
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x100197e4
mov dword [ebp - 4], ebx
jmp 0x10019810
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x120], 0xe4438bea
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x100197ff
lea eax, [ebp - 0x9c]
push eax
push ebx
call fcn.1001b915
push 0x30fe
lea eax, [ebp - 0x32]
mov byte [ebp - 0x32], bl
push eax
push 1
push 0x54
pop edx
mov ecx, 0x774
call fcn.1001865f
add esp, 0x14
jmp 0x10019409
mov dword [ebp - 0x24], 0x7c7ce53d
mov dword [ebp - 0xc], ebx
jmp 0x1001985f
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x74], 0xa5d6
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 1
jl 0x10019851
mov dword [ebp - 0x24], ebx
jmp 0x10019890
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp + eax*4 - 0x74]
mov eax, dword [ebp - 0x24]
mov dword [ebp + eax*4 - 0x74], ecx
mov byte [ebp - 5], bl
cmp byte [ebp - 5], bl
je 0x1001988d
push 0x458a
push ebx
call fcn.10019997
pop ecx
pop ecx
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], ebx
jle 0x1001986a
push 0x7e74
lea eax, [ebp - 0x24]
push eax
push ebx
call fcn.1001b6af
xor edx, edx
mov dword [ebp - 0x18], 0x9e672ca3
add esp, 0xc
mov dword [ebp - 4], ebx
inc edx
cmp dword [ebp - 4], 2
jge 0x100198c9
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xec], edx
inc dword [ebp - 4]
jmp 0x100198b4
mov dword [ebp - 4], ebx
jmp 0x100198dc
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x30], 0x622ba394
inc dword [ebp - 4]
cmp dword [ebp - 4], edx
jl 0x100198ce
mov dword [ebp - 0x30], ebx
jmp 0x10019904
mov dword [ebp - 0x1c], 0x17f7
dec dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x30]
mov ecx, dword [ebp + ecx*4 - 0xec]
imul ecx, dword [ebp - 0x30]
mov dword [ebp - 0x18], ecx
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], edx
jle 0x100198e6
mov al, dl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret