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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov r12, rdx
mov r14, rcx
cmp qword [rdx + 0x18], 0x10
jb 0x140116967
mov rdx, qword [rdx]
movabs r9, 0xcbf29ce484222325
mov r8, qword [r12 + 0x10]
xor edi, edi
mov ecx, edi
test r8, r8
je 0x1401169a3
movabs r10, 0x100000001b3
nop dword [rax]
movzx eax, byte [rcx + rdx]
xor r9, rax
imul r9, r10
inc rcx
cmp rcx, r8
jb 0x140116990
mov r8, r12
lea rdx, [rbp - 0x30]
lea rcx, [r14 + 0x30]
call fcn.140114940
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x1401169c0
mov rbx, qword [r14 + 0x38]
cmp rbx, qword [r14 + 0x38]
je 0x1401169d0
mov rbx, qword [rbx + 0x30]
mov byte [rbp + 0x40], dil
jmp 0x140116a24
mov rdx, qword [r14 + 8]
mov rbx, rdx
sub rbx, qword [r14]
sar rbx, 4
mov qword [rbp + 0x40], rbx
xor eax, eax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rdi
cmp rdx, qword [r14 + 0x10]
je 0x140116a00
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rdx], xmm0
add qword [r14 + 8], 0x10
jmp 0x140116a0c
lea r8, [rbp - 0x30]
mov rcx, r14
call fcn.140114010
lea r9, [rbp + 0x40]
mov r8, r12
lea rdx, [rbp - 0x30]
lea rcx, [r14 + 0x30]
call fcn.140114d80
mov byte [rbp + 0x40], 1
mov qword [r12 + 0x38], rbx
mov rdx, r12
lea rcx, [rbp - 0x30]
call fcn.1401182e0
mov rbx, rax
lea rsi, [r12 + 0x20]
cmp rsi, rax
je 0x140116a6b
mov rcx, rsi
call fcn.1400374a0
mov rcx, qword [rbx]
mov qword [rsi], rcx
mov rcx, qword [rbx + 8]
mov qword [rsi + 8], rcx
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x10], rax
mov qword [rbx], rdi
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rdi
mov rbx, qword [rbp - 0x30]
test rbx, rbx
je 0x140116b1b
mov rsi, qword [rbp - 0x28]
cmp rbx, rsi
je 0x140116ad7
mov rdx, qword [rbx + 0x18]
cmp rdx, 0x10
jb 0x140116abb
inc rdx
mov rcx, qword [rbx]
cmp rdx, 0x1000
jb 0x140116ab6
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140116d85
mov rcx, r8
call fcn.14005ca98
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
add rbx, 0x20
cmp rbx, rsi
jne 0x140116a81
mov rbx, qword [rbp - 0x30]
mov rdx, qword [rbp - 0x20]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x140116b07
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140116d85
mov rcx, rbx
call fcn.14005ca98
mov qword [rbp - 0x30], rdi
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x28], xmm0
lea rax, [r12 + 0x20]
mov r13, qword [rax + 8]
sub r13, qword [rax]
sar r13, 5
mov r9, 0xffffffffffffffff
mov qword [rbp + 0x48], r9
mov r15, qword [r12 + 0x48]
mov rdx, qword [r12 + 0x40]
mov rcx, r15
sub rcx, rdx
sar rcx, 3
cmp r13, rcx
jae 0x140116b5a
lea rax, [rdx + r13*8]
mov qword [r12 + 0x48], rax
jmp 0x140116ba3
jbe 0x140116ba8
mov rax, qword [r12 + 0x50]
sub rax, rdx
sar rax, 3
cmp r13, rax
jbe 0x140116b80
lea r8, [rbp + 0x48]
mov rdx, r13
lea rcx, [r12 + 0x40]
call fcn.140114b40
jmp 0x140116ba3
mov rbx, r13
sub rbx, rcx
je 0x140116b9e
mov r8, rbx
shl r8, 3
mov rdx, r9
mov rcx, r15
call fcn.1401718d0
lea r15, [r15 + rbx*8]
mov qword [r12 + 0x48], r15
lea rax, [r12 + 0x20]
mov rbx, rdi
test r13, r13
je 0x140116c12
mov r15, rdi
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rax]
mov rax, qword [rax + 8]
sub rax, rcx
sar rax, 5
cmp rax, rbx
jbe 0x140116d91
lea rdx, [r15 + rcx]
mov rcx, r14
call fcn.1401177b0
mov rdx, qword [r12 + 0x40]
mov rcx, qword [r12 + 0x48]
sub rcx, rdx
sar rcx, 3
cmp rcx, rbx
jbe 0x140116d7f
mov qword [rdx + rbx*8], rax
inc rbx
add r15, 0x20
cmp rbx, r13
lea rax, [r12 + 0x20]
jb 0x140116bc0
cmp byte [rbp + 0x40], 0
je 0x140116c2a
lea r8, [r12 + 0x40]
mov rdx, qword [r12 + 0x38]
mov rcx, r14
call fcn.140117340
mov r8, qword [r12 + 0x38]
mov qword [rbp + 0x40], r8
mov rcx, qword [r14]
mov rax, qword [r14 + 8]
sub rax, rcx
sar rax, 4
cmp rax, r8
jbe 0x140116d8b
mov r15, r8
shl r15, 4
add r15, rcx
mov qword [r12 + 0x58], r15
cmp byte [r12 + 0x60], 0
je 0x140116d61
mov r13, qword [r12 + 0x48]
sub r13, qword [r12 + 0x40]
sar r13, 3
mov rax, qword [r12 + 0x68]
mov qword [r12 + 0x70], rax
mov rcx, qword [r12 + 0x78]
sub rcx, rax
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r13, rdx
jbe 0x140116cc9
movabs rax, 0x666666666666666
cmp r13, rax
ja 0x140116d97
mov rdx, r13
lea rcx, [r12 + 0x68]
call fcn.140116330
mov r8, qword [rbp + 0x40]
test r13, r13
je 0x140116d61
mov rcx, qword [r12 + 0x40]
mov rax, qword [r12 + 0x48]
sub rax, rcx
sar rax, 3
cmp rax, rdi
jbe 0x140116d7f
mov rcx, qword [rcx + rdi*8]
mov rdx, qword [r14 + 0x18]
mov rax, qword [r14 + 0x20]
sub rax, rdx
sar rax, 3
cmp rax, rcx
jbe 0x140116d79
mov qword [rbp - 0x30], r8
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], r15
lea rax, [rdx + rcx*8]
mov qword [rbp - 0x10], rax
mov rdx, qword [r12 + 0x70]
cmp rdx, qword [r12 + 0x78]
je 0x140116d43
mov qword [rdx], r8
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], rdi
mov qword [rdx + 0x18], r15
mov qword [rdx + 0x20], rax
add qword [r12 + 0x70], 0x28
jmp 0x140116d55
lea r8, [rbp - 0x30]
lea rcx, [r12 + 0x68]
call fcn.140113de0
mov r8, qword [rbp + 0x40]
inc rdi
cmp rdi, r13
jb 0x140116cd2
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140116920
int3
call fcn.140116920
int3
call fcn.140176448
int3
call fcn.140116920
int3
call fcn.140116920
int3
call fcn.1400707b0
int3