Function at 0x4053f1
Capabilities:
Get graphical window text
Log keystrokes via polling

Disassembly:
enter 0x560, 0
push ebx
push esi
push edi
push 0x40a9f6
push 0x405875
call fcn.00407f14
mov eax, dword [ebp - 0x560]
and eax, 0
mov dword [ebp - 0x560], eax
mov eax, dword [ebp + 0xc]
sub eax, 0xbaba
jne 0x4055cc
cmp dword [ebp + 0x14], 0xd
jne 0x405440
cmp dword [ebp + 0x10], 0xd
jne 0x405440
mov eax, dword [0x40fd2d]
mov dword [ebp - 0x560], eax
jmp 0x40585d
push 0x101
lea eax, [ebp - 0x128]
push eax
push dword [ebp + 0x10]
call sub.user32.dll_GetWindowTextA
lea eax, [ebp - 0x128]
push eax
call fcn.004051a4
test eax, eax
je 0x4055c7
push 0x11
lea eax, [ebp - 0x26]
push eax
push dword [ebp + 0x14]
call sub.user32.dll_GetKeyNameTextA
mov eax, dword [ebp + 0x10]
cmp eax, dword [0x40b540]
je 0x405505
push 0x40b759
lea eax, [ebp - 0x12c]
push eax
push dword [0x40b759]
call fcn.00407960
push 0x40a99c
call fcn.004079c4
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.00406fc2
call fcn.00407874
pop eax
push dword [eax]
call fcn.004079c4
push 0x40a9ab
call fcn.004079c4
lea eax, [ebp - 0x234]
push eax
call fcn.004030ef
pop eax
push dword [eax]
call fcn.004079c4
push 0x40a9b7
call fcn.004079c4
pop eax
push dword [eax]
call fcn.00407928
mov eax, dword [ebp + 0x10]
mov dword [0x40b540], eax
lea eax, [ebp - 0x26]
push eax
call fcn.00406edc
cmp eax, 1
jne 0x405558
push 0x40b759
lea eax, [ebp - 0x33c]
push eax
push dword [0x40b759]
call fcn.00407960
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0x334]
push eax
lea eax, [ebp - 0x26]
push eax
call fcn.00406fc2
call fcn.00407874
pop eax
push dword [eax]
call fcn.004079c4
pop eax
push dword [eax]
call fcn.00407928
jmp 0x4055af
push 0x40b759
lea eax, [ebp - 0x340]
push eax
push dword [0x40b759]
call fcn.00407960
push 0x40a9c2
call fcn.004079c4
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x440]
push eax
lea eax, [ebp - 0x26]
push eax
call fcn.00406fc2
call fcn.00407874
pop eax
push dword [eax]
call fcn.004079c4
push 0x40a9cc
call fcn.004079c4
pop eax
push dword [eax]
call fcn.00407928
mov eax, dword [0x40b759]
test eax, eax
je 0x4055bb
mov eax, dword [eax - 4]
cmp eax, 0x3e8
jl 0x4055c7
call fcn.0040217d
jmp 0x405846
sub eax, 0xfffffff7
jne 0x405664
cmp byte [0x40b0d4], 0
je 0x4055e3
jmp 0x40585d
mov esi, dword [0x40b715]
test esi, esi
je 0x4055f0
mov esi, dword [esi - 4]
dec esi
and edi, 0
jmp 0x405654
mov eax, edi
mov ecx, 4
cdq
idiv ecx
test edx, edx
je 0x405608
test edi, edi
jne 0x405653
lea eax, [ebp - 0x448]
push eax
push dword [0x40b715]
mov eax, edi
inc eax
push eax
push 4
call fcn.00407a58
pop eax
push dword [eax]
call fcn.00404df6
push dword [0x40b550]
push 0x141
push 0xdead
mov eax, dword [0x40b520]
push dword [eax + 8]
mov eax, dword [0x40b520]
push dword [eax + 4]
call sub.user32.dll_FindWindowA
push eax
call sub.user32.dll_PostMessageA
inc edi
cmp esi, edi
jge 0x4055f6
push 0
call sub.user32.dll_PostQuitMessage
jmp 0x405846
sub eax, 0x23fc
jne 0x405823
cmp byte [0x40b0d4], 0
jne 0x40567d
jmp 0x40585d
cmp dword [ebp + 0x10], 0x7b
jne 0x4056a5
push 0x40b711
push 0
call fcn.00407928
push 1
push 1
push 0xbab1
push dword [ebp + 0x14]
call sub.user32.dll_SendMessageA
jmp 0x405821
cmp dword [ebp + 0x10], 0x141
jne 0x405821
lea eax, [ebp - 0x54c]
push eax
lea eax, [ebp - 0x44c]
push eax
push dword [ebp + 0x14]
call fcn.00404e69
pop eax
push dword [eax]
push 0xff
call fcn.004078f8
lea eax, [ebp - 9]
push eax
push 4
call fcn.004076c4
push 0x40b711
lea eax, [ebp - 0x554]
push eax
push dword [0x40b711]
call fcn.00407960
lea eax, [ebp - 0x550]
push eax
lea eax, [ebp - 9]
push eax
call fcn.00407874
pop eax
push dword [eax]
call fcn.004079c4
pop eax
push dword [eax]
call fcn.00407928
push 0x40a9d6
lea eax, [ebp - 0x558]
push eax
lea eax, [ebp - 9]
push eax
call fcn.00407874
pop eax
push dword [eax]
call fcn.00407b5c
test eax, eax
je 0x405821
push 0x40a9e0
push dword [0x40b711]
call fcn.00407b5c
test eax, eax
je 0x40576f
push 0x40b711
push 0x40a9ea
push dword [0x40b711]
call fcn.00407b5c
push eax
push 1
call fcn.00407aa8
jmp 0x40573c
push 0x40b711
lea eax, [ebp - 0x55c]
push eax
push dword [0x40b711]
call fcn.00407960
push 0x40a9f4
call fcn.004079c4
pop eax
push dword [eax]
call fcn.00407928
mov esi, dword [0x40b711]
test esi, esi
je 0x4057a5
mov esi, dword [esi - 4]
push dword [0x40b702]
call fcn.00406edc
add esi, eax
add esi, 0x200
cmp esi, dword [0x40b568]
jle 0x4057dd
add dword [0x40b568], 0x1e00
push 0
push dword [0x40b568]
push dword [0x40b702]
call fcn.00407013
push dword [0x40b702]
mov eax, dword [0x40b711]
push eax
call fcn.00406f59
cmp byte [0x40b0d5], 0
jne 0x405815
push 0x404f0a
push 0x15b3
push 0x29a
push dword [ebp + 8]
call sub.user32.dll_SetTimer
mov byte [0x40b0d5], 1
push 0x40b711
push 0
call fcn.00407928
jmp 0x405846
sub eax, 0xffff2155
je 0x405838
sub eax, 0x10
je 0x405838
inc eax
inc eax
je 0x405838
sub eax, 6
jne 0x405846
call fcn.0040217d
push 0
call sub.user32.dll_PostQuitMessage
jmp 0x40585d
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call sub.user32.dll_DefWindowProcA
mov dword [ebp - 0x560], eax
xor eax, eax
pop dword fs:[eax]
add esp, 8
push 0x40587c
push 0x40a9f6
call fcn.00407f68
ret