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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov r14, rcx
mov rsi, qword [rcx]
mov rax, qword [rcx + 0x10]
movzx ebp, ah
mov ecx, eax
shr ecx, 0x10
movzx r8d, cl
mov edi, eax
shr edi, 0x18
mov rcx, rax
shr rcx, 0x20
mov r11, rax
shr r11, 0x28
mov r10, rax
shr r10, 0x30
mov r9, rax
shr r9, 0x38
movzx edx, al
movabs rbx, 0xcbf29ce484222325
xor rbx, rdx
movabs r15, 0x100000001b3
imul rbx, r15
xor rbx, rbp
imul rbx, r15
xor rbx, r8
imul rbx, r15
xor rbx, rdi
imul rbx, r15
movzx ecx, cl
xor rcx, rbx
imul rcx, r15
movzx ebp, r11b
xor rbp, rcx
imul rbp, r15
movzx edx, r10b
xor rdx, rbp
imul rdx, r15
xor rdx, r9
imul rdx, r15
mov qword [rsp + 0x20], rdx
test rax, rax
je 0x7ff6f9ca6db2
lea rcx, [rax + rax*8]
lea rbx, [rcx + rcx*2]
add rbx, rax
add rbx, rsi
lea rdi, [rsp + 0x20]
nop word [rax + rax]
mov ecx, dword [rsi]
movzx eax, ch
mov rdx, rcx
movzx ebp, cl
shr ecx, 0x10
movzx ecx, cl
shr rdx, 0x18
xor rbp, qword [rsp + 0x20]
imul rbp, r15
xor rbp, rax
imul rbp, r15
xor rbp, rcx
imul rbp, r15
xor rbp, rdx
imul rbp, r15
mov qword [rsp + 0x20], rbp
lea rcx, [rsi + 4]
mov rdx, rdi
call fcn.7ff6f9ca7470
add rsi, 0x1c
cmp rsi, rbx
jne 0x7ff6f9ca6d60
mov rdx, qword [rsp + 0x20]
mov ecx, dword [r14 + 0x20]
xor eax, eax
cmp ecx, 3
setne al
xor rax, rdx
movabs rdi, 0x1efac7090aef4a21
imul rax, rdi
mov qword [rsp + 0x20], rax
cmp ecx, 3
je 0x7ff6f9ca6dec
lea rcx, [r14 + 0x18]
lea rdx, [rsp + 0x20]
call fcn.7ff6f9ca7470
mov rax, qword [rsp + 0x20]
mov edx, dword [r14 + 0x38]
xor ecx, ecx
cmp edx, 3
setne cl
xor rcx, rax
imul rcx, rdi
mov qword [rsp + 0x20], rcx
cmp edx, 3
je 0x7ff6f9ca6e1c
lea rcx, [r14 + 0x30]
lea rdx, [rsp + 0x20]
call fcn.7ff6f9ca7470
mov rcx, qword [rsp + 0x20]
mov edx, dword [r14 + 0x50]
xor eax, eax
cmp edx, 3
setne al
xor rax, rcx
imul rax, rdi
mov qword [rsp + 0x20], rax
cmp edx, 3
je 0x7ff6f9ca6e4c
lea rcx, [r14 + 0x48]
lea rdx, [rsp + 0x20]
call fcn.7ff6f9ca7470
mov rax, qword [rsp + 0x20]
mov ecx, dword [r14 + 0x60]
xor rax, rcx
imul rax, rdi
cmp rcx, 1
jne 0x7ff6f9ca6e90
mov edx, dword [r14 + 0x64]
movzx ecx, dh
mov rbp, rdx
movzx ebx, dl
shr edx, 0x10
movzx edx, dl
shr rbp, 0x18
xor rax, rbx
imul rax, r15
xor rax, rcx
imul rax, r15
xor rax, rdx
imul rax, r15
xor rax, rbp
imul rax, r15
mov ecx, dword [r14 + 0x68]
xor rax, rcx
imul rax, rdi
cmp rcx, 1
jne 0x7ff6f9ca6ed4
mov edx, dword [r14 + 0x6c]
movzx ecx, dh
mov rbp, rdx
movzx ebx, dl
shr edx, 0x10
movzx edx, dl
shr rbp, 0x18
xor rax, rbx
imul rax, r15
xor rax, rcx
imul rax, r15
xor rax, rdx
imul rax, r15
xor rax, rbp
imul rax, r15
mov ecx, dword [r14 + 0x70]
xor rax, rcx
imul rax, rdi
cmp rcx, 1
jne 0x7ff6f9ca6f18
mov edx, dword [r14 + 0x74]
movzx ecx, dh
mov rbp, rdx
movzx ebx, dl
shr edx, 0x10
movzx edx, dl
shr rbp, 0x18
xor rax, rbx
imul rax, r15
xor rax, rcx
imul rax, r15
xor rax, rdx
imul rax, r15
xor rax, rbp
imul rax, r15
mov ecx, dword [r14 + 0x78]
xor rax, rcx
imul rax, rdi
cmp rcx, 1
jne 0x7ff6f9ca6f5c
mov edx, dword [r14 + 0x7c]
movzx ecx, dh
mov rbp, rdx
movzx ebx, dl
shr edx, 0x10
movzx edx, dl
shr rbp, 0x18
xor rax, rbx
imul rax, r15
xor rax, rcx
imul rax, r15
xor rax, rdx
imul rax, r15
xor rax, rbp
imul rax, r15
movzx ecx, byte [r14 + 0x80]
xor edx, edx
cmp rcx, 2
setne dl
xor rdx, rax
imul rdx, rdi
mov rax, rdx
xor rax, rcx
imul rax, r15
cmp rcx, 2
cmove rax, rdx
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret