Function at 0x10132124
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x101be6ec]
push ebx
push esi
push edi
cmp byte [eax + 1], 0
mov edi, ecx
mov dword [ebp - 0xc], edi
je 0x101321c1
call fcn.1005c41f
movsd xmm0, qword [0x101afc88]
mov esi, eax
movsd xmm1, qword [0x101afe58]
mov ebx, edx
mov edi, dword [edi + 0x14]
call fcn.10160390
mov ecx, dword [ebp - 0xc]
movsd qword [ebp - 0x20], xmm0
mov ecx, dword [ecx + 0x10]
sub ecx, esi
sbb edi, ebx
mov edx, edi
call fcn.1015f9a0
movsd xmm1, qword [ebp - 0x20]
lea ecx, [ebp - 0x28]
mulsd xmm1, xmm0
mov dword [ebp - 0x28], 0x3f800000
mov dword [ebp - 0x24], 0x3f800000
mov dword [ebp - 0x20], 0x3f800000
addsd xmm1, qword [0x101afca0]
cvtpd2ps xmm0, xmm1
movss dword [ebp - 0x10], xmm0
divss xmm0, dword [0x101afdac]
movss dword [ebp - 0x1c], xmm0
call fcn.100f0840
mov ecx, dword [0x101be6c0]
mov edi, eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
mov ecx, dword [ecx + 0x1c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x14]
movss xmm0, dword [0x101afc38]
comiss xmm0, dword [ebp - 0x10]
ja 0x101321c1
mov eax, dword [ebp - 4]
cdq
sub eax, edx
mov ebx, dword [ebp - 0xc]
mov esi, eax
mov eax, dword [ebp - 8]
sar esi, 1
cdq
sub eax, edx
sar eax, 1
lea ecx, [esi - 5]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
lea ecx, [eax - 5]
add eax, 0xfffffff1
movss dword [ebp - 0x14], xmm0
movd xmm0, ecx
lea ecx, [esi - 0xf]
cvtdq2ps xmm0, xmm0
push ecx
mov dword [esp], 0x3f800000
push edi
movss dword [ebp - 0x10], xmm0
movd xmm0, ecx
mov ecx, dword [ebx + 0x18]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
movd xmm0, eax
lea eax, [ebp - 0x14]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x20]
push eax
movss dword [ebp - 0x1c], xmm0
call fcn.10106450
mov eax, dword [ebp - 4]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [ebp - 8]
sar esi, 1
cdq
sub eax, edx
sar eax, 1
lea ecx, [esi + 5]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
lea ecx, [eax + 5]
add eax, 0xf
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
lea ecx, [esi + 0xf]
cvtdq2ps xmm0, xmm0
push ecx
mov dword [esp], 0x3f800000
push edi
movss dword [ebp - 0x1c], xmm0
movd xmm0, ecx
mov ecx, dword [ebx + 0x18]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
lea eax, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x14]
push eax
movss dword [ebp - 0x10], xmm0
call fcn.10106450
mov eax, dword [ebp - 4]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [ebp - 8]
sar esi, 1
cdq
sub eax, edx
lea ecx, [esi - 5]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
sar eax, 1
lea ecx, [eax + 5]
add eax, 0xf
movd xmm0, ecx
lea ecx, [esi - 0xf]
cvtdq2ps xmm0, xmm0
push ecx
mov dword [esp], 0x3f800000
push edi
movss dword [ebp - 0x1c], xmm0
movd xmm0, ecx
mov ecx, dword [ebx + 0x18]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
lea eax, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x14]
push eax
movss dword [ebp - 0x10], xmm0
call fcn.10106450
mov eax, dword [ebp - 4]
cdq
sub eax, edx
mov esi, eax
mov eax, dword [ebp - 8]
sar esi, 1
cdq
sub eax, edx
sar eax, 1
lea ecx, [esi + 5]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
lea ecx, [eax - 5]
add eax, 0xfffffff1
movss dword [ebp - 0x20], xmm0
movd xmm0, ecx
lea ecx, [esi + 0xf]
cvtdq2ps xmm0, xmm0
push ecx
mov dword [esp], 0x3f800000
push edi
movss dword [ebp - 0x1c], xmm0
movd xmm0, ecx
mov ecx, dword [ebx + 0x18]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x14], xmm0
movd xmm0, eax
lea eax, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [ebp - 0x14]
push eax
movss dword [ebp - 0x10], xmm0
call fcn.10106450
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret