Function at 0x180156c60
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x68]
sub rsp, 0x130
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
movaps xmmword [rax - 0xd8], xmm15
movzx ebx, r9b
mov rsi, r8
mov r13, rdx
xor edi, edi
test rdx, rdx
je 0x180157773
lea rcx, [rdx + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x180157773
cmp dword [rax + 0x28], 0xf7
jne 0x180157773
mov rcx, r13
call fcn.1800b7070
cmp byte [rax], dil
jne 0x180157773
mov qword [rsi], r13
lea rdx, vtable.CUserCmd.0
mov rcx, r13
call fcn.180104200
mov rdx, rsi
call fcn.180155b80
mov rcx, qword [0x1802577b0]
movzx eax, byte [rcx + 0xc]
mov byte [0x180252a00], al
movzx eax, byte [rcx + 0xd]
mov byte [0x180252a01], al
mov rax, qword [0x180257790]
movss xmm0, dword [rax + 0x10]
movss dword [0x180252a04], xmm0
mov rcx, r13
call fcn.1800b8c00
test byte [rax], 2
je 0x180156da3
mov rcx, r13
call fcn.1800b8c00
and dword [rax], 0xfffffffd
mov rcx, r13
call fcn.180153b80
mov byte [rax], 1
mov rcx, r13
call fcn.180153e80
mov dword [rax], edi
mov rcx, r13
call fcn.180153f80
mov dword [rax], edi
mov rcx, r13
call fcn.180153c80
mov byte [rax], dil
mov rcx, r13
call fcn.180153d80
mov byte [rax], dil
xorps xmm12, xmm12
cmp r13, qword [0x1802580c0]
je 0x180156df6
mov rcx, r13
call fcn.1800c5ef0
mov dword [rax], 0xffffffff
mov rcx, r13
call fcn.180154280
mov qword [rax], rdi
mov dword [rax + 8], edi
mov rcx, r13
call fcn.1800b8c00
test byte [rax], 1
je 0x180156df6
mov rcx, r13
call fcn.1800de7a0
xorps xmm6, xmm6
minss xmm6, dword [rax + 8]
mov rcx, r13
call fcn.1800de7a0
movss dword [rax + 8], xmm6
mov rcx, qword [0x180251b78]
movsxd rax, dword [rcx + 3]
mov rax, qword [rax + rcx + 7]
test rax, rax
je 0x180156e70
mov rax, qword [rax]
mov rcx, qword [rax + 0xf8]
call rcx
test rax, rax
je 0x180156e70
mov dword [rax + 0xc], 0xc1bf0000
mov dword [rax + 0x10], 0xc1bf0000
mov dword [rax + 0x14], 0x3e000000
mov dword [rax + 0x18], 0x41bf0000
mov dword [rax + 0x1c], 0x41bf0000
mov dword [rax + 0x20], 0x42a3c000
mov dword [rax + 0x24], 0xc1bf0000
mov dword [rax + 0x28], 0xc1bf0000
mov dword [rax + 0x2c], 0x3e000000
mov dword [rax + 0x30], 0x41bf0000
mov dword [rax + 0x34], 0x41bf0000
mov dword [rax + 0x38], 0x42778000
mov rcx, r13
call fcn.1800de7a0
movss xmm0, dword [rax]
movdqa xmm14, xmmword [0x18022d5e0]
andps xmm0, xmm14
movss xmm6, dword [0x18022ca08]
comiss xmm6, xmm0
jbe 0x180156ea4
mov rcx, r13
call fcn.1800de7a0
mov dword [rax], 0x3c75c28f
mov rcx, r13
call fcn.1800de7a0
movss xmm0, dword [rax + 4]
andps xmm0, xmm14
comiss xmm6, xmm0
jbe 0x180156ec9
mov rcx, r13
call fcn.1800de7a0
mov dword [rax + 4], 0x3c75c28f
mov rdx, rsi
call fcn.1801577e0
test al, al
je 0x1801572bd
mov rcx, r13
call fcn.1800b8c00
test byte [rax], 1
mov r12d, dword [0x180259be4]
cmovne r12d, dword [0x180258fe4]
cmp byte [rbp + 0x90], dil
je 0x180156f00
xor al, al
jmp 0x180156f34
mov rcx, qword [rsi]
call fcn.1800b8c00
test byte [rax], 1
mov eax, dword [0x180258f64]
je 0x180156f15
shr eax, 1
not eax
test al, 1
je 0x180156f1f
xor al, al
jmp 0x180156f34
mov r8d, r12d
mov rdx, rsi
call fcn.1801580d0
movss dword [rsi + 0x1a0], xmm0
mov al, 1
movss xmm15, dword [0x18022cb38]
test bl, bl
je 0x1801572c9
test al, al
je 0x1801572c9
mov rcx, r13
call fcn.1800de7a0
movss xmm0, dword [rax]
andps xmm0, xmm14
movss xmm7, dword [0x18022c99c]
comiss xmm7, xmm0
jbe 0x180156f8a
movss xmm0, dword [rax + 4]
andps xmm0, xmm14
comiss xmm7, xmm0
jbe 0x180156f8a
movss xmm0, dword [rax + 8]
andps xmm0, xmm14
comiss xmm7, xmm0
ja 0x1801572c9
movss xmm0, dword [0x180259c64]
ucomiss xmm0, xmm12
jp 0x180156f9e
je 0x1801572c9
mov rcx, qword [rsi]
add rcx, 0x10
mov rax, qword [rcx]
call qword [rax + 0x48]
mov dword [rbp + 0x70], eax
lea r8, [rbp + 0x70]
lea rdx, [rsp + 0x50]
lea rcx, [0x180252a08]
call fcn.1801593d0
mov rcx, qword [rax]
mov qword [rsp + 0x40], rcx
mov r15, qword [rcx + 0x38]
movaps xmm8, xmm15
xorps xmm7, xmm7
mov r14, rdi
test r15, r15
je 0x180157183
movss xmm10, dword [0x18022cae4]
movss xmm9, dword [0x18022cd20]
movss xmm13, dword [0x18022cd54]
movss xmm11, dword [0x18022ce94]
nop word [rax + rax]
lea rax, [r14 + 2]
cmp r15, rax
jbe 0x18015717d
mov rdx, qword [rcx + 0x30]
add rdx, r14
mov r8, qword [rcx + 0x28]
dec r8
mov rax, r8
and rax, rdx
mov rcx, qword [rcx + 0x20]
mov rdi, qword [rcx + rax*8]
lea rax, [rdx + 1]
and r8, rax
mov rbx, qword [rcx + r8*8]
lea rdx, [rdi + 0x20]
lea rcx, [rsp + 0x30]
call fcn.180153a40
movss xmm6, dword [rax + 4]
lea rdx, [rbx + 0x20]
lea rcx, [rsp + 0x20]
call fcn.180153a40
movss xmm1, dword [rdi + 0x18]
subss xmm6, dword [rax + 4]
subss xmm1, dword [rbx + 0x18]
mov rax, qword [0x180257790]
divss xmm1, dword [rax + 0x1c]
addss xmm1, xmm10
cvttss2si eax, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
divss xmm6, xmm1
addss xmm6, xmm9
movaps xmm1, xmm13
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_fmodf
comiss xmm12, xmm0
jbe 0x1801570b1
movaps xmm1, xmm9
jmp 0x1801570b5
movaps xmm1, xmm11
addss xmm0, xmm1
addss xmm7, xmm0
movsxd rcx, r12d
xor edx, edx
lea rax, [r14 + 1]
div rcx
test rdx, rdx
je 0x1801570db
lea rax, [r15 - 1]
cmp r14, rax
jne 0x18015716c
xor edx, edx
mov rax, r14
div rcx
add rdx, 1
xorps xmm0, xmm0
js 0x1801570f3
cvtsi2ss xmm0, rdx
jmp 0x180157108
mov rax, rdx
shr rax, 1
and edx, 1
or rax, rdx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm7, xmm0
movss xmm0, dword [rsi + 0x1a0]
subss xmm0, xmm7
andps xmm0, xmm14
comiss xmm0, xmm10
jbe 0x180157168
lea rcx, [r15 - 1]
xorps xmm1, xmm1
test rcx, rcx
js 0x180157135
cvtsi2ss xmm1, rcx
jmp 0x18015714a
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
movd xmm0, r12d
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
addss xmm1, xmm15
movaps xmm0, xmm15
divss xmm0, xmm1
subss xmm8, xmm0
movaps xmm7, xmm12
inc r14
cmp r14, r15
mov rcx, qword [rsp + 0x40]
jb 0x180157010
mov r13, qword [rbp + 0x78]
xor edi, edi
movss xmm1, dword [0x180259c64]
movaps xmm0, xmm1
movss xmm2, dword [0x18022ccf0]
divss xmm0, xmm2
comiss xmm0, xmm8
jbe 0x1801572c9
movzx edi, byte [0x180261761]
mulss xmm8, xmm2
lea rax, str.Hitchance________
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], 0x15
movss dword [rsp + 0x60], xmm8
movabs rax, 0x7000000000000000
mov qword [rsp + 0x50], rax
movss dword [rsp + 0x64], xmm1
movabs rax, 0x7000000000000004
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x30], 2
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
movaps xmm1, xmmword [rsp + 0x20]
movdqa xmmword [rsp + 0x20], xmm1
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x68]
call fcn.1800ab1e0
nop
lea rbx, [rsp + 0x68]
cmp qword [rbp - 0x80], 0xf
cmova rbx, qword [rsp + 0x68]
mov dword [rbp + 0x70], 0xff78c850
test rbx, rbx
je 0x18015728b
test dil, dil
je 0x1801572b3
mov rcx, qword [0x180257708]
mov rax, qword [rcx]
lea r9, str.MovementSimulation
lea r8, str.__s_
lea rdx, [rbp + 0x70]
call qword [rax + 0xb8]
mov rcx, qword [0x180257708]
mov rax, qword [rcx]
mov dword [rbp + 0x78], 0xffffffff
mov r9, rbx
lea rdx, [rbp + 0x78]
jmp 0x1801572a5
test dil, dil
je 0x1801572b3
mov rcx, qword [0x180257708]
mov rax, qword [rcx]
lea r9, str.MovementSimulation
lea rdx, [rbp + 0x70]
lea r8, [0x18022c684]
call qword [rax + 0xb8]
nop
lea rcx, [rsp + 0x68]
call fcn.180093e20
mov byte [rsi + 0x1e8], 1
jmp 0x18015777c
mov r15d, edi
mov rdx, r13
call fcn.18019d120
test eax, eax
jle 0x18015776f
mov r12d, dword [0x180255e0c]
mov r14, qword gs:[0x58]
movss xmm10, dword [0x18022d600]
movss xmm13, dword [0x18022cd30]
movss xmm11, dword [0x18022cabc]
nop word [rax + rax]
cmp byte [rsi + 0x1e8], 0
jne 0x18015775b
mov rcx, qword [rsi]
test rcx, rcx
je 0x18015775b
add rcx, 0x10
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x18015775b
cmp dword [rax + 0x28], 0xf7
jne 0x18015775b
lea rcx, [rsi + 0x1c0]
lea rbx, [rsi + 0xa4]
mov rdx, rbx
call fcn.1800cc6d0
mov rax, qword [0x1802577b0]
mov byte [rax + 0xc], 1
mov rax, qword [0x1802577b0]
mov byte [rax + 0xd], 0
mov rcx, qword [0x180257790]
mov rax, qword [0x1802577b0]
cmp byte [rax + 0xf], 0
je 0x18015738f
movaps xmm0, xmm12
jmp 0x180157394
movss xmm0, dword [rcx + 0x1c]
movss dword [rcx + 0x10], xmm0
movaps xmm9, xmm12
lea rdi, [rsi + 0x1a0]
movss xmm7, dword [rdi]
mov rcx, qword [rsi]
ucomiss xmm7, xmm12
jp 0x1801573ce
jne 0x1801573ce
call fcn.1800b8c00
test byte [rax], 1
jne 0x1801575cc
xor eax, eax
mov dword [rsi + 0x3c], eax
mov dword [rsi + 0x34], eax
jmp 0x1801575cc
call fcn.1800b8c00
test byte [rax], 1
jne 0x1801575bd
movss xmm0, dword [rdi]
xor ecx, ecx
comiss xmm0, xmm12
seta cl
xor eax, eax
comiss xmm12, xmm0
seta al
sub ecx, eax
movd xmm9, ecx
cvtdq2ps xmm9, xmm9
mulss xmm9, dword [0x18022cce4]
mov rbx, qword [rsi]
mov eax, 4
mov edi, eax
mov r14, qword [r14 + r12*8]
mov eax, dword [rax + r14]
cmp dword [0x1802689a4], eax
jle 0x180157454
lea rcx, [0x1802689a4]
call fcn.1801a548c
cmp dword [0x1802689a4], 0xffffffff
jne 0x180157454
lea rdx, str.sv_gravity
call fcn.1801a1e90
mov qword [0x1802689a8], rax
lea rcx, [0x1802689a4]
call fcn.1801a5420
mov rcx, rbx
call fcn.180155480
movss xmm0, dword [rax]
ucomiss xmm0, xmm12
jp 0x18015746e
jne 0x18015746e
movaps xmm8, xmm15
jmp 0x18015747b
mov rcx, rbx
call fcn.180155480
movss xmm8, dword [rax]
mov rcx, qword [0x180251b78]
movsxd rax, dword [rcx + 3]
mov rbx, qword [rax + rcx + 7]
mov rax, qword [0x1802689a8]
mov rcx, qword [rax + 0x38]
test rbx, rbx
je 0x180157572
movss xmm6, dword [rcx + 0x54]
mov eax, dword [rdi + r14]
cmp dword [0x180257c48], eax
jle 0x18015754d
lea rcx, [0x180257c48]
call fcn.1801a548c
cmp dword [0x180257c48], 0xffffffff
jne 0x18015754d
mov rcx, qword [0x180257700]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180157539
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1801574f3
xor edx, edx
test rcx, rcx
je 0x180157530
nop dword [rax]
nop dword [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180157510
cmp r9d, 0xf1c5030f
je 0x180157560
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801574e2
xor eax, eax
mov dword [0x180257ca8], eax
lea rcx, [0x180257c48]
call fcn.1801a5420
movsxd rax, dword [0x180257ca8]
mulss xmm6, dword [rax + rbx]
mulss xmm6, xmm8
jmp 0x18015757b
lea r8, str.m_flGravityMultiplier
mov rdx, qword [r10 + 0x18]
call fcn.1801a5020
jmp 0x18015753b
movaps xmm6, xmm8
mulss xmm6, dword [rcx + 0x54]
mov rax, qword [0x180257790]
mulss xmm6, dword [rax + 0x1c]
addss xmm6, dword [rsi + 0x54]
comiss xmm6, xmm12
jbe 0x18015759e
comiss xmm13, xmm6
jb 0x18015759e
movaps xmm0, xmm11
jmp 0x1801575a2
movaps xmm0, xmm15
mulss xmm7, xmm0
lea rbx, [rsi + 0xa4]
lea rdi, [rsi + 0x1a0]
mov r14, qword gs:[0x58]
addss xmm7, xmm9
addss xmm7, dword [rsi + 0x18]
movss dword [rsi + 0x18], xmm7
mov rcx, qword [0x180257778]
mov rax, qword [rcx]
lea r8, [rsi + 8]
mov rdx, qword [rsi]
call qword [rax + 8]
mov rax, qword [0x180257790]
movss xmm0, dword [rax + 0x1c]
addss xmm0, dword [rsi + 0x1a4]
movss dword [rsi + 0x1a4], xmm0
movss xmm1, dword [rsi + 0x1ac]
comiss xmm0, xmm1
setae al
mov byte [rsi + 0x1b0], al
test al, al
je 0x18015763e
mov eax, dword [rbx]
mov dword [rsi + 0x1b4], eax
mov eax, dword [rbx + 4]
mov dword [rsi + 0x1b8], eax
mov eax, dword [rbx + 8]
mov dword [rsi + 0x1bc], eax
addss xmm1, dword [rsi + 0x1a8]
movss dword [rsi + 0x1ac], xmm1
movss xmm0, dword [rdi]
ucomiss xmm0, xmm12
jp 0x18015774c
jne 0x18015774c
mov rcx, qword [rsi]
call fcn.1800b8c00
test byte [rax], 1
je 0x18015775b
movss xmm0, dword [rsi + 0x34]
ucomiss xmm0, xmm12
jp 0x18015775b
jne 0x18015775b
movss xmm0, dword [rsi + 0x3c]
ucomiss xmm0, xmm12
jp 0x18015775b
jne 0x18015775b
movss xmm1, dword [rsi + 0x4c]
movaps xmm0, xmm1
andps xmm0, xmm14
movss xmm7, dword [0x18022c99c]
comiss xmm7, xmm0
jbe 0x1801576c6
movss xmm0, dword [rsi + 0x50]
andps xmm0, xmm14
comiss xmm7, xmm0
jbe 0x1801576c6
movss xmm0, dword [rsi + 0x54]
andps xmm0, xmm14
comiss xmm7, xmm0
ja 0x18015775b
mov dword [rsp + 0x40], 0
movss xmm0, dword [rsi + 0x18]
xorps xmm0, xmm10
movss dword [rsp + 0x44], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x50], 0
mov dword [rsp + 0x58], 0
movss dword [rsp + 0x20], xmm1
movss xmm0, dword [rsi + 0x50]
movss dword [rsp + 0x24], xmm0
movss xmm1, dword [rsi + 0x54]
mulss xmm1, xmm12
movss dword [rsp + 0x28], xmm1
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.180142d10
movss xmm0, dword [rsp + 0x30]
movss dword [rsi + 0x34], xmm0
movss xmm1, dword [rsp + 0x34]
xorps xmm1, xmm10
movss dword [rsi + 0x3c], xmm1
jmp 0x18015775b
movss xmm0, dword [rsi + 0x18]
subss xmm0, xmm9
movss dword [rsi + 0x18], xmm0
inc r15d
mov rdx, r13
call fcn.18019d120
cmp r15d, eax
jl 0x180157310
mov al, 1
jmp 0x18015777e
mov word [rsi + 0x1e8], 0x101
xor al, al
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret