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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rsi, qword [rsp + 0xf0]
mov r10, r9
mov rax, qword [rsp + 0xf8]
mov rbp, r8
mov qword [rsp + 0x38], r9
mov r9, rdx
mov qword [rsp + 0x30], rdx
mov r15, rcx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x40], rax
test r10, r10
je 0x14002c75d
cmp qword [rcx + 0x28], 0
je 0x14002c75d
movzx edx, byte [rdx]
movabs rdi, 0x100000001b3
movzx eax, byte [r9 + 1]
movabs r13, 0xcbf29ce484222325
mov r8, qword [rcx + 0x20]
xor rdx, r13
imul rdx, rdi
xor r12d, r12d
xor rdx, rax
movzx eax, byte [r9 + 2]
imul rdx, rdi
xor rdx, rax
movzx eax, byte [r9 + 3]
imul rdx, rdi
xor rdx, rax
imul rdx, rdi
and rdx, qword [rcx + 0x48]
shl rdx, 4
add rdx, qword [rcx + 0x30]
mov rax, qword [rdx + 8]
cmp rax, r8
je 0x14002c6c6
mov ecx, dword [r9]
mov rdx, qword [rdx]
cmp ecx, dword [rax + 0x10]
je 0x14002c6c9
cmp rax, rdx
je 0x14002c6c6
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x14002c6b6
jmp 0x14002c6c9
mov rax, r12
lea r14, [r15 + 0x18]
mov rcx, r14
mov qword [rsp + 0x60], rcx
test rax, rax
je 0x14002c8ff
cmp rax, r8
je 0x14002c8ff
test byte [r9], 0x20
mov rdx, r9
je 0x14002c7ca
call fcn.1400372b0
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14002c75d
mov r14, qword [rbp + 0x18]
mov r15, qword [rbp + 0x10]
nop dword [rax]
cmp qword [rbx + 0x28], 0xf
lea r9, [rbx + 0x10]
mov rax, qword [rbx + 0x20]
jbe 0x14002c723
mov r9, qword [rbx + 0x10]
mov rcx, rbp
cmp r14, 0xf
jbe 0x14002c730
mov rcx, qword [rbp]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r15
call fcn.14001ae50
cmp rax, 0xffffffffffffffff
je 0x14002c755
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x14002c755
cmp dword [rax + 8], r12d
jne 0x14002c773
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x14002c710
xor al, al
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rdi, rsi
mov rax, qword [rbx + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x38]
movups xmmword [rax], xmm0
test rdi, rdi
je 0x14002c7ad
mov rdx, qword [rbx + 0x30]
add rdx, 0x10
cmp rdi, rdx
je 0x14002c7ad
cmp qword [rdx + 0x18], 0xf
mov r8, qword [rdx + 0x10]
jbe 0x14002c7a5
mov rdx, qword [rdx]
mov rcx, rdi
call fcn.1400199e0
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x14002cb13
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x30]
mov al, 1
mov qword [r14], rcx
jmp 0x14002c75f
call fcn.1400372b0
cmp qword [rbp + 0x18], 0xf
mov rdi, rax
mov rdx, qword [rbp + 0x10]
mov rcx, rbp
jbe 0x14002c7e4
mov rcx, qword [rbp]
test rdx, rdx
je 0x14002c814
movabs r8, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r12 + rcx]
inc r12
xor r13, rax
imul r13, r8
cmp r12, rdx
jb 0x14002c800
mov r9, r13
lea rdx, [rsp + 0x48]
mov r8, rbp
mov rcx, rdi
call fcn.14001c980
mov rbx, qword [rax + 8]
test rbx, rbx
jne 0x14002c834
mov rbx, qword [rdi + 8]
mov rdi, qword [rsp + 0x30]
lea rcx, [r15 + 0x18]
mov rdx, rdi
call fcn.1400372b0
cmp rbx, qword [rax + 8]
je 0x14002c75d
lea rcx, [r15 + 0x18]
mov r8, rdi
lea rdx, [rsp + 0x48]
call fcn.1400396b0
mov r8, rbp
lea rdx, [rsp + 0x60]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.140039300
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x38]
movups xmmword [rax], xmm0
test rsi, rsi
je 0x14002c8d6
lea rcx, [r15 + 0x18]
mov r8, rdi
lea rdx, [rsp + 0x48]
call fcn.1400396b0
mov r8, rbp
lea rdx, [rsp + 0x60]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.140039300
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x30]
add rdx, 0x10
cmp rsi, rdx
je 0x14002c8d6
cmp qword [rdx + 0x18], 0xf
mov r8, qword [rdx + 0x10]
jbe 0x14002c8ce
mov rdx, qword [rdx]
mov rcx, rsi
call fcn.1400199e0
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x14002cb13
lea rcx, [r15 + 0x18]
mov r8, rdi
lea rdx, [rsp + 0x48]
call fcn.1400396b0
lea rdx, [rsp + 0x60]
jmp 0x14002caf6
mov r14, qword [r14 + 8]
mov rsi, qword [r14]
cmp rsi, r14
je 0x14002c75d
nop
mov eax, dword [rsi + 0x10]
test dword [r9], eax
je 0x14002ca27
lea rdx, [rsi + 0x10]
test al, 0x20
je 0x14002c9a1
call fcn.1400372b0
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14002ca18
mov r12, qword [rbp + 0x18]
mov r13, qword [rbp + 0x10]
cmp qword [rbx + 0x28], 0xf
lea r9, [rbx + 0x10]
mov rax, qword [rbx + 0x20]
jbe 0x14002c954
mov r9, qword [rbx + 0x10]
mov rcx, rbp
cmp r12, 0xf
jbe 0x14002c961
mov rcx, qword [rbp]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r13
call fcn.14001ae50
cmp rax, 0xffffffffffffffff
je 0x14002c98a
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x14002c98a
cmp dword [rax + 8], 0
jne 0x14002ca3d
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x14002c941
xor r12d, r12d
movabs r13, 0xcbf29ce484222325
jmp 0x14002ca18
call fcn.1400372b0
cmp qword [rbp + 0x18], 0xf
mov r15, rax
mov r8, qword [rbp + 0x10]
mov rdx, rbp
jbe 0x14002c9bb
mov rdx, qword [rbp]
mov r9, r13
mov rcx, r12
test r8, r8
je 0x14002c9e3
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
inc rcx
xor r9, rax
imul r9, rdi
cmp rcx, r8
jb 0x14002c9d0
mov r8, rbp
lea rdx, [rsp + 0x70]
mov rcx, r15
call fcn.14001c980
mov rdi, qword [rax + 8]
test rdi, rdi
jne 0x14002ca00
mov rdi, qword [r15 + 8]
mov r15, qword [rsp + 0x48]
lea rdx, [rsi + 0x10]
lea rcx, [r15 + 0x18]
call fcn.1400372b0
cmp rdi, qword [rax + 8]
jne 0x14002ca47
mov r9, qword [rsp + 0x30]
movabs rdi, 0x100000001b3
mov rsi, qword [rsi]
cmp rsi, r14
je 0x14002c75d
mov rcx, qword [rsp + 0x60]
jmp 0x14002c910
mov rdi, qword [rsp + 0x58]
jmp 0x14002c776
lea rcx, [r15 + 0x18]
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x70]
call fcn.1400396b0
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.140039300
mov rdi, qword [rsp + 0x58]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x38]
movups xmmword [rax], xmm0
test rdi, rdi
je 0x14002cad5
lea rcx, [r15 + 0x18]
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x70]
call fcn.1400396b0
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.140039300
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x30]
add rdx, 0x10
cmp rdi, rdx
je 0x14002cad5
cmp qword [rdx + 0x18], 0xf
mov r8, qword [rdx + 0x10]
jbe 0x14002cacd
mov rdx, qword [rdx]
mov rcx, rdi
call fcn.1400199e0
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x14002cb13
lea rcx, [r15 + 0x18]
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x70]
call fcn.1400396b0
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
mov r8, rbp
add rcx, 0x18
call fcn.140039300
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov rcx, qword [rax + 0x30]
mov qword [r14], rcx
mov al, 1
jmp 0x14002c75f