Function at 0x1800956fc
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, [rax - 0x68]
sub rsp, 0x140
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], xmm13
mov rax, qword [0x1800bcb98]
test rax, rax
je 0x180095d01
movss xmm7, dword [rax + 0x14]
lea rcx, [rsp + 0x48]
addss xmm7, dword [0x1800b56fc]
movss xmm8, dword [rax + 0x10]
movss xmm6, dword [0x1800b4fe8]
mov dword [rsp + 0x40], 0x41200000
mov dword [rsp + 0x44], 0x41200000
call qword [0x1800bcb18]
cmp qword [0x1800bcb90], r12
lea ebx, [r12 + 1]
mov r11, qword [0x1800bcb88]
jne 0x1800957b5
mov r10b, bl
test r11, r11
je 0x1800957b8
mov r10b, r12b
mov rdx, r12
cmp byte [rdi], r12b
je 0x1800957c9
add rdx, rbx
cmp byte [rdi + rdx], r12b
jne 0x1800957c0
movabs rcx, 0xcbf29ce484222325
mov r9, r12
mov r8, rcx
movabs r13, 0x100000001b3
test rdx, rdx
je 0x1800957fc
movsx rax, byte [rdi + r9]
add r9, rbx
imul r8, r13
xor r8, rax
cmp r9, rdx
jb 0x1800957e8
movss xmm3, dword [0x1800bcad8]
movaps xmm10, xmm8
cmp r11, r8
addss xmm10, xmm6
movaps xmm1, xmm7
sete al
addss xmm1, xmm6
comiss xmm3, xmm8
movaps xmm0, xmm10
addss xmm0, dword [rsp + 0x48]
jb 0x180095895
movss xmm2, dword [0x1800bcadc]
comiss xmm2, xmm7
jb 0x180095895
comiss xmm3, xmm0
ja 0x180095895
comiss xmm2, xmm1
ja 0x180095895
mov r14b, bl
test al, al
jne 0x18009589c
test r10b, r10b
je 0x1800958b4
cmp byte [0x1800bcae0], r12b
je 0x1800958b4
cmp byte [0x1800bcae1], r12b
jne 0x1800958b4
mov rdx, r12
cmp byte [rdi], r12b
je 0x180095870
add rdx, rbx
cmp byte [rdi + rdx], r12b
jne 0x180095867
mov r8, r12
test rdx, rdx
je 0x18009588c
movsx rax, byte [rdi + r8]
add r8, rbx
imul rcx, r13
xor rcx, rax
cmp r8, rdx
jb 0x180095878
mov qword [0x1800bcb88], rcx
jmp 0x1800958b4
mov r14b, r12b
test al, al
je 0x1800958b4
cmp byte [0x1800bcae0], r12b
jne 0x1800958b4
mov qword [0x1800bcb88], r12
cmp byte [rsi], r12b
sete al
mov byte [rsi], al
movaps xmm0, xmmword [0x1800b64d0]
lea r8, [rsp + 0x30]
movq qword [rsp + 0x30], xmm0
movaps xmm1, xmm8
psrldq xmm0, 8
xorps xmm3, xmm3
movq qword [rsp + 0x38], xmm0
movaps xmm0, xmm6
unpcklps xmm0, xmm6
unpcklps xmm1, xmm7
movq rdx, xmm0
movq rcx, xmm1
call qword [0x1800bcb08]
movsd xmm9, qword [rsp + 0x40]
unpcklps xmm8, xmm7
cmp byte [rsi], r12b
je 0x1800959ec
movups xmm6, xmmword [0x1800bcc78]
lea r8, [rbp - 0x70]
mov edx, 0xffffffce
movss xmm1, dword [0x1800b64b0]
mov eax, edx
movss xmm4, dword [0x1800b510c]
movaps xmm0, xmm6
mulss xmm0, xmm1
movaps xmmword [rbp - 0x70], xmm6
movaps xmmword [rbp - 0x60], 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 [0x1800b4fec]
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 [rsp + 0x70], xmm5
movss dword [rsp + 0x74], xmm3
movss dword [rsp + 0x7c], xmm1
movss dword [rbp - 0x74], xmm1
movss dword [rsp + 0x78], xmm2
movups xmm0, xmmword [rsp + 0x70]
movss dword [rbp - 0x80], xmm5
movss dword [rbp - 0x7c], xmm3
movss dword [rbp - 0x78], xmm2
movups xmm1, xmmword [rbp - 0x80]
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x40], xmm1
call qword [0x1800bcb28]
movups xmm0, xmmword [0x1800bc350]
lea r8, [rsp + 0x30]
xorps xmm3, xmm3
movq rdx, xmm9
movq rcx, xmm8
movdqa xmmword [rsp + 0x30], xmm0
call qword [0x1800bcb00]
mov r10, qword [0x1800bcb10]
cmp byte [rsi], r12b
je 0x180095a26
lea rax, [0x1800bc360]
jmp 0x180095a3b
test r14b, r14b
lea rax, [0x1800bccb8]
lea rcx, [0x1800bccc8]
cmove rax, rcx
movss xmm0, dword [rsp + 0x4c]
lea r8, [rsp + 0x30]
addss xmm10, dword [0x1800b6104]
movss xmm6, dword [0x1800b5110]
xor r9d, r9d
movss xmm11, dword [0x1800b5784]
mov rdx, rdi
mulss xmm0, xmm6
movaps xmm1, xmm11
subss xmm1, xmm0
movups xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x30], xmm0
addss xmm1, xmm7
movaps xmm0, xmm10
unpcklps xmm0, xmm1
movq rcx, xmm0
call r10
cmp byte [r15 + 8], r12b
je 0x180095cda
movss xmm0, dword [rsp + 0x4c]
lea rdx, [0x1800b651c]
addss xmm10, dword [rsp + 0x48]
movss xmm13, dword [0x1800b5688]
lea rcx, [rsp + 0x40]
mulss xmm0, xmm6
addss xmm10, xmm13
subss xmm11, xmm0
addss xmm11, xmm7
call qword [0x1800bcb18]
movss xmm2, dword [0x1800bcad8]
comiss xmm2, xmm10
jb 0x180095b0f
movss xmm1, dword [0x1800bcadc]
comiss xmm1, xmm11
jb 0x180095b0f
movss xmm0, dword [rsp + 0x40]
addss xmm0, xmm10
comiss xmm2, xmm0
ja 0x180095b0f
movss xmm0, dword [rsp + 0x44]
addss xmm0, xmm11
comiss xmm1, xmm0
jbe 0x180095b12
mov bl, r12b
lea rcx, [0x1800bccd8]
test bl, bl
lea rax, [0x1800bcce8]
mov edi, 4
cmove rax, rcx
lea r8, [rsp + 0x30]
mov r9d, edi
lea rdx, [0x1800b651c]
movups xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x30], xmm0
movaps xmm0, xmm10
unpcklps xmm0, xmm11
movq rcx, xmm0
call qword [0x1800bcb10]
test bl, bl
je 0x180095cda
cmp qword [0x1800bcb88], r12
jne 0x180095cda
mov rax, qword [0x1800bcb18]
lea rcx, [rsp + 0x30]
mov rdx, qword [r15]
addss xmm10, dword [rsp + 0x40]
addss xmm11, dword [rsp + 0x44]
call rax
movaps xmm1, xmmword [0x1800b64c0]
lea rbx, [0x1800bcb48]
lea r9, [rsp + 0x30]
movss dword [rsp + 0x20], xmm13
mov rcx, rbx
movss xmm7, dword [rax]
movss xmm6, dword [rax + 4]
movaps xmm9, xmm7
addss xmm9, dword [0x1800b578c]
movq qword [rsp + 0x30], xmm1
movaps xmm8, xmm6
addss xmm8, dword [0x1800b578c]
psrldq xmm1, 8
movq qword [rsp + 0x38], xmm1
movaps xmm1, xmm10
movaps xmm0, xmm9
unpcklps xmm1, xmm11
movq rdx, xmm1
unpcklps xmm0, xmm8
movq r8, xmm0
call fcn.180098268
movups xmm0, xmmword [0x1800bc360]
mov r8, qword [r15]
lea r9, [rsp + 0x30]
movaps xmm2, xmm10
mov dword [rsp + 0x20], edi
addss xmm2, dword [0x1800b56d0]
movaps xmm1, xmm11
movdqa xmmword [rsp + 0x30], xmm0
addss xmm1, dword [0x1800b56d0]
mov rcx, rbx
unpcklps xmm2, xmm1
movq rdx, xmm2
call fcn.18009bb68
addss xmm7, dword [0x1800b639c]
movaps xmm3, xmmword [0x1800b64d0]
lea r9, [rsp + 0x30]
addss xmm6, dword [0x1800b639c]
movaps xmm1, xmm10
movq qword [rsp + 0x30], xmm3
addss xmm1, dword [0x1800b5114]
movaps xmm2, xmm11
psrldq xmm3, 8
addss xmm2, dword [0x1800b5114]
unpcklps xmm7, xmm6
mov rcx, rbx
movq r8, xmm7
movss dword [rsp + 0x20], xmm13
movq qword [rsp + 0x38], xmm3
unpcklps xmm1, xmm2
movq rdx, xmm1
call fcn.18009a930
movups xmm0, xmmword [0x1800bc350]
lea r9, [rsp + 0x30]
mov rcx, rbx
movaps xmm1, xmm10
movss dword [rsp + 0x20], xmm13
movdqa xmmword [rsp + 0x30], xmm0
movaps xmm0, xmm9
unpcklps xmm0, xmm8
unpcklps xmm1, xmm11
movq r8, xmm0
movq rdx, xmm1
call fcn.18009a930
movss xmm0, dword [rsp + 0x4c]
subss xmm0, dword [0x1800b5114]
mov rax, qword [0x1800bcb98]
maxss xmm0, dword [0x1800b55c8]
addss xmm0, dword [rax + 0x14]
movss dword [rax + 0x14], xmm0
lea r11, [rsp + 0x140]
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 xmm13, xmmword [r11 - 0x70]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret