Function at 0x1003cea0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x1017f064]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x10182c7a], 0
je 0x1003d32d
push esi
lea eax, [ebp - 0x50]
mov byte [ebp - 0x29], 0
push eax
lea eax, [ebp - 0x54]
mov dword [ebp - 0x44], 0
push eax
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x40], 0
xorps xmm3, xmm3
lea edx, [ebp - 0x48]
push eax
movss dword [ebp - 0x38], xmm3
call fcn.1003e430
mov dword [ebp - 0x34], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x34]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x34]
lea ecx, [ebp - 0x40]
call fcn.10028060
lea ecx, [ebp - 0x44]
call fcn.10029060
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x44]
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x28]
call fcn.10039700
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x44]
lea edx, [ebp - 0x18]
lea ecx, [ebp - 0x1c]
call fcn.10039650
movss xmm1, dword [0x10182c64]
lea ecx, [ebp - 0x3c]
movss xmm0, dword [0x10182c70]
add esp, 0x20
subss xmm1, dword [ebp - 0x18]
subss xmm0, dword [ebp - 0x1c]
call fcn.10039d60
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x57
call esi
movss xmm0, dword [0x10176f50]
movss dword [ebp - 0x30], xmm0
test ax, ax
jns 0x1003cf8a
mov byte [0x10182a9f], 0
jmp 0x1003cfaa
cmp dword [ebp - 0x48], 0
xorps xmm0, xmm0
mov byte [0x10182a9f], 1
movss dword [ebp - 0x34], xmm0
jne 0x1003cfd6
cmp dword [ebp - 0x4c], 0xffffff81
movss dword [ebp - 0x34], xmm0
jne 0x1003cfd6
push 0xa0
mov byte [ebp - 0x29], 1
call esi
test ax, ax
jns 0x1003cfe8
mov byte [0x10182b31], 0
movss xmm0, dword [0x10176f98]
addss xmm0, dword [0x10176d7c]
movss dword [ebp - 0x34], xmm0
push 0x53
call esi
test ax, ax
jns 0x1003d007
mov byte [0x10182a97], 0
jmp 0x1003d01a
mov edx, 7
mov byte [0x10182b31], 1
call fcn.1002eef0
test al, al
jne 0x1003cfc1
movss xmm0, dword [0x10176f50]
jmp 0x1003cfc9
cmp dword [ebp - 0x48], 0
mov byte [0x10182a97], 1
jne 0x1003d047
cmp dword [ebp - 0x4c], 0x7f
jne 0x1003d047
push 0xa0
mov byte [ebp - 0x29], 1
call esi
test ax, ax
jns 0x1003d059
mov byte [0x10182b31], 0
movss xmm1, dword [0x10176f98]
movss xmm0, dword [ebp - 0x34]
subss xmm0, xmm1
movss dword [ebp - 0x34], xmm0
push 0x20
call esi
test ax, ax
jns 0x1003d078
mov byte [0x10182a31], 0
jmp 0x1003d08d
mov edx, 7
mov byte [0x10182b31], 1
call fcn.1002eef0
test al, al
jne 0x1003d031
movss xmm1, dword [0x10176f50]
jmp 0x1003d039
mov edx, 6
mov byte [0x10182a31], 1
call fcn.1002eef0
test al, al
je 0x1003d0b9
push 0xa0
mov byte [ebp - 0x29], 1
call esi
test ax, ax
jns 0x1003d0ce
mov byte [0x10182b31], 0
movss xmm0, dword [0x10176f98]
addss xmm0, dword [0x10176d7c]
movss dword [ebp - 0x38], xmm0
push 0xa2
call esi
test ax, ax
jns 0x1003d0ed
mov byte [0x10182b35], 0
jmp 0x1003d102
mov edx, 7
mov byte [0x10182b31], 1
call fcn.1002eef0
test al, al
jne 0x1003d0a4
movss xmm0, dword [0x10176f50]
jmp 0x1003d0ac
mov edx, 4
mov byte [0x10182b35], 1
call fcn.1002eef0
test al, al
je 0x1003d14c
push 0xa0
mov byte [ebp - 0x29], 1
call esi
test ax, ax
jns 0x1003d11b
mov byte [0x10182b31], 0
jmp 0x1003d130
mov edx, 7
mov byte [0x10182b31], 1
call fcn.1002eef0
test al, al
je 0x1003d13d
movss xmm0, dword [0x10176f98]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x38]
subss xmm0, dword [ebp - 0x30]
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [ebp - 0x3c]
subss xmm0, dword [0x10176f80]
mov eax, dword [ebp - 0x40]
pop esi
movss dword [ebp - 0x3c], xmm0
test eax, eax
jne 0x1003d2a6
mov dword [ebp - 0x30], eax
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x30]
xor cl, cl
call fcn.1002a820
mov dword [ebp - 0x30], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x30]
mov cl, 1
call fcn.100265e0
mov dword [ebp - 0x30], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x30]
call fcn.100263f0
add esp, 0xc
cmp byte [ebp - 0x29], 0
je 0x1003d26b
movss xmm0, dword [ebp - 0x38]
subss xmm0, dword [0x10176f4c]
mov dword [ebp - 0x30], 0
movss dword [ebp - 0x38], xmm0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
movss xmm3, dword [ebp - 0x38]
lea eax, [ebp - 8]
movss xmm2, dword [ebp - 0x34]
lea edx, [ebp - 0xc]
push eax
push dword [ebp - 0x30]
lea ecx, [ebp - 0x10]
xorps xmm1, xmm1
call fcn.10026f60
mov dword [ebp - 0x30], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x30]
movss xmm3, dword [ebp - 8]
movss xmm2, dword [ebp - 0xc]
movss xmm1, dword [ebp - 0x10]
call fcn.100274b0
add esp, 0xc
mov dword [ebp - 0x30], 0
call fcn.10025be0
mov ecx, eax
call fcn.1003d450
lea edx, [ebp - 0x30]
mov ecx, eax
call fcn.1003d4f0
push dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x3c]
call fcn.10027600
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004955b
mov esp, ebp
pop ebp
ret
push eax
xor cl, cl
call fcn.1002a970
add esp, 4
cmp byte [ebp - 0x29], 0
je 0x1003d2f8
movss xmm3, dword [ebp - 0x38]
lea eax, [ebp - 8]
subss xmm3, dword [0x10176ee0]
movss xmm2, dword [ebp - 0x34]
lea edx, [ebp - 0xc]
push eax
push dword [ebp - 0x40]
lea ecx, [ebp - 0x10]
xorps xmm1, xmm1
call fcn.100282f0
push dword [ebp - 0x40]
movss xmm3, dword [ebp - 8]
movss xmm2, dword [ebp - 0xc]
movss xmm1, dword [ebp - 0x10]
call fcn.1003dfb0
add esp, 0xc
movss xmm1, dword [ebp - 0x3c]
movss xmm0, dword [0x101770c4]
comiss xmm1, xmm0
jbe 0x1003d322
subss xmm1, xmm0
andps xmm1, xmmword [0x10177410]
addss xmm1, dword [0x10176d7c]
movss dword [ebp - 0x3c], xmm1
push dword [ebp - 0x40]
call fcn.1003e060
add esp, 4
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004955b
mov esp, ebp
pop ebp
ret