Function at 0x10163340
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0x2c]
sub esp, 0x44
mov ecx, dword [0x1024f340]
push esi
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x1031ab3c]
cmp eax, dword [ecx + 4]
jle 0x1016339d
push 0x1031ab3c
call fcn.101928b8
add esp, 4
cmp dword [0x1031ab3c], 0xffffffff
jne 0x1016339d
push 0x1031ab3c
mov dword [0x1031aad0], 0
mov dword [0x1031aacc], 0x10314804
call fcn.10192867
add esp, 4
mov eax, dword [0x1031aacc]
mov eax, dword [eax]
test eax, eax
jne 0x101633bb
mov dword [0x1031aad0], eax
mov byte [0x1031093c], 0
pop esi
mov esp, ebp
pop ebp
ret 8
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
and al, 1
movzx eax, al
mov dword [0x1031aad0], eax
je 0x101633ad
cmp byte [0x1031093c], 0
jne 0x10163414
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x3c]
push eax
call fcn.1007f6f0
mov byte [0x1031093c], 1
movss xmm0, dword [eax]
movss dword [0x1024d330], xmm0
movss xmm0, dword [eax + 4]
movss dword [0x1024d334], xmm0
movss xmm0, dword [eax + 8]
movss dword [0x1024d338], xmm0
mov ecx, dword [0x1024f68c]
lea edx, [esp + 0x30]
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x4c]
call eax
movss xmm0, dword [esp + 0x30]
mulss xmm0, dword [0x10237790]
movss dword [esp + 0x24], xmm0
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
cvtsd2ss xmm0, xmm0
lea eax, [esp + 0xc]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x18], eax
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x24]
fsincos
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
fstp dword [edx]
fstp dword [eax]
movss xmm0, dword [esp + 0x34]
lea eax, [esp + 0x14]
movss xmm1, dword [0x10237790]
mulss xmm0, xmm1
mov dword [esp + 0x1c], eax
lea eax, [esp + 8]
mov dword [esp + 0x18], eax
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x24]
fsincos
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
fstp dword [edx]
fstp dword [eax]
movss xmm0, dword [esp + 0x38]
lea eax, [esp + 0x2c]
mulss xmm0, xmm1
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x18], eax
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x24]
fsincos
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
fstp dword [edx]
fstp dword [eax]
movss xmm5, dword [esp + 0x14]
xorps xmm3, xmm3
movss xmm6, dword [esp + 0xc]
movaps xmm0, xmm5
movss xmm4, dword [esp + 8]
movss xmm2, dword [esp + 0x28]
xorps xmm2, xmmword [0x10237f00]
movss xmm7, dword [esp + 0x2c]
mulss xmm7, dword [0x10237b78]
mov esi, dword [ebp + 8]
mulss xmm0, xmm6
movss dword [esp + 0x24], xmm2
movss xmm2, dword [esp + 0x10]
mulss xmm2, dword [esp + 0x28]
mov eax, dword [esi + 0x24]
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm4
mulss xmm0, xmm6
movss dword [esp + 8], xmm3
movss dword [esp + 0x1c], xmm0
movaps xmm0, xmm4
xorps xmm0, xmmword [0x10237f00]
mulss xmm0, xmm7
mulss xmm7, xmm5
movss dword [esp + 0x14], xmm0
movaps xmm0, xmm2
movss xmm1, dword [esp + 0x14]
mulss xmm0, xmm5
movss xmm5, dword [esp + 0x18]
mulss xmm2, xmm4
movss xmm4, dword [esp + 0x10]
subss xmm1, xmm0
mulss xmm4, dword [0x10237b78]
xorps xmm0, xmm0
subss xmm7, xmm2
xorps xmm2, xmm2
movss dword [esp + 0x10], xmm2
movss dword [esp + 0x14], xmm1
xorps xmm1, xmm1
mulss xmm4, xmm6
movss dword [esp + 0xc], xmm1
movss xmm6, dword [esp + 0x1c]
test al, 8
je 0x1016360a
movss xmm2, dword [esp + 0x24]
movaps xmm3, xmm5
addss xmm2, xmm0
movaps xmm1, xmm6
addss xmm3, xmm0
addss xmm1, xmm0
movss xmm0, dword [esp + 0x20]
subss xmm2, xmm0
movss dword [esp + 8], xmm3
movss dword [esp + 0xc], xmm1
movss dword [esp + 0x10], xmm2
jmp 0x10163610
movss xmm0, dword [esp + 0x20]
test al, 0x10
je 0x10163638
subss xmm2, dword [esp + 0x24]
subss xmm3, xmm5
subss xmm1, xmm6
addss xmm2, xmm0
movss dword [esp + 8], xmm3
movss dword [esp + 0xc], xmm1
movss dword [esp + 0x10], xmm2
movss xmm0, dword [esp + 0x14]
test eax, 0x200
je 0x10163663
subss xmm3, xmm0
subss xmm1, xmm7
subss xmm2, xmm4
movss dword [esp + 8], xmm3
movss dword [esp + 0xc], xmm1
movss dword [esp + 0x10], xmm2
test eax, 0x400
je 0x10163688
addss xmm3, xmm0
addss xmm1, xmm7
addss xmm2, xmm4
movss dword [esp + 8], xmm3
movss dword [esp + 0xc], xmm1
movss dword [esp + 0x10], xmm2
movaps xmm0, xmm1
mulss xmm0, xmm1
movaps xmm1, xmm3
mulss xmm1, xmm3
addss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, xmm2
addss xmm0, xmm1
call fcn.1006f270
xorps xmm4, xmm4
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jp 0x101636be
xorps xmm3, xmm3
xorps xmm2, xmm2
jmp 0x101636dc
movss xmm4, dword [esp + 8]
movss xmm3, dword [esp + 0xc]
movss xmm2, dword [esp + 0x10]
divss xmm4, xmm0
divss xmm3, xmm0
divss xmm2, xmm0
movss xmm1, dword [0x1031531c]
movaps xmm0, xmm1
mulss xmm0, xmm4
addss xmm0, dword [0x1024d330]
movss dword [0x1024d330], xmm0
movaps xmm0, xmm1
mulss xmm0, xmm3
mulss xmm1, xmm2
addss xmm0, dword [0x1024d334]
addss xmm1, dword [0x1024d338]
movss dword [0x1024d334], xmm0
movss dword [0x1024d338], xmm1
mov dword [esi + 0x24], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
pop esi
mov esp, ebp
pop ebp
ret 8