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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x70
mov rsi, rdx
cmp dword [rcx], 2
jne 0x1400fc473
mov rax, qword [rcx + 8]
mov rcx, qword [rcx + 0x10]
movabs rdx, 0x736f6d6570736575
xor rdx, rax
movabs r8, 0x646f72616e646f6d
xor r8, rcx
movabs r9, 0x6c7967656e657261
xor r9, rax
movabs r10, 0x7465646279746573
xor r10, rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], 0
movzx ebx, byte [rsi + 0x10]
xor eax, eax
cmp bl, 2
setne al
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x20]
mov r8d, 8
call fcn.1400859a0
cmp bl, 2
jne 0x1400fc509
movzx eax, byte [rsi]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x20]
mov r8d, 8
call fcn.1400859a0
jmp 0x1400fc5d3
movabs rcx, 0x100000001b3
movzx edx, byte [rsi + 0x10]
xor eax, eax
cmp dl, 2
setne al
mov qword [rsp + 0x28], rax
movabs rax, 0xcbf29ce484222325
mov r9b, 1
xor r8d, r8d
nop
movzx r9d, r9b
and r9d, 1
add r9, r8
movzx r8d, byte [rsp + r8 + 0x28]
xor rax, r8
imul rax, rcx
mov r8, r9
cmp r9, 8
setne r9b
jne 0x1400fc4a0
cmp dl, 2
jne 0x1400fc528
movzx edx, byte [rsi]
mov qword [rsp + 0x28], rdx
mov r8b, 1
xor edx, edx
nop word [rax + rax]
movzx r8d, r8b
and r8d, 1
add r8, rdx
movzx edx, byte [rsp + rdx + 0x28]
xor rax, rdx
imul rax, rcx
mov rdx, r8
cmp r8, 8
setne r8b
jne 0x1400fc4e0
jmp 0x1400fc6c1
cmp byte [rsi + 0x10], 0
mov rdx, qword [rsi]
mov rsi, qword [rsi + 8]
je 0x1400fc57a
lea rcx, [rsp + 0x28]
mov r8, rsi
call fcn.1400859a0
jmp 0x1400fc5d3
mov r8, qword [rsi]
mov r10, qword [rsi + 8]
lea rdx, [r8 + r10]
cmp byte [rsi + 0x10], 0
je 0x1400fc6d2
test r10, r10
je 0x1400fc6c1
mov r10b, 1
mov r9, rax
nop dword [rax]
movzx r10d, r10b
and r10d, 1
add r10, r8
movzx eax, byte [r8]
xor rax, r9
imul rax, rcx
mov r9, rax
mov r8, r10
cmp r10, rdx
setne r10b
jne 0x1400fc550
jmp 0x1400fc6c1
test rsi, rsi
je 0x1400fc5d3
add rsi, rdx
mov al, 1
lea r14, [0x140a8a420]
lea rdi, [rsp + 0x28]
lea rbx, [rsp + 0x20]
nop word cs:[rax + rax]
movzx r15d, al
and r15d, 1
add r15, rdx
movzx eax, byte [rdx]
movzx eax, byte [rax + r14]
mov byte [rsp + 0x20], al
mov r8d, 1
mov rcx, rdi
mov rdx, rbx
call fcn.1400859a0
mov rdx, r15
cmp r15, rsi
setne al
jne 0x1400fc5a0
mov rcx, qword [rsp + 0x38]
mov r9, qword [rsp + 0x58]
shl r9, 0x38
or r9, qword [rsp + 0x60]
mov rax, qword [rsp + 0x40]
mov r8, qword [rsp + 0x28]
add r8, rcx
rol rcx, 0xd
xor rax, r9
xor rcx, r8
rol r8, 0x20
mov rdx, qword [rsp + 0x30]
add rdx, rax
rol rax, 0x10
xor rax, rdx
add r8, rax
rol rax, 0x15
add rdx, rcx
rol rcx, 0x11
xor rax, r8
xor rcx, rdx
rol rdx, 0x20
xor r8, r9
add r8, rcx
rol rcx, 0xd
xor rcx, r8
rol r8, 0x20
xor rdx, 0xff
add rdx, rax
rol rax, 0x10
xor rax, rdx
add r8, rax
rol rax, 0x15
add rdx, rcx
rol rcx, 0x11
xor rcx, rdx
rol rdx, 0x20
xor rax, r8
add r8, rcx
rol rcx, 0xd
xor rcx, r8
rol r8, 0x20
add rdx, rax
rol rax, 0x10
xor rax, rdx
add r8, rax
rol rax, 0x15
add rdx, rcx
rol rcx, 0x11
xor rcx, rdx
rol rdx, 0x20
xor rax, r8
add r8, rcx
rol rcx, 0xd
xor rcx, r8
add rdx, rax
shl rax, 0x10
xor rax, rdx
shr rax, 0x2b
add rdx, rcx
shr rcx, 0x2f
xor rcx, rax
mov rax, rdx
shr rax, 0x20
xor rax, rdx
xor rax, rcx
and eax, 0x7fff
add rsp, 0x70
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
test r10, r10
je 0x1400fc6c1
lea r9, [r8 + 1]
mov r11, r10
and r11, 3
je 0x1400fc729
lea rsi, [0x140a8a420]
mov rbx, r8
mov rdi, rax
nop word cs:[rax + rax]
mov r8, r9
movzx eax, byte [rbx]
movzx eax, byte [rax + rsi]
xor rax, rdi
imul rax, rcx
xor r9d, r9d
cmp r8, rdx
setne r9b
add r9, r8
mov rbx, r8
mov rdi, rax
dec r11
jne 0x1400fc700
cmp r10, 4
jb 0x1400fc6c1
lea r10, [0x140a8a420]
nop word cs:[rax + rax]
movzx r8d, byte [r8]
movzx r8d, byte [r8 + r10]
xor r8, rax
imul r8, rcx
xor r11d, r11d
cmp r9, rdx
setne r11b
lea rax, [r9 + r11]
movzx esi, byte [r9]
movzx esi, byte [rsi + r10]
xor rsi, r8
imul rsi, rcx
xor edi, edi
cmp rax, rdx
setne dil
lea rbx, [rax + rdi]
movzx r8d, byte [r9 + r11]
movzx r9d, byte [r8 + r10]
xor r9, rsi
imul r9, rcx
xor r8d, r8d
cmp rbx, rdx
setne r8b
add r8, rbx
movzx eax, byte [rdi + rax]
movzx eax, byte [rax + r10]
xor rax, r9
imul rax, rcx
xor r9d, r9d
cmp r8, rdx
setne r9b
add r9, r8
cmp r8, rdx
jne 0x1400fc740
jmp 0x1400fc6c1