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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rdi
mov qword [rax + 8], rcx
push r14
sub rsp, 0xf0
vmovaps xmmword [rax - 0x18], xmm6
vmovaps xmmword [rax - 0x28], xmm7
vmovaps xmmword [rax - 0x38], xmm8
vmovaps xmmword [rax - 0x48], xmm9
vmovaps xmmword [rax - 0x58], xmm10
vmovaps xmmword [rax - 0x68], xmm11
vmovaps xmmword [rax - 0x78], xmm12
vmovaps xmmword [rsp + 0x70], xmm13
vmovaps xmmword [rsp + 0x60], xmm14
vmovaps xmmword [rsp + 0x50], xmm15
mov rbx, r8
mov rdi, rdx
cmp dword [0x1802746d4], 0
je 0x180152458
mov rcx, rdx
call fcn.1800d2c10
mov rcx, qword [0x180267710]
mov r9, qword [rcx]
mov eax, dword [rax]
mov dword [rsp + 0x100], eax
lea rdx, [rsp + 0x100]
call qword [r9 + 0x20]
test rax, rax
jne 0x180152458
mov r14d, 4
mov ecx, dword [0x180265dfc]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rcx*8]
mov eax, dword [r14 + rax]
cmp dword [0x180267b50], eax
jle 0x1801520d4
lea rcx, [0x180267b50]
call fcn.1801b3c6c
cmp dword [0x180267b50], 0xffffffff
jne 0x1801520d4
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801520bd
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180152071
xor edx, edx
test rcx, rcx
je 0x1801520b4
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 0x180152090
cmp r8d, 0x7a1c884e
je 0x1801521d2
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180152060
xor eax, eax
add eax, 0xffffffe8
mov dword [0x180267b68], eax
lea rcx, [0x180267b50]
call fcn.1801b3c00
movsxd rax, dword [0x180267b68]
test byte [rax + rdi], 2
jne 0x1801520eb
test byte [rbx + 0x28], 2
jne 0x180152458
mov ecx, dword [0x1802746d4]
sub ecx, 1
je 0x1801523c7
cmp ecx, 1
jne 0x180152458
test dword [rbx + 0x28], 0x618
je 0x180152458
vmovss xmm12, dword [rbx + 0x1c]
vmovss xmm13, dword [rbx + 0x20]
vmovss xmm11, dword [0x18023baf0]
vmulss xmm6, xmm11, dword [rbx + 0x10]
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmovaps xmm10, xmm0
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmovaps xmm7, xmm0
vmulss xmm6, xmm11, dword [rbx + 0x14]
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmovaps xmm9, xmm0
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmovaps xmm8, xmm0
vmulss xmm14, xmm0, xmm7
vmulss xmm15, xmm9, xmm7
vmulss xmm6, xmm11, dword [rbx + 0x18]
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmulss xmm7, xmm0, dword [0x18023bf40]
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmulss xmm4, xmm0, xmm10
vxorps xmm1, xmm9, xmmword [0x18023c2b0]
vmulss xmm2, xmm1, xmm7
vmulss xmm0, xmm8, xmm4
vsubss xmm10, xmm2, xmm0
vmulss xmm3, xmm8, xmm7
vmulss xmm1, xmm9, xmm4
vsubss xmm8, xmm3, xmm1
vmulss xmm2, xmm15, xmm15
vmulss xmm0, xmm14, xmm14
vaddss xmm1, xmm2, xmm0
vxorps xmm6, xmm6, xmm6
vaddss xmm2, xmm1, xmm6
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, xmm2
ja 0x1801521e7
vsqrtss xmm0, xmm2, xmm2
jmp 0x1801521f0
lea r8, str.m_hConstraintEntity
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x1801520bf
vmovaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vmovss xmm9, dword [0x18023ba3c]
vaddss xmm0, xmm0, xmm9
vmovss xmm7, dword [0x18023bc20]
vdivss xmm11, xmm7, xmm0
vmulss xmm1, xmm8, xmm8
vmulss xmm0, xmm10, xmm10
vaddss xmm2, xmm1, xmm0
vaddss xmm3, xmm2, xmm6
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, xmm3
ja 0x18015222b
vsqrtss xmm0, xmm3, xmm3
jmp 0x180152234
vmovaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vaddss xmm0, xmm0, xmm9
vdivss xmm4, xmm7, xmm0
vmovss dword [rsp + 0x3c], xmm6
vmulss xmm0, xmm14, xmm11
vmulss xmm3, xmm0, xmm12
vmulss xmm1, xmm4, xmm10
vmulss xmm2, xmm1, xmm13
vaddss xmm0, xmm3, xmm2
vmovss dword [rsp + 0x28], xmm0
vmulss xmm1, xmm15, xmm11
vmulss xmm3, xmm1, xmm12
vmulss xmm0, xmm4, xmm8
vmulss xmm2, xmm0, xmm13
vaddss xmm1, xmm3, xmm2
vmovss dword [rsp + 0x2c], xmm1
vmovss dword [rsp + 0x30], xmm6
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x28]
call fcn.1800d9d50
vmovss dword [rsp + 0x2c], xmm6
mov rcx, rdi
call fcn.1800ebca0
mov rcx, rax
lea rdx, [rsp + 0x28]
call fcn.1800d9d50
vmovss xmm0, dword [rsp + 0x3c]
vsubss xmm0, xmm0, dword [rsp + 0x2c]
vmovd eax, xmm0
and eax, 0x7f800000
cmp eax, 0x7f800000
setne al
cmp al, 1
jne 0x1801522e4
vmovss xmm1, dword [0x18023be48]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
vmovaps xmm2, xmm0
jmp 0x1801522e8
vxorps xmm2, xmm2, xmm2
vandps xmm0, xmm2, xmmword [0x18023c290]
vcomiss xmm0, dword [0x180274754]
ja 0x180152458
vmovss xmm0, dword [0x1802749d4]
vsubss xmm1, xmm0, xmm6
vmovss dword [rsp + 0x118], xmm1
vmovss dword [rsp + 0x20], xmm7
vmovss dword [rsp + 0x100], xmm6
lea rcx, [rsp + 0x100]
lea rax, [rsp + 0x118]
vcomiss xmm6, xmm1
cmovbe rcx, rax
lea rax, [rsp + 0x20]
vcomiss xmm1, xmm7
cmovbe rax, rcx
vmovss xmm0, dword [rax]
vmulss xmm1, xmm0, dword [0x18023bb4c]
vaddss xmm0, xmm1, dword [0x18023bc08]
vmulss xmm3, xmm0, xmm2
vcmpltss xmm2, xmm6, xmm2
vmovss xmm1, dword [0x18023bf94]
vmovss xmm0, dword [0x18023bdd8]
vblendvps xmm0, xmm0, xmm1, xmm2
vaddss xmm1, xmm3, xmm0
vmulss xmm6, xmm1, dword [0x18023baf0]
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmovaps xmm7, xmm0
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmulss xmm2, xmm7, xmm12
vmulss xmm1, xmm0, xmm13
vsubss xmm2, xmm2, xmm1
vmovss dword [rbx + 0x1c], xmm2
vmulss xmm3, xmm7, xmm13
vmulss xmm0, xmm0, xmm12
vaddss xmm1, xmm3, xmm0
vmovss dword [rbx + 0x20], xmm1
jmp 0x180152458
mov ecx, dword [0x180265dfc]
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rcx*8]
mov eax, dword [r14 + rcx]
cmp dword [0x18027739c], eax
jle 0x18015241a
lea rcx, [0x18027739c]
call fcn.1801b3c6c
cmp dword [0x18027739c], 0xffffffff
jne 0x18015241a
lea rdx, str.cl_sidespeed
call fcn.1801b0360
mov qword [0x1802773c8], rax
lea rcx, [0x18027739c]
call fcn.1801b3c00
mov rax, qword [0x1802773c8]
test rax, rax
je 0x180152431
mov rax, qword [rax + 0x38]
vmovss xmm0, dword [rax + 0x54]
jmp 0x180152439
vmovss xmm0, dword [0x18023be58]
movzx eax, word [rbx + 0x3c]
test ax, ax
je 0x180152458
mov dword [rbx + 0x1c], 0
jg 0x180152453
vxorps xmm0, xmm0, xmmword [0x18023c2b0]
vmovss dword [rbx + 0x20], xmm0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
vmovaps xmm9, xmmword [r11 - 0x40]
vmovaps xmm10, xmmword [r11 - 0x50]
vmovaps xmm11, xmmword [r11 - 0x60]
vmovaps xmm12, xmmword [r11 - 0x70]
vmovaps xmm13, xmmword [r11 - 0x80]
vmovaps xmm14, xmmword [rsp + 0x60]
vmovaps xmm15, xmmword [rsp + 0x50]
mov rsp, r11
pop r14
ret