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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 8], rcx
push rdi
push r14
push r15
sub rsp, 0x90
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
movaps xmmword [rax - 0x78], xmm11
mov rbx, rdx
mov rcx, qword [rdx]
test rcx, rcx
jne 0x1801584ed
xor al, al
jmp 0x180158b90
and byte [rdx + 8], 0xfc
mov rax, qword [rcx]
call qword [rax + 0x10]
mov ecx, dword [rax]
mov dword [rbx + 0xc], ecx
mov rcx, qword [rbx]
call fcn.1800c44c0
mov ecx, dword [rax]
mov dword [rbx + 0xa4], ecx
mov ecx, dword [rax + 4]
mov dword [rbx + 0xa8], ecx
mov eax, dword [rax + 8]
mov dword [rbx + 0xac], eax
mov rcx, qword [rbx]
call fcn.1800e5fa0
mov ecx, dword [rax]
mov dword [rbx + 0x4c], ecx
mov ecx, dword [rax + 4]
mov dword [rbx + 0x50], ecx
mov eax, dword [rax + 8]
mov dword [rbx + 0x54], eax
mov rax, qword [0x18028f4b0]
xor edx, edx
mov rcx, qword [rbx]
call rax
movss dword [rbx + 0x44], xmm0
test byte [rbx + 0xe4], 2
je 0x180158560
mulss xmm0, dword [0x18026317c]
movss dword [rbx + 0x44], xmm0
lea rdx, [rbx + 0x4c]
lea rcx, [rsp + 0x20]
call fcn.1800d33f0
movss xmm7, dword [rax + 4]
xor edi, edi
mov dword [rbx + 0x14], edi
movss dword [rbx + 0x18], xmm7
mov dword [rbx + 0x1c], edi
xorps xmm0, xmm0
call fcn.1801cdc80
movaps xmm8, xmm0
xorps xmm0, xmm0
call fcn.1801ca610
movaps xmm6, xmm0
mulss xmm7, dword [0x18026310c]
movaps xmm0, xmm7
call fcn.1801cdc80
movaps xmm10, xmm0
movaps xmm0, xmm7
call fcn.1801ca610
movaps xmm7, xmm0
xorps xmm0, xmm0
call fcn.1801cdc80
movaps xmm9, xmm0
xorps xmm0, xmm0
call fcn.1801ca610
movaps xmm4, xmm0
movaps xmm11, xmm7
mulss xmm11, xmm6
movaps xmm5, xmm10
mulss xmm5, xmm6
mulss xmm4, dword [0x1802634f0]
mulss xmm9, xmm8
movaps xmm6, xmm10
xorps xmm6, xmmword [0x180263c90]
mulss xmm6, xmm4
movaps xmm0, xmm9
mulss xmm0, xmm7
subss xmm6, xmm0
mulss xmm4, xmm7
mulss xmm9, xmm10
subss xmm4, xmm9
divss xmm4, xmm6
movss xmm3, dword [rbx + 0x4c]
movaps xmm0, xmm3
mulss xmm0, xmm4
movss xmm2, dword [rbx + 0x50]
subss xmm2, xmm0
movaps xmm1, xmm11
mulss xmm1, xmm4
subss xmm5, xmm1
divss xmm2, xmm5
movss dword [rbx + 0x34], xmm2
mulss xmm11, xmm2
subss xmm3, xmm11
divss xmm3, xmm6
movss dword [rbx + 0x3c], xmm3
mov rcx, qword [rbx]
call fcn.1800e5fa0
movss xmm0, dword [rax + 4]
movss xmm1, dword [rax]
movss xmm6, dword [rbx + 0x44]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x180158688
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x180158690
movaps xmm0, xmm1
call fcn.1801ce444
movaps xmm1, xmm6
mulss xmm1, dword [0x18026314c]
comiss xmm1, xmm0
jb 0x1801586a6
mov dword [rbx + 0x3c], edi
mov dword [rbx + 0x34], edi
movss dword [rbx + 0x48], xmm6
movss xmm2, dword [rbx + 0x14]
movss dword [rbx + 0x64], xmm2
movss xmm1, dword [rbx + 0x18]
movss dword [rbx + 0x68], xmm1
movss xmm0, dword [rbx + 0x1c]
movss dword [rbx + 0x6c], xmm0
movss dword [rbx + 0x58], xmm2
movss dword [rbx + 0x5c], xmm1
movss dword [rbx + 0x60], xmm0
mov rbp, qword [rbx]
mov r14d, dword [0x18029475c]
mov rax, qword gs:[0x58]
mov rsi, qword [rax + r14*8]
mov r15d, 4
mov eax, dword [r15 + rsi]
cmp dword [0x1802976b4], eax
jle 0x18015879d
lea rcx, [0x1802976b4]
call fcn.180199ce8
cmp dword [0x1802976b4], 0xffffffff
jne 0x18015879d
mov rcx, qword [0x180297128]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180158789
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180158744
mov rdx, rdi
test rcx, rcx
je 0x180158780
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180158760
cmp r8d, 0x7a1c884e
je 0x1801587f0
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180158733
mov eax, edi
mov dword [0x1802976c4], eax
lea rcx, [0x1802976b4]
call fcn.180199c7c
mov rcx, qword [0x180297150]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
movsxd rax, dword [0x1802976c4]
mov edx, dword [rax + rbp]
mov dword [rsp + 0xb0], edx
lea rdx, [rsp + 0xb0]
call r8
test rax, rax
je 0x180158802
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x48]
mov ecx, dword [rax]
mov dword [rbx + 0x8c], ecx
mov ecx, dword [rax + 4]
mov dword [rbx + 0x90], ecx
movss xmm0, dword [rax + 8]
jmp 0x1801588d1
lea r8, str.m_hConstraintEntity
mov rdx, qword [r10 + 0x18]
call fcn.180199880
jmp 0x18015878b
mov rbp, qword [rbx]
mov eax, dword [r15 + rsi]
cmp dword [0x1802976fc], eax
jle 0x1801588b1
lea rcx, [0x1802976fc]
call fcn.180199ce8
cmp dword [0x1802976fc], 0xffffffff
jne 0x1801588b1
mov rcx, qword [0x180297128]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015889d
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180158854
mov rdx, rdi
test rcx, rcx
je 0x180158894
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180158870
cmp r8d, 0x7a1c884e
je 0x180158b1b
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180158843
mov eax, edi
mov dword [0x1802976e8], eax
lea rcx, [0x1802976fc]
call fcn.180199c7c
movsxd rcx, dword [0x1802976e8]
mov eax, dword [rcx + rbp]
mov dword [rbx + 0x8c], eax
mov eax, dword [rcx + rbp + 4]
mov dword [rbx + 0x90], eax
movss xmm0, dword [rcx + rbp + 8]
movss dword [rbx + 0x94], xmm0
mov rsi, qword [rbx]
mov rax, qword gs:[0x58]
mov rbp, qword [rax + r14*8]
mov eax, dword [r15 + rbp]
cmp dword [0x1802976e0], eax
jle 0x1801589a1
lea rcx, [0x1802976e0]
call fcn.180199ce8
cmp dword [0x1802976e0], 0xffffffff
jne 0x1801589a1
mov rcx, qword [0x180297128]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015898d
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180158941
mov rdx, rdi
test rcx, rcx
je 0x180158984
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180158960
cmp r8d, 0x7a1c884e
je 0x180158b30
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180158930
mov eax, edi
mov dword [0x180297670], eax
lea rcx, [0x1802976e0]
call fcn.180199c7c
movsxd rax, dword [0x180297670]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0x98], ecx
mov rsi, qword [rbx]
mov eax, dword [r15 + rbp]
cmp dword [0x180297610], eax
jle 0x180158a61
lea rcx, [0x180297610]
call fcn.180199ce8
cmp dword [0x180297610], 0xffffffff
jne 0x180158a61
mov rcx, qword [0x180297128]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180158a4d
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180158a03
mov rdx, rdi
test rcx, rcx
je 0x180158a44
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180158a20
cmp r8d, 0x7a1c884e
je 0x180158b45
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801589f2
mov eax, edi
mov dword [0x180297660], eax
lea rcx, [0x180297610]
call fcn.180199c7c
movsxd rax, dword [0x180297660]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0x9c], ecx
mov rsi, qword [rbx]
mov eax, dword [r15 + rbp]
cmp dword [0x1802976e4], eax
jle 0x180158b7e
lea rcx, [0x1802976e4]
call fcn.180199ce8
cmp dword [0x1802976e4], 0xffffffff
jne 0x180158b7e
mov rcx, qword [0x180297128]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180158b6c
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180158ad1
mov rdx, rdi
test rcx, rcx
je 0x180158b10
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [rdx + r9]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180158af0
cmp r8d, 0x7a1c884e
je 0x180158b5a
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180158ac0
jmp 0x180158b6c
lea r8, str.m_vecConstraintCenter
mov rdx, qword [r10 + 0x18]
call fcn.180199880
jmp 0x18015889f
lea r8, str.m_flConstraintRadius
mov rdx, qword [r10 + 0x18]
call fcn.180199880
jmp 0x18015898f
lea r8, str.m_flConstraintWidth
mov rdx, qword [r10 + 0x18]
call fcn.180199880
jmp 0x180158a4f
lea r8, str.m_flConstraintSpeedFactor
mov rdx, qword [r10 + 0x18]
call fcn.180199880
mov edi, eax
mov dword [0x1802975e8], edi
lea rcx, [0x1802976e4]
call fcn.180199c7c
movsxd rax, dword [0x1802975e8]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0xa0], ecx
mov al, 1
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop r15
pop r14
pop rdi
ret