Function at 0x1000f390
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x10084f5d
push eax
mov dword fs:[0], esp
sub esp, 0x18
mov eax, dword [0x100a6008]
push esi
mov esi, dword [eax]
test esi, esi
je 0x1000f681
mov ecx, esi
call fcn.10002230
cmp dword [eax], 0
jle 0x1000f681
mov eax, dword [esi + 8]
lea ecx, [esi + 8]
mov eax, dword [eax + 0x24]
call eax
test al, al
jne 0x1000f681
mov eax, dword fs:[0x2c]
mov ecx, dword [0x100a5250]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x1010a59c]
cmp eax, dword [esi + 4]
jg 0x1000f6a8
mov eax, dword [0x1010a584]
cmp eax, dword [esi + 4]
jg 0x1000f6f9
push dword [0x100939ac]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000f661
cmp byte [0x1009391d], 0
je 0x1000f661
mov eax, dword [0x100a6008]
mov ecx, dword [eax]
call fcn.10002bb0
test byte [eax], 1
je 0x1000f661
mov eax, dword [0x100a5e14]
mov ecx, dword [0x100a5fe4]
push str.sv_friction
and dword [eax + 0x30], 0xfffdffff
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
call eax
mov ecx, dword [eax + 0x1c]
mov ecx, dword [ecx + 0x2c]
xor ecx, eax
mov eax, dword [0x100a6008]
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax]
call fcn.1000b850
movss xmm0, dword [ebp - 0x10]
mulss xmm0, dword [eax]
mov eax, dword [0x100a6008]
movss dword [ebp - 0x14], xmm0
mov ecx, dword [eax]
call fcn.10002d30
movq xmm0, qword [eax]
mov eax, dword [0x100a6008]
movq qword [ebp - 0x24], xmm0
movss xmm0, dword [0x1009655c]
movss dword [ebp - 0x10], xmm0
mov ecx, dword [eax]
call fcn.100058d0
test eax, eax
je 0x1000f542
mov eax, dword [0x100a6008]
mov ecx, dword [eax]
call fcn.100058d0
test eax, eax
je 0x1000f542
mov ecx, dword [eax]
mov edx, dword [ecx + 0x6f8]
mov ecx, eax
call edx
test eax, eax
je 0x1000f542
mov eax, dword [0x100a6008]
mov ecx, dword [eax]
call fcn.1000b6c0
cmp byte [eax], 0
mov eax, dword [0x100a6008]
mov ecx, dword [eax]
je 0x1000f520
call fcn.100058d0
mov ecx, eax
test ecx, ecx
jne 0x1000f50c
movss xmm0, dword [eax + 0x130]
jmp 0x1000f53d
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
movss xmm0, dword [eax + 0x130]
jmp 0x1000f53d
call fcn.100058d0
mov ecx, eax
test ecx, ecx
je 0x1000f535
mov eax, dword [ecx]
mov eax, dword [eax + 0x6f8]
call eax
movss xmm0, dword [eax + 0x12c]
movss dword [ebp - 0x10], xmm0
mov eax, dword [0x100a6008]
mov ecx, dword [eax]
call fcn.1000b530
movss xmm0, dword [eax]
comiss xmm0, dword [0x1009635c]
movss xmm0, dword [ebp - 0x10]
jbe 0x1000f568
divss xmm0, dword [0x100964b8]
mulss xmm0, dword [ebp - 0x14]
mov eax, dword [0x100a5fbc]
mov ecx, dword [0x1010a580]
movss xmm1, dword [ebp - 0x24]
mulss xmm1, xmm1
mulss xmm0, dword [eax + 0x20]
mov eax, dword [ecx + 0x1c]
movss dword [ebp - 0x10], xmm0
movss xmm0, dword [ebp - 0x20]
mov esi, dword [eax + 0x30]
mov eax, dword [0x100a5fcc]
xor esi, ecx
mulss xmm0, xmm0
sub esi, dword [eax + 0x4cb0]
addss xmm0, xmm1
call fcn.1001c1b0
movaps xmm1, xmm0
movss dword [ebp - 0x18], xmm0
divss xmm1, dword [ebp - 0x10]
push ecx
movss dword [esp], xmm1
call fcn.10062c2f
mov eax, dword [0x100a5fcc]
add esp, 4
fstp dword [ebp - 0x14]
cvttss2si ecx, dword [ebp - 0x14]
inc ecx
cmp dword [eax + 0x4cb0], 0
jg 0x1000f690
call fcn.1000bb30
movss xmm0, dword [ebp - 0x18]
sub esp, 8
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
push str.Fakelag::Fakewalk
push str.__s____Animation_Velocity:__f_n
call fcn.10006160
mov eax, dword [0x100a6008]
add esp, 0x10
mov ecx, dword [eax]
call fcn.10002720
movss xmm1, dword [eax]
movss xmm0, dword [eax + 4]
subss xmm0, dword [0x1010a594]
subss xmm1, dword [0x1010a590]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1001c1b0
cvtss2sd xmm0, xmm0
sub esp, 8
movsd qword [esp], xmm0
push str.Fakelag::Fakewalk
push str.__s____Moved:__f_n
call fcn.10006160
add esp, 0x10
mov eax, dword [0x100a6008]
mov ecx, dword [eax]
call fcn.10002720
movq xmm0, qword [eax]
movq qword [0x1010a590], xmm0
mov eax, dword [eax + 8]
mov dword [0x1010a598], eax
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
cmp esi, ecx
jg 0x1000f681
call fcn.1000bb30
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
push 0x1010a59c
call fcn.1005d40e
add esp, 4
cmp dword [0x1010a59c], 0xffffffff
jne 0x1000f3fe
mov dword [ebp - 4], 0
mov ecx, dword [0x100a5fe4]
push str.sv_maxusrcmdprocessticks
mov eax, dword [ecx]
mov eax, dword [eax + 0x44]
call eax
push 0x1010a59c
mov dword [0x1010a580], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1005d3bd
add esp, 4
jmp 0x1000f3fe
push 0x1010a584
call fcn.1005d40e
add esp, 4
cmp dword [0x1010a584], 0xffffffff
jne 0x1000f40f
mov dword [ebp - 4], 1
mov eax, dword [0x100a6008]
mov ecx, dword [eax]
call fcn.10002720
push 0x1010a584
movq xmm0, qword [eax]
movq qword [0x1010a590], xmm0
mov eax, dword [eax + 8]
mov dword [0x1010a598], eax
mov dword [ebp - 4], 0xffffffff
call fcn.1005d3bd
add esp, 4
jmp 0x1000f40f