Function at 0x1000a1f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x100950f0
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x20
cmp byte [0x100c5070], 0
push esi
push edi
mov edi, ecx
je 0x1000a5ba
push dword [0x100c506c]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000a5ba
mov eax, dword [0x100c4f8c]
mov ecx, dword [eax]
test ecx, ecx
je 0x1000a5ba
cmp dword [ecx + 0x25c], 8
je 0x1000a5ba
call fcn.10009e00
test byte [eax], 1
jne 0x1000a5ba
mov eax, dword [0x100c4f8c]
mov ecx, dword [eax]
call fcn.10009f80
movss xmm1, dword [eax + 4]
movss xmm0, dword [eax]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.100065e0
movss xmm1, dword [0x100a9c4c]
comiss xmm1, xmm0
movss dword [ebp - 0x1c], xmm0
ja 0x1000a5ba
mov dword [ebp - 4], 0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x100c0e8c]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x100c5400]
cmp eax, dword [esi + 4]
jle 0x1000a308
push 0x100c5400
call fcn.1006cd15
add esp, 4
cmp dword [0x100c5400], 0xffffffff
jne 0x1000a308
mov ecx, dword [0x100c197c]
push str.sv_maxspeed
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
call eax
push 0x100c5400
mov dword [0x100c53e0], eax
call fcn.1006ccc4
add esp, 4
mov eax, dword [0x100c53e8]
cmp eax, dword [esi + 4]
jle 0x1000a34f
push 0x100c53e8
call fcn.1006cd15
add esp, 4
cmp dword [0x100c53e8], 0xffffffff
jne 0x1000a34f
mov ecx, dword [0x100c197c]
push str.sv_airaccelerate
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
call eax
push 0x100c53e8
mov dword [0x100c5410], eax
call fcn.1006ccc4
add esp, 4
mov eax, dword [0x100c541c]
cmp eax, dword [esi + 4]
jle 0x1000a396
push 0x100c541c
call fcn.1006cd15
add esp, 4
cmp dword [0x100c541c], 0xffffffff
jne 0x1000a396
mov ecx, dword [0x100c197c]
push str.sv_air_max_wishspeed
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
call eax
push 0x100c541c
mov dword [0x100c53f4], eax
call fcn.1006ccc4
add esp, 4
mov ecx, dword [0x100c53f4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x100c5410]
fstp dword [ebp - 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
fdivr dword [ebp - 0x2c]
mov ecx, dword [0x100c53e0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
fstp dword [ebp - 0x2c]
call eax
movss xmm1, dword [ebp - 0x2c]
fstp dword [ebp - 0x24]
divss xmm1, dword [ebp - 0x24]
movss xmm0, dword [0x100a9ba8]
mulss xmm1, dword [0x100a9cbc]
divss xmm1, dword [ebp - 0x1c]
comiss xmm0, xmm1
jbe 0x1000a407
comiss xmm1, dword [0x100a9d78]
jbe 0x1000a407
cvtps2pd xmm0, xmm1
call fcn.100910d0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
jmp 0x1000a40a
xorps xmm1, xmm1
xorps xmm0, xmm0
movss dword [ebp - 0x14], xmm1
ucomiss xmm1, xmm0
mov dword [ebp - 4], 0xffffffff
lahf
test ah, 0x44
jnp 0x1000a5ba
movss xmm0, dword [edi + 0x10]
mulss xmm0, dword [0x100a9c20]
mov eax, dword [0x100c4f8c]
divss xmm0, dword [0x100a9cd0]
mov ecx, dword [eax]
movss dword [ebp - 0x24], xmm0
call fcn.10009f80
movss xmm0, dword [eax]
mov eax, dword [0x100c4f8c]
movss dword [ebp - 0x2c], xmm0
mov ecx, dword [eax]
call fcn.10009f80
movss xmm0, dword [eax + 4]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0x2c]
fld qword [ebp - 0x20]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
fld qword [ebp - 0x30]
call fcn.10090f60
fstp qword [ebp - 0x30]
movsd xmm0, qword [ebp - 0x30]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [ebp - 0x24]
movss dword [ebp - 0x24], xmm0
movss xmm0, dword [edi + 0x28]
xorps xmm0, xmmword [0x100aa210]
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
movss xmm0, dword [edi + 0x24]
fld qword [ebp - 0x30]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x30], xmm0
fld qword [ebp - 0x30]
call fcn.10090f60
movss xmm0, dword [ebp - 0x24]
fstp dword [ebp - 0x2c]
subss xmm0, dword [ebp - 0x2c]
push ecx
movss dword [ebp - 0x1c], xmm0
fld dword [ebp - 0x1c]
fstp dword [esp]
call fcn.1007f87e
movss xmm4, dword [0x100a9c54]
add esp, 4
test ax, ax
jg 0x1000a526
movss xmm0, dword [ebp - 0x1c]
sub esp, 8
mov dword [esp + 4], 0x40c90fdb
movss dword [esp], xmm0
call fcn.100724a3
movss xmm4, dword [0x100a9c54]
add esp, 8
fstp dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x1c]
jmp 0x1000a529
xorps xmm1, xmm1
movss xmm2, dword [ebp - 0x24]
xorps xmm3, xmm3
comiss xmm2, dword [ebp - 0x2c]
jbe 0x1000a546
comiss xmm1, dword [0x100a9c20]
jb 0x1000a557
subss xmm1, xmm4
jmp 0x1000a557
movss xmm0, dword [0x100a9d84]
comiss xmm0, xmm1
jb 0x1000a557
addss xmm1, xmm4
comiss xmm3, xmm1
jbe 0x1000a56c
movss xmm0, dword [ebp - 0x14]
addss xmm0, xmm2
movss dword [ebp - 0x14], xmm0
jmp 0x1000a579
subss xmm2, dword [ebp - 0x14]
movaps xmm0, xmm2
movss dword [ebp - 0x14], xmm2
cvtps2pd xmm0, xmm0
call fcn.100918e0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [0x100a9ce4]
movss dword [edi + 0x24], xmm1
movss xmm1, dword [ebp - 0x14]
cvtps2pd xmm0, xmm1
call fcn.100925f0
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x100aa210]
mulss xmm0, dword [0x100a9ce4]
movss dword [edi + 0x28], xmm0
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret