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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push ebx
push esi
push edi
mov esi, ecx
call fcn.0043625b
xor edi, edi
mov ebx, eax
cmp dword [esi + 0x11c], edi
je 0x430753
cmp dword [esi + 0x128], edi
je 0x430753
push dword [esi + 0x1c]
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
call edi
test eax, eax
je 0x430865
cmp dword [ebx + 0x9c], 0
jne 0x430865
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x28]
push eax
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowRect]
push 3
lea ecx, [ebp - 0x28]
pop eax
push eax
push eax
push eax
push eax
call fcn.004d82a4
lea eax, [ebp - 0x18]
push eax
push dword [ebx + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, ebx
call fcn.004225d6
test eax, eax
je 0x4305f0
mov ecx, ebx
call fcn.00422c73
sub dword [ebp - 0xc], eax
mov ecx, ebx
call fcn.00422614
test eax, eax
je 0x4305ff
sub dword [ebp - 0xc], 0xb
push dword [ebp - 4]
lea eax, [ebp - 0x28]
push dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x43066e
xor ebx, ebx
cmp dword [esi + 0x124], ebx
jne 0x430670
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jl 0x430670
inc dword [esi + 0x144]
mov ecx, dword [esi + 0x144]
lea eax, [esi + 0x144]
cmp ecx, 5
mov dword [esi + 0xe4], ebx
jbe 0x430865
push 0xa
mov dword [eax], ebx
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
mov dword [esi + 0x120], ebx
call fcn.0043096d
jmp 0x430734
xor ebx, ebx
push 8
lea ecx, [ebp - 0x18]
pop eax
push eax
push eax
push eax
push eax
call fcn.004d82c2
push dword [ebp - 4]
lea eax, [ebp - 0x18]
push dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x430719
cmp dword [esi + 0x108], ebx
mov dword [esi + 0x144], ebx
je 0x4306b0
lea eax, [ebp - 0x18]
mov ecx, esi
push eax
call fcn.00430bb5
mov eax, dword [esi + 0xdc]
sub eax, dword [ebp - 8]
push eax
call fcn.00473783
cmp eax, 3
pop ecx
jge 0x4306e2
mov eax, dword [esi + 0xe0]
sub eax, dword [ebp - 4]
push eax
call fcn.00473783
cmp eax, 3
pop ecx
jge 0x4306e2
inc dword [esi + 0xe4]
jmp 0x4306e8
mov dword [esi + 0xe4], ebx
mov eax, dword [ebp - 8]
cmp dword [esi + 0xe4], 0x3c
mov dword [esi + 0xdc], eax
mov eax, dword [ebp - 4]
mov dword [esi + 0xe0], eax
ja 0x430734
mov eax, dword [esi + 0xe8]
add esi, 0xe8
push dword [eax + 0x1c]
call edi
jmp 0x430858
inc dword [esi + 0xe4]
cmp dword [esi + 0xe4], 5
lea eax, [esi + 0xe4]
jbe 0x430865
mov dword [eax], ebx
mov eax, dword [esi + 0xe8]
add esi, 0xe8
push dword [eax + 0x1c]
call edi
test eax, eax
je 0x430865
push ebx
jmp 0x43085e
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x430865
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
cmp ebx, edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], edi
je 0x430790
mov ebx, dword [ebx + 0x1c]
cmp ebx, edi
je 0x430790
lea eax, [ebp - 0x18]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
push dword [ebp - 4]
lea eax, [ebp - 0x18]
push dword [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x4307e4
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jl 0x4307e4
push 0xa
mov dword [esi + 0x144], edi
push dword [esi + 0x1c]
mov dword [esi + 0xe4], edi
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [esi + 0xe8]
mov dword [esi + 0x120], edi
add esi, 0xe8
cmp eax, edi
je 0x430865
jmp 0x43082f
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
cmp dword [esi + 0xdc], eax
mov dword [esi + 0x144], edi
jne 0x430808
cmp dword [esi + 0xe0], ecx
jne 0x430808
inc dword [esi + 0xe4]
jmp 0x43080e
mov dword [esi + 0xe4], edi
cmp dword [esi + 0xe4], 0x3c
mov dword [esi + 0xdc], eax
mov dword [esi + 0xe0], ecx
jbe 0x43083f
mov eax, dword [esi + 0xe8]
add esi, 0xe8
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x430865
push edi
jmp 0x43085e
mov eax, dword [esi + 0xe8]
add esi, 0xe8
cmp eax, edi
je 0x430865
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x430865
push 5
mov ecx, dword [esi]
call fcn.004d236d
pop edi
pop esi
pop ebx
leave
ret