Function at 0x5e0600
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x24
push ebp
push esi
mov esi, ecx
mov ecx, dword [0x6633d4]
mov eax, dword [ecx + 0x1dc]
cmp eax, 4
je 0x5e062b
cmp eax, 6
je 0x5e062b
cmp eax, 7
je 0x5e062b
cmp eax, 5
jne 0x5e0914
xor ebp, ebp
push ebp
call fcn.0041f6c0
test eax, eax
jne 0x5e0914
mov eax, dword [0x6633d4]
mov ecx, dword [eax + 0x28]
cmp dword [ecx + 0x8c0], ebp
je 0x5e0914
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov edx, dword [esi + 0x20]
cmp eax, dword [edx + 4]
jne 0x5e0914
mov ecx, 0x66d858
call fcn.005c1b30
test eax, eax
jne 0x5e0914
mov ecx, 0x66d858
call fcn.004ab260
test eax, eax
je 0x5e0693
mov ecx, 0x66d858
call fcn.004ab260
cmp eax, esi
jne 0x5e0914
cmp dword [esi + 0x8d4], ebp
jne 0x5e0914
mov ecx, dword [esi + 0x20]
push ebx
lea eax, [esp + 0x20]
push edi
mov edx, dword [ecx + 4]
push eax
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [0x6633d4]
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 1
mov dword [esp + 0x1c], ebp
mov ebx, dword [ecx + 0x28]
call edi
test ax, ax
jl 0x5e08fd
push 2
call edi
test ax, ax
jl 0x5e08fd
mov eax, dword [ebx + 0x8c8]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
add edx, eax
cmp ecx, edx
jge 0x5e0704
or ebp, 0xffffffff
jmp 0x5e0713
mov edx, dword [esp + 0x2c]
sub edx, eax
cmp ecx, edx
jle 0x5e0713
mov ebp, 1
mov ecx, dword [esp + 0x28]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x20]
cmp ecx, edx
jge 0x5e072c
mov dword [esp + 0x18], 0xffffffff
jmp 0x5e073e
mov edx, dword [esp + 0x30]
sub edx, eax
cmp ecx, edx
jle 0x5e073e
mov dword [esp + 0x18], 1
test bp, bp
jne 0x5e074e
cmp word [esp + 0x18], bp
je 0x5e08fd
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [esi + 0x8b4]
mov edx, dword [esi + 0x8b8]
mov edi, eax
sub eax, ecx
xor ecx, ecx
cmp edx, ecx
jne 0x5e077b
push 1
mov ecx, esi
call fcn.005e0420
fld dword [0x61b598]
jmp 0x5e07cf
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x8d4]
mov dword [esp + 0x14], ecx
fild qword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
fidiv dword [esp + 0x10]
fld st(0)
call fcn.005faa4c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fsub dword [esp + 0x10]
fcomp dword [0x61b588]
fnstsw ax
test ah, 1
je 0x5e07c5
fld dword [0x61b584]
jmp 0x5e07cb
fld dword [0x61b588]
fadd dword [esp + 0x10]
fcom dword [ebx + 0x8d0]
fnstsw ax
test ah, 0x41
jne 0x5e07e4
fstp st(0)
fld dword [ebx + 0x8d0]
fcom dword [0x61b584]
fnstsw ax
test ah, 0x41
jne 0x5e08ed
fld st(0)
fadd st(0), st(0)
fst dword [esp + 0x10]
fcomp dword [ebx + 0x8d0]
fnstsw ax
test ah, 0x41
jne 0x5e0814
mov ecx, dword [ebx + 0x8d0]
mov dword [esp + 0x10], ecx
cmp bp, 0xffff
jne 0x5e0843
mov ecx, dword [esi + 0x10c]
push 0
push ecx
fld dword [ecx + 0x16c]
fsub st(1)
fstp dword [esp]
fld dword [ecx + 0x168]
fsub st(1)
push ecx
fstp dword [esp]
fstp st(0)
call fcn.004ace50
jmp 0x5e0870
cmp bp, 1
jne 0x5e086e
mov ecx, dword [esi + 0x10c]
push 0
fld st(0)
fadd dword [ecx + 0x16c]
push ecx
fstp dword [esp]
push ecx
fadd dword [ecx + 0x168]
fstp dword [esp]
call fcn.004ace50
jmp 0x5e0870
fstp st(0)
mov ebx, dword [esp + 0x18]
cmp bx, 0xffff
jne 0x5e089c
mov ecx, dword [esi + 0x10c]
push 0
push ecx
fld dword [ecx + 0x16c]
fsub dword [esp + 0x18]
fstp dword [esp]
fld dword [esp + 0x18]
fadd dword [ecx + 0x168]
jmp 0x5e08c2
cmp bx, 1
jne 0x5e08cb
mov ecx, dword [esi + 0x10c]
push 0
fld dword [esp + 0x14]
fadd dword [ecx + 0x16c]
push ecx
fstp dword [esp]
fld dword [ecx + 0x168]
fsub dword [esp + 0x18]
push ecx
fstp dword [esp]
call fcn.004ace50
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x20]
mov ecx, dword [esi + 0x8b0]
test ecx, ecx
je 0x5e08e5
mov eax, dword [ecx]
push 1
call dword [eax + 0x20]
mov dword [esi + 0x8b4], edi
jmp 0x5e08f3
mov ebx, dword [esp + 0x18]
fstp st(0)
test bp, bp
jne 0x5e0906
test bx, bx
jne 0x5e0906
push 0
mov ecx, esi
call fcn.005e0420
mov eax, dword [esi + 0x8b8]
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x24
ret
push 0
mov ecx, esi
call fcn.005e0420
pop esi
xor eax, eax
pop ebp
add esp, 0x24
ret