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

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x14011bf1c
mov rsi, rcx
mov r8, qword [rcx + 8]
mov rcx, qword [rcx + 0x38]
shr rcx, 3
cmp rcx, rax
jbe 0x14011bdea
mov rdx, qword [r8]
mov rcx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp 0x14011c310
mov rax, qword [r8 + 8]
mov qword [rax], 0
mov rdi, qword [r8]
test rdi, rdi
je 0x14011be21
nop dword [rax]
mov rbx, qword [rdi]
lea rcx, [rdi + 0x10]
call fcn.1400f5280
mov edx, 0x50
mov rcx, rdi
call fcn.140141034
mov rdi, rbx
test rbx, rbx
jne 0x14011be00
mov rax, qword [rsi + 8]
mov qword [rax], rax
mov rax, qword [rsi + 8]
mov qword [rax + 8], rax
mov qword [rsi + 0x10], 0
mov rax, qword [rsi + 0x18]
mov rcx, qword [rsi + 0x20]
cmp rax, rcx
je 0x14011bf1c
mov rdx, qword [rsi + 8]
mov r9, rcx
sub r9, rax
add r9, 0xfffffffffffffff8
cmp r9, 0x18
jb 0x14011bf10
shr r9, 3
inc r9
mov r8, r9
and r8, 0xfffffffffffffffc
movq xmm0, rdx
pshufd xmm0, xmm0, 0x44
lea rbx, [r8 - 4]
mov rsi, rbx
shr rsi, 2
inc rsi
mov r10d, esi
and r10d, 3
cmp rbx, 0xc
jae 0x14011be98
xor edi, edi
jmp 0x14011bed9
and rsi, 0xfffffffffffffffc
xor edi, edi
nop
movdqu xmmword [rax + rdi*8], xmm0
movdqu xmmword [rax + rdi*8 + 0x10], xmm0
movdqu xmmword [rax + rdi*8 + 0x20], xmm0
movdqu xmmword [rax + rdi*8 + 0x30], xmm0
movdqu xmmword [rax + rdi*8 + 0x40], xmm0
movdqu xmmword [rax + rdi*8 + 0x50], xmm0
movdqu xmmword [rax + rdi*8 + 0x60], xmm0
movdqu xmmword [rax + rdi*8 + 0x70], xmm0
add rdi, 0x10
add rsi, 0xfffffffffffffffc
jne 0x14011bea0
test r10, r10
je 0x14011bf04
lea rdi, [rax + rdi*8]
add rdi, 0x10
shl r10, 5
xor esi, esi
nop dword [rax]
movdqu xmmword [rdi + rsi - 0x10], xmm0
movdqu xmmword [rdi + rsi], xmm0
add rsi, 0x20
cmp r10, rsi
jne 0x14011bef0
cmp r9, r8
je 0x14011bf1c
lea rax, [rax + r8*8]
nop dword [rax]
mov qword [rax], rdx
add rax, 8
cmp rax, rcx
jne 0x14011bf10
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r13, rdx
cmp rdx, r8
je 0x14011c33f
mov r14, r8
mov r12, rcx
mov rcx, qword [r13 + 0x20]
cmp qword [r13 + 0x28], 0x10
jb 0x14011c347
mov rax, qword [r13 + 0x10]
jmp 0x14011c34b
mov r14, r13
jmp 0x14011c623
lea rax, [r13 + 0x10]
mov r8, qword [r12 + 0x18]
test rcx, rcx
je 0x14011c37c
lea rbx, [rcx - 1]
mov ebp, ecx
and ebp, 3
movabs rdx, 0x100000001b3
cmp rbx, 3
jae 0x14011c38b
movabs rbx, 0xcbf29ce484222325
xor edi, edi
jmp 0x14011c3d8
movabs rcx, 0xcbf29ce484222325
jmp 0x14011c406
and rcx, 0xfffffffffffffffc
movabs rbx, 0xcbf29ce484222325
xor edi, edi
nop dword [rax + rax]
movzx esi, byte [rax + rdi]
xor rsi, rbx
imul rsi, rdx
movzx ebx, byte [rax + rdi + 1]
xor rbx, rsi
imul rbx, rdx
movzx esi, byte [rax + rdi + 2]
xor rsi, rbx
imul rsi, rdx
movzx ebx, byte [rax + rdi + 3]
xor rbx, rsi
imul rbx, rdx
add rdi, 4
cmp rcx, rdi
jne 0x14011c3a0
mov rcx, rbx
test rbp, rbp
je 0x14011c406
add rax, rdi
xor edi, edi
nop word cs:[rax + rax]
movzx ecx, byte [rax + rdi]
xor rcx, rbx
imul rcx, rdx
inc rdi
mov rbx, rcx
cmp rbp, rdi
jne 0x14011c3f0
mov rax, qword [r12 + 8]
mov qword [rsp + 0x28], rax
mov rax, qword [r13 + 8]
mov qword [rsp + 0x30], rax
and rcx, qword [r12 + 0x30]
lea rax, [rcx + rcx]
mov rdx, rcx
shl rdx, 4
lea rsi, [r8 + rdx]
add rcx, rcx
inc rcx
mov qword [rsp + 0x40], rcx
mov rcx, qword [r8 + rdx]
mov qword [rsp + 0x38], rcx
cmp rcx, r13
setne dil
mov qword [rsp + 0x20], r8
mov r15, qword [r8 + rax*8 + 8]
mov rbp, r13
nop word cs:[rax + rax]
mov rbx, rbp
mov rbp, qword [rbp]
lea rcx, [rbx + 0x10]
call fcn.1400f5280
mov edx, 0x50
mov rcx, rbx
call fcn.140141034
dec qword [r12 + 0x10]
cmp rbx, r15
je 0x14011c4a2
cmp rbp, r14
setne al
or al, dil
cmp al, 1
jne 0x14011c614
cmp rbp, r14
jne 0x14011c460
jmp 0x14011c617
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], r13
jne 0x14011c4b6
mov rax, qword [rsp + 0x28]
mov qword [rsi], rax
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x40]
mov qword [rcx + rdx*8], rax
cmp rbp, r14
je 0x14011c617
movabs rsi, 0xcbf29ce484222325
movabs r13, 0x100000001b3
cmp qword [rbp + 0x28], 0x10
jb 0x14011c4ee
mov rax, qword [rbp + 0x10]
jmp 0x14011c4f2
lea rax, [rbp + 0x10]
mov rdx, qword [rbp + 0x20]
mov rdi, rsi
test rdx, rdx
je 0x14011c596
lea rcx, [rdx - 1]
mov r8d, edx
and r8d, 3
cmp rcx, 3
jae 0x14011c51a
xor ebx, ebx
mov rcx, rsi
jmp 0x14011c568
and rdx, 0xfffffffffffffffc
xor ebx, ebx
mov rcx, rsi
nop word cs:[rax + rax]
movzx edi, byte [rax + rbx]
xor rdi, rcx
imul rdi, r13
movzx ecx, byte [rax + rbx + 1]
xor rcx, rdi
imul rcx, r13
movzx edi, byte [rax + rbx + 2]
xor rdi, rcx
imul rdi, r13
movzx ecx, byte [rax + rbx + 3]
xor rcx, rdi
imul rcx, r13
add rbx, 4
cmp rdx, rbx
jne 0x14011c530
mov rdi, rcx
test r8, r8
je 0x14011c596
add rax, rbx
xor edx, edx
nop word cs:[rax + rax]
movzx edi, byte [rax + rdx]
xor rdi, rcx
imul rdi, r13
inc rdx
mov rcx, rdi
cmp r8, rdx
jne 0x14011c580
and rdi, qword [r12 + 0x30]
lea rax, [rdi + rdi]
mov rsi, rdi
shl rsi, 4
mov rcx, qword [rsp + 0x20]
add rsi, rcx
lea r15, [rdi + rdi]
inc r15
mov rdi, qword [rcx + rax*8 + 8]
nop word [rax + rax]
mov rbx, rbp
mov rbp, qword [rbp]
lea rcx, [rbx + 0x10]
call fcn.1400f5280
mov edx, 0x50
mov rcx, rbx
call fcn.140141034
dec qword [r12 + 0x10]
cmp rbx, rdi
je 0x14011c5ee
cmp rbp, r14
jne 0x14011c5c0
jmp 0x14011c614
mov rcx, qword [rsp + 0x28]
mov qword [rsi], rcx
mov rax, qword [rsp + 0x20]
mov qword [rax + r15*8], rcx
cmp rbp, r14
movabs rsi, 0xcbf29ce484222325
jne 0x14011c4e1
jmp 0x14011c617
mov qword [rsi], r14
mov rax, qword [rsp + 0x30]
mov qword [rax], r14
mov qword [r14 + 8], rax
mov rax, r14
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret