Function at 0x1002e44e
Capabilities:
Get keyboard layout

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007d288
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd8
push esi
movzx eax, byte [ebp + 0x14]
test eax, eax
je 0x1002e4d7
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x28]
mov dword [eax], 0
jmp 0x1002e4b2
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
cmp dword [eax], 3
jge 0x1002e4d2
mov eax, dword [ebp - 0x28]
push dword [eax]
mov ecx, dword [ebp - 0xac]
call fcn.10018198
mov dword [eax], 0xfffffffc
jmp 0x1002e4a7
jmp 0x1002ea8f
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], 0xfffffff9
push 4
lea ecx, [ebp - 0xc8]
call fcn.1001810a
and dword [ebp - 4], 0
mov dword [ebp - 0x34], 0
jmp 0x1002e514
mov eax, dword [ebp - 0x34]
inc eax
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 4
jge 0x1002e530
push dword [ebp - 0x34]
lea ecx, [ebp - 0xc8]
call fcn.10018198
mov dword [eax], 0xb57e
jmp 0x1002e50d
mov dword [ebp - 0x30], 0
jmp 0x1002e540
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0x18
jne 0x1002e568
mov dword [ebp - 0x9c], 0x4d2edc75
lea eax, [ebp - 0x9c]
push eax
push 0
push 0x6c7d
call fcn.10029106
add esp, 0xc
jmp 0x1002e539
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xc8]
call fcn.10018193
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx + 0x10]
mov dword [eax], ecx
mov dword [ebp - 0x14], 0
jmp 0x1002e592
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jge 0x1002e5a8
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xd4], 0x648261f9
jmp 0x1002e58b
mov dword [ebp - 0x14], 0
jmp 0x1002e5b8
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jge 0x1002e5cb
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x24], 0x9be1d925
jmp 0x1002e5b1
push 4
pop eax
imul eax, eax, 0
mov dword [ebp + eax - 0x24], 2
jmp 0x1002e5f0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x24]
dec eax
push 4
pop ecx
imul ecx, ecx, 0
mov dword [ebp + ecx - 0x24], eax
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x24], 0
jl 0x1002e671
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x2c], 2
jmp 0x1002e614
mov eax, dword [ebp - 0x2c]
dec eax
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jl 0x1002e66c
mov dword [ebp - 0xa4], 7
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x24]
mov eax, dword [ebp + eax*4 - 0xd4]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x88]
mov dword [ebp + eax*4 - 0xd4], ecx
cmp dword [ebp - 0x88], 0
jl 0x1002e65d
mov dword [ebp - 0x58], 1
jmp 0x1002e661
and dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xa4], eax
jmp 0x1002e60d
jmp 0x1002e5db
push 4
pop eax
imul eax, eax, 0
mov dword [ebp + eax - 0x24], 0
mov eax, dword [ebp - 0x38]
cmp dword [eax], 0
jne 0x1002ea8f
push 4
lea ecx, [ebp - 0x4c]
call fcn.1001810a
mov dword [ebp - 4], 1
mov dword [ebp - 0x54], 9
mov dword [ebp - 0x68], 3
mov dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0x1c], 0
jmp 0x1002e6c4
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 4
jge 0x1002e6dd
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x4c]
call fcn.10018198
mov dword [eax], 3
jmp 0x1002e6bd
mov dword [ebp - 0x1c], 0
jmp 0x1002e6ed
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 3
jge 0x1002e703
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xe4], 6
jmp 0x1002e6e6
mov byte [ebp - 0x1e], 0
movzx eax, byte [ebp - 0x1e]
test eax, eax
je 0x1002e71a
push 0x1ea1
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
push 2
lea ecx, [ebp - 0x4c]
call fcn.10018198
push 3
lea ecx, [ebp - 0x4c]
call fcn.10018198
mov esi, eax
push 3
lea ecx, [ebp - 0x4c]
call fcn.10018198
mov ecx, dword [esi]
cmp ecx, dword [eax]
jg 0x1002e74c
mov dword [ebp - 0x8c], 1
jmp 0x1002e753
and dword [ebp - 0x8c], 0
mov esi, 0x100c
sub esi, dword [ebp - 0x8c]
push 3
lea ecx, [ebp - 0x4c]
call fcn.10018198
cmp esi, dword [eax]
jg 0x1002e775
mov dword [ebp - 0x3c], 1
jmp 0x1002e779
and dword [ebp - 0x3c], 0
push 4
pop eax
shl eax, 0
mov ecx, dword [ebp - 0x3c]
mov dword [ebp + eax - 0xe4], ecx
cmp dword [ebp - 0x3c], 3
jae 0x1002e798
mov dword [ebp - 0x80], 1
jmp 0x1002e79c
and dword [ebp - 0x80], 0
push 2
lea ecx, [ebp - 0x4c]
call fcn.10018198
mov ecx, dword [ebp - 0x80]
imul ecx, dword [eax]
test ecx, ecx
jne 0x1002e7bc
cmp dword [ebp - 0x54], 0
jne 0x1002e7bc
and dword [ebp - 0x60], 0
jmp 0x1002e7c3
mov dword [ebp - 0x60], 1
push 2
lea ecx, [ebp - 0x4c]
call fcn.10018198
mov eax, dword [eax]
cmp eax, dword [ebp - 0x60]
jge 0x1002e7dd
mov dword [ebp - 0x78], 1
jmp 0x1002e7e1
and dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x68], eax
cmp dword [ebp - 0x68], 0xeb9ae77a
jbe 0x1002e7f9
mov dword [ebp - 0x50], 1
jmp 0x1002e7fd
and dword [ebp - 0x50], 0
push 2
lea ecx, [ebp - 0x4c]
call fcn.10018198
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [eax]
jle 0x1002e817
mov dword [ebp - 0x70], 1
jmp 0x1002e81b
and dword [ebp - 0x70], 0
mov esi, dword [ebp - 0x70]
sub esi, 0x20225169
sub esi, dword [ebp - 0x54]
push 2
lea ecx, [ebp - 0x4c]
call fcn.10018198
sub esi, dword [eax]
push 1
lea ecx, [ebp - 0x4c]
call fcn.10018198
imul esi, dword [eax]
mov dword [ebp - 0x94], esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4c]
call fcn.10018193
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x24]
and eax, 0x40
je 0x1002e8aa
mov dword [ebp - 0xbc], 0xffffffff
mov byte [ebp - 0x20], 0
movzx eax, byte [ebp - 0x20]
test eax, eax
je 0x1002e87b
push 0
call fcn.1002b72d
pop ecx
mov byte [ebp - 0x1f], 0
movzx eax, byte [ebp - 0x1f]
test eax, eax
je 0x1002e895
push 0xef
push 0
call fcn.100278a4
pop ecx
pop ecx
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x38]
mov eax, dword [eax + 0x20]
mov dword [ecx], eax
jmp 0x1002ea8f
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x24]
and eax, 0x80
je 0x1002ea8f
mov dword [ebp - 0xa0], 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.1001810a
mov dword [ebp - 4], 2
mov dword [ebp - 0x18], 0
jmp 0x1002e8e9
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 1
jge 0x1002e8fc
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x10], 9
jmp 0x1002e8e2
mov dword [ebp - 0x18], 0
jmp 0x1002e90c
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 1
jge 0x1002e928
push dword [ebp - 0x18]
lea ecx, [ebp - 0xb8]
call fcn.10018198
mov dword [eax], 0xe2cf4565
jmp 0x1002e905
mov byte [ebp - 0x1d], 0
push 0x5861
push 0
push 0x341
lea eax, [ebp - 0x1d]
push eax
call fcn.1002a866
add esp, 0x10
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x10], 0
je 0x1002ea4b
mov eax, 0x9d19ac19
test eax, eax
je 0x1002ea1d
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x10], 0
jne 0x1002ea2c
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x10], 0
jne 0x1002e993
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x10], 0
jne 0x1002e993
and dword [ebp - 0x5c], 0
jmp 0x1002e99a
mov dword [ebp - 0x5c], 1
mov eax, dword [ebp - 0x5c]
dec eax
dec eax
push 4
pop ecx
imul ecx, ecx, 0
cmp eax, dword [ebp + ecx - 0x10]
jle 0x1002e9b4
mov dword [ebp - 0x64], 1
jmp 0x1002e9b8
and dword [ebp - 0x64], 0
cmp dword [ebp - 0x64], 0
jb 0x1002e9c7
mov dword [ebp - 0x6c], 1
jmp 0x1002e9cb
and dword [ebp - 0x6c], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x10]
imul eax, dword [ebp - 0x6c]
test eax, eax
je 0x1002e9f6
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x10], 0
je 0x1002e9f6
mov dword [ebp - 0x98], 1
jmp 0x1002e9fd
and dword [ebp - 0x98], 0
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x10]
mov dword [ebp - 0xd8], eax
push 4
pop eax
imul eax, eax, 0
cmp dword [ebp + eax - 0x10], 0xc5b641b4
ja 0x1002ea2c
cmp dword [ebp - 0xa0], 0
jne 0x1002ea2c
and dword [ebp - 0x74], 0
jmp 0x1002ea33
mov dword [ebp - 0x74], 1
push 4
pop eax
imul eax, eax, 0
mov eax, dword [ebp + eax - 0x10]
cmp dword [ebp - 0x74], eax
jg 0x1002ea4b
mov dword [ebp - 0x7c], 1
jmp 0x1002ea4f
and dword [ebp - 0x7c], 0
push 0
lea ecx, [ebp - 0xb8]
call fcn.10018198
mov ecx, dword [ebp - 0x7c]
mov dword [eax], ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xb8]
call fcn.10018193
lea eax, [ebp - 0x38]
push eax
push 0x4f8a
push 0x3701
push 0
lea eax, [ebp - 0x84]
push eax
call fcn.1002a8ca
add esp, 0x14
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret