Function at 0x18013ea10
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
vmovaps xmmword [rax - 0x28], xmm6
vmovaps xmmword [rax - 0x38], xmm7
vmovaps xmmword [rax - 0x48], xmm8
vmovaps xmmword [rax - 0x58], xmm9
vmovaps xmmword [rax - 0x68], xmm10
vmovaps xmmword [rax - 0x78], xmm11
vmovaps xmmword [rax - 0x88], xmm12
vmovaps xmmword [rsp + 0x70], xmm13
vmovaps xmmword [rsp + 0x60], xmm14
vmovaps xmmword [rsp + 0x50], xmm15
mov rdi, r8
mov rsi, rdx
cmp dword [0x180251c24], 0
je 0x18013ef18
mov rcx, rdx
call fcn.1800cafb0
mov rcx, qword [0x180243ec0]
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 0x18013ef18
mov rcx, rsi
call fcn.1800be1e0
test byte [rax], 1
jne 0x18013ef18
mov r14d, 4
mov ebx, r14d
mov ecx, dword [0x18024256c]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rcx*8]
mov eax, dword [r14 + rax]
cmp dword [0x1802442a8], eax
jle 0x18013eb87
lea rcx, [0x1802442a8]
call fcn.1801905cc
cmp dword [0x1802442a8], 0xffffffff
jne 0x18013eb87
mov rcx, qword [0x180243e98]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18013eb70
nop dword [rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x18013eb21
xor edx, edx
test rcx, rcx
je 0x18013eb64
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 0x18013eb40
cmp r8d, 0x7a1c884e
je 0x18013ec8e
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18013eb10
mov ebx, r14d
xor eax, eax
add eax, 0xffffffe8
mov dword [0x1802442c0], eax
lea rcx, [0x1802442a8]
call fcn.180190560
movsxd rax, dword [0x1802442c0]
test byte [rax + rsi], 2
jne 0x18013eb9e
test byte [rdi + 0x28], 2
jne 0x18013ef18
mov ecx, dword [0x180251c24]
sub ecx, 1
je 0x18013ee88
cmp ecx, 1
jne 0x18013ef18
test dword [rdi + 0x28], 0x618
je 0x18013ef18
vmovss xmm12, dword [rdi + 0x1c]
vmovss xmm13, dword [rdi + 0x20]
vmovss xmm7, dword [0x18021894c]
vmulss xmm6, xmm7, dword [rdi + 0x10]
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmovaps xmm11, xmm0
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmovaps xmm8, xmm0
vmulss xmm6, xmm7, dword [rdi + 0x14]
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 xmm9, xmm0
vmulss xmm6, xmm7, dword [rdi + 0x18]
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmovaps xmm7, xmm0
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmulss xmm14, xmm9, xmm8
vmulss xmm15, xmm10, xmm8
vmulss xmm3, xmm0, dword [0x180218d6c]
vmulss xmm4, xmm7, xmm11
vxorps xmm0, xmm10, xmmword [0x180219380]
vmulss xmm2, xmm0, xmm3
vmulss xmm1, xmm4, xmm9
vsubss xmm8, xmm2, xmm1
vmulss xmm3, xmm3, xmm9
vmulss xmm0, xmm4, xmm10
vsubss xmm9, xmm3, xmm0
vmulss xmm2, xmm15, xmm15
vmulss xmm1, xmm14, xmm14
vaddss xmm0, xmm2, xmm1
vxorps xmm6, xmm6, xmm6
vaddss xmm1, xmm0, xmm6
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, xmm1
ja 0x18013eca6
vsqrtss xmm0, xmm1, xmm1
jmp 0x18013ecaf
lea r8, str.m_hConstraintEntity
mov rdx, qword [r10 + 0x18]
call fcn.180190160
mov ebx, r14d
jmp 0x18013eb72
vmovaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vmovss xmm10, dword [0x1802188c4]
vaddss xmm0, xmm0, xmm10
vmovss xmm7, dword [0x180218a50]
vdivss xmm11, xmm7, xmm0
vmulss xmm1, xmm9, xmm9
vmulss xmm0, xmm8, xmm8
vaddss xmm2, xmm1, xmm0
vaddss xmm3, xmm2, xmm6
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, xmm3
ja 0x18013ecea
vsqrtss xmm0, xmm3, xmm3
jmp 0x18013ecf3
vmovaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vaddss xmm0, xmm0, xmm10
vdivss xmm4, xmm7, xmm0
vmovss dword [rsp + 0x30], xmm6
vmovss dword [rsp + 0x2c], xmm6
vmovss dword [rsp + 0x28], xmm6
vmulss xmm0, xmm14, xmm11
vmulss xmm3, xmm0, xmm12
vmulss xmm1, xmm4, xmm8
vmulss xmm2, xmm1, xmm13
vaddss xmm0, xmm3, xmm2
vmovss dword [rsp + 0x38], xmm0
vmulss xmm1, xmm15, xmm11
vmulss xmm3, xmm1, xmm12
vmulss xmm0, xmm4, xmm9
vmulss xmm2, xmm0, xmm13
vaddss xmm1, xmm3, xmm2
vmovss dword [rsp + 0x3c], xmm1
vmovss dword [rsp + 0x40], xmm6
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x38]
call fcn.1800d1e90
vmovss dword [rsp + 0x40], xmm6
vmovss dword [rsp + 0x3c], xmm6
vmovss dword [rsp + 0x38], xmm6
mov rcx, rsi
call fcn.1800e4aa0
mov rcx, rax
lea rdx, [rsp + 0x38]
call fcn.1800d1e90
vmovss xmm0, dword [rsp + 0x2c]
vsubss xmm0, xmm0, dword [rsp + 0x3c]
vmovd eax, xmm0
and eax, 0x7f800000
cmp eax, 0x7f800000
setne al
cmp al, 1
je 0x18013edad
vxorps xmm4, xmm4, xmm4
jmp 0x18013edbf
vmovss xmm1, dword [0x180218c6c]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
vmovaps xmm4, xmm0
vmovss xmm1, dword [0x180251ea4]
vsubss xmm2, xmm1, xmm6
vmovss dword [rsp + 0x128], xmm2
vmovss dword [rsp + 0x20], xmm7
vmovss dword [rsp + 0x110], xmm6
lea rcx, [rsp + 0x110]
lea rax, [rsp + 0x128]
vcomiss xmm6, xmm2
cmovbe rcx, rax
lea rax, [rsp + 0x20]
vcomiss xmm2, xmm7
cmovbe rax, rcx
vmovss xmm0, dword [rax]
vmulss xmm1, xmm0, dword [0x180218990]
vaddss xmm0, xmm1, dword [0x180218a34]
vmulss xmm3, xmm0, xmm4
vcmpltss xmm2, xmm6, xmm4
vmovss xmm1, dword [0x180218dc4]
vmovss xmm0, dword [0x180218c00]
vblendvps xmm0, xmm0, xmm1, xmm2
vaddss xmm1, xmm3, xmm0
vmulss xmm6, xmm1, dword [0x18021894c]
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 [rdi + 0x1c], xmm2
vmulss xmm3, xmm7, xmm13
vmulss xmm0, xmm0, xmm12
vaddss xmm1, xmm3, xmm0
vmovss dword [rdi + 0x20], xmm1
jmp 0x18013ef18
mov ecx, dword [0x18024256c]
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rcx*8]
mov eax, dword [rbx + rcx]
cmp dword [0x180253b70], eax
jle 0x18013eeda
lea rcx, [0x180253b70]
call fcn.1801905cc
cmp dword [0x180253b70], 0xffffffff
jne 0x18013eeda
lea rdx, str.cl_sidespeed
call fcn.18018e090
mov qword [0x180253b90], rax
lea rcx, [0x180253b70]
call fcn.180190560
mov rax, qword [0x180253b90]
test rax, rax
je 0x18013eef1
mov rax, qword [rax + 0x38]
vmovss xmm0, dword [rax + 0x54]
jmp 0x18013eef9
vmovss xmm0, dword [0x180218c80]
movzx eax, word [rdi + 0x3c]
test ax, ax
je 0x18013ef18
mov dword [rdi + 0x1c], 0
jg 0x18013ef13
vxorps xmm0, xmm0, xmmword [0x180219380]
vmovss dword [rdi + 0x20], xmm0
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x28]
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
pop rdi
pop rsi
ret