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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
movaps xmmword [rax - 0x38], xmm6
xor r12d, r12d
movaps xmmword [rax - 0x48], xmm7
mov r15, r9
movaps xmmword [rax - 0x58], xmm8
mov rsi, r8
movaps xmmword [rax - 0x68], xmm9
mov rdi, rdx
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm14
mov rax, qword [0x1800bdbf8]
test rax, rax
je 0x180096eb3
movss xmm7, dword [rax + 0x14]
lea rcx, [rsp + 0x60]
movss xmm10, dword [rax + 0x10]
addss xmm7, dword [0x1800b66dc]
movss xmm6, dword [0x1800b6010]
movss dword [rsp + 0x50], xmm10
mov dword [rsp + 0x30], 0x41200000
mov dword [rsp + 0x34], 0x41200000
movss dword [rsp + 0x54], xmm7
call qword [0x1800bdb78]
cmp qword [0x1800bdbf0], r12
lea ebx, [r12 + 1]
mov r11, qword [0x1800bdbe8]
jne 0x18009693b
mov r10b, bl
test r11, r11
je 0x18009693e
mov r10b, r12b
mov rdx, r12
cmp byte [rdi], r12b
je 0x18009694f
add rdx, rbx
cmp byte [rdx + rdi], r12b
jne 0x180096946
movabs rcx, 0xcbf29ce484222325
mov r9, r12
mov r8, rcx
movabs r13, 0x100000001b3
test rdx, rdx
je 0x180096982
movsx rax, byte [r9 + rdi]
add r9, rbx
imul r8, r13
xor r8, rax
cmp r9, rdx
jb 0x18009696e
movss xmm3, dword [0x1800bdb38]
cmp r11, r8
movaps xmm0, xmm10
movaps xmm1, xmm7
addss xmm0, xmm6
sete al
comiss xmm3, xmm10
addss xmm0, dword [rsp + 0x60]
addss xmm1, xmm6
jb 0x180096a16
movss xmm2, dword [0x1800bdb3c]
comiss xmm2, xmm7
jb 0x180096a16
comiss xmm3, xmm0
ja 0x180096a16
comiss xmm2, xmm1
ja 0x180096a16
mov r14b, bl
test al, al
jne 0x180096a1d
test r10b, r10b
je 0x180096a35
cmp byte [0x1800bdb40], r12b
je 0x180096a35
cmp byte [0x1800bdb41], r12b
jne 0x180096a35
mov rdx, r12
cmp byte [rdi], r12b
je 0x1800969f1
add rdx, rbx
cmp byte [rdx + rdi], r12b
jne 0x1800969e8
mov r8, r12
test rdx, rdx
je 0x180096a0d
movsx rax, byte [r8 + rdi]
add r8, rbx
imul rcx, r13
xor rcx, rax
cmp r8, rdx
jb 0x1800969f9
mov qword [0x1800bdbe8], rcx
jmp 0x180096a35
mov r14b, r12b
test al, al
je 0x180096a35
cmp byte [0x1800bdb40], r12b
jne 0x180096a35
mov qword [0x1800bdbe8], r12
cmp byte [rsi], r12b
sete al
mov byte [rsi], al
movaps xmm0, xmmword [0x1800b74c0]
lea r8, [rsp + 0x40]
mov rax, qword [rsp + 0x50]
xorps xmm3, xmm3
movq qword [rsp + 0x40], xmm0
mov rcx, rax
psrldq xmm0, 8
xorps xmm12, xmm12
movq qword [rsp + 0x48], xmm0
movaps xmm0, xmm6
unpcklps xmm0, xmm6
movq rdx, xmm0
mov qword [rsp + 0x58], rax
call qword [0x1800bdb68]
movsd xmm8, qword [rsp + 0x50]
movsd xmm9, qword [rsp + 0x30]
cmp byte [rsi], r12b
je 0x180096b70
movups xmm6, xmmword [0x1800bdcd8]
lea r8, [rbp - 0x50]
mov edx, 0xffffffce
movss xmm1, dword [0x1800b74a8]
mov eax, edx
movss xmm4, dword [0x1800b60ec]
movaps xmm0, xmm6
mulss xmm0, xmm1
movaps xmmword [rbp - 0x50], xmm6
movaps xmmword [rbp - 0x40], xmm6
cvttss2si ecx, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
sub eax, ecx
mulss xmm0, xmm1
mov ecx, edx
movd xmm5, eax
cvttss2si eax, xmm0
movaps xmm0, xmm6
shufps xmm0, xmm6, 0xaa
sub ecx, eax
mulss xmm0, xmm1
cvtdq2ps xmm5, xmm5
movd xmm3, ecx
movq rcx, xmm8
cvttss2si eax, xmm0
mulss xmm5, xmm4
movaps xmm0, xmm6
sub edx, eax
shufps xmm0, xmm6, 0xff
mulss xmm0, dword [0x1800b6014]
movd xmm2, edx
movq rdx, xmm9
cvtdq2ps xmm3, xmm3
cvttss2si eax, xmm0
mulss xmm3, xmm4
cvtdq2ps xmm2, xmm2
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm2, xmm4
mulss xmm1, xmm4
movss dword [rbp - 0x78], xmm5
movss dword [rbp - 0x74], xmm3
movss dword [rbp - 0x6c], xmm1
movss dword [rbp - 0x5c], xmm1
movss dword [rbp - 0x70], xmm2
movups xmm0, xmmword [rbp - 0x78]
movss dword [rbp - 0x68], xmm5
movss dword [rbp - 0x64], xmm3
movss dword [rbp - 0x60], xmm2
movups xmm1, xmmword [rbp - 0x68]
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x20], xmm1
call qword [0x1800bdb88]
movups xmm0, xmmword [0x1800bd3b0]
lea r8, [rsp + 0x40]
xorps xmm3, xmm3
movq rdx, xmm9
movq rcx, xmm8
movdqa xmmword [rsp + 0x40], xmm0
call qword [0x1800bdb60]
mov r10, qword [0x1800bdb70]
cmp byte [rsi], r12b
je 0x180096baa
lea rax, [0x1800bd3c0]
jmp 0x180096bbf
test r14b, r14b
lea rax, [0x1800bdd18]
lea rcx, [0x1800bdd28]
cmove rax, rcx
movss xmm0, dword [rsp + 0x64]
lea r8, [rsp + 0x40]
movss xmm6, dword [0x1800b60f0]
xor r9d, r9d
movss xmm11, dword [0x1800b6764]
mov rdx, rdi
addss xmm10, dword [0x1800b7908]
mulss xmm0, xmm6
movaps xmm1, xmm11
subss xmm1, xmm0
movups xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x40], xmm0
addss xmm1, xmm7
movaps xmm0, xmm10
unpcklps xmm0, xmm1
movq rcx, xmm0
call r10
cmp byte [r15 + 8], r12b
je 0x180096e88
movss xmm0, dword [rsp + 0x64]
lea rdx, [0x1800b750c]
addss xmm10, dword [rsp + 0x60]
movss xmm14, dword [0x1800b6668]
lea rcx, [rsp + 0x50]
mulss xmm0, xmm6
addss xmm10, xmm14
subss xmm11, xmm0
movss dword [rsp + 0x30], xmm10
addss xmm11, xmm7
movss dword [rsp + 0x34], xmm11
call qword [0x1800bdb78]
movss xmm2, dword [0x1800bdb38]
comiss xmm2, xmm10
jb 0x180096ca1
movss xmm1, dword [0x1800bdb3c]
comiss xmm1, xmm11
jb 0x180096ca1
movss xmm0, dword [rsp + 0x50]
addss xmm0, xmm10
comiss xmm2, xmm0
ja 0x180096ca1
movss xmm0, dword [rsp + 0x54]
addss xmm0, xmm11
comiss xmm1, xmm0
jbe 0x180096ca4
mov bl, r12b
lea rcx, [0x1800bdd38]
test bl, bl
lea rax, [0x1800bdd48]
mov edi, 4
cmove rax, rcx
lea r8, [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
lea rdx, [0x1800b750c]
mov r9d, edi
movups xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x40], xmm0
call qword [0x1800bdb70]
test bl, bl
je 0x180096e88
cmp qword [0x1800bdbe8], r12
jne 0x180096e88
addss xmm10, dword [rsp + 0x50]
addss xmm11, dword [rsp + 0x54]
mov rax, qword [0x1800bdb78]
lea rcx, [rsp + 0x40]
mov rdx, qword [r15]
movss dword [rsp + 0x58], xmm10
movss dword [rsp + 0x5c], xmm11
call rax
movaps xmm0, xmmword [0x1800b74b0]
lea rbx, [0x1800bdba8]
lea r9, [rsp + 0x40]
movss dword [rsp + 0x20], xmm14
mov rcx, rbx
movss xmm7, dword [rax]
movss xmm6, dword [rax + 4]
movaps xmm9, xmm7
addss xmm9, dword [0x1800b676c]
movq qword [rsp + 0x40], xmm0
movaps xmm8, xmm6
addss xmm8, dword [0x1800b676c]
psrldq xmm0, 8
movq qword [rsp + 0x48], xmm0
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x34], xmm8
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x58]
mov r8, qword [rsp + 0x30]
mov rdx, rax
mov qword [rsp + 0x58], rax
call fcn.180099300
movups xmm0, xmmword [0x1800bd3c0]
mov r8, qword [r15]
lea r9, [rsp + 0x40]
movaps xmm2, xmm10
mov dword [rsp + 0x20], edi
addss xmm2, dword [0x1800b66b0]
movdqa xmmword [rsp + 0x40], xmm0
movaps xmm1, xmm11
addss xmm1, dword [0x1800b66b0]
mov rcx, rbx
movaps xmm0, xmm2
unpcklps xmm0, xmm1
movq rdx, xmm0
call fcn.18009cc40
movaps xmm3, xmmword [0x1800b74c0]
lea r9, [rsp + 0x40]
addss xmm7, dword [0x1800b737c]
addss xmm6, dword [0x1800b737c]
movaps xmm1, xmm10
movq qword [rsp + 0x40], xmm3
addss xmm1, dword [0x1800b6000]
movaps xmm2, xmm11
psrldq xmm3, 8
addss xmm2, dword [0x1800b6000]
movaps xmm0, xmm7
movss dword [rsp + 0x20], xmm14
unpcklps xmm0, xmm6
mov rcx, rbx
movq r8, xmm0
movq qword [rsp + 0x48], xmm3
unpcklps xmm1, xmm2
movq rdx, xmm1
call fcn.18009b9c8
movups xmm0, xmmword [0x1800bd3b0]
lea r9, [rsp + 0x40]
mov rcx, rbx
movaps xmm1, xmm10
movss dword [rsp + 0x20], xmm14
movdqa xmmword [rsp + 0x40], xmm0
movaps xmm0, xmm9
unpcklps xmm0, xmm8
unpcklps xmm1, xmm11
movq r8, xmm0
movq rdx, xmm1
call fcn.18009b9c8
movss xmm0, dword [rsp + 0x64]
subss xmm0, dword [0x1800b6000]
comiss xmm0, xmm12
jb 0x180096ea0
movaps xmm12, xmm0
mov rax, qword [0x1800bdbf8]
addss xmm12, dword [rax + 0x14]
movss dword [rax + 0x14], xmm12
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
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 xmm14, xmmword [r11 - 0x80]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret