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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x664180
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dl, byte [eax + 0x2c]
je 0x66416a
mov ecx, dword [ebp - 4]
mov eax, edx
mov byte [ecx + 0x2c], al
test al, al
je 0x66402c
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 0x663f46
mov eax, dword [ebp - 4]
call fcn.00662fec
mov eax, dword [eax + 0xe4]
call fcn.004a0e60
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 + 0xec]
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]
cmp byte [eax + 0x17], 0
jne 0x663f78
mov dl, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 4]
call fcn.00663b48
push 0x40
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 0x10]
sub ecx, edx
push ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
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 [0x638340]
call fcn.0040439c
test al, al
je 0x663fd0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x7c]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x30]
mov edx, dword [ebp - 4]
call dword [eax + 0x264]
mov eax, dword [ebp - 4]
mov byte [eax + 0x2d], 1
xor eax, eax
push ebp
push 0x664014
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 + 0xd0]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x66401b
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 0x66403e
push 0
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [ebp - 4]
call fcn.00662fec
cmp byte [eax + 0x13c], 0
jne 0x664116
call fcn.0062bd34
test eax, eax
je 0x664077
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
call fcn.00494558
call fcn.004b4f38
mov ebx, eax
call fcn.0062bd34
cmp ebx, eax
je 0x66407b
xor ebx, ebx
jmp 0x66407d
mov bl, 1
test bl, bl
je 0x664088
mov al, 1
call fcn.00663dd8
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x3c]
test esi, esi
jbe 0x6640aa
push esi
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x6640aa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
push eax
call sub.user32.dll_SetFocus
jmp 0x664103
mov eax, dword [ebp - 4]
call fcn.00662fec
mov eax, dword [eax + 0xe4]
call fcn.004a0e60
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x6640e2
mov eax, dword [ebp - 4]
call fcn.00662fec
mov eax, dword [eax + 0xe4]
call fcn.004a0e60
push eax
call sub.user32.dll_SetFocus
jmp 0x664103
push 2
mov eax, dword [ebp - 4]
call fcn.00662fec
mov eax, dword [eax + 0xe4]
call fcn.004a0e60
push eax
call sub.user32.dll_GetWindow
push eax
call sub.user32.dll_SetFocus
test bl, bl
je 0x66410e
xor eax, eax
call fcn.00663dd8
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x3c], edx
mov eax, dword [ebp - 4]
call fcn.00662fec
cmp byte [eax + 0x33], 0
je 0x66416a
push 0x1b
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x664148
push 0x11
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jl 0x664148
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x66416a
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0xc8]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x8c]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x664187
lea eax, [ebp - 0x18]
call fcn.00405154
ret