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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0xf0
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
movaps xmmword [rax - 0x88], xmm12
movaps xmmword [rsp + 0x70], xmm13
movaps xmmword [rsp + 0x60], xmm14
movaps xmmword [rsp + 0x50], xmm15
mov rdi, r8
mov rsi, rdx
cmp dword [0x18029e814], 0
je 0x180170b79
mov rcx, rdx
call fcn.1800d95e0
mov rcx, qword [0x18028c748]
mov r9, qword [rcx]
mov eax, dword [rax]
mov dword [rsp + 0x110], eax
lea rdx, [rsp + 0x110]
call qword [r9 + 0x20]
test rax, rax
jne 0x180170b79
mov rcx, rsi
call fcn.1800cb7d0
test byte [rax], 1
jne 0x180170b79
mov r14d, 4
mov ebx, r14d
mov ecx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rcx*8]
mov eax, dword [r14 + rax]
cmp dword [0x18028ccd4], eax
jle 0x180170797
lea rcx, [0x18028ccd4]
call fcn.1801d1cb0
cmp dword [0x18028ccd4], 0xffffffff
jne 0x180170797
mov rcx, qword [0x18028c720]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180170780
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180170731
xor edx, edx
test rcx, rcx
je 0x180170774
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 0x180170750
cmp r8d, 0x7a1c884e
je 0x1801708d1
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180170720
mov ebx, r14d
xor eax, eax
add eax, 0xffffffe8
mov dword [0x18028ccf4], eax
lea rcx, [0x18028ccd4]
call fcn.1801d1c44
movsxd rax, dword [0x18028ccf4]
test byte [rax + rsi], 2
jne 0x1801707ae
test byte [rdi + 0x28], 2
jne 0x180170b79
mov ecx, dword [0x18029e814]
sub ecx, 1
je 0x180170aea
cmp ecx, 1
jne 0x180170b79
test dword [rdi + 0x28], 0x618
je 0x180170b79
movss xmm15, dword [rdi + 0x1c]
movss xmm0, dword [rdi + 0x20]
movss dword [rsp + 0x110], xmm0
movss xmm6, dword [rdi + 0x10]
movss xmm8, dword [0x18025de6c]
mulss xmm6, xmm8
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm9, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm7, xmm0
movss xmm6, dword [rdi + 0x14]
mulss xmm6, xmm8
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm11, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm10, xmm0
movss xmm6, dword [rdi + 0x18]
mulss xmm6, xmm8
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm8, xmm0
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm14, xmm0
movaps xmm12, xmm10
mulss xmm12, xmm7
movaps xmm13, xmm11
mulss xmm13, xmm7
mulss xmm14, dword [0x18025e2d0]
mulss xmm8, xmm9
movaps xmm9, xmm11
xorps xmm9, xmmword [0x18025eb10]
mulss xmm9, xmm14
movaps xmm0, xmm8
mulss xmm0, xmm10
subss xmm9, xmm0
mulss xmm14, xmm10
mulss xmm8, xmm11
subss xmm14, xmm8
movaps xmm1, xmm13
mulss xmm1, xmm13
movaps xmm0, xmm12
mulss xmm0, xmm12
addss xmm1, xmm0
xorps xmm6, xmm6
addss xmm1, xmm6
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x1801708e9
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x1801708f1
lea r8, str.m_hConstraintEntity
mov rdx, qword [r10 + 0x18]
call fcn.1801d1920
mov ebx, r14d
jmp 0x180170782
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm10, dword [0x18025dde4]
addss xmm0, xmm10
movss xmm8, dword [0x18025df58]
movaps xmm7, xmm8
divss xmm7, xmm0
movaps xmm1, xmm14
mulss xmm1, xmm14
movaps xmm0, xmm9
mulss xmm0, xmm9
addss xmm1, xmm0
addss xmm1, xmm6
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x18017093b
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x180170943
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
addss xmm0, xmm10
movaps xmm1, xmm8
divss xmm1, xmm0
mov qword [rsp + 0x2c], 0
mov dword [rsp + 0x28], 0
mulss xmm12, xmm7
mulss xmm12, xmm15
movaps xmm0, xmm1
mulss xmm0, xmm9
movss xmm9, dword [rsp + 0x110]
mulss xmm0, xmm9
addss xmm12, xmm0
movss dword [rsp + 0x38], xmm12
mulss xmm13, xmm7
mulss xmm13, xmm15
mulss xmm1, xmm14
mulss xmm1, xmm9
addss xmm13, xmm1
movss dword [rsp + 0x3c], xmm13
mov dword [rsp + 0x40], 0
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x38]
call fcn.1800e2370
mov qword [rsp + 0x3c], 0
mov dword [rsp + 0x38], 0
mov rcx, rsi
call fcn.1800ed480
mov rcx, rax
lea rdx, [rsp + 0x38]
call fcn.1800e2370
movss xmm0, dword [rsp + 0x2c]
subss xmm0, dword [rsp + 0x3c]
movd eax, xmm0
and eax, 0x7f800000
cmp eax, 0x7f800000
setne al
cmp al, 1
je 0x180170a11
xorps xmm0, xmm0
jmp 0x180170a1f
movss xmm1, dword [0x18025e1d0]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
movss xmm1, dword [0x18029ec14]
subss xmm1, xmm6
movss dword [rsp + 0x128], xmm1
mov dword [rsp + 0x20], 0x3f800000
mov dword [rsp + 0x110], 0
lea rcx, [rsp + 0x110]
lea rax, [rsp + 0x128]
comiss xmm6, xmm1
cmovbe rcx, rax
lea rax, [rsp + 0x20]
comiss xmm1, xmm8
cmovbe rax, rcx
movss xmm7, dword [rax]
mulss xmm7, dword [0x18025deb0]
addss xmm7, dword [0x18025df40]
comiss xmm0, xmm6
jbe 0x180170a8e
movss xmm1, dword [0x18025e320]
jmp 0x180170a96
movss xmm1, dword [0x18025e154]
mulss xmm7, xmm0
addss xmm7, xmm1
mulss xmm7, dword [0x18025de6c]
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
movaps xmm6, xmm0
movaps xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
movaps xmm2, xmm6
mulss xmm2, xmm15
movaps xmm1, xmm0
mulss xmm1, xmm9
subss xmm2, xmm1
movss dword [rdi + 0x1c], xmm2
mulss xmm6, xmm9
mulss xmm0, xmm15
addss xmm6, xmm0
movss dword [rdi + 0x20], xmm6
jmp 0x180170b79
mov ecx, dword [0x18028ab2c]
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rcx*8]
mov eax, dword [rbx + rcx]
cmp dword [0x1802a34e0], eax
jle 0x180170b3c
lea rcx, [0x1802a34e0]
call fcn.1801d1cb0
cmp dword [0x1802a34e0], 0xffffffff
jne 0x180170b3c
lea rdx, str.cl_sidespeed
call fcn.1801d0010
mov qword [0x1802a3528], rax
lea rcx, [0x1802a34e0]
call fcn.1801d1c44
mov rax, qword [0x1802a3528]
test rax, rax
je 0x180170b53
mov rax, qword [rax + 0x38]
movss xmm0, dword [rax + 0x54]
jmp 0x180170b5b
movss xmm0, dword [0x18025e1e0]
movzx eax, word [rdi + 0x3c]
test ax, ax
je 0x180170b79
mov dword [rdi + 0x1c], 0
jg 0x180170b74
xorps xmm0, xmmword [0x18025eb10]
movss dword [rdi + 0x20], xmm0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x28]
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 [rsp + 0x60]
movaps xmm15, xmmword [rsp + 0x50]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret