Function at 0x407141
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
jmp 0x40768e
cmp dword [ebp + 0x10], 0
jne 0x40717d
cmp dword [ebp + 0x14], 0
jne 0x40717d
push dword [0x42fe44]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
jmp 0x407714
jmp 0x40770a
mov eax, dword [0x42fe44]
add eax, 4
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x407230
cmp dword [ebp - 0xc], 0xffffffff
jne 0x407212
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x18], eax
jmp 0x4071f9
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test al, 0x80
jne 0x4071d0
mov dword [ebp - 0xc], 0
jmp 0x407212
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test al, 0x80
jne 0x4071ef
mov dword [ebp - 0xc], 0
jmp 0x407212
cmp dword [ebp - 0x18], 9
je 0x4071b6
cmp dword [ebp - 0x18], 0xd
je 0x4071d5
jmp 0x407212
cmp dword [ebp - 0xc], 0
jne 0x407230
push dword [ebp + 0x10]
push 0x1b
push dword [ebp + 8]
call fcn.0041a3c3
xor eax, eax
jmp 0x407714
jmp 0x40770a
push 0
push 0
push 0x458
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0xfffffffffffffff0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test al, 4
jne 0x407264
cmp dword [ebp + 0x10], 0xd
je 0x4072e9
mov eax, dword [0x42fe44]
add eax, 4
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
cmp eax, 0xffffffff
jne 0x40729c
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test al, 0x80
jne 0x40729c
cmp dword [ebp + 0x10], 0xd
je 0x4072e9
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test al, 0x80
je 0x4072b9
cmp dword [ebp + 0x10], 8
je 0x4072e9
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test al, 0x80
jne 0x407313
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test al, 0x80
jne 0x407313
cmp dword [ebp + 0x10], 0x2d
jne 0x407313
mov eax, dword [ebp + 0x14]
and eax, 0xffff0000
mov ecx, dword [ebp + 0x10]
and ecx, 0xffff
or eax, ecx
push eax
push 0x1c
push dword [ebp + 8]
call fcn.0041a3c3
xor eax, eax
jmp 0x407714
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
movsx eax, ax
test al, 0x80
je 0x4073a4
mov eax, dword [ebp + 0x10]
sub eax, 0x40
cmp eax, 0x20
jae 0x4073a4
mov eax, dword [ebp + 0x10]
sub eax, 0x40
mov dword [ebp - 0x1c], eax
jmp 0x407359
xor eax, eax
jmp 0x407714
cmp dword [ebp - 0x1c], 3
je 0x4073a4
cmp dword [ebp - 0x1c], 8
jb 0x407348
cmp dword [ebp - 0x1c], 9
jbe 0x4073a4
cmp dword [ebp - 0x1c], 0xd
je 0x4073a4
cmp dword [ebp - 0x1c], 0x16
je 0x4073a4
cmp dword [ebp - 0x1c], 0x18
jb 0x407348
cmp dword [ebp - 0x1c], 0x1a
jbe 0x4073a4
jmp 0x407348
jmp 0x40770a
push 0
push dword [0x42fe44]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4073d2
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
call dword [eax + 8]
jmp 0x40770a
push dword [0x42fe44]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x40756f
cmp dword [ebp + 0x10], 0
jne 0x4074a7
mov eax, dword [0x42fe44]
add eax, 4
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, eax
je 0x4074a2
lea eax, [ebp - 0xc]
push eax
push 0xff676985
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
call dword [eax + 0x58]
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
call dword [eax + 0x48]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
push 1
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetScrollRange]
cmp dword [ebp - 8], 0
jne 0x407464
cmp dword [ebp - 4], 0xffff
je 0x407478
lea eax, [ebp - 8]
push eax
push 0
push 0x4dd
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [ebp - 8]
mov eax, dword [0x42fe44]
add eax, 8
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetWindowLongA]
push dword [ebp - 4]
mov eax, dword [0x42fe44]
add eax, 0xc
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetWindowLongA]
jmp 0x40754f
mov eax, dword [0x42fe44]
add eax, 4
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, eax
jne 0x40754f
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
call dword [eax + 0x4c]
lea eax, [ebp - 0xc]
push eax
push 0xff676986
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
call dword [eax + 0x58]
mov eax, dword [0x42fe44]
add eax, 8
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 8], eax
mov eax, dword [0x42fe44]
add eax, 0xc
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 4], eax
cmp dword [ebp - 8], 0
jne 0x407525
cmp dword [ebp - 4], 0xffff
je 0x407539
lea eax, [ebp - 8]
push eax
push 0
push 0x4de
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [ebp + 0x10]
mov eax, dword [0x42fe44]
add eax, 4
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
jmp 0x407714
jmp 0x40770a
mov eax, dword [0x42fe44]
add eax, 4
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, eax
je 0x4075a4
push 0xd
push dword [ebp + 8]
call fcn.0041a44c
push 0xffffffffffffffff
push 0xd
push dword [ebp + 8]
call fcn.0041a3c3
jmp 0x40770a
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0xffffffff
jne 0x4075df
mov dword [0x42fe70], 0
push 0x44a
mov eax, dword [ebp + 0x10]
push dword [eax + 4]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040771b
mov eax, dword [0x42fe70]
jmp 0x407714
jmp 0x40770a
mov eax, dword [ebp + 0x10]
cmp dword [eax + 4], 0xffffffff
jne 0x407641
mov dword [0x42fe70], 0
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
shr eax, 1
dec eax
mov dword [0x437f74], eax
mov eax, dword [ebp + 0x14]
mov dword [0x42fe54], eax
push 0x44a
mov eax, dword [ebp + 0x10]
push dword [eax + 8]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040771b
mov eax, dword [0x42fe70]
mov ecx, dword [0x42fe54]
mov word [ecx + eax*2], 0
mov eax, dword [0x42fe70]
jmp 0x407714
jmp 0x40770a
mov eax, dword [ebp + 0x10]
cmp dword [eax], 0xffffffff
jne 0x407684
mov dword [0x42fe70], 0
mov eax, dword [ebp + 0x14]
mov dword [0x42fe54], eax
push 0x449
mov eax, dword [ebp + 0x10]
push dword [eax + 4]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040771b
mov eax, dword [0x42fe70]
jmp 0x407714
jmp 0x40770a
cmp dword [ebp - 0x14], 0xa
ja 0x4076ad
je 0x4073d7
cmp dword [ebp - 0x14], 2
je 0x4073a9
jmp 0x40770a
cmp dword [ebp - 0x14], 0xf
je 0x407574
cmp dword [ebp - 0x14], 0x100
je 0x407235
cmp dword [ebp - 0x14], 0x102
je 0x407182
cmp dword [ebp - 0x14], 0x400
je 0x407155
cmp dword [ebp - 0x14], 0x45e
je 0x4075e4
cmp dword [ebp - 0x14], 0x45f
je 0x4075a9
cmp dword [ebp - 0x14], 0x461
je 0x407646
jmp 0x40770a
mov eax, 0xffffffff
jmp 0x407714
pop edi
pop esi
pop ebx
leave
ret 0x10