Function at 0x10014d20
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
call fcn.10014890
movzx eax, al
test eax, eax
je 0x10014d78
mov ecx, dword [0x1003dd20]
push ecx
mov edx, dword [0x1003dd1c]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.10015190
add esp, 0x10
test eax, eax
je 0x10014d78
mov edx, dword [ebp + 0x10]
movzx eax, byte [edx + 0x14]
test eax, eax
jne 0x10014d68
mov dword [ebp - 4], 1
jmp 0x10014d6f
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 0x10]
mov dl, byte [ebp - 4]
mov byte [ecx + 0x14], dl
mov eax, dword [ebp + 0x10]
movzx ecx, byte [eax + 0x14]
test ecx, ecx
je 0x10014e3e
push 0x10034de4
push 0x10034de0
push ecx
movss xmm0, dword [0x10037c88]
movss dword [esp], xmm0
mov edx, dword [ebp + 0x10]
push edx
push 0
push 0x1e
mov eax, dword [0x1003dd1c]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.10017ce0
add esp, 0x24
push 0x10034df0
push 0x10034dec
push ecx
movss xmm0, dword [0x10037c88]
movss dword [esp], xmm0
mov eax, dword [ebp + 0x10]
add eax, 4
push eax
push 0
push 0x1e
mov ecx, dword [0x1003dd1c]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 0x55
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.10017ce0
add esp, 0x24
push 0x10034dfc
push 0x10034df8
push ecx
movss xmm0, dword [0x10037c88]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0x10]
add ecx, 8
push ecx
push 0
push 0x1e
mov edx, dword [0x1003dd1c]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0xaa
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.10017ce0
add esp, 0x24
jmp 0x10015103
cvtsi2ss xmm0, dword [ebp + 0xc]
push ecx
movss dword [esp], xmm0
cvtsi2ss xmm0, dword [ebp + 8]
push ecx
movss dword [esp], xmm0
call fcn.10014be0
add esp, 8
lea edx, [ebp - 0xc]
push edx
call dword [sym.imp.USER32.dll_GetCursorPos]
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
call dword [sym.imp.USER32.dll_ScreenToClient]
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
movsx ecx, ax
test ecx, ecx
je 0x10014f24
mov edx, dword [0x1003dd20]
push edx
mov eax, dword [0x1003dd1c]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.10015190
add esp, 0x10
test eax, eax
je 0x10014f24
mov eax, dword [ebp - 8]
sub eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x1c]
push edx
call fcn.10014c80
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.1000f3b0
cvtsi2ss xmm0, eax
mov eax, dword [ebp + 0x10]
movss dword [eax], xmm0
lea ecx, [ebp - 0x1c]
call fcn.1000f390
cvtsi2ss xmm0, eax
mov ecx, dword [ebp + 0x10]
movss dword [ecx + 4], xmm0
lea ecx, [ebp - 0x1c]
call fcn.100142c0
cvtsi2ss xmm0, eax
mov edx, dword [ebp + 0x10]
movss dword [edx + 8], xmm0
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp + 8]
cvtsi2ss xmm0, eax
mov ecx, dword [ebp + 0x10]
movss dword [ecx + 0xc], xmm0
mov edx, dword [ebp - 8]
sub edx, dword [ebp + 0xc]
cvtsi2ss xmm0, edx
mov eax, dword [ebp + 0x10]
movss dword [eax + 0x10], xmm0
mov ecx, dword [ebp + 0x10]
movss xmm0, dword [ecx + 0xc]
ucomiss xmm0, dword [0x10037b9c]
lahf
test ah, 0x44
jnp 0x10015103
mov edx, dword [ebp + 0x10]
movss xmm0, dword [edx + 0x10]
ucomiss xmm0, dword [0x10037b9c]
lahf
test ah, 0x44
jnp 0x10015103
push ecx
movss xmm0, dword [0x10037bbc]
movss dword [esp], xmm0
lea eax, [ebp - 0x2c]
push eax
call fcn.100143a0
add esp, 0xfffffff4
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
push ecx
movss xmm0, dword [0x10037c30]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10037c30]
movss dword [esp], xmm0
cvtsi2ss xmm0, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
addss xmm0, dword [ecx + 0x10]
subss xmm0, dword [0x10037c00]
push ecx
movss dword [esp], xmm0
cvtsi2ss xmm0, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
addss xmm0, dword [edx + 0xc]
subss xmm0, dword [0x10037c00]
push ecx
movss dword [esp], xmm0
mov ecx, dword [0x1003dd40]
call fcn.1001d920
push ecx
movss xmm0, dword [0x10037bbc]
movss dword [esp], xmm0
lea eax, [ebp - 0x3c]
push eax
call fcn.100143c0
add esp, 0xfffffff4
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
push ecx
movss xmm0, dword [0x10037c28]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10037c28]
movss dword [esp], xmm0
cvtsi2ss xmm0, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
addss xmm0, dword [ecx + 0x10]
subss xmm0, dword [0x10037bd8]
push ecx
movss dword [esp], xmm0
cvtsi2ss xmm0, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
addss xmm0, dword [edx + 0xc]
subss xmm0, dword [0x10037bd8]
push ecx
movss dword [esp], xmm0
mov ecx, dword [0x1003dd40]
call fcn.1001d920
push ecx
movss xmm0, dword [0x10037bbc]
movss dword [esp], xmm0
lea eax, [ebp - 0x4c]
push eax
call fcn.100143a0
add esp, 0xfffffff4
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
push ecx
movss xmm0, dword [0x10037bd8]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10037bd8]
movss dword [esp], xmm0
cvtsi2ss xmm0, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
addss xmm0, dword [ecx + 0x10]
subss xmm0, dword [0x10037bbc]
push ecx
movss dword [esp], xmm0
cvtsi2ss xmm0, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
addss xmm0, dword [edx + 0xc]
subss xmm0, dword [0x10037bbc]
push ecx
movss dword [esp], xmm0
mov ecx, dword [0x1003dd40]
call fcn.1001d920
mov eax, dword [ebp + 0x10]
cvttss2si ecx, dword [eax + 8]
push ecx
mov edx, dword [ebp + 0x10]
cvttss2si eax, dword [edx + 4]
push eax
mov ecx, dword [ebp + 0x10]
cvttss2si edx, dword [ecx]
push edx
lea ecx, [ebp - 0x5c]
call fcn.10014340
sub esp, 0x10
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
push ecx
movss xmm0, dword [0x10037c6c]
movss dword [esp], xmm0
push ecx
movss xmm0, dword [0x10037c8c]
movss dword [esp], xmm0
mov ecx, dword [ebp + 0xc]
add ecx, 0x11e
cvtsi2ss xmm0, ecx
push ecx
movss dword [esp], xmm0
cvtsi2ss xmm0, dword [ebp + 8]
push ecx
movss dword [esp], xmm0
mov ecx, dword [0x1003dd40]
call fcn.1001d8d0
mov esp, ebp
pop ebp
ret