Function at 0x402eba
Capabilities:
Log keystrokes via polling

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x1c
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00404d5d
cmp word [ebp - 4], 6
mov dword [ebp - 8], eax
je 0x403300
push ebx
xor ebx, ebx
cmp eax, ebx
je 0x4032ff
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, edi
imul eax, edi
cmp edi, ebx
jle 0x402f10
add dword [0x414bdc], eax
jmp 0x402f16
sub dword [0x414bdc], eax
mov esi, dword [ebp + 0xc]
mov eax, esi
imul eax, esi
cmp esi, ebx
jle 0x402f2a
add dword [0x414bd8], eax
jmp 0x402f30
sub dword [0x414bd8], eax
push 0x11
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, ah
jns 0x402f44
mov dword [0x414bdc], ebx
jmp 0x402f7c
mov eax, dword [0x414bd8]
cdq
mov ecx, eax
mov eax, dword [0x414bdc]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
shl eax, 1
cmp eax, ecx
jge 0x402f66
mov dword [0x414bdc], ebx
mov eax, dword [0x414bdc]
cdq
xor eax, edx
sub eax, edx
add ecx, ecx
cmp ecx, eax
jge 0x402f7c
mov dword [0x414bd8], ebx
cmp word [ebp - 4], 1
jne 0x402f88
mov dword [ebp + 8], ebx
jmp 0x402f9a
mov eax, edi
cdq
xor eax, edx
xor ecx, ecx
sub eax, edx
cmp eax, 9
setg cl
mov dword [ebp + 8], ecx
mov ebx, dword [ebp + 8]
mov eax, esi
cdq
xor eax, edx
xor ecx, ecx
sub eax, edx
cmp eax, 9
setg cl
neg ebx
sbb ebx, ebx
mov eax, 0x5dc
and ebx, eax
add ebx, 0x64
mov esi, ecx
mov edi, esi
neg edi
sbb edi, edi
and edi, eax
add edi, 0x64
test esi, esi
mov dword [ebp + 0xc], esi
mov ecx, 0xc8
jne 0x402fef
cmp dword [0x414bd4], esi
jle 0x402fef
mov eax, dword [0x414bd8]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x402fef
and dword [0x414bd8], esi
cmp dword [ebp + 8], 0
jne 0x403013
cmp dword [0x414bd0], 0
jle 0x403013
mov eax, dword [0x414bdc]
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jle 0x403013
and dword [0x414bdc], 0
test esi, esi
push 5
pop ecx
je 0x403030
mov eax, dword [0x414bd8]
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jle 0x403030
mov dword [0x414bd4], ecx
jmp 0x40303f
cmp dword [0x414bd4], 0
jle 0x40303f
dec dword [0x414bd4]
cmp dword [ebp + 8], 0
je 0x40305b
mov eax, dword [0x414bdc]
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jle 0x40305b
mov dword [0x414bd0], ecx
jmp 0x40306a
cmp dword [0x414bd0], 0
jle 0x40306a
dec dword [0x414bd0]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [0x414bdc]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, ebx
jg 0x403093
mov eax, dword [0x414bd8]
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jle 0x4032fd
movsx eax, word [ebp - 4]
xor edx, edx
sub eax, edx
je 0x40327f
dec eax
je 0x403249
dec eax
je 0x4031c0
dec eax
je 0x403129
dec eax
dec eax
jne 0x403070
cmp ecx, ebx
jle 0x4030d3
push 0x14d0001
push 0x27
push 0x100
push dword [ebp - 8]
call esi
sub dword [0x414bdc], ebx
jmp 0x4030f2
mov eax, ebx
neg eax
cmp ecx, eax
jge 0x4030f2
push 0x14b0001
push 0x25
push 0x100
push dword [ebp - 8]
call esi
add dword [0x414bdc], ebx
mov eax, dword [0x414bd8]
cmp eax, edi
jle 0x40310c
push 0x1500001
push 0x28
push 0x100
jmp 0x4032ed
mov ecx, edi
neg ecx
cmp eax, ecx
jge 0x403070
push 0x1480001
push 0x26
push 0x100
jmp 0x4031b0
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_GetParent]
mov ecx, dword [0x414bdc]
cmp ecx, ebx
jle 0x40315c
push dword [ebp - 0xc]
xor ecx, ecx
cmp dword [ebp + 8], ecx
setne cl
lea ecx, [ecx + ecx + 1]
push ecx
push 0x114
push eax
call esi
sub dword [0x414bdc], ebx
jmp 0x403180
mov edx, ebx
neg edx
cmp ecx, edx
jge 0x403180
mov ecx, dword [ebp + 8]
push dword [ebp - 0xc]
neg ecx
sbb ecx, ecx
and ecx, 2
push ecx
push 0x114
push eax
call esi
add dword [0x414bdc], ebx
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_GetParent]
mov dword [ebp - 8], eax
jmp 0x4032cb
mov ecx, edi
neg ecx
cmp eax, ecx
jge 0x403070
mov eax, dword [ebp + 0xc]
push dword [ebp - 0x10]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x115
push dword [ebp - 8]
call esi
add dword [0x414bd8], edi
jmp 0x403070
cmp ecx, ebx
jle 0x4031db
push dword [ebp - 0xc]
xor eax, eax
cmp dword [ebp + 8], edx
setne al
lea eax, [eax + eax + 1]
push eax
push 0x114
jmp 0x403259
mov eax, ebx
neg eax
cmp ecx, eax
jge 0x403201
mov eax, dword [ebp + 8]
push dword [ebp - 0xc]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push dword [ebp - 8]
call esi
add dword [0x414bdc], ebx
mov eax, dword [0x414bd8]
cmp eax, edi
jg 0x403216
mov ecx, edi
neg ecx
cmp eax, ecx
jge 0x403070
cdq
idiv edi
lea ecx, [ebp - 0x1c]
push ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0xc]
neg eax
sbb eax, eax
and eax, 0xfffffff1
dec eax
imul eax, dword [ebp - 0x14]
push eax
push dword [ebp - 8]
call fcn.00402e19
mov eax, dword [ebp - 0x14]
imul eax, edi
sub dword [0x414bd8], eax
jmp 0x403070
cmp ecx, ebx
jle 0x403266
push 0x14d0001
push 0x27
push 0x100
push dword [ebp - 8]
call esi
sub dword [0x414bdc], ebx
jmp 0x403201
mov eax, ebx
neg eax
cmp ecx, eax
jge 0x403201
push 0x14b0001
push 0x25
push 0x100
jmp 0x4031f6
cmp ecx, ebx
jle 0x4032a5
push dword [ebp - 0xc]
xor eax, eax
cmp dword [ebp + 8], edx
setne al
lea eax, [eax + eax + 1]
push eax
push 0x114
push dword [ebp - 8]
call esi
sub dword [0x414bdc], ebx
jmp 0x4032cb
mov eax, ebx
neg eax
cmp ecx, eax
jge 0x4032cb
mov eax, dword [ebp + 8]
push dword [ebp - 0xc]
neg eax
sbb eax, eax
and eax, 2
push eax
push 0x114
push dword [ebp - 8]
call esi
add dword [0x414bdc], ebx
mov eax, dword [0x414bd8]
cmp eax, edi
jle 0x403191
push dword [ebp - 0x10]
xor eax, eax
cmp dword [ebp + 0xc], eax
setne al
lea eax, [eax + eax + 1]
push eax
push 0x115
push dword [ebp - 8]
call esi
sub dword [0x414bd8], edi
jmp 0x403070
pop edi
pop esi
pop ebx
xor eax, eax
inc eax
leave
ret 0xc