Function at 0x607ee0
Capabilities:
Hide graphical window
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x6081f9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dl, byte [eax + 0x2c]
je 0x6081e3
mov ecx, dword [ebp - 4]
mov eax, edx
mov byte [ecx + 0x2c], al
test al, al
je 0x6080a8
call sub.user32.dll_GetFocus
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], ebx
push ebx
call sub.user32.dll_IsWindowVisible
test eax, eax
jne 0x607f4a
mov eax, dword [ebp - 4]
call fcn.006061b4
mov eax, dword [eax + 0xc0]
call fcn.00456c34
mov edx, dword [ebp - 4]
mov dword [edx + 0x3c], eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0xe4]
push eax
push 0x30
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [ebp - 4]
mov edx, dword [0x5e08d0]
call fcn.00403e84
test al, al
je 0x607fa8
mov eax, dword [ebp - 4]
call fcn.006061c8
test al, al
jne 0x607fa8
mov dx, 2
mov ax, 2
call fcn.0040836c
push eax
push 3
push 0xd3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [ebp - 4]
cmp byte [eax + 0x17], 0
jne 0x607fbb
mov dl, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x30]
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.00607c1c
push 0x40
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
sub ecx, edx
push ecx
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
sub ecx, eax
push ecx
push edx
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_SetWindowPos
mov eax, dword [ebp - 4]
mov edx, dword [0x5e08d0]
call fcn.00403e84
test al, al
je 0x60804c
mov eax, dword [ebp - 4]
call fcn.006061c8
test al, al
je 0x60804c
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.00607c1c
mov eax, dword [ebp - 0x10]
neg eax
push eax
mov eax, dword [ebp - 0x14]
neg eax
push eax
lea eax, [ebp - 0x14]
push eax
call sub.user32.dll_OffsetRect
push 0xfffffffffffffffe
push 0xfffffffffffffffe
lea eax, [ebp - 0x14]
push eax
call sub.user32.dll_InflateRect
lea eax, [ebp - 0x14]
push eax
push 0
push 0xb4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [ebp - 4]
mov byte [eax + 0x2d], 1
xor eax, eax
push ebp
push 0x608090
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x18]
mov edx, dword [eax + 0x94]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0xb0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x608097
mov eax, dword [ebp - 4]
mov byte [eax + 0x2d], 0
ret
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x6080ba
push 0
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [ebp - 4]
call fcn.006061b4
cmp byte [eax + 0x108], 0
jne 0x608192
call fcn.005d689c
test eax, eax
je 0x6080f3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.0044d250
call fcn.00468b6c
mov ebx, eax
call fcn.005d689c
cmp ebx, eax
je 0x6080f7
xor ebx, ebx
jmp 0x6080f9
mov bl, 1
test bl, bl
je 0x608104
mov al, 1
call fcn.00607df8
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x3c]
test esi, esi
jbe 0x608126
push esi
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x608126
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
push eax
call sub.user32.dll_SetFocus
jmp 0x60817f
mov eax, dword [ebp - 4]
call fcn.006061b4
mov eax, dword [eax + 0xc0]
call fcn.00456c34
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x60815e
mov eax, dword [ebp - 4]
call fcn.006061b4
mov eax, dword [eax + 0xc0]
call fcn.00456c34
push eax
call sub.user32.dll_SetFocus
jmp 0x60817f
push 2
mov eax, dword [ebp - 4]
call fcn.006061b4
mov eax, dword [eax + 0xc0]
call fcn.00456c34
push eax
call sub.user32.dll_GetWindow
push eax
call sub.user32.dll_SetFocus
test bl, bl
je 0x60818a
xor eax, eax
call fcn.00607df8
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x3c], edx
mov eax, dword [ebp - 4]
call fcn.006061b4
cmp byte [eax + 0x33], 0
je 0x6081e3
push 0x1b
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x6081c4
push 0x11
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jl 0x6081c4
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x6081e3
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0xa8]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x78]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x608200
lea eax, [ebp - 0x28]
call fcn.00404be8
ret