Function at 0x1801577e0
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, 0xc0
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 0x18015782d
xor al, al
jmp 0x180158088
add rcx, 0x10
mov rax, qword [rcx]
call qword [rax + 0x48]
mov dword [rsp + 0xe0], eax
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0x50]
lea rcx, [0x180252a08]
call fcn.1801593d0
mov rsi, qword [rax]
and byte [rbx + 8], 0xfc
mov rcx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov ecx, dword [rax]
mov dword [rbx + 0xc], ecx
mov rcx, qword [rbx]
call fcn.1800be1c0
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.1800de7a0
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 rdi, qword [rbx]
mov rax, qword [0x1802524e8]
xor edx, edx
mov rcx, rdi
call rax
movaps xmm6, xmm0
mov edx, 0x20
mov rcx, rdi
call fcn.1800b94e0
test al, al
jne 0x1801578dd
mov edx, 0x48
mov rcx, rdi
call fcn.1800b94e0
test al, al
je 0x1801578e5
mulss xmm6, dword [0x18022cb58]
movss dword [rbx + 0x44], xmm6
test byte [rbx + 0xe4], 2
je 0x180157900
divss xmm6, dword [0x18022cbb8]
movss dword [rbx + 0x44], xmm6
xor edi, edi
cmp qword [rsi + 0x38], rdi
je 0x1801579fe
mov rcx, qword [rsi + 0x28]
dec rcx
and rcx, qword [rsi + 0x30]
mov rax, qword [rsi + 0x20]
mov rdx, qword [rax + rcx*8]
lea rsi, [rbx + 0x14]
mov eax, dword [rdx + 0xc]
mov dword [rsi], eax
lea r14, [rsi + 4]
mov eax, dword [rdx + 0x10]
mov dword [r14], eax
lea r15, [rsi + 8]
mov eax, dword [rdx + 0x14]
mov dword [r15], eax
movss xmm3, dword [rdx]
movaps xmm0, xmm3
movdqa xmm1, xmmword [0x18022d5e0]
andps xmm0, xmm1
movss xmm2, dword [0x18022c99c]
comiss xmm2, xmm0
jbe 0x180157979
movss xmm0, dword [rdx + 4]
andps xmm0, xmm1
comiss xmm2, xmm0
jbe 0x180157979
movss xmm0, dword [rdx + 8]
andps xmm0, xmm1
comiss xmm2, xmm0
ja 0x180157b48
movss xmm1, dword [rdx + 0x10]
xorps xmm1, xmmword [0x18022d600]
mov dword [rsp + 0x20], edi
movss dword [rsp + 0x24], xmm1
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x38], edi
movss dword [rsp + 0x40], xmm3
movss xmm0, dword [rdx + 4]
movss dword [rsp + 0x44], xmm0
movss xmm1, dword [rdx + 8]
movss dword [rsp + 0x48], xmm1
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.180142d10
movss xmm0, dword [rsp + 0x50]
movss dword [rbx + 0x34], xmm0
movss xmm1, dword [rsp + 0x54]
xorps xmm1, xmmword [0x18022d600]
movss dword [rbx + 0x3c], xmm1
movss xmm0, dword [rsp + 0x58]
movss dword [rbx + 0x40], xmm0
jmp 0x180157b48
lea rdx, [rbx + 0x4c]
lea rcx, [rsp + 0x50]
call fcn.180153a40
movss xmm7, dword [rax + 4]
lea rsi, [rbx + 0x14]
mov dword [rsi], edi
lea r14, [rsi + 4]
movss dword [r14], xmm7
lea r15, [rsi + 8]
mov dword [r15], edi
xorps xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm8, xmm0
xorps xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm6, xmm0
mulss xmm7, dword [0x18022ca30]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm9, xmm0
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm10, xmm0
movaps xmm11, xmm0
mulss xmm11, xmm6
movaps xmm7, xmm9
mulss xmm7, xmm6
xorps xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm6, xmm0
xorps xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
mulss xmm0, dword [0x18022ce3c]
mulss xmm6, xmm8
movaps xmm3, xmm9
xorps xmm3, xmmword [0x18022d600]
mulss xmm3, xmm0
movaps xmm1, xmm10
mulss xmm1, xmm6
subss xmm3, xmm1
mulss xmm10, xmm0
mulss xmm9, xmm6
subss xmm10, xmm9
divss xmm10, xmm3
movss xmm2, dword [rbx + 0x4c]
movaps xmm0, xmm10
mulss xmm0, xmm2
movss xmm1, dword [rbx + 0x50]
subss xmm1, xmm0
mulss xmm10, xmm11
subss xmm7, xmm10
divss xmm1, xmm7
movss dword [rbx + 0x34], xmm1
mulss xmm11, xmm1
subss xmm2, xmm11
divss xmm2, xmm3
movss dword [rbx + 0x3c], xmm2
mov rcx, qword [rbx]
call fcn.1800de7a0
movss xmm0, dword [rax + 4]
movss xmm1, dword [rax]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x180157b28
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x180157b30
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm1, dword [rbx + 0x44]
mulss xmm1, dword [0x18022ca88]
comiss xmm1, xmm0
jb 0x180157b48
mov dword [rbx + 0x3c], edi
mov dword [rbx + 0x34], edi
mov eax, dword [rbx + 0x44]
mov dword [rbx + 0x48], eax
movss xmm2, dword [rsi]
movss dword [rbx + 0x64], xmm2
movss xmm1, dword [r14]
movss dword [rbx + 0x68], xmm1
movss xmm0, dword [r15]
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 [0x180255e0c]
mov rax, qword gs:[0x58]
mov rsi, qword [rax + r14*8]
mov r15d, 4
mov eax, dword [r15 + rsi]
cmp dword [0x180257cf0], eax
jle 0x180157c3d
lea rcx, [0x180257cf0]
call fcn.1801a548c
cmp dword [0x180257cf0], 0xffffffff
jne 0x180157c3d
mov rcx, qword [0x180257700]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180157c29
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180157be6
mov rdx, rdi
test rcx, rcx
je 0x180157c20
nop dword [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180157c00
cmp r8d, 0x7a1c884e
je 0x180157c90
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180157bd5
mov eax, edi
mov dword [0x180257d00], eax
lea rcx, [0x180257cf0]
call fcn.1801a5420
mov rcx, qword [0x180257730]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
movsxd rax, dword [0x180257d00]
mov edx, dword [rax + rbp]
mov dword [rsp + 0xe0], edx
lea rdx, [rsp + 0xe0]
call r8
test rax, rax
je 0x180157ca2
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 0x180157d71
lea r8, str.m_hConstraintEntity
mov rdx, qword [r10 + 0x18]
call fcn.1801a5020
jmp 0x180157c2b
mov rbp, qword [rbx]
mov eax, dword [r15 + rsi]
cmp dword [0x180257d38], eax
jle 0x180157d51
lea rcx, [0x180257d38]
call fcn.1801a548c
cmp dword [0x180257d38], 0xffffffff
jne 0x180157d51
mov rcx, qword [0x180257700]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180157d3d
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180157cf4
mov rdx, rdi
test rcx, rcx
je 0x180157d34
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180157d10
cmp r8d, 0x7a1c884e
je 0x180157fbb
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180157ce3
mov eax, edi
mov dword [0x180257d24], eax
lea rcx, [0x180257d38]
call fcn.1801a5420
movsxd rcx, dword [0x180257d24]
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 rbp, qword [rbx]
mov rax, qword gs:[0x58]
mov rsi, qword [rax + r14*8]
mov eax, dword [r15 + rsi]
cmp dword [0x180257d20], eax
jle 0x180157e41
lea rcx, [0x180257d20]
call fcn.1801a548c
cmp dword [0x180257d20], 0xffffffff
jne 0x180157e41
mov rcx, qword [0x180257700]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180157e2d
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180157de1
mov rdx, rdi
test rcx, rcx
je 0x180157e24
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 0x180157e00
cmp r8d, 0x7a1c884e
je 0x180157fd0
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180157dd0
mov eax, edi
mov dword [0x180257ca4], eax
lea rcx, [0x180257d20]
call fcn.1801a5420
movsxd rax, dword [0x180257ca4]
mov ecx, dword [rax + rbp]
mov dword [rbx + 0x98], ecx
mov rbp, qword [rbx]
mov eax, dword [r15 + rsi]
cmp dword [0x180257c44], eax
jle 0x180157f01
lea rcx, [0x180257c44]
call fcn.1801a548c
cmp dword [0x180257c44], 0xffffffff
jne 0x180157f01
mov rcx, qword [0x180257700]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180157eed
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180157ea3
mov rdx, rdi
test rcx, rcx
je 0x180157ee4
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180157ec0
cmp r8d, 0x7a1c884e
je 0x180157fe5
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180157e92
mov eax, edi
mov dword [0x180257c88], eax
lea rcx, [0x180257c44]
call fcn.1801a5420
movsxd rax, dword [0x180257c88]
mov ecx, dword [rax + rbp]
mov dword [rbx + 0x9c], ecx
mov rbp, qword [rbx]
mov eax, dword [r15 + rsi]
cmp dword [0x180257d28], eax
jle 0x18015801e
lea rcx, [0x180257d28]
call fcn.1801a548c
cmp dword [0x180257d28], 0xffffffff
jne 0x18015801e
mov rcx, qword [0x180257700]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015800c
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180157f71
mov rdx, rdi
test rcx, rcx
je 0x180157fb0
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 0x180157f90
cmp r8d, 0x7a1c884e
je 0x180157ffa
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180157f60
jmp 0x18015800c
lea r8, str.m_vecConstraintCenter
mov rdx, qword [r10 + 0x18]
call fcn.1801a5020
jmp 0x180157d3f
lea r8, str.m_flConstraintRadius
mov rdx, qword [r10 + 0x18]
call fcn.1801a5020
jmp 0x180157e2f
lea r8, str.m_flConstraintWidth
mov rdx, qword [r10 + 0x18]
call fcn.1801a5020
jmp 0x180157eef
lea r8, str.m_flConstraintSpeedFactor
mov rdx, qword [r10 + 0x18]
call fcn.1801a5020
mov edi, eax
mov dword [0x180257c14], edi
lea rcx, [0x180257d28]
call fcn.1801a5420
movsxd rax, dword [0x180257c14]
mov ecx, dword [rax + rbp]
mov dword [rbx + 0xa0], ecx
mov rdx, qword [rbx]
call fcn.180158c00
movss dword [rbx + 0x1a8], xmm0
mov rcx, qword [rbx]
call fcn.1800bd320
movss xmm0, dword [rax]
movss dword [rbx + 0x1a4], xmm0
addss xmm0, dword [rbx + 0x1a8]
movss dword [rbx + 0x1ac], xmm0
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
mov al, 1
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
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]
mov rsp, r11
pop r15
pop r14
pop rdi
ret