Function at 0x10017315
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x134
cmp byte [0x10281600], 0
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x24], ebx
je 0x10017e9b
mov edx, dword [0x10247314]
mov eax, dword [0x102815d0]
cmp edx, 3
ja case.0x100172ed.0
jmp dword [edx*4 + 0x10017ec4]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x10017325
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x10017325
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10017e9b
cmp dword [0x10281360], 0
je 0x10017e9b
call fcn.1000b770
test byte [0x102816d4], 1
jne 0x10017e9b
cmp eax, 8
je 0x10017e9b
cmp eax, 0xa
je 0x10017e9b
cmp eax, 9
je 0x10017e9b
cmp dword [0x102816a0], 0
jne 0x10017c64
mov ecx, dword [0x1024b328]
push str.m_yaw
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [0x1024b328]
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 + 0x10], ecx
mov ecx, esi
call dword [esp + 0x10]
mov ecx, dword [edi]
fstp dword [esp + 0x1c]
mov eax, dword [ecx + 0x30]
mov ecx, edi
mov dword [esp + 0x10], eax
call dword [esp + 0x10]
mov eax, dword [0x102812e8]
lea ecx, [esp + 0x34]
movss xmm0, dword [str._n_]
mov esi, ebx
movss xmm1, dword [0x10240830]
fstp dword [esp + 0x10]
divss xmm0, dword [eax + 0x20]
movsx eax, word [esi + 0x44]
mov dword [esp + 0x30], 0x430c0000
mov dword [esp + 0x34], 0xc30c0000
addss xmm0, dword [0x10240604]
cvttss2si ebp, xmm0
movd xmm0, eax
lea eax, [esp + 0x10]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [esp + 0x1c]
mulss xmm0, dword [esp + 0x10]
comiss xmm0, dword [0x102409a8]
movss dword [esp + 0x10], xmm0
cmovae ecx, eax
lea eax, [esp + 0x30]
comiss xmm1, xmm0
cmovae eax, ecx
cmp byte [0x10281659], 0
movss xmm0, dword [eax]
movss dword [esp + 0x18], xmm0
je 0x10017457
ucomiss xmm0, dword [0x102404e0]
mov dword [esp + 0x10], 4
lahf
test ah, 0x44
jp 0x1001745f
mov dword [esp + 0x10], 2
movss xmm0, dword [esi + 0x24]
lea eax, [esi + 0x28]
mov ecx, dword [0x1027cbd0]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [eax]
movss dword [esp + 0x34], xmm0
movq xmm0, qword [esi + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [0x1027cbcc]
movq qword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x48]
movss dword [0x10281698], xmm0
cmp eax, ecx
je 0x100174ab
mov ecx, eax
mov dword [0x1027cbd0], ecx
mov eax, dword [0x102812f0]
mov edi, dword [0x10281360]
test eax, eax
jne 0x100174f0
mov edx, 0xe80c2f78
mov ecx, 0x102195cd
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, dword [0x1027cbd0]
mov esi, ebx
mov dword [0x102812f0], eax
add eax, edi
cmp ecx, dword [0x1027cbd4]
je 0x10017511
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x1027cbd0], 0xc
jmp 0x1001751d
push eax
push ecx
mov ecx, 0x1027cbcc
call fcn.10007700
mov ecx, dword [0x102813d8]
xor ebx, ebx
movss xmm2, dword [esp + 0x18]
mov dword [esp + 0x2c], ebx
nop
movss dword [esp + 0x3c], xmm2
cmp ebx, 1
jle 0x10017950
movd xmm1, dword [0x102472c0]
movaps xmm0, xmm2
cvtdq2ps xmm1, xmm1
divss xmm2, xmm1
movss dword [esp + 0x18], xmm2
call fcn.10009190
movaps xmm1, xmm0
movaps xmm0, xmm2
movss dword [esp + 0x40], xmm1
call fcn.10009190
comiss xmm1, xmm0
jb 0x10017bc9
mov eax, dword [0x1024b2f0]
mov ecx, dword fs:[0x2c]
mov edi, dword [ecx + eax*4]
mov dword [esp + 0x38], edi
nop dword [eax]
push esi
lea ecx, [esp + 0x74]
call fcn.10017ee0
cmp ebx, 2
jne 0x100175b0
or dword [esp + 0xa0], 4
mov byte [0x1028167c], 1
jmp 0x100175c4
cmp ebx, 3
jne 0x100175f8
and dword [esp + 0xa0], 0xfffffffb
mov byte [0x1028167c], 0
movss xmm0, dword [esp + 0x48]
movss dword [esp + 0x80], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x94], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp + 0x98], xmm0
mov byte [0x10281688], 1
mov eax, dword [0x1028159c]
mov esi, dword [eax + 0x1c]
mov eax, dword [0x10286fd0]
dec esi
cmp eax, dword [edi + 4]
jle 0x10017645
push 0x10286fd0
call fcn.1018b6e4
add esp, 4
cmp dword [0x10286fd0], 0xffffffff
jne 0x10017645
mov edx, str.55_8B_EC_8B_4D___56_E8_________8B_75
mov ecx, str.client.dll
call fcn.10007f00
push 0x10286fd0
mov dword [0x10286fd4], eax
call fcn.1018b693
add esp, 4
push esi
push 0
call dword [0x10286fd4]
mov ebx, 1
cmp ebp, ebx
jl 0x10017901
nop dword [eax + eax]
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
push ecx
mulss xmm0, dword [esp + 0x1c]
addss xmm0, dword [esp + 0x4c]
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x24]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x10017693
xorps xmm1, xmm1
jmp 0x100176ff
movss xmm1, dword [esp + 0x20]
comiss xmm1, dword [0x102409ac]
jb 0x100176af
movss xmm0, dword [0x10240840]
comiss xmm0, xmm1
jae 0x100176ff
movaps xmm0, xmm1
mulss xmm0, dword [0x10240538]
call fcn.10009190
movss dword [esp + 0x1c], xmm0
fld dword [esp + 0x1c]
push ecx
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
movss xmm1, dword [esp + 0x24]
xorps xmm0, xmm0
add esp, 4
comiss xmm0, xmm1
fstp dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
mulss xmm0, dword [0x1024089c]
jbe 0x100176fb
addss xmm1, xmm0
jmp 0x100176ff
subss xmm1, xmm0
movss dword [esp + 0x80], xmm1
subss xmm1, dword [0x10281698]
movaps xmm0, xmm1
call fcn.10009190
comiss xmm0, dword [0x102815b4]
ja 0x10017901
lea ecx, [esp + 0x70]
call fcn.1002a2e0
call fcn.1002a990
mov ecx, dword [0x102813d8]
mov edi, dword [0x10281360]
test ecx, ecx
jne 0x10017774
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, eax
mov dword [0x102813d8], ecx
movss xmm0, dword [edi + ecx + 8]
comiss xmm0, dword [0x102404e0]
ja 0x10017907
mov edi, dword [0x10281360]
test ecx, ecx
jne 0x100177c2
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, eax
mov dword [0x102813d8], ecx
movss xmm1, dword [edi + ecx + 4]
movss xmm0, dword [edi + ecx]
mulss xmm0, xmm0
mov dword [esp + 0x60], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x1c], xmm0
sqrtss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x60], xmm0
movss xmm0, dword [esp + 0x60]
ucomiss xmm0, dword [0x102404e0]
lahf
test ah, 0x44
jnp 0x10017901
call fcn.1000b770
cmp eax, 9
je 0x10017901
mov eax, dword [0x102812f0]
mov edi, dword [0x10281360]
test eax, eax
jne 0x10017855
mov edx, 0xe80c2f78
mov ecx, 0x102195cd
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102812f0], eax
mov ecx, dword [0x1027cbd0]
add eax, edi
cmp ecx, dword [0x1027cbd4]
je 0x1001787c
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x1027cbd0], 0xc
jmp 0x10017888
push eax
push ecx
mov ecx, 0x1027cbcc
call fcn.10007700
lea edx, [esp + 0x16]
mov byte [esp + 0x16], 0
lea ecx, [esp + 0x70]
call fcn.10016920
test al, al
jne 0x100178af
cmp byte [esp + 0x16], al
jne 0x10017901
inc ebx
cmp ebx, ebp
jle 0x10017660
jmp 0x10017901
mov eax, dword [0x102812e8]
movss xmm0, dword [esp + 0x94]
movss dword [0x10281690], xmm0
movss xmm0, dword [esp + 0x98]
mov ecx, dword [eax + 0x1c]
movss dword [0x10281694], xmm0
movss xmm0, dword [esp + 0x18]
mov dword [0x102816a0], ebx
lea eax, [ecx + ebx]
mov dword [0x1028169c], ebx
mov dword [0x10281684], eax
mov dword [0x10281680], ecx
movss dword [0x1028168c], xmm0
mov ecx, dword [0x102813d8]
movd xmm0, dword [0x102472c0]
movss xmm2, dword [esp + 0x3c]
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
addss xmm2, dword [esp + 0x18]
movaps xmm0, xmm2
movss dword [esp + 0x18], xmm2
call fcn.10009190
movss xmm1, dword [esp + 0x40]
comiss xmm1, xmm0
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x24]
jae 0x10017590
jmp 0x10017bc5
push esi
lea ecx, [esp + 0xdc]
call fcn.10017ee0
test ebx, ebx
jne 0x10017972
or dword [esp + 0x108], 4
mov byte [0x1028167c], 1
jmp 0x10017986
cmp ebx, 1
jne 0x100179a3
and dword [esp + 0x108], 0xfffffffb
mov byte [0x1028167c], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
mov byte [0x10281688], 0
mov eax, dword [0x1028159c]
mov ecx, dword fs:[0x2c]
mov esi, dword [eax + 0x1c]
mov eax, dword [0x1024b2f0]
dec esi
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10286fd0]
cmp eax, dword [ecx + 4]
jle 0x100179ff
push 0x10286fd0
call fcn.1018b6e4
add esp, 4
cmp dword [0x10286fd0], 0xffffffff
jne 0x100179ff
mov edx, str.55_8B_EC_8B_4D___56_E8_________8B_75
mov ecx, str.client.dll
call fcn.10007f00
push 0x10286fd0
mov dword [0x10286fd4], eax
call fcn.1018b693
add esp, 4
push esi
push 0
call dword [0x10286fd4]
mov ebx, 1
cmp ebp, ebx
jl 0x10017bae
nop word [eax + eax]
lea ecx, [esp + 0xd8]
call fcn.1002a2e0
call fcn.1002a990
mov ecx, dword [0x102813d8]
mov edi, dword [0x10281360]
test ecx, ecx
jne 0x10017a72
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, eax
mov dword [0x102813d8], ecx
movss xmm0, dword [edi + ecx + 8]
comiss xmm0, dword [0x102404e0]
ja 0x10017c59
mov edi, dword [0x10281360]
test ecx, ecx
jne 0x10017ac0
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, eax
mov dword [0x102813d8], ecx
movss xmm1, dword [edi + ecx + 4]
movss xmm0, dword [edi + ecx]
mulss xmm0, xmm0
mov dword [esp + 0x50], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x38], xmm0
sqrtss xmm0, dword [esp + 0x38]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x50]
ucomiss xmm0, dword [0x102404e0]
lahf
test ah, 0x44
jnp 0x10017bae
call fcn.1000b770
cmp eax, 9
je 0x10017bae
mov eax, dword [0x102812f0]
mov edi, dword [0x10281360]
test eax, eax
jne 0x10017b53
mov edx, 0xe80c2f78
mov ecx, 0x102195cd
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov dword [0x102812f0], eax
mov ecx, dword [0x1027cbd0]
add eax, edi
cmp ecx, dword [0x1027cbd4]
je 0x10017b7a
movq xmm0, qword [eax]
movq qword [ecx], xmm0
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
add dword [0x1027cbd0], 0xc
jmp 0x10017b86
push eax
push ecx
mov ecx, 0x1027cbcc
call fcn.10007700
lea edx, [esp + 0x17]
mov byte [esp + 0x17], 0
lea ecx, [esp + 0xd8]
call fcn.10016920
test al, al
jne 0x10017c02
cmp byte [esp + 0x17], al
jne 0x10017bae
inc ebx
cmp ebx, ebp
jle 0x10017a20
movss xmm2, dword [esp + 0x18]
mov ecx, dword [0x102813d8]
mov dword [esp + 0xd8], vtable.c_usercmd.0
mov ebx, dword [esp + 0x2c]
cmp dword [0x102816a0], 0
jne 0x10017c6f
mov esi, dword [esp + 0x24]
inc ebx
mov dword [esp + 0x2c], ebx
cmp ebx, dword [esp + 0x10]
jl 0x10017530
mov byte [0x10286f5b], 0
mov byte [0x102816a4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
mov eax, dword [0x102812e8]
movss xmm0, dword [esp + 0xfc]
movss xmm2, dword [esp + 0x18]
movss dword [0x10281690], xmm0
mov ecx, dword [eax + 0x1c]
movss xmm0, dword [esp + 0x100]
mov dword [0x102816a0], ebx
mov dword [0x1028169c], ebx
lea eax, [ecx + ebx]
mov dword [0x10281680], ecx
mov dword [0x10281684], eax
movss dword [0x10281694], xmm0
movss dword [0x1028168c], xmm2
jmp 0x10017bb4
movss xmm2, dword [esp + 0x18]
jmp 0x10017bba
mov ecx, dword [0x102813d8]
lea edx, [ebx + 0x28]
jmp 0x10017c77
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
cmp dword [0x102816a0], 1
jne 0x10017cac
cmp byte [0x10281636], 0
je 0x10017ca5
push str._gravity___edgebug
push dword [0x102813dc]
call fcn.1000b720
mov ecx, dword [0x102813d8]
lea edx, [ebx + 0x28]
add esp, 8
mov byte [0x102816a4], 1
mov esi, dword [ebx + 0x30]
mov eax, esi
or eax, 4
mov byte [0x10286f5b], 1
and esi, 0xfffffffb
cmp byte [0x1028167c], 0
cmovne esi, eax
mov dword [ebx + 0x30], esi
cmp byte [0x10281688], 0
je 0x10017e7d
mov edi, dword [0x10281360]
test ecx, ecx
jne 0x10017d13
mov edx, 0xe80c2f78
mov ecx, 0x10219945
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195d9
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, eax
mov dword [0x102813d8], ecx
movss xmm1, dword [edi + ecx + 4]
movss xmm0, dword [edi + ecx]
mulss xmm0, xmm0
mov dword [esp + 0x50], 0
mulss xmm1, xmm1
addss xmm0, xmm1
movss dword [esp + 0x28], xmm0
sqrtss xmm0, dword [esp + 0x28]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x50]
mulss xmm0, dword [0x102408ec]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_cosf
mulss xmm0, dword [0x102408ec]
mov eax, dword [0x1028169c]
sub eax, dword [0x102816a0]
inc eax
movss dword [ebx + 0x28], xmm0
movss dword [ebx + 0x24], xmm0
push ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1028168c]
addss xmm0, dword [0x10281698]
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x24]
fstp dword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll__fdclass
add esp, 4
test ax, ax
jle 0x10017dc0
dec dword [0x102816a0]
xorps xmm2, xmm2
movss dword [ebx + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
movss xmm0, dword [esp + 0x20]
comiss xmm0, dword [0x102409ac]
jb 0x10017df5
movss xmm1, dword [0x10240840]
comiss xmm1, xmm0
jb 0x10017df5
dec dword [0x102816a0]
movaps xmm2, xmm0
movss dword [ebx + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
mulss xmm0, dword [0x10240538]
call fcn.10009190
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 xmm1, dword [esp + 0x24]
xorps xmm0, xmm0
add esp, 4
comiss xmm0, xmm1
fstp dword [esp + 0x10]
jbe 0x10017e52
movss xmm2, dword [esp + 0x10]
mulss xmm2, dword [0x1024089c]
dec dword [0x102816a0]
addss xmm2, xmm1
movss dword [ebx + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
movss xmm0, dword [esp + 0x10]
movaps xmm2, xmm1
mulss xmm0, dword [0x1024089c]
dec dword [0x102816a0]
subss xmm2, xmm0
movss dword [ebx + 0x10], xmm2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
dec dword [0x102816a0]
mov dword [edx], 0
mov dword [ebx + 0x24], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x134
ret
pop edi
pop esi
pop ebp
mov dword [0x10281680], 0
mov dword [0x10281684], 0
mov dword [0x102816a0], 0
pop ebx
add esp, 0x134
ret