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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push edi
mov esi, ecx
call fcn.004266f5
xor ebx, ebx
mov dword [ebp - 4], eax
cmp dword [esi + 0xdc], ebx
je 0x4226d1
cmp dword [esi + 0xe8], ebx
je 0x4226d1
push dword [esi + 0x1c]
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
call edi
test eax, eax
je 0x4227b3
mov eax, dword [ebp - 4]
cmp dword [eax + 0x90], ebx
jne 0x4227b3
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ebx, dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x2c]
push eax
push dword [esi + 0x1c]
call ebx
push 3
lea ecx, [ebp - 0x2c]
pop eax
push eax
push eax
push eax
push eax
call fcn.004a1d59
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x1c]
call ebx
mov ecx, dword [ebp - 4]
call fcn.004180fe
test eax, eax
je 0x4225a5
mov ecx, dword [ebp - 4]
call fcn.004185ac
sub dword [ebp - 0x10], eax
mov ecx, dword [ebp - 4]
call fcn.00418128
test eax, eax
je 0x4225b5
sub dword [ebp - 0x10], 9
push dword [ebp - 8]
lea eax, [ebp - 0x2c]
push dword [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x422624
xor ebx, ebx
cmp dword [esi + 0xe4], ebx
jne 0x422626
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jl 0x422626
inc dword [esi + 0x104]
mov ecx, dword [esi + 0x104]
lea eax, [esi + 0x104]
cmp ecx, 5
mov dword [esi + 0xa8], ebx
jbe 0x4227b3
push 0xa
mov dword [eax], ebx
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_KillTimer]
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
mov dword [esi + 0xe0], ebx
call fcn.00422887
jmp 0x42277d
xor ebx, ebx
push 8
lea ecx, [ebp - 0x1c]
pop eax
push eax
push eax
push eax
push eax
call fcn.004a1d77
push dword [ebp - 8]
lea eax, [ebp - 0x1c]
push dword [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x4226b1
cmp dword [esi + 0xcc], ebx
mov dword [esi + 0x104], ebx
je 0x422662
lea eax, [ebp - 0x1c]
mov ecx, esi
push eax
call fcn.00422acf
mov eax, dword [esi + 0xa0]
sub eax, dword [ebp - 0xc]
push eax
call fcn.0043e1d3
cmp eax, 3
pop ecx
jge 0x422694
mov eax, dword [esi + 0xa4]
sub eax, dword [ebp - 8]
push eax
call fcn.0043e1d3
cmp eax, 3
pop ecx
jge 0x422694
inc dword [esi + 0xa8]
jmp 0x42269a
mov dword [esi + 0xa8], ebx
mov eax, dword [ebp - 0xc]
mov dword [esi + 0xa0], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0xa4], eax
jmp 0x422774
inc dword [esi + 0xa8]
cmp dword [esi + 0xa8], 5
lea eax, [esi + 0xa8]
jbe 0x4227b3
mov dword [eax], ebx
jmp 0x42277d
push dword [esi + 0x1c]
mov edi, dword [sym.imp.USER32.dll_IsWindowVisible]
call edi
test eax, eax
je 0x4227b3
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 4]
push dword [eax + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowRect]
push dword [ebp - 8]
lea eax, [ebp - 0x2c]
push dword [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
jne 0x42273e
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jl 0x42273e
push 0xa
mov dword [esi + 0x104], ebx
push dword [esi + 0x1c]
mov dword [esi + 0xa8], ebx
call dword [sym.imp.USER32.dll_KillTimer]
mov dword [esi + 0xe0], ebx
jmp 0x42277d
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
cmp dword [esi + 0xa0], eax
mov dword [esi + 0x104], ebx
jne 0x422762
cmp dword [esi + 0xa4], ecx
jne 0x422762
inc dword [esi + 0xa8]
jmp 0x422768
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xa0], eax
mov dword [esi + 0xa4], ecx
cmp dword [esi + 0xa8], 0x3c
jbe 0x422795
mov eax, dword [esi + 0xac]
add esi, 0xac
push dword [eax + 0x1c]
call edi
test eax, eax
je 0x4227b3
push ebx
jmp 0x4227ac
mov eax, dword [esi + 0xac]
add esi, 0xac
push dword [eax + 0x1c]
call edi
test eax, eax
jne 0x4227b3
push 5
mov ecx, dword [esi]
call fcn.0049c0a7
pop edi
pop esi
pop ebx
leave
ret