Function at 0x61bf68
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
call fcn.005cec6c
mov dword [ebp - 0x28], eax
xor edx, edx
push ebp
push 0x61c4b3
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
mov edx, eax
cmp edx, 0x101
jg 0x61bfbd
je 0x61c1a8
sub edx, 7
je 0x61bfe6
dec edx
je 0x61bffc
sub edx, 0xf8
je 0x61c18b
jmp 0x61c2b7
sub edx, 0x102
je 0x61c16e
add edx, 0xfffffffe
sub edx, 2
jb 0x61c1c5
sub edx, 0xfe
je 0x61c106
jmp 0x61c2b7
mov eax, dword [ebp - 0x20]
call fcn.0061b850
mov si, 0xffe7
call fcn.00503dd4
jmp 0x61c2b7
mov eax, dword [ebp - 0x20]
call fcn.0061b850
mov dword [ebp - 0x34], eax
xor eax, eax
push ebp
push 0x61c0ff
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x2c], 0
je 0x61c042
push ebp
call fcn.0061bf24
pop ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x178]
call fcn.0050451c
call fcn.0050451c
jmp 0x61c4ba
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [0x5ed90c]
call fcn.00503d64
test al, al
je 0x61c0e5
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.0056ef90
mov ebx, eax
call sub.user32.dll_GetFocus
cmp ebx, eax
jne 0x61c080
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.0056ef90
mov ebx, eax
jmp 0x61c08d
call sub.user32.dll_GetFocus
push eax
call sub.user32.dll_GetParent
mov ebx, eax
mov eax, ebx
call fcn.005654e0
mov edx, dword [0x5ed90c]
call fcn.00503d64
test al, al
jne 0x61c0ab
push ebx
call sub.user32.dll_GetParent
mov ebx, eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.0056ef90
cmp ebx, eax
je 0x61c0e5
push ebp
call fcn.0061bf24
pop ecx
push ebp
call fcn.0061bef8
pop ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x178]
call fcn.0050451c
call fcn.0050451c
jmp 0x61c4ba
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x61c2b7
mov eax, dword [ebp - 0x34]
mov si, 0xffe6
call fcn.00503dd4
ret
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
call fcn.00508178
push 1
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.0056ef90
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_MapWindowPoints
mov dx, word [ebp - 0x2c]
mov ax, word [ebp - 0x30]
call fcn.005081ac
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.0056ef90
push eax
call sub.user32.dll_SendMessageA
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
call fcn.0050451c
jmp 0x61c4ba
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
call fcn.0061ba18
test al, al
je 0x61c2b7
call fcn.0050451c
jmp 0x61c4ba
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
call fcn.0061b9e8
test al, al
je 0x61c2b7
call fcn.0050451c
jmp 0x61c4ba
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
call fcn.0061ba48
test al, al
je 0x61c2b7
call fcn.0050451c
jmp 0x61c4ba
mov edx, dword [ebp - 0x24]
cmp eax, 0x104
jne 0x61c1d7
mov eax, dword [ebp - 0x20]
inc dword [eax + 0x34]
jmp 0x61c1f2
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x34], 0
je 0x61c1e8
mov eax, dword [ebp - 0x20]
dec dword [eax + 0x34]
jmp 0x61c1f2
call fcn.0050451c
jmp 0x61c4ba
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jl 0x61c2b7
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x12
jne 0x61c21a
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0x105
jne 0x61c2b7
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x178]
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x79
jne 0x61c24f
push 0x10
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x61c24f
call fcn.0050451c
jmp 0x61c4ba
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x12
jne 0x61c25f
mov byte [0x64efad], 1
mov byte [0x64efae], 1
xor eax, eax
push ebp
push 0x61c2b0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
push eax
push 0
call fcn.005f8660
dec eax
jne 0x61c29b
call fcn.0050451c
call fcn.0050451c
jmp 0x61c4ba
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x61c2b7
mov byte [0x64efae], 0
ret
mov eax, dword [ebp - 0x28]
cmp dword [eax + 4], 0
jne 0x61c2ca
call fcn.0050451c
jmp 0x61c4ba
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0x100
jne 0x61c392
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
sub eax, 9
je 0x61c34f
sub eax, 4
je 0x61c2f3
sub eax, 0xe
je 0x61c306
jmp 0x61c386
push ebp
call fcn.0061bef8
pop ecx
push ebp
call fcn.0061bf24
pop ecx
jmp 0x61c49d
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x144]
push ebp
call fcn.0061bef8
pop ecx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x1b
jne 0x61c33c
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x154]
jmp 0x61c49d
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x178]
jmp 0x61c49d
push ebp
call fcn.0061bef8
pop ecx
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.0056ef90
push eax
call sub.user32.dll_SendMessageA
mov edx, dword [ebp - 0x24]
mov dword [edx + 0xc], eax
jmp 0x61c49d
push ebp
call fcn.0061bf24
pop ecx
jmp 0x61c49d
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
cmp eax, 0x200
jb 0x61c435
mov edx, dword [ebp - 0x24]
cmp eax, 0x20a
ja 0x61c435
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 8]
call fcn.00508178
push 1
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
call fcn.0056ef90
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_MapWindowPoints
call sub.user32.dll_GetCapture
mov edx, dword [ebp - 0x20]
cmp eax, dword [edx + 0x30]
je 0x61c435
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x20]
call fcn.0061b858
lea eax, [ebp - 0x44]
push eax
call sub.user32.dll_PtInRect
test eax, eax
jne 0x61c435
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
lea ecx, [ebp - 0x44]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
mov edx, dword [ebp - 0x20]
call fcn.0060caec
lea eax, [ebp - 0x44]
push eax
call sub.user32.dll_PtInRect
test eax, eax
je 0x61c435
call fcn.0050451c
jmp 0x61c4ba
mov eax, dword [ebp - 0x24]
cmp dword [eax], 2
jne 0x61c44a
xor edx, edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0x104
jne 0x61c45e
mov eax, dword [ebp - 0x24]
cmp dword [eax + 4], 0x12
je 0x61c465
push ebp
call fcn.0061bf24
pop ecx
mov eax, dword [ebp - 0x24]
cmp dword [eax], 2
jne 0x61c49d
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x38]
push eax
push 0xfffffffffffffffc
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_SetWindowLongA
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x28]
call fcn.0052971c
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [eax + 0x28], edx
mov eax, dword [ebp - 0x20]
xor edx, edx
mov dword [eax + 0x30], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x61c4ba
mov eax, dword [ebp - 0x28]
call fcn.005cec84
ret
pop esi
pop ebx
mov esp, ebp
pop ebp
ret