Function at 0x41e195
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, 0x439ee0
call fcn.00437bf0
mov eax, 0x2024
call fcn.00437c10
mov eax, dword [0x45689c]
push ebx
push esi
push edi
mov dword [ebp - 0x2030], eax
mov ecx, 0x7ff
xor eax, eax
lea edi, [ebp - 0x202c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push 1
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.0041968e
mov eax, dword [0x48068c]
xor ebx, ebx
add esp, 0xc
mov dword [ebp - 0x1c], ebx
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
cmp ecx, ebx
mov dword [ebp - 0x30], ecx
mov eax, dword [eax]
mov dword [0x4806a0], ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
jle 0x41e46c
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x2c]
lea edi, [eax + 0x10]
call fcn.0042c9be
movzx eax, byte [ebp + 8]
cmp dword [edi + 0x2220], eax
jne 0x41e45b
movzx eax, byte [ebp + 0xc]
cmp dword [edi + 0x2224], eax
jne 0x41e45b
lea eax, [ebp - 0x2030]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp word [ebp - 0x2030], 0x63
lea eax, [ebp - 0x2030]
mov dword [ebp - 0x18], eax
jne 0x41e38c
cmp word [ebp - 0x202e], 0x68
jne 0x41e38c
cmp word [ebp - 0x202c], 0x61
jne 0x41e38c
cmp word [ebp - 0x202a], 0x72
jne 0x41e38c
cmp word [ebp - 0x2028], 0x6d
jne 0x41e38c
cmp word [ebp - 0x2026], 0x61
jne 0x41e38c
cmp word [ebp - 0x2024], 0x70
jne 0x41e38c
cmp word [ebp - 0x2022], 0x3a
jne 0x41e38c
cmp word [ebp - 0x2020], 0
lea ebx, [ebp - 0x2020]
lea edi, [ebp - 0x2020]
je 0x41e337
mov esi, dword [ebp - 0x14]
shl esi, 5
add esi, 0x4784c8
cmp word [ebx], 0x2c
jne 0x41e32f
and word [ebx], 0
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41e327
mov eax, dword [ebp - 0x10]
test edi, edi
mov dword [esi + 0x10], eax
jne 0x41e306
xor eax, eax
jmp 0x41e30d
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
push eax
mov ecx, esi
call fcn.00402dfd
mov dword [esi + 0xc], 1
and dword [esi + 0x14], 0
inc dword [ebp - 0x14]
add esi, 0x20
mov word [ebx], 0x2c
lea edi, [ebx + 2]
inc ebx
inc ebx
cmp word [ebx], 0
jne 0x41e2e3
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x41e45b
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
shl esi, 5
test edi, edi
mov dword [esi + 0x4784d8], eax
lea ebx, [esi + 0x4784c8]
jne 0x41e363
xor eax, eax
jmp 0x41e36a
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
push eax
mov ecx, ebx
call fcn.00402dfd
mov dword [esi + 0x4784d4], 1
and dword [esi + 0x4784dc], 0
inc dword [ebp - 0x14]
jmp 0x41e45b
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
and dword [ebp - 0x20], 0
lea esi, [edi + 0x2010]
push esi
call ebx
push 1
pop ecx
cmp eax, ecx
jle 0x41e3ac
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0x1c], ecx
jl 0x41e3ba
and dword [0x4806a0], 0
jmp 0x41e3c5
mov eax, dword [ebp - 0x10]
add eax, 0xa
mov dword [0x4806a0], eax
push dword [ebp - 0x18]
inc dword [ebp - 0x1c]
call ebx
test eax, eax
je 0x41e45b
mov esi, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
shl esi, 5
mov dword [esi + 0x4784e4], eax
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x4784d8], eax
mov eax, dword [edi + 0x2234]
mov dword [esi + 0x4784dc], eax
mov eax, dword [edi + 0x222c]
mov dword [esi + 0x4784e0], eax
xor eax, eax
cmp dword [ebp - 0x18], eax
lea ebx, [esi + 0x4784c8]
je 0x41e41b
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [ebp - 0x18]
mov ecx, ebx
push eax
call fcn.00402dfd
test edi, edi
lea ebx, [esi + 0x4784d0]
jne 0x41e434
xor eax, eax
jmp 0x41e43b
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
push eax
mov ecx, ebx
call fcn.00402dfd
and dword [esi + 0x4784d4], 0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0x384
jg 0x41e51f
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x30]
jl 0x41e20c
xor ebx, ebx
mov eax, dword [ebp - 0x14]
mov ecx, 0x470080
mov dword [0x4806a8], eax
call fcn.0042c041
mov esi, 0x470090
mov ecx, esi
call fcn.0042bf70
cmp dword [0x4546a4], ebx
je 0x41e668
cmp dword [0x4806a8], ebx
mov dword [ebp - 0x10], ebx
jle 0x41e5c9
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0xc]
lea edi, [eax + 0x4784c8]
lea ecx, [eax + 0x4707c8]
push edi
call fcn.0041e871
push edi
lea ecx, [ebp + 8]
call fcn.00402c6d
cmp dword [0x4546a8], ebx
mov dword [ebp - 4], ebx
je 0x41e4e2
lea ecx, [ebp + 8]
call fcn.00403094
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_CharLowerW]
push 0x4561e8
push 0x454910
lea ecx, [ebp + 8]
call fcn.0040348c
lea eax, [ebp + 8]
lea ecx, [ebp - 0x18]
push eax
call fcn.00402c6d
push dword [ebp - 0x18]
mov eax, dword [ebp + 0xc]
cmp dword [0x4801c8], ebx
mov byte [ebp - 4], 1
push dword [eax + 0x4784e0]
je 0x41e52e
push str._08d__s
jmp 0x41e533
push str.Max_900_per_Menu
call fcn.004323d4
jmp 0x41e861
push 0x454dfc
lea eax, [ebp + 8]
push eax
call fcn.004030fb
add esp, 0x10
lea eax, [ebp + 8]
mov ecx, esi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042bf84
mov eax, dword [0x470094]
cmp dword [ebp - 0x1c], eax
je 0x41e58d
mov edi, 0x454df8
mov eax, edi
test eax, eax
je 0x41e56a
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push edi
push eax
lea ecx, [ebp + 8]
call fcn.00402f26
lea eax, [ebp + 8]
mov ecx, esi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042bf84
mov eax, dword [0x470094]
cmp dword [ebp - 0x1c], eax
jne 0x41e55d
lea eax, [ebp + 8]
mov ecx, esi
push eax
call fcn.0042b0de
mov edi, dword [ebp - 0x10]
and byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
mov dword [eax], edi
call fcn.00402cb3
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00402cb3
add dword [ebp + 0xc], 0x20
inc edi
cmp edi, dword [0x4806a8]
mov dword [ebp - 0x10], edi
jl 0x41e4a8
mov eax, dword [0x47009c]
mov ecx, dword [0x470094]
cmp eax, ebx
mov edi, dword [ecx]
jle 0x41e668
mov ecx, eax
mov dword [ebp - 0x10], 0x4784c8
shl ecx, 5
mov dword [ebp - 0x20], eax
mov ebx, 0x4707c8
lea ecx, [ecx + 0x4784a8]
mov dword [ebp + 0xc], ecx
cmp dword [0x4546a4], 2
mov esi, dword [edi + 0x10]
jne 0x41e617
mov ecx, dword [ebp + 0xc]
mov eax, esi
shl eax, 5
add eax, ebx
push eax
call fcn.0041e871
cmp dword [0x4546a4], 1
jne 0x41e62e
mov ecx, dword [ebp - 0x10]
shl esi, 5
add esi, ebx
push esi
call fcn.0041e871
mov eax, dword [edi + 8]
mov ecx, dword [0x48075c]
cmp eax, ecx
je 0x41e645
mov edi, eax
mov eax, dword [edi]
cmp eax, ecx
jne 0x41e63b
jmp 0x41e65b
mov eax, dword [edi + 4]
cmp edi, dword [eax + 8]
jne 0x41e654
mov edi, eax
mov eax, dword [eax + 4]
jmp 0x41e648
cmp dword [edi + 8], eax
je 0x41e65b
mov edi, eax
sub dword [ebp + 0xc], 0x20
add dword [ebp - 0x10], 0x20
dec dword [ebp - 0x20]
jne 0x41e5fb
call dword [sym.imp.USER32.dll_CreatePopupMenu]
xor esi, esi
mov ebx, eax
cmp dword [0x4806a8], esi
mov dword [0x48069c], ebx
jle 0x41e692
push esi
push ebx
call fcn.0041d590
inc esi
pop ecx
cmp esi, dword [0x4806a8]
pop ecx
jl 0x41e680
mov esi, dword [sym.imp.USER32.dll_AppendMenuW]
push 0
push 0
push 0x440
push ebx
call esi
cmp dword [0x47002c], 0
mov edi, 0x400
jne 0x41e6de
mov ecx, dword [0x48068c]
push 0
push dword [0x470030]
call fcn.00426a8c
test eax, eax
je 0x41e6de
push 0xa0
call fcn.004166bc
pop ecx
push eax
push 0x2711
push edi
push ebx
call esi
push 0x4445d0
push 0x2710
push edi
push ebx
call esi
push 1
pop esi
push esi
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.0041968e
add esp, 0xc
push dword [0x4696e4]
call dword [sym.imp.USER32.dll_SetFocus]
push dword [0x4696e4]
mov edi, dword [sym.imp.USER32.dll_SetForegroundWindow]
call edi
push dword [0x4696e4]
call dword [sym.imp.USER32.dll_SetActiveWindow]
mov eax, dword [0x480508]
and dword [0x470104], 0
cmp eax, esi
mov dword [0x470594], esi
jle 0x41e74a
mov ecx, dword [0x48050c]
cmp ecx, esi
jle 0x41e74a
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], ecx
push 0x100
mov ecx, 0x4700b8
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push ebx
call fcn.00435e26
xor ebx, ebx
mov ecx, 0x4801f0
push ebx
mov esi, eax
mov dword [0x470594], ebx
mov dword [0x470104], ebx
call fcn.00416f1c
push ebx
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.0041968e
add esp, 0xc
cmp esi, ebx
je 0x41e862
cmp esi, 0x2710
jne 0x41e7b0
push dword [0x4806ac]
call fcn.00432451
pop ecx
push dword [0x4806ac]
call edi
jmp 0x41e822
cmp esi, 0x2711
jne 0x41e7d5
mov ecx, dword [0x48068c]
push ebx
push dword [0x470030]
push dword [0x47002c]
call fcn.00426ade
jmp 0x41e862
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa0
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x41e832
lea eax, [esi - 0xa]
shl eax, 5
mov eax, dword [eax + 0x4784d8]
cmp eax, ebx
mov dword [ebp + 0xc], eax
jl 0x41e832
push dword [0x4806ac]
call fcn.00432451
pop ecx
push dword [0x4806ac]
call edi
push dword [ebp + 0xc]
mov ecx, dword [0x48068c]
call fcn.00422a97
push 3
push dword [0x4806ac]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x41e862
lea eax, [esi - 0xa]
shl eax, 5
cmp dword [eax + 0x4784d4], ebx
je 0x41e855
push dword [eax + 0x4784c8]
call fcn.00419739
push 0x14
call fcn.00419a9b
pop ecx
jmp 0x41e861
lea eax, [eax + 0x4784d0]
push eax
call fcn.0041d22e
pop ecx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret