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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0xb0
vmovaps xmmword [rax - 0x28], xmm6
vmovaps xmmword [rax - 0x38], xmm7
vmovaps xmmword [rax - 0x48], xmm8
vmovaps xmmword [rax - 0x58], xmm10
vmovaps xmmword [rax - 0x68], xmm11
mov rbx, rdx
cmp byte [rdx + 0x1e8], 0
jne 0x180167127
mov rcx, qword [rdx]
test rcx, rcx
je 0x180167127
add rcx, 0x10
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x180167127
cmp dword [rax + 0x28], 0xf7
jne 0x180167127
lea rcx, [rbx + 0x1c0]
lea rdx, [rbx + 0xa4]
call fcn.1800d98a0
mov rax, qword [0x180267790]
mov byte [rax + 0xc], 1
mov rax, qword [0x180267790]
mov byte [rax + 0xd], 0
mov rcx, qword [0x180267770]
vxorps xmm7, xmm7, xmm7
mov rax, qword [0x180267790]
cmp byte [rax + 0xf], 0
je 0x180166d37
vxorps xmm0, xmm0, xmm0
jmp 0x180166d3c
vmovss xmm0, dword [rcx + 0x1c]
vmovss dword [rcx + 0x10], xmm0
vxorps xmm10, xmm10, xmm10
vmovss xmm6, dword [rbx + 0x1a0]
mov rcx, qword [rbx]
vucomiss xmm6, xmm7
jp 0x180166d74
jne 0x180166d74
call fcn.1800c55c0
test byte [rax], 1
jne 0x180166f81
xor ebp, ebp
mov dword [rbx + 0x3c], ebp
mov dword [rbx + 0x34], ebp
jmp 0x180166f81
call fcn.1800c55c0
test byte [rax], 1
jne 0x180166f72
vmovss xmm0, dword [rbx + 0x1a0]
xor ebp, ebp
mov ecx, ebp
vcomiss xmm0, xmm7
seta cl
mov eax, ebp
vcomiss xmm7, xmm0
seta al
sub ecx, eax
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, ecx
vmulss xmm10, xmm0, dword [0x18023bdd8]
mov rdi, qword [rbx]
mov ecx, dword [0x180265dfc]
mov rax, qword gs:[0x58]
mov r15d, 4
mov rsi, qword [rax + rcx*8]
mov eax, dword [rsi + r15]
cmp dword [0x180278cc4], eax
jle 0x180166e0c
lea rcx, [0x180278cc4]
call fcn.1801b3c6c
cmp dword [0x180278cc4], 0xffffffff
jne 0x180166e0c
lea rdx, str.sv_gravity
call fcn.1801b0360
mov qword [0x180278cc8], rax
lea rcx, [0x180278cc4]
call fcn.1801b3c00
mov rcx, rdi
call fcn.1801639b0
vmovss xmm0, dword [rax]
vucomiss xmm0, xmm7
jp 0x180166e2a
jne 0x180166e2a
vmovss xmm8, dword [0x18023bc20]
jmp 0x180166e36
mov rcx, rdi
call fcn.1801639b0
vmovss xmm8, dword [rax]
mov rcx, qword [0x180261b80]
movsxd rax, dword [rcx + 3]
mov rdi, qword [rax + rcx + 7]
mov rax, qword [0x180278cc8]
mov rcx, qword [rax + 0x38]
test rdi, rdi
je 0x180166f2d
vmovss xmm11, dword [rcx + 0x54]
mov eax, dword [rsi + r15]
cmp dword [0x180267c34], eax
jle 0x180166f1f
lea rcx, [0x180267c34]
call fcn.1801b3c6c
cmp dword [0x180267c34], 0xffffffff
jne 0x180166f1f
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180166f0d
nop dword [rax]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x180166eb1
mov rdx, rbp
test rcx, rcx
je 0x180166ef0
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [rdx + r8]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180166ed0
cmp r9d, 0xf1c5030f
je 0x180166efb
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180166ea0
jmp 0x180166f0d
lea r8, str.m_flGravityMultiplier
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
mov ebp, eax
mov dword [0x180267c94], ebp
lea rcx, [0x180267c34]
call fcn.1801b3c00
movsxd rax, dword [0x180267c94]
vmulss xmm0, xmm11, dword [rax + rdi]
jmp 0x180166f32
vmovss xmm0, dword [rcx + 0x54]
vmulss xmm0, xmm0, xmm8
mov rax, qword [0x180267770]
vmulss xmm0, xmm0, dword [rax + 0x1c]
vaddss xmm1, xmm0, dword [rbx + 0x54]
vcomiss xmm1, xmm7
jbe 0x180166f66
vmovss xmm0, dword [0x18023be24]
vcomiss xmm0, xmm1
jb 0x180166f66
vmovss xmm0, dword [0x18023bb80]
jmp 0x180166f6e
vmovss xmm0, dword [0x18023bc20]
vmulss xmm6, xmm6, xmm0
vaddss xmm0, xmm6, xmm10
vaddss xmm1, xmm0, dword [rbx + 0x18]
vmovss dword [rbx + 0x18], xmm1
mov rcx, qword [0x180267758]
mov rax, qword [rcx]
lea r8, [rbx + 8]
mov rdx, qword [rbx]
call qword [rax + 8]
mov rax, qword [0x180267770]
vmovss xmm0, dword [rax + 0x1c]
vaddss xmm1, xmm0, dword [rbx + 0x1a4]
vmovss dword [rbx + 0x1a4], xmm1
vmovss xmm0, dword [rbx + 0x1ac]
vcomiss xmm1, xmm0
setae al
mov byte [rbx + 0x1b0], al
test al, al
je 0x180166ffe
mov eax, dword [rbx + 0xa4]
mov dword [rbx + 0x1b4], eax
mov eax, dword [rbx + 0xa8]
mov dword [rbx + 0x1b8], eax
mov eax, dword [rbx + 0xac]
mov dword [rbx + 0x1bc], eax
vaddss xmm0, xmm0, dword [rbx + 0x1a8]
vmovss dword [rbx + 0x1ac], xmm0
vmovss xmm0, dword [rbx + 0x1a0]
vucomiss xmm0, xmm7
jp 0x180167118
jne 0x180167118
mov rcx, qword [rbx]
call fcn.1800c55c0
test byte [rax], 1
je 0x180167127
vmovss xmm0, dword [rbx + 0x34]
vucomiss xmm0, xmm7
jp 0x180167127
jne 0x180167127
vmovss xmm0, dword [rbx + 0x3c]
vucomiss xmm0, xmm7
jp 0x180167127
jne 0x180167127
vmovss xmm3, dword [rbx + 0x4c]
vmovss xmm1, dword [0x18023c290]
vandps xmm0, xmm3, xmm1
vmovss xmm2, dword [0x18023ba5c]
vcomiss xmm2, xmm0
jbe 0x180167092
vmovss xmm0, dword [rbx + 0x50]
vandps xmm0, xmm0, xmm1
vcomiss xmm2, xmm0
jbe 0x180167092
vmovss xmm0, dword [rbx + 0x54]
vandps xmm0, xmm0, xmm1
vcomiss xmm2, xmm0
ja 0x180167127
vmovss dword [rsp + 0x20], xmm7
vmovss xmm0, dword [rbx + 0x18]
vxorps xmm0, xmm0, xmmword [0x18023c2b0]
vmovss dword [rsp + 0x24], xmm0
vmovss dword [rsp + 0x28], xmm7
vmovss dword [rsp + 0x30], xmm7
vmovss dword [rsp + 0x34], xmm7
vmovss dword [rsp + 0x38], xmm7
vmovss dword [rsp + 0x40], xmm3
vmovss xmm0, dword [rbx + 0x50]
vmovss dword [rsp + 0x44], xmm0
vmulss xmm0, xmm7, dword [rbx + 0x54]
vmovss dword [rsp + 0x48], xmm0
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.180151400
vmovss xmm0, dword [rsp + 0x50]
vmovss dword [rbx + 0x34], xmm0
vmovss xmm1, dword [rsp + 0x54]
vxorps xmm2, xmm1, xmmword [0x18023c2b0]
vmovss dword [rbx + 0x3c], xmm2
jmp 0x180167127
vmovss xmm0, dword [rbx + 0x18]
vsubss xmm1, xmm0, xmm10
vmovss dword [rbx + 0x18], xmm1
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
vmovaps xmm10, xmmword [r11 - 0x40]
vmovaps xmm11, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop rdi
ret