Function at 0x100681f0
Capabilities:
Encode data using xor
Hash data using fnv
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov esi, ecx
mov eax, dword [0x1017f528]
xor eax, ebp
mov dword [esp + 0x128], eax
mov eax, dword [0x1017f5c0]
mov ecx, dword [eax + 0xd8]
mov eax, dword [ecx]
call dword [eax + 0x34]
mov edi, 0x64
test eax, eax
jne 0x100686ca
mov eax, dword [ebp + 0x10]
xor ecx, ecx
cmp dword [eax + 0x1c], 4
setne cl
mov ebx, dword [esi + ecx*4 + 0x40]
inc ebx
mov eax, dword [esi + 0x4c]
test eax, eax
mov ecx, esi
je 0x1006825e
mov dword [esp], eax
mov esi, ecx
call dword [sym.imp.USER32.dll_GetKeyState]
sub esp, 4
mov ecx, esi
test ax, ax
jns 0x1006825e
mov ebx, dword [ecx + 0x48]
mov eax, dword [ebp + 8]
cmp byte [ecx + 0xb], 0
mov dword [esp + 0x58], ecx
je 0x10068290
mov eax, dword [eax]
mov edi, dword [eax]
mov eax, dword [0x1017f71c]
test al, 1
je 0x10068806
mov esi, dword [0x1017f718]
mov eax, dword [esi + 4]
mov eax, dword [eax + edi]
add eax, 5
cmp eax, ebx
cmovl ebx, eax
vcvtsi2ss xmm0, xmm0, ebx
vcvtsi2ss xmm1, xmm1, dword [ecx + 0x18]
vdivss xmm1, xmm1, dword [0x1012988c]
mov esi, dword [ebp + 0xc]
vmulss xmm0, xmm1, xmm0
vcvttss2si eax, xmm0
cmp eax, 2
mov ecx, 1
cmovge ecx, eax
cmp ecx, 0x64
mov eax, 0x64
cmovl eax, ecx
mov dword [esp + 0x7c], eax
vmovss xmm0, dword [0x10131fc4]
vmulss xmm0, xmm0, dword [esi]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x30], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp dword [esp + 0x8c]
vmovss xmm0, dword [esp + 0x8c]
vmovss dword [esp + 0x38], xmm0
vmovsd xmm0, qword [esp + 0x30]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp dword [esp + 0x88]
vmovss xmm0, dword [esp + 0x88]
vmovaps xmmword [esp + 0xb0], xmm0
vmovss xmm0, dword [0x10131fc4]
vmulss xmm0, xmm0, dword [esi + 4]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x30], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esp + 0xd8]
vmovsd xmm0, qword [esp + 0x30]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esp + 0xd0]
vmovss xmm0, dword [0x10131fc4]
vmulss xmm0, xmm0, dword [esi + 8]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x30], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp dword [esp + 0x84]
vmovsd xmm0, qword [esp + 0x30]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp dword [esp + 0x80]
vmovss xmm7, dword [esp + 0x80]
vmovss xmm2, dword [esp + 0x84]
vmovsd xmm0, qword [esp + 0xd0]
vmovhpd xmm3, xmm0, qword [esp + 0xd8]
mov eax, dword [0x1017f5c0]
mov ebx, dword [eax + 0x14c]
mov eax, dword [0x1017f704]
test al, 1
je 0x100686e4
mov edi, dword [0x1017f700]
mov ecx, ebx
mov eax, dword [edi + 4]
movzx eax, word [eax + ebx]
mov word [esp + 0x30], ax
mov eax, dword [0x10184e2c]
test al, 1
je 0x10068775
mov edi, dword [0x10184e28]
vbroadcastss xmm0, dword [0x10129734]
vxorps xmm1, xmm2, xmm0
vmovss xmm5, dword [esp + 0x38]
vmulss xmm6, xmm5, xmm1
vxorps xmm0, xmm7, xmm0
vcvtpd2ps xmm3, xmm3
vpermilps xmm4, xmm3, 0xe1
vinsertps xmm0, xmm7, xmm0, 0x10
vmulps xmm0, xmm4, xmm0
vbroadcastss xmm6, xmm6
vfmadd213ps xmm6, xmm3, xmm0
vmovaps xmmword [esp + 0x40], xmm6
vmovaps xmm6, xmmword [esp + 0xb0]
vmulss xmm0, xmm6, xmm1
vmovss dword [esp + 0x2c], xmm0
vinsertps xmm0, xmm2, xmm1, 0x10
vmulss xmm1, xmm5, xmm7
vmulps xmm0, xmm4, xmm0
vbroadcastss xmm2, xmm6
vmulps xmm2, xmm2, xmm3
vmovaps xmmword [esp + 0x60], xmm2
vbroadcastss xmm1, xmm1
vfmadd213ps xmm1, xmm3, xmm0
vmovaps xmmword [esp + 0xa0], xmm1
vmulss xmm0, xmm6, xmm7
vmovss dword [esp + 0xb0], xmm0
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + ecx]
vmovss dword [esp + 0x90], xmm0
mov dword [esp + 0x5c], 0
movzx eax, word [esp + 0x30]
mov dword [esp + 0x3c], eax
xor ebx, ebx
jmp 0x100684cd
inc ebx
cmp ebx, 0xff
je 0x100686ac
mov eax, dword [0x1017f5c0]
mov eax, dword [eax + 0x150]
mov eax, dword [eax + 0xf8]
mov dword [esp + 0x10], ebx
vmovss xmm0, dword [esp + 0x90]
vmovss dword [esp + 0xc], xmm0
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
lea eax, [esp + 0x108]
mov dword [esp], eax
call fcn.10067fb0
sub esp, 0x14
vbroadcastss xmm0, dword [esp + 0x10c]
vmulss xmm1, xmm0, dword [esp + 0xb0]
vbroadcastss xmm2, dword [esp + 0x108]
vmulss xmm3, xmm2, dword [esp + 0x2c]
vsubss xmm3, xmm3, dword [esp + 0x38]
vaddss xmm3, xmm1, xmm3
vmulps xmm0, xmm0, xmmword [esp + 0xa0]
vmulps xmm1, xmm2, xmmword [esp + 0x40]
vaddps xmm1, xmm1, xmmword [esp + 0x60]
vaddps xmm4, xmm0, xmm1
vmulps xmm0, xmm4, xmm4
vmovshdup xmm0, xmm0
vfmadd231ss xmm0, xmm4, xmm4
vfmadd231ss xmm0, xmm3, xmm3
vcvtss2sd xmm0, xmm0, xmm0
vucomisd xmm0, qword [0x10131ff0]
jb 0x10068580
vsqrtsd xmm0, xmm0, xmm0
jmp 0x100685b8
vmovsd qword [esp], xmm0
vmovss dword [esp + 0x54], xmm3
vmovaps xmmword [esp + 0xe0], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
vmovaps xmm4, xmmword [esp + 0xe0]
vmovss xmm3, dword [esp + 0x54]
fstp qword [esp + 0xc8]
vmovsd xmm0, qword [esp + 0xc8]
vcvtsd2ss xmm0, xmm0, xmm0
vucomiss xmm0, dword [0x10129730]
jne 0x100685c8
jnp 0x100685d5
vbroadcastss xmm1, xmm0
vdivps xmm4, xmm4, xmm1
vdivss xmm3, xmm3, xmm0
xor eax, eax
cmp word [esp + 0x30], 0x1f
sete al
mov ecx, dword [0x1017f5dc]
mov esi, dword [0x1017f5c0]
mov edx, dword [esi + 0x150]
vbroadcastss xmm1, dword [edx + 0x108]
vmulss xmm2, xmm3, xmm1
vmovss xmm0, dword [esi + 0x110]
vaddss xmm2, xmm2, xmm0
vmulps xmm3, xmm4, xmm1
vmovsd xmm1, qword [esi + 0x108]
vaddps xmm3, xmm3, xmm1
vmovlps qword [esp + 0xfc], xmm3
vmovss dword [esp + 0x104], xmm2
mov esi, dword [ebp + 8]
mov esi, dword [esi]
mov edi, dword [esi]
mov esi, dword [0x1017f608]
mov esi, dword [esi]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
lea eax, [esp + 0xfc]
mov dword [esp + 0x20], eax
vextractps dword [esp + 0x18], xmm1, 1
vmovss dword [esp + 0x1c], xmm0
vmovss dword [esp + 0x14], xmm1
lea eax, [esp + 0x110]
mov dword [esp], eax
call fcn.1007cad0
sub esp, 0x24
mov eax, dword [esp + 0x114]
test eax, eax
jle 0x100684c0
mov ecx, dword [esp + 0x58]
cmp dword [ecx + 0x18], 0
setle cl
cmp eax, dword [esp + 0x7c]
setge al
or al, cl
movzx eax, al
add dword [esp + 0x5c], eax
jmp 0x100684c0
vxorps xmm7, xmm7, xmm7
vcvtsi2ss xmm0, xmm7, dword [esp + 0x5c]
vdivss xmm0, xmm0, dword [0x1012973c]
vmulss xmm0, xmm0, dword [0x1012988c]
vcvttss2si edi, xmm0
mov ecx, dword [esp + 0x128]
xor ecx, ebp
call fcn.100d7fe0
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
vmovapd xmmword [esp + 0x90], xmm3
vmovaps xmmword [esp + 0xa0], xmm2
vmovaps xmmword [esp + 0x60], xmm7
or eax, 1
mov dword [0x1017f704], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x3c], eax
mov dword [esp], str.CBaseAttributableItem__m_iItemDefinitionIndex
lea ecx, [esp + 0x110]
mov dword [esp + 0x40], ecx
call fcn.10005ce0
sub esp, 4
mov eax, dword [esp + 0x120]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x124], 0x10
jb 0x10068747
mov eax, dword [esp + 0x110]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x30], 0
je 0x1006887f
mov eax, dword [esp + 0x30]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 0x2c], eax
cmp ecx, 3
jae 0x10068890
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100688dc
mov dword [esp + 0x54], ecx
vmovapd xmmword [esp + 0x90], xmm3
vmovaps xmmword [esp + 0xa0], xmm2
vmovaps xmmword [esp + 0x60], xmm7
or eax, 1
mov dword [0x10184e2c], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x3c], eax
mov dword [esp], str.CWeaponCSBase__m_flRecoilIndex
lea ecx, [esp + 0x110]
mov dword [esp + 0x2c], ecx
call fcn.10005ce0
sub esp, 4
mov eax, dword [esp + 0x120]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x124], 0x10
jb 0x100687dc
mov eax, dword [esp + 0x110]
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x40], 0
je 0x10068886
mov eax, dword [esp + 0x40]
lea ecx, [eax - 1]
and eax, 3
cmp ecx, 3
jae 0x10068995
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100689e1
or eax, 1
mov dword [0x1017f71c], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x60], eax
mov dword [esp], str.CBasePlayer__m_iHealth
lea ecx, [esp + 0x110]
mov dword [esp + 0x40], ecx
call fcn.10005ce0
sub esp, 4
mov eax, dword [esp + 0x120]
mov dword [esp + 0x38], eax
cmp dword [esp + 0x124], 0x10
jb 0x10068851
mov eax, dword [esp + 0x110]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x38], 0
je 0x10068a8e
mov eax, dword [esp + 0x38]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 0x30], eax
cmp ecx, 3
jae 0x10068a95
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10068ae7
mov ecx, 0x811c9dc5
jmp 0x100688fc
mov ecx, 0x811c9dc5
jmp 0x100689fc
mov edi, dword [esp + 0x30]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 0x40]
movzx esi, byte [eax + edx]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [eax + edx + 1]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [eax + edx + 2]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [eax + edx + 3]
xor esi, ecx
imul ecx, esi, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100688a2
cmp dword [esp + 0x2c], 0
je 0x100688fc
add edx, dword [esp + 0x40]
xor edi, edi
movzx esi, byte [edx + edi]
xor esi, ecx
imul ecx, esi, 0x1000193
inc edi
cmp dword [esp + 0x2c], edi
jne 0x100688e9
mov edx, dword [esp + 0x3c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10068b7f
add ecx, ecx
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x30]
cmp eax, dword [edi + 0x18]
jne 0x1006894b
cmp dword [edi + 0x1c], 0x10
jb 0x1006892c
mov eax, dword [edi + 8]
jmp 0x1006892f
lea eax, [edi + 8]
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x10068958
cmp edi, esi
je 0x10068b7f
mov edi, dword [edi + 4]
jmp 0x10068918
add edi, 0x20
lea ecx, [esp + 0x110]
call fcn.100026e0
mov dword [0x1017f700], edi
mov eax, dword [0x1017f5c0]
mov ecx, dword [eax + 0x14c]
vmovaps xmm7, xmmword [esp + 0x60]
vmovaps xmm2, xmmword [esp + 0xa0]
vmovapd xmm3, xmmword [esp + 0x90]
jmp 0x100683e7
mov edi, dword [esp + 0x40]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov esi, dword [esp + 0x2c]
movzx ebx, byte [esi + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [esi + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [esi + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [esi + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100689a7
test eax, eax
je 0x100689fc
add edx, dword [esp + 0x2c]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x100689eb
mov edx, dword [esp + 0x3c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10068b7f
add ecx, ecx
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x40]
cmp eax, dword [edi + 0x18]
jne 0x10068a4b
cmp dword [edi + 0x1c], 0x10
jb 0x10068a2c
mov eax, dword [edi + 8]
jmp 0x10068a2f
lea eax, [edi + 8]
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x10068a58
cmp edi, esi
je 0x10068b7f
mov edi, dword [edi + 4]
jmp 0x10068a18
add edi, 0x20
lea ecx, [esp + 0x110]
call fcn.100026e0
mov dword [0x10184e28], edi
vmovaps xmm7, xmmword [esp + 0x60]
vmovaps xmm2, xmmword [esp + 0xa0]
vmovapd xmm3, xmmword [esp + 0x90]
mov ecx, dword [esp + 0x54]
jmp 0x10068406
mov ecx, 0x811c9dc5
jmp 0x10068b07
mov eax, dword [esp + 0x38]
and eax, 0xfffffffc
mov dword [esp + 0x2c], eax
mov ecx, 0x811c9dc5
xor edx, edx
mov esi, dword [esp + 0x40]
movzx eax, byte [esi + edx]
xor eax, ecx
imul eax, eax, 0x1000193
movzx ecx, byte [esi + edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 2]
xor ecx, eax
imul eax, ecx, 0x1000193
movzx ecx, byte [esi + edx + 3]
xor ecx, eax
imul ecx, ecx, 0x1000193
add edx, 4
cmp dword [esp + 0x2c], edx
jne 0x10068aab
cmp dword [esp + 0x30], 0
je 0x10068b07
add edx, dword [esp + 0x40]
xor esi, esi
movzx eax, byte [edx + esi]
xor eax, ecx
imul ecx, eax, 0x1000193
inc esi
cmp dword [esp + 0x30], esi
jne 0x10068af4
mov edx, dword [esp + 0x60]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov esi, dword [eax + ecx*8 + 4]
cmp esi, dword [edx + 4]
je 0x10068b7f
add ecx, ecx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
cmp eax, dword [esi + 0x18]
jne 0x10068b56
cmp dword [esi + 0x1c], 0x10
jb 0x10068b37
mov eax, dword [esi + 8]
jmp 0x10068b3a
lea eax, [esi + 8]
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x10068b61
cmp esi, dword [esp + 0x30]
je 0x10068b7f
mov esi, dword [esi + 4]
jmp 0x10068b23
add esi, 0x20
lea ecx, [esp + 0x110]
call fcn.100026e0
mov dword [0x1017f718], esi
mov ecx, dword [esp + 0x58]
jmp 0x10068282
mov dword [esp], 0x1016ba76
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3