Function at 0x460574
Capabilities:
Check for unmoving mouse cursor
Log keystrokes via polling

Disassembly:
push ebx
push esi
add esp, 0xfffffff0
mov ebx, eax
mov eax, dword [edx + 4]
cmp eax, 0x3e7
jne 0x460811
push 0x3e7
mov eax, ebx
call fcn.0042a1ec
push eax
call sub.user32.dll_KillTimer
lea eax, [esp + 8]
push eax
call sub.user32.dll_GetCursorPos
call sub.user32.dll_CreatePopupMenu
mov esi, eax
cmp byte [ebx + 0xd72], 0
je 0x4605e5
mov eax, dword [0x473978]
cmp dword [eax], 0
je 0x4605cc
mov eax, dword [0x473978]
mov eax, dword [eax]
cmp byte [eax + 0x44], 0
jne 0x4605e5
mov eax, dword [ebx + 0xe30]
call fcn.00403ddc
push eax
push 0x8f
push 0
push esi
call sub.user32.dll_AppendMenuA
cmp byte [ebx + 0xdb2], 0
je 0x460611
mov eax, dword [ebx + 0xe40]
call fcn.00403ddc
push eax
push 0x87
xor eax, eax
mov al, byte [ebx + 0xd22]
shl eax, 3
push eax
push esi
call sub.user32.dll_AppendMenuA
cmp byte [ebx + 0xdc2], 0
je 0x460640
mov eax, dword [ebx + 0xe44]
call fcn.00403ddc
push eax
push 0x88
mov al, byte [ebx + 0xc2a]
xor al, 1
and eax, 0x7f
shl eax, 3
push eax
push esi
call sub.user32.dll_AppendMenuA
cmp byte [ebx + 0xdd2], 0
je 0x46066f
mov eax, dword [ebx + 0xe48]
call fcn.00403ddc
push eax
push 0x8a
mov al, byte [ebx + 0xc5e]
xor al, 1
and eax, 0x7f
shl eax, 3
push eax
push esi
call sub.user32.dll_AppendMenuA
cmp byte [ebx + 0xde2], 0
je 0x46069b
mov eax, dword [ebx + 0xe4c]
call fcn.00403ddc
push eax
push 0x89
xor eax, eax
mov al, byte [ebx + 0xd32]
shl eax, 3
push eax
push esi
call sub.user32.dll_AppendMenuA
mov eax, dword [0x473930]
mov eax, dword [eax]
mov eax, dword [eax + 0x24]
push eax
call sub.user32.dll_IsIconic
test eax, eax
jne 0x46074c
mov eax, dword [0x473978]
cmp dword [eax], 0
je 0x4606de
mov eax, dword [0x473978]
mov eax, dword [eax]
cmp byte [eax + 0x44], 0
je 0x4606de
push 0x4608e4
push 0x81
push 0
push esi
call sub.user32.dll_AppendMenuA
jmp 0x4606f7
mov eax, dword [ebx + 0xe34]
call fcn.00403ddc
push eax
push 0x8e
push 0
push esi
call sub.user32.dll_AppendMenuA
cmp byte [ebx + 0xda2], 0
je 0x460789
cmp byte [ebx + 0x2f18], 0
jne 0x460716
cmp byte [ebx + 0x136], 2
jne 0x460731
mov eax, dword [ebx + 0xe38]
call fcn.00403ddc
push eax
push 0x90
push 0
push esi
call sub.user32.dll_AppendMenuA
jmp 0x460789
mov eax, dword [ebx + 0xe3c]
call fcn.00403ddc
push eax
push 0x90
push 0
push esi
call sub.user32.dll_AppendMenuA
jmp 0x460789
cmp byte [ebx + 0x136], 2
jne 0x460770
mov eax, dword [ebx + 0xe38]
call fcn.00403ddc
push eax
push 0x90
push 0
push esi
call sub.user32.dll_AppendMenuA
jmp 0x460789
mov eax, dword [ebx + 0xe38]
call fcn.00403ddc
push eax
push 0x8c
push 0
push esi
call sub.user32.dll_AppendMenuA
mov eax, dword [ebx + 0xe2c]
call fcn.00403ddc
push eax
push 0x8d
push 0
push esi
call sub.user32.dll_AppendMenuA
mov eax, ebx
call fcn.0042a1ec
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, ebx
call fcn.0042a1ec
push eax
call sub.user32.dll_SetFocus
mov eax, dword [ebx + 0x2f68]
test eax, eax
je 0x4607ca
mov byte [eax + 0x57], 1
push 0
mov eax, ebx
call fcn.0042a1ec
push eax
push 0
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x18]
push eax
push 0x28
push esi
call sub.user32.dll_TrackPopupMenu
test eax, eax
je 0x4607f8
push 0
push 0
push 0
push esi
call sub.user32.dll_PostMessageA
mov eax, dword [ebx + 0x2f68]
test eax, eax
je 0x460806
mov byte [eax + 0x57], 0
push esi
call sub.user32.dll_DestroyMenu
jmp 0x4608dd
cmp eax, 0x4cf
jne 0x4608dd
cmp byte [ebx + 0x2f74], 0
je 0x4608dd
push esp
call sub.user32.dll_GetCursorPos
push 0x17
call sub.user32.dll_GetSystemMetrics
test eax, eax
setne al
and eax, 0x7f
inc eax
push eax
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jl 0x460858
xor edx, edx
mov eax, ebx
call fcn.00462ebc
jmp 0x4608dd
mov ecx, dword [esp]
sub ecx, dword [ebx + 0x2f78]
mov esi, dword [esp + 4]
sub esi, dword [ebx + 0x2f7c]
cmp byte [ebx + 0x2f75], 0
jne 0x46088c
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jge 0x46088c
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 8
jl 0x4608dd
mov edx, dword [ebx + 0x30]
add edx, ecx
mov eax, ebx
call fcn.00425f88
mov edx, dword [ebx + 0x34]
add edx, esi
mov eax, ebx
call fcn.00425fa8
mov eax, dword [esp]
mov dword [ebx + 0x2f78], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0x2f7c], eax
push 0xffffffffffffffff
mov eax, dword [ebx + 0x3c]
push eax
mov eax, dword [ebx + 0x38]
push eax
mov eax, dword [ebx + 0x34]
push eax
mov eax, dword [ebx + 0x30]
push eax
mov eax, ebx
call fcn.0042a1ec
push eax
call sub.user32.dll_MoveWindow
mov byte [ebx + 0x2f75], 1
add esp, 0x10
pop esi
pop ebx
ret