Function at 0x1001f2a5
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x134
cmp byte [0x102733f1], 0
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x1c], esi
je 0x1001fd23
mov edx, dword [0x102373dc]
mov eax, dword [0x102733d0]
cmp edx, 3
ja case.0x1001f27d.0
jmp dword [edx*4 + 0x1001fd4c]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x1001f2b5
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x1001f2b5
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x1001fd23
cmp dword [0x1023d288], 0
je 0x1001fd23
call fcn.1000c050
test byte [0x102734b8], 1
jne 0x1001fd23
cmp eax, 8
je 0x1001fd23
cmp eax, 0xa
je 0x1001fd23
cmp eax, 9
je 0x1001fd23
cmp dword [0x1027347c], 0
jne 0x1001fb21
mov ecx, dword [0x1023d1c8]
push str.m_yaw
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [0x1023d1c8]
mov esi, eax
push str.sensitivity
mov edx, dword [ecx]
call dword [edx + 0x44]
mov ecx, dword [esi]
mov edi, eax
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x20], ecx
mov ecx, esi
call dword [esp + 0x20]
mov ecx, dword [edi]
fstp dword [esp + 0x2c]
mov eax, dword [ecx + 0x30]
mov ecx, edi
mov dword [esp + 0x20], eax
call dword [esp + 0x20]
mov eax, dword [0x1023d214]
lea ecx, [esp + 0x3c]
movss xmm0, dword [0x10237338]
mov esi, dword [esp + 0x1c]
movss xmm1, dword [0x1022fb18]
divss xmm0, dword [eax + 0x20]
mov dword [esp + 0x38], 0x41f00000
movsx eax, word [esi + 0x48]
mov dword [esp + 0x3c], 0xc1f00000
fstp dword [esp + 0x20]
addss xmm0, dword [0x1022f964]
cvttss2si ebp, xmm0
movd xmm0, eax
lea eax, [esp + 0x20]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x24], ebp
mulss xmm0, dword [esp + 0x2c]
mulss xmm0, dword [esp + 0x20]
comiss xmm0, dword [0x1022fcb0]
movss dword [esp + 0x20], xmm0
cmovae ecx, eax
lea eax, [esp + 0x38]
comiss xmm1, xmm0
cmovae eax, ecx
cmp byte [0x1027343a], 0
movss xmm0, dword [eax]
movss dword [esp + 0x18], xmm0
je 0x1001f3ed
ucomiss xmm0, dword [0x1022f858]
mov dword [esp + 0x20], 4
lahf
test ah, 0x44
jp 0x1001f3f5
mov dword [esp + 0x20], 2
movss xmm0, dword [esi + 0x24]
mov eax, dword [0x1026ebd4]
mov ecx, dword [0x1026ebd8]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esi + 0x28]
movss dword [esp + 0x3c], xmm0
movq xmm0, qword [esi + 0xc]
movq qword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x48]
movss dword [0x10273474], xmm0
cmp eax, ecx
je 0x1001f43b
mov ecx, eax
mov dword [0x1026ebd8], ecx
mov eax, dword [0x1023d21c]
mov edi, dword [0x1023d288]
test eax, eax
jne 0x1001f482
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov ecx, dword [0x1026ebd8]
mov esi, dword [esp + 0x1c]
mov dword [0x1023d21c], eax
add eax, edi
cmp ecx, dword [0x1026ebdc]
je 0x1001f4a3
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x1026ebd8], 0xc
jmp 0x1001f4af
push eax
push ecx
mov ecx, 0x1026ebd4
call fcn.100077d0
movss xmm1, dword [esp + 0x18]
xor ebx, ebx
mov dword [esp + 0x34], ebx
nop dword [eax + eax]
movss dword [esp + 0x40], xmm1
cmp ebx, 1
jle 0x1001f879
movss xmm2, dword [esp + 0x18]
movaps xmm0, xmm1
movd xmm1, dword [0x102373b0]
cvtdq2ps xmm1, xmm1
divss xmm2, xmm1
movss dword [esp + 0x18], xmm2
call fcn.10009440
movss xmm1, dword [esp + 0x18]
movaps xmm2, xmm0
movaps xmm0, xmm1
movss dword [esp + 0x28], xmm2
call fcn.10009440
comiss xmm2, xmm0
jb 0x1001faf0
push esi
lea ecx, [esp + 0x74]
call fcn.10018e30
cmp ebx, 2
jne 0x1001f532
or dword [esp + 0xa0], 4
mov byte [0x10273458], 1
jmp 0x1001f546
cmp ebx, 3
jne 0x1001f57a
and dword [esp + 0xa0], 0xfffffffb
mov byte [0x10273458], 0
movss xmm0, dword [esp + 0x48]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esp + 0x94], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esp + 0x98], xmm0
mov byte [0x10273464], 1
call fcn.10027840
mov ebx, 1
cmp ebp, ebx
jl 0x1001f838
nop dword [eax]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
push ecx
mulss xmm0, dword [esp + 0x1c]
addss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x34], xmm0
fld dword [esp + 0x34]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x1001f5c3
xorps xmm1, xmm1
jmp 0x1001f62f
movss xmm1, dword [esp + 0x30]
comiss xmm1, dword [0x1022fcc4]
jb 0x1001f5df
movss xmm0, dword [0x1022fb98]
comiss xmm0, xmm1
jae 0x1001f62f
movaps xmm0, xmm1
mulss xmm0, dword [0x1022f8b0]
call fcn.10009440
movss dword [esp + 0x2c], xmm0
fld dword [esp + 0x2c]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [esp + 0x34]
xorps xmm0, xmm0
add esp, 4
comiss xmm0, xmm1
fstp dword [esp + 0x2c]
movss xmm0, dword [esp + 0x2c]
mulss xmm0, dword [0x1022fbd0]
jbe 0x1001f62b
addss xmm1, xmm0
jmp 0x1001f62f
subss xmm1, xmm0
movss dword [esp + 0x80], xmm1
subss xmm1, dword [0x10273474]
movaps xmm0, xmm1
call fcn.10009440
comiss xmm0, dword [0x102733bc]
ja 0x1001f834
lea ecx, [esp + 0x70]
call fcn.100273c0
call fcn.10027ab0
mov eax, dword [0x1023d310]
mov edi, dword [0x1023d288]
mov ebp, edi
test eax, eax
jne 0x1001f6a8
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov edi, dword [0x1023d288]
mov dword [0x1023d310], eax
movss xmm0, dword [eax + ebp + 8]
comiss xmm0, dword [0x1022f858]
ja 0x1001f830
test eax, eax
jne 0x1001f6ed
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d310], eax
movss xmm1, dword [edi + eax + 4]
movss xmm0, dword [edi + eax]
mulss xmm0, xmm0
mov dword [esp + 0x50], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x2c], xmm0
sqrtss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x50]
ucomiss xmm0, dword [0x1022f858]
lahf
test ah, 0x44
jnp 0x1001f830
call fcn.1000c050
cmp eax, 9
je 0x1001f830
mov eax, dword [0x1023d21c]
mov edi, dword [0x1023d288]
test eax, eax
jne 0x1001f780
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d21c], eax
mov ecx, dword [0x1026ebd8]
add eax, edi
cmp ecx, dword [0x1026ebdc]
je 0x1001f7a7
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x1026ebd8], 0xc
jmp 0x1001f7b3
push eax
push ecx
mov ecx, 0x1026ebd4
call fcn.100077d0
lea edx, [esp + 0x17]
mov byte [esp + 0x17], 0
lea ecx, [esp + 0x70]
call fcn.1001ef90
test al, al
jne 0x1001f7de
mov ebp, dword [esp + 0x24]
cmp byte [esp + 0x17], al
jne 0x1001f834
inc ebx
cmp ebx, ebp
jle 0x1001f590
jmp 0x1001f834
mov eax, dword [0x1023d214]
movss xmm0, dword [esp + 0x94]
movss dword [0x1027346c], xmm0
movss xmm0, dword [esp + 0x98]
mov ecx, dword [eax + 0x1c]
movss dword [0x10273470], xmm0
movss xmm0, dword [esp + 0x18]
mov dword [0x1027347c], ebx
lea eax, [ecx + ebx]
mov dword [0x10273478], ebx
mov dword [0x10273460], eax
mov dword [0x1027345c], ecx
movss dword [0x10273468], xmm0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
movd xmm0, dword [0x102373b0]
movss xmm1, dword [esp + 0x40]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
addss xmm1, dword [esp + 0x18]
movaps xmm0, xmm1
movss dword [esp + 0x18], xmm1
call fcn.10009440
movss xmm2, dword [esp + 0x28]
comiss xmm2, xmm0
mov ebx, dword [esp + 0x34]
jae 0x1001f512
jmp 0x1001faec
push esi
lea ecx, [esp + 0xdc]
call fcn.10018e30
test ebx, ebx
jne 0x1001f89b
or dword [esp + 0x108], 4
mov byte [0x10273458], 1
jmp 0x1001f8af
cmp ebx, 1
jne 0x1001f8cc
and dword [esp + 0x108], 0xfffffffb
mov byte [0x10273458], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov byte [0x10273464], 0
call fcn.10027840
mov ebx, 1
cmp ebp, ebx
jl 0x1001facb
nop
lea ecx, [esp + 0xd8]
call fcn.100273c0
call fcn.10027ab0
mov eax, dword [0x1023d310]
mov edi, dword [0x1023d288]
mov ebp, edi
test eax, eax
jne 0x1001f936
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov edi, dword [0x1023d288]
mov dword [0x1023d310], eax
movss xmm0, dword [eax + ebp + 8]
comiss xmm0, dword [0x1022f858]
ja 0x1001fad3
test eax, eax
jne 0x1001f97b
mov edx, 0xe80c2f78
mov ecx, 0x102119f5
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d310], eax
movss xmm1, dword [edi + eax + 4]
movss xmm0, dword [edi + eax]
mulss xmm0, xmm0
mov dword [esp + 0x60], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x28], xmm0
sqrtss xmm0, dword [esp + 0x28]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x60]
ucomiss xmm0, dword [0x1022f858]
lahf
test ah, 0x44
jnp 0x1001fac3
call fcn.1000c050
cmp eax, 9
je 0x1001fad3
mov eax, dword [0x1023d21c]
mov edi, dword [0x1023d288]
test eax, eax
jne 0x1001fa0e
mov edx, 0xe80c2f78
mov ecx, 0x10211651
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x1021165d
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov dword [0x1023d21c], eax
mov ecx, dword [0x1026ebd8]
add eax, edi
cmp ecx, dword [0x1026ebdc]
je 0x1001fa35
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x1026ebd8], 0xc
jmp 0x1001fa41
push eax
push ecx
mov ecx, 0x1026ebd4
call fcn.100077d0
lea edx, [esp + 0x17]
mov byte [esp + 0x17], 0
lea ecx, [esp + 0xd8]
call fcn.1001ef90
mov ebp, dword [esp + 0x24]
test al, al
jne 0x1001fa6f
cmp byte [esp + 0x17], al
jne 0x1001fad7
inc ebx
cmp ebx, ebp
jle 0x1001f8e0
jmp 0x1001fad7
mov eax, dword [0x1023d214]
movss xmm0, dword [esp + 0xfc]
movss xmm1, dword [esp + 0x18]
movss dword [0x1027346c], xmm0
mov ecx, dword [eax + 0x1c]
movss xmm0, dword [esp + 0x100]
mov dword [0x1027347c], ebx
mov dword [0x10273478], ebx
lea eax, [ecx + ebx]
mov dword [0x1027345c], ecx
mov dword [0x10273460], eax
movss dword [0x10273470], xmm0
movss dword [0x10273468], xmm1
jmp 0x1001fadd
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x18]
jmp 0x1001fae1
mov ebp, dword [esp + 0x24]
movss xmm1, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xd8], vtable.c_usercmd.0
mov ebx, dword [esp + 0x34]
cmp dword [0x1027347c], 0
jne 0x1001fb21
inc ebx
mov dword [esp + 0x34], ebx
cmp ebx, dword [esp + 0x20]
jl 0x1001f4c0
mov byte [0x10273361], 0
mov byte [0x10273480], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
cmp dword [0x1027347c], 1
lea edx, [esi + 0x24]
jne 0x1001fb53
cmp byte [0x1027341d], 0
je 0x1001fb4c
push str.datashell_print_edgebugged
push dword [0x1023d314]
call fcn.1000c000
add esp, 8
lea edx, [esi + 0x24]
mov byte [0x10273480], 1
mov ecx, dword [esi + 0x30]
mov eax, ecx
or eax, 4
mov byte [0x10273361], 1
and ecx, 4
cmp byte [0x10273458], 0
cmovne ecx, eax
mov dword [esi + 0x30], ecx
cmp byte [0x10273464], 0
je 0x1001fd05
cmp byte [0x102733cd], 0
je 0x1001fd05
mov ecx, dword [0x1023d1c8]
push str.sv_gravity
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x28], ecx
mov ecx, eax
call dword [esp + 0x28]
mov eax, dword [0x1023d214]
movss xmm0, dword [0x1027346c]
mulss xmm0, dword [0x1022f964]
push ecx
fstp dword [esp + 0x2c]
movss xmm1, dword [esp + 0x2c]
mulss xmm1, dword [eax + 0x20]
mov eax, dword [0x10273478]
sub eax, dword [0x1027347c]
inc eax
mulss xmm0, xmm1
movss dword [esi + 0x24], xmm0
movss xmm0, dword [0x10273470]
mulss xmm0, dword [0x1022f964]
mulss xmm0, xmm1
movss dword [esi + 0x28], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10273468]
addss xmm0, dword [0x10273474]
movss dword [esp + 0x34], xmm0
fld dword [esp + 0x34]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x1001fc48
dec dword [0x1027347c]
xorps xmm1, xmm1
movss dword [esi + 0x10], xmm1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
movss xmm0, dword [esp + 0x30]
comiss xmm0, dword [0x1022fcc4]
jb 0x1001fc7d
movss xmm1, dword [0x1022fb98]
comiss xmm1, xmm0
jb 0x1001fc7d
dec dword [0x1027347c]
movaps xmm1, xmm0
movss dword [esi + 0x10], xmm1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
mulss xmm0, dword [0x1022f8b0]
call fcn.10009440
movss dword [esp + 0x28], xmm0
fld dword [esp + 0x28]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm2, dword [esp + 0x34]
xorps xmm0, xmm0
add esp, 4
comiss xmm0, xmm2
fstp dword [esp + 0x20]
jbe 0x1001fcda
movss xmm1, dword [esp + 0x20]
mulss xmm1, dword [0x1022fbd0]
dec dword [0x1027347c]
addss xmm1, xmm2
movss dword [esi + 0x10], xmm1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
movss xmm0, dword [esp + 0x20]
movaps xmm1, xmm2
mulss xmm0, dword [0x1022fbd0]
dec dword [0x1027347c]
subss xmm1, xmm0
movss dword [esi + 0x10], xmm1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
dec dword [0x1027347c]
mov dword [edx], 0
mov dword [esi + 0x28], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
pop edi
pop esi
pop ebp
mov dword [0x1027345c], 0
mov dword [0x10273460], 0
mov dword [0x1027347c], 0
pop ebx
add esp, 0x134
ret