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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
mov qword [rsp + 8], rcx
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xd0
mov rsi, r8
mov r14, rdx
xor r12d, r12d
cmp qword [r8], r12
je 0x1800f8e27
mov rbx, qword [rdx]
mov rdi, qword [rdx + 8]
cmp rbx, rdi
je 0x1800f891f
mov rcx, rbx
call fcn.1800a0370
add rbx, 0x28
cmp rbx, rdi
jne 0x1800f8907
mov rax, qword [r14]
mov qword [r14 + 8], rax
mov rax, qword [rsi]
mov rsi, qword [rax + 0x20]
lea rdx, [rsi + 0x11]
mov rax, rsi
test rdx, rdx
cmove rax, r12
mov rax, qword [rax + 8]
mov rcx, qword [rax + 0x68]
lea rdi, [rcx - 0x60]
test rcx, rcx
cmove rdi, r12
test rdx, rdx
cmove rsi, r12
mov rsi, qword [rsi + 8]
cmp rdi, rsi
je 0x1800f8be1
mov eax, 8
movabs rcx, 0x6c6169726574614d
nop word [rax + rax]
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x79], xmm0
mov qword [rbp - 0x69], rax
mov qword [rbp - 0x61], 0xf
mov qword [rbp - 0x79], rcx
mov byte [rbp - 0x71], 0
mov byte [rbp - 0x59], 0x2e
lea rax, [rbp - 0x79]
mov qword [rbp - 0x51], rax
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x49]
call fcn.18009ffe0
movzx eax, byte [rbp - 0x59]
mov byte [rbp - 0x29], al
lea rdx, [rbp - 0x49]
cmp qword [rbp - 0x31], 0xf
cmova rdx, qword [rbp - 0x49]
lea rcx, [rbp - 0x79]
cmp qword [rbp - 0x61], 0xf
cmova rcx, qword [rbp - 0x79]
mov rax, qword [rbp - 0x51]
sub rax, rcx
add rax, rdx
mov qword [rbp - 0x21], rax
lea rdx, [rbp - 0x49]
lea rcx, [rdi + 0x20]
call fcn.180105e70
mov rbx, rax
lea rcx, [rbp - 0x49]
test rax, rax
jne 0x1800f89fa
call fcn.1800a0370
mov byte [rbp + 7], bl
jmp 0x1800f8a13
call fcn.1800a0370
mov byte [rbp + 7], 0
mov rdx, rbx
lea rcx, [rbp + 0xf]
call fcn.18009ffe0
mov byte [rbp + 7], 1
lea rcx, [rbp - 0x79]
call fcn.1800a0370
cmp byte [rbp + 7], 0
jne 0x1800f8a27
jmp 0x1800f8bab
lea rdx, [rbp + 0xf]
lea rcx, [rbp - 0x19]
call fcn.18009ffe0
nop
mov dword [rbp + 0x67], 0xffffffff
vpxor xmm0, xmm0, xmm0
vmovups xmmword [rbp - 0x79], xmm0
mov qword [rbp - 0x69], 5
mov qword [rbp - 0x61], 0xf
mov eax, dword [str.Color]
mov dword [rbp - 0x79], eax
movzx eax, byte [0x1802266e0]
mov byte [rbp - 0x75], al
mov byte [rbp - 0x74], 0
mov byte [rbp - 0x59], 0x2e
lea rax, [rbp - 0x79]
mov qword [rbp - 0x51], rax
lea rdx, [rbp - 0x79]
lea rcx, [rbp - 0x49]
call fcn.18009ffe0
movzx eax, byte [rbp - 0x59]
mov byte [rbp - 0x29], al
lea r8, [rbp - 0x49]
cmp qword [rbp - 0x31], 0xf
cmova r8, qword [rbp - 0x49]
lea rdx, [rbp - 0x79]
cmp qword [rbp - 0x61], 0xf
cmova rdx, qword [rbp - 0x79]
mov rax, qword [rbp - 0x51]
sub rax, rdx
add rax, r8
mov qword [rbp - 0x21], rax
lea rdx, [rbp - 0x49]
lea rcx, [rdi + 0x20]
call fcn.180105e70
mov rbx, rax
test rax, rax
jne 0x1800f8ace
mov rbx, r12
lea rcx, [rbp - 0x49]
call fcn.1800a0370
nop
lea rcx, [rbp - 0x79]
call fcn.1800a0370
test rbx, rbx
je 0x1800f8af2
lea r8, [rbp + 0x67]
mov rdx, rbx
call fcn.1800f6e80
mov rbx, qword [r14]
mov r15, qword [r14 + 8]
cmp rbx, r15
je 0x1800f8b48
mov r13, qword [rbp - 1]
mov r12, qword [rbp - 9]
nop word [rax + rax]
lea rdx, [rbp - 0x19]
cmp r13, 0xf
cmova rdx, qword [rbp - 0x19]
mov r8, qword [rbx + 0x10]
mov rcx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x1800f8b2e
mov rcx, qword [rbx]
cmp r8, r12
jne 0x1800f8b3c
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1800f8b8f
add rbx, 0x28
cmp rbx, r15
jne 0x1800f8b10
xor r12d, r12d
lea rdx, [rbp - 0x19]
lea rcx, [rbp - 0x79]
call fcn.18009ffe0
mov eax, dword [rbp + 0x67]
mov dword [rbp - 0x59], eax
mov rdx, qword [r14 + 8]
cmp rdx, qword [r14 + 0x10]
je 0x1800f8d92
vmovups ymm0, ymmword [rbp - 0x79]
vmovups ymmword [rdx], ymm0
mov qword [rbp - 0x69], r12
mov qword [rbp - 0x61], 0xf
mov byte [rbp - 0x79], 0
mov dword [rdx + 0x20], eax
add qword [r14 + 8], 0x28
jmp 0x1800f8d9f
lea rcx, [rbp - 0x19]
call fcn.1800a0370
nop
cmp byte [rbp + 7], 0
je 0x1800f8ba8
lea rcx, [rbp + 0xf]
call fcn.1800a0370
xor r12d, r12d
lea rax, [rdi + 0x68]
test rdi, rdi
mov ecx, 8
cmove rax, rcx
mov rcx, qword [rax]
lea rdi, [rcx - 0x60]
test rcx, rcx
cmove rdi, r12
cmp rdi, rsi
mov eax, 8
movabs rcx, 0x6c6169726574614d
jne 0x1800f8970
mov rbx, qword [r14]
cmp rbx, qword [r14 + 8]
je 0x1800f8e27
movabs r13, 0xcbf29ce484222325
movabs r15, 0x100000001b3
mov edx, 0xcb0c01d1
lea rcx, [0x1801e429d]
call fcn.1800f5960
mov r11d, eax
mov r8, rbx
mov r10, qword [rbx + 0x18]
cmp r10, 0xf
jbe 0x1800f8c26
mov r8, qword [rbx]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x1800f8c33
mov rdx, r12
test rcx, rcx
je 0x1800f8c67
nop word [rax + rax]
movsx eax, byte [r8 + rdx]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1800f8c50
cmp r9d, r11d
je 0x1800f8ddc
mov rdi, rbx
cmp r10, 0xf
jbe 0x1800f8c7c
mov rdi, qword [rbx]
mov edx, 0xca0c003e
lea rcx, [0x1802266a9]
call fcn.1800f5960
mov r9d, eax
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
nop dword [rax]
inc rcx
cmp byte [rdi + rcx], 0
jne 0x1800f8ca0
mov rdx, r12
test rcx, rcx
je 0x1800f8cc7
movsx eax, byte [rdx + rdi]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1800f8cb1
cmp r8d, r9d
je 0x1800f8dd6
mov r9, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x1800f8cdd
mov r9, qword [rbx]
mov edx, 0x811c9dc5
mov dword [rbp + 0x67], edx
mov rcx, 0xffffffffffffffff
nop dword [rax]
inc rcx
cmp byte [r9 + rcx], 0
jne 0x1800f8cf0
mov r8, r12
test rcx, rcx
je 0x1800f8d30
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r8 + r9]
xor eax, edx
imul edx, eax, 0x1000193
inc r8
cmp r8, rcx
jb 0x1800f8d10
mov dword [rbp + 0x67], edx
nop dword [rax + rax]
movzx ecx, dl
xor rcx, r13
imul rcx, r15
movzx eax, byte [rbp + 0x68]
xor rcx, rax
imul rcx, r15
movzx eax, byte [rbp + 0x69]
xor rcx, rax
imul rcx, r15
movzx eax, byte [rbp + 0x6a]
xor rcx, rax
imul rcx, r15
and rcx, qword [0x1802626d0]
shl rcx, 4
add rcx, qword [0x1802626b8]
mov rax, qword [rcx + 8]
cmp rax, qword [0x1802626a8]
je 0x1800f8dce
mov rcx, qword [rcx]
cmp edx, dword [rax + 0x10]
je 0x1800f8dd1
cmp rax, rcx
je 0x1800f8dce
mov rax, qword [rax + 8]
cmp edx, dword [rax + 0x10]
jne 0x1800f8d82
jmp 0x1800f8dd1
lea r8, [rbp - 0x79]
mov rcx, r14
call fcn.1800a46b0
nop
lea rcx, [rbp - 0x79]
vzeroupper
call fcn.1800a0370
nop
lea rcx, [rbp - 0x19]
call fcn.1800a0370
nop
cmp byte [rbp + 7], 0
je 0x1800f8bab
lea rcx, [rbp + 0xf]
call fcn.1800a0370
jmp 0x1800f8bab
mov rax, r12
test rax, rax
je 0x1800f8ddc
add rbx, 0x28
jmp 0x1800f8e1d
mov rsi, qword [r14 + 8]
lea rdi, [rbx + 0x28]
cmp rdi, rsi
je 0x1800f8e0b
nop dword [rax]
lea rcx, [rdi - 0x28]
mov rdx, rdi
call fcn.18009fee0
mov eax, dword [rdi + 0x20]
mov dword [rdi - 8], eax
add rdi, 0x28
cmp rdi, rsi
jne 0x1800f8df0
mov rcx, qword [r14 + 8]
sub rcx, 0x28
call fcn.1800a0370
add qword [r14 + 8], 0xffffffffffffffd8
cmp rbx, qword [r14 + 8]
jne 0x1800f8c02
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret