Function at 0x140016d70
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 r15, r9
mov r14, rdx
mov r10, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 7
jbe 0x140016d90
mov r8, qword [r8]
movabs rax, 0xcbf29ce484222325
mov rbx, r10
add rbx, r10
je 0x140016dc6
movabs rdx, 0x100000001b3
lea rdi, [r10 + r10]
add rdi, 0xffffffffffffffff
mov r9d, ebx
and r9d, 6
cmp rdi, 7
jae 0x140016dce
mov rbx, r8
jmp 0x140016e41
mov rdi, rax
jmp 0x140016e67
mov rsi, r9
sub rsi, rbx
mov rbx, r8
nop word [rax + rax]
movzx edi, byte [rbx]
xor rdi, rax
imul rdi, rdx
movzx eax, byte [rbx + 1]
xor rax, rdi
imul rax, rdx
movzx edi, byte [rbx + 2]
xor rdi, rax
imul rdi, rdx
movzx eax, byte [rbx + 3]
xor rax, rdi
imul rax, rdx
movzx edi, byte [rbx + 4]
xor rdi, rax
imul rdi, rdx
movzx eax, byte [rbx + 5]
xor rax, rdi
imul rax, rdx
movzx edi, byte [rbx + 6]
xor rdi, rax
imul rdi, rdx
movzx eax, byte [rbx + 7]
xor rax, rdi
imul rax, rdx
add rbx, 8
add rsi, 8
jne 0x140016de0
mov rdi, rax
test r9, r9
je 0x140016e67
xor esi, esi
nop dword [rax + rax]
movzx edi, byte [rbx + rsi]
xor rdi, rax
imul rdi, rdx
add rsi, 1
mov rax, rdi
cmp r9, rsi
jne 0x140016e50
and rdi, qword [rcx + 0x30]
mov rdx, qword [rcx + 8]
mov r11, qword [rcx + 0x18]
mov rax, rdi
shl rax, 4
lea r9, [rdi + rdi]
mov rbx, qword [r11 + rax]
mov rdi, rdx
cmp rbx, rdx
je 0x140016e9d
lea rax, [r9*8]
or rax, 8
mov rax, qword [r11 + rax]
mov rdi, qword [rax]
cmp rbx, rdi
je 0x140016f3d
mov rdi, qword [rdi + 8]
cmp r10, qword [rdi + 0x20]
jne 0x140016e9d
test r10, r10
je 0x140016ef4
cmp qword [rdi + 0x28], 7
jbe 0x140016ed0
mov rax, qword [rdi + 0x10]
jmp 0x140016ed4
lea rax, [rdi + 0x10]
xor esi, esi
nop word cs:[rax + rax]
movzx ebp, word [r8 + rsi*2]
cmp bp, word [rax + rsi*2]
jne 0x140016e9d
add rsi, 1
cmp r10, rsi
jne 0x140016ee0
mov rax, qword [r15]
mov rdx, qword [r15 + 8]
mov qword [rdx], rax
mov rax, qword [r15]
mov rdx, qword [r15 + 8]
mov qword [rax + 8], rdx
add qword [rcx + 0x10], 0xffffffffffffffff
lea rcx, [r15 + 0x10]
call fcn.1400115c0
mov edx, 0x38
mov rcx, r15
call sub.mozglue.dll_void___cdecl_operator_delete_void____ptr64__unsigned_long_long_unsigned___int64__
xor eax, eax
mov qword [r14], rdi
mov byte [r14 + 8], al
mov rax, r14
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov rax, qword [r15]
cmp rax, rbx
je 0x140016f7a
mov rdx, qword [r15 + 8]
mov qword [rdx], rax
mov rdx, qword [rax + 8]
mov qword [rdx], rbx
mov rdx, qword [rbx + 8]
mov qword [rdx], r15
mov rdx, qword [rbx + 8]
mov rbp, qword [rax + 8]
mov qword [rbx + 8], rbp
mov rbp, qword [r15 + 8]
mov qword [rax + 8], rbp
mov qword [r15 + 8], rdx
mov rdx, qword [rcx + 8]
mov r11, qword [rcx + 0x18]
lea rax, [r11 + r9*8]
mov rdi, qword [r11 + r9*8]
cmp rdi, rdx
jne 0x140016fae
mov qword [rax], r15
shl r9, 3
or r9, 8
add r9, qword [rcx + 0x18]
mov rax, r9
mov rdx, r15
mov qword [rax], rdx
call fcn.140017070
mov al, 1
mov rdi, r15
jmp 0x140016f26
mov rdx, r15
cmp rdi, rbx
je 0x140016f9c
or r9, 1
mov rax, qword [r11 + r9*8]
mov rax, qword [rax]
mov qword [r11 + r9*8], rax
cmp rax, r15
je 0x140016f9f
mov rdx, qword [rcx + 0x18]
lea rax, [rdx + r9*8]
mov rdx, qword [rdx + r9*8]
mov rdx, qword [rdx + 8]
jmp 0x140016f9c