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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rax, qword [rcx + 0x18]
mov r9, qword [rcx + 0x48]
xor r12d, r12d
shr rax, 2
mov rsi, r8
mov r13, rdx
mov rbp, rcx
cmp r9, rax
ja 0x18006d70e
mov r8, qword [rcx + 0x28]
add rcx, 0x20
test r8, r8
jne 0x18006d58c
mov eax, r12d
jmp 0x18006d597
mov rax, qword [rcx + 0x10]
sub rax, r8
sar rax, 3
dec rax
cmp rax, r9
ja 0x18006d5cf
test r8, r8
jne 0x18006d5a9
mov rdx, r12
jmp 0x18006d5b4
mov rdx, qword [rcx + 0x10]
sub rdx, r8
sar rdx, 3
mov r8, qword [rbp + 0x10]
lea rdx, [rdx*2 - 3]
mov qword [rbp + 0x40], rdx
add rdx, 2
call fcn.180046f40
jmp 0x18006d5e4
mov rax, qword [rbp + 0x40]
cmp rax, r9
jae 0x18006d5e4
lea rax, [rax*2 + 1]
mov qword [rbp + 0x40], rax
mov rax, qword [rbp + 0x40]
mov r14, qword [rbp + 0x48]
shr rax, 1
sub r14, rax
mov rax, qword [rbp + 0x28]
dec r14
lea r15, [r14*8]
mov rbx, qword [rax + r15]
cmp rbx, qword [rax + r15 + 8]
je 0x18006d70a
lea rdx, [rbx + 0x10]
call fcn.180047010
and rax, qword [rbp + 0x40]
cmp rax, r14
jne 0x18006d62a
mov rbx, qword [rbx]
jmp 0x18006d6f6
mov rdi, qword [rbx]
cmp rdi, qword [rbp + 0x10]
je 0x18006d6c8
mov rax, qword [rbp + 0x28]
mov rcx, r14
cmp rbx, qword [r15 + rax]
jne 0x18006d672
mov rdx, r15
nop word [rax + rax]
mov rax, qword [rbp + 0x28]
mov qword [rdx + rax], rdi
test rcx, rcx
je 0x18006d672
mov rax, qword [rbp + 0x28]
dec rcx
lea rdx, [rcx*8]
cmp rbx, qword [rdx + rax]
je 0x18006d650
mov rsi, qword [rbp + 0x10]
lea rcx, [rbp + 8]
cmp rcx, rcx
je 0x18006d686
xor edx, edx
call fcn.1800680b0
mov rax, qword [rbx + 8]
mov qword [rax], rdi
mov rax, qword [rdi + 8]
mov qword [rax], rsi
mov rax, qword [rsi + 8]
mov qword [rax], rbx
mov rax, qword [rdi + 8]
mov rcx, qword [rsi + 8]
mov qword [rsi + 8], rax
mov rax, qword [rbx + 8]
mov qword [rdi + 8], rax
mov qword [rbx + 8], rcx
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x28]
mov rbx, qword [rdx + 8]
mov qword [rax + rcx*8 + 8], rdx
mov rcx, qword [rbp + 0x48]
cmp r14, rcx
jae 0x18006d6ed
mov rax, qword [rbp + 0x28]
lea rdx, [rax + rcx*8]
mov rax, qword [rbp + 0x10]
cmp qword [rdx], rax
jne 0x18006d6ed
dec rcx
mov qword [rdx], rbx
cmp r14, rcx
jb 0x18006d6d1
cmp rdi, qword [rbp + 0x10]
je 0x18006d705
mov rbx, rdi
mov rax, qword [rbp + 0x28]
cmp rbx, qword [rax + r15 + 8]
jne 0x18006d610
mov rsi, qword [rsp + 0x70]
inc qword [rbp + 0x48]
mov rdx, qword [rsi + 0x20]
lea rdi, [rsi + 8]
cmp rdx, 8
jb 0x18006d721
mov rcx, qword [rdi]
jmp 0x18006d724
mov rcx, rdi
mov rax, qword [rsi + 0x18]
lea rcx, [rcx + rax*2]
cmp rdx, 8
jb 0x18006d737
mov rax, qword [rdi]
jmp 0x18006d73a
mov rax, rdi
mov r8d, 0x811c9dc5
cmp rax, rcx
je 0x18006d766
nop word [rax + rax]
movzx edx, word [rax]
imul r8, r8, 0x1000193
add rax, 2
xor r8, rdx
cmp rax, rcx
jne 0x18006d750
mov edx, 0x1f31d
mov ecx, r8d
call qword [sym.imp.msvcrt.dll_ldiv]
mov qword [rsp + 0x60], rax
shr rax, 0x20
imul ecx, eax, 0x41a7
imul eax, dword [rsp + 0x60], 0xb14
sub ecx, eax
jns 0x18006d795
add ecx, 0x7fffffff
mov rdx, qword [rbp + 0x40]
movsxd rsi, ecx
or rax, 0xffffffffffffffff
and rsi, rdx
cmp qword [rbp + 0x48], rsi
ja 0x18006d7b2
shr rdx, 1
sub rax, rdx
add rsi, rax
mov r11, qword [rbp + 0x28]
lea r14, [rsi*8]
mov rbx, qword [r11 + r14 + 8]
cmp rbx, qword [r11 + r14]
je 0x18006d8e4
mov rax, qword [rsp + 0x70]
mov r10, qword [rax + 0x18]
mov r15, qword [rax + 0x20]
nop word [rax + rax]
mov rbx, qword [rbx + 8]
cmp qword [rbx + 0x30], 8
mov r9, qword [rbx + 0x28]
jb 0x18006d7f5
mov rdx, qword [rbx + 0x18]
jmp 0x18006d7f9
lea rdx, [rbx + 0x18]
cmp r15, 8
jb 0x18006d804
mov rcx, qword [rdi]
jmp 0x18006d807
mov rcx, rdi
cmp r10, r9
mov r8, r9
cmovb r8, r10
test r8, r8
je 0x18006d82b
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x18006d850
add rcx, 2
add rdx, 2
dec r8
jne 0x18006d816
mov r8d, r12d
movsxd rax, r8d
test r8d, r8d
jne 0x18006d841
cmp r10, r9
jb 0x18006d845
mov eax, r12d
setne al
test eax, eax
jns 0x18006d866
cmp rbx, qword [r11 + r14]
jne 0x18006d7e0
jmp 0x18006d8e4
cmp word [rcx], ax
mov r8d, 1
mov rax, 0xffffffffffffffff
cmovb r8d, eax
jmp 0x18006d82e
cmp r15, 8
jb 0x18006d86f
mov rdi, qword [rdi]
cmp qword [rbx + 0x30], 8
jb 0x18006d87c
mov rcx, qword [rbx + 0x18]
jmp 0x18006d880
lea rcx, [rbx + 0x18]
cmp r9, r10
mov rdx, r10
cmovb rdx, r9
test rdx, rdx
je 0x18006d8a5
nop
movzx eax, word [rdi]
cmp word [rcx], ax
jne 0x18006d8cd
add rcx, 2
add rdi, 2
dec rdx
jne 0x18006d890
mov edx, r12d
movsxd rax, edx
test edx, edx
jne 0x18006d8bb
cmp r9, r10
jb 0x18006d8e1
setne r12b
mov eax, r12d
test eax, eax
js 0x18006d8e1
mov qword [r13], rbx
mov byte [r13 + 8], 0
jmp 0x18006d94b
cmp word [rcx], ax
mov edx, 1
mov rax, 0xffffffffffffffff
cmovb edx, eax
jmp 0x18006d8a8
mov rbx, qword [rbx]
mov r9, qword [rsp + 0x70]
mov r8, qword [rbx + 8]
mov rdx, rbx
call fcn.18006f710
lea rcx, [rbp + 8]
mov edx, 1
mov rdi, rax
call fcn.1800680b0
mov qword [rbx + 8], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], rdi
mov rcx, qword [rbp + 0x28]
mov rax, qword [rbx + 8]
cmp rbx, qword [r14 + rcx]
jne 0x18006d942
nop
mov rcx, qword [rbp + 0x28]
mov qword [r14 + rcx], rax
test rsi, rsi
je 0x18006d942
mov rcx, qword [rbp + 0x28]
dec rsi
lea r14, [rsi*8]
cmp rbx, qword [r14 + rcx]
je 0x18006d920
mov qword [r13], rax
mov byte [r13 + 8], 1
mov rax, r13
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret