Function at 0x10014200
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov byte [0x101c84e8], 0
cmp dword [0x100d2628], 2
push ebx
jne 0x10014224
cmp byte [0x101c8753], 0
je 0x10014224
mov bl, 1
jmp 0x10014226
xor bl, bl
mov ecx, dword [0x100d27c0]
mov eax, dword [0x100d27bc]
cmp ecx, 3
ja case.0x10014236.0
jmp dword [ecx*4 + 0x10014474]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1001426e
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1001426e
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
jne case.0x10014236.0
test bl, bl
je 0x1001446a
mov ecx, dword [0x101c84fc]
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101c8500]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edi, eax
test edi, edi
je 0x10014469
mov ecx, dword [0x101c8658]
cmp dword [ecx + edi], 0
jle 0x10014469
mov ecx, dword [0x101c84fc]
mov edx, dword [ecx]
mov eax, dword [edx + 0x138]
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x10014469
mov ecx, dword [0x101c867c]
mov ebx, dword [ecx + edi]
test ebx, ebx
je 0x10014469
cmp dword [eax + 0x2c], 0
jne 0x10014307
call fcn.10070d60
fsubr dword [0x101b4114]
mov eax, dword [ebp - 4]
fstp qword [ebp - 0xc]
movsd xmm0, qword [ebp - 0xc]
comisd xmm0, xmmword [0x100a5af0]
seta byte [0x101c8750]
xorps xmm1, xmm1
mov byte [0x101c84e8], 1
cvtsi2sd xmm1, dword [0x100d27c4]
push esi
mov esi, dword [ebp + 8]
mulsd xmm1, qword [0x100a5ae8]
movss xmm0, dword [esi + 0x28]
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [esi + 0x28], xmm0
cvtsi2sd xmm1, dword [0x100d27c4]
movss xmm0, dword [esi + 0x24]
mulsd xmm1, qword [0x100a5ae8]
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [esi + 0x24], xmm0
cmp byte [0x101c8750], 0
je 0x1001445a
mov ecx, dword [eax + 0x2c]
test ecx, ecx
je 0x100143b9
movss xmm0, dword [0x100a5450]
xor eax, eax
comiss xmm0, dword [ebx + 0xec]
seta al
add eax, 8
cmp ecx, eax
jle 0x10014468
movss xmm0, dword [0x100a53a4]
xorps xmm1, xmm1
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0x43e10000
comiss xmm0, dword [ebx + 0xec]
jbe 0x100143d1
jmp 0x100143ca
xorps xmm1, xmm1
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0x43e10000
mov dword [esi + 0x24], 0
mov eax, dword [0x101c8660]
movq xmm0, qword [eax + edi]
mov eax, dword [eax + edi + 8]
movq qword [ebp - 0x10], xmm0
movss xmm0, dword [ebp - 0x10]
subss xmm0, xmm1
mov dword [ebp - 8], eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x18], 0
push eax
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [ebp - 0xc]
subss xmm0, xmm1
mov dword [ebp - 0x14], 0
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [ebp - 8]
subss xmm0, xmm1
movss dword [ebp - 0x20], xmm0
call fcn.1006cd50
movss xmm0, dword [ebp - 0x18]
add esp, 4
addss xmm0, dword [0x100a53c0]
movss dword [esp], xmm0
push esi
call fcn.10071070
add esp, 8
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov dword [esi + 0x28], 0
mov dword [esi + 0x24], 0
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 4