Function at 0x18007c790
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], r9
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov esi, r8d
mov rbp, rcx
xor r12d, r12d
mov ebx, r12d
cmp qword [rcx + 0x538], rbx
jne 0x18007c981
mov r15d, dword [rcx + 0x24]
cmp r15d, 0x18
jbe 0x18007ca92
lea ecx, [r12 + 0x28]
call fcn.1800db3c0
mov rsi, rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x30], rax
mov qword [rax], r12
mov qword [rax + 8], r12
mov dword [rax + 0x10], 0x10
mov eax, 0xc
mov word [rsi + 0x14], ax
mov byte [rsi + 0x16], 1
mov qword [rsi + 0x18], r12
mov qword [rsi + 0x20], r12
mov qword [rbp + 0x538], rsi
mov eax, r12d
mov edx, 4
cmp dword [rbp + 0x1748], 1
cmove eax, edx
lea rcx, [0x18010d228]
movsxd rbx, dword [rax + rcx]
mov eax, edx
mul rbx
mov r14, 0xffffffffffffffff
cmovo rax, r14
mov rcx, rax
call fcn.1800db3b8
mov qword [rsi + 0x18], rax
mov dword [rsi + 0x20], ebx
lea r8, [rbx*4]
mov edx, r14d
mov rcx, rax
call fcn.1800dd740
mov esi, 1
mov edi, 0x1505
nop dword [rax]
mov rax, qword [rbp + 0x5a8]
lea r8, [rsp + 0x88]
mov edx, esi
lea rcx, [rbp + 0x5a8]
mov rax, qword [rax + 0xa8]
call qword [0x180102408]
mov ebx, eax
test eax, eax
js 0x18007ca92
mov r8, qword [rbp + 0xf0]
movzx edx, byte [r8 + 4]
add rdx, qword [rsp + 0x88]
movzx ecx, byte [r8 + 5]
sub ecx, 1
je 0x18007c8e1
sub ecx, 1
je 0x18007c8d0
cmp ecx, 2
je 0x18007c8cc
mov edx, r12d
jmp 0x18007c8e4
mov edx, dword [rdx]
jmp 0x18007c8e4
cmp byte [r8 + 3], 0x60
jne 0x18007c8dc
movsx edx, word [rdx]
jmp 0x18007c8e4
movzx edx, word [rdx]
jmp 0x18007c8e4
movzx edx, byte [rdx]
lea rcx, [rbp + 0x14d0]
mov dword [rsp + 0x38], r12d
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
mov rax, qword [rax + 0x40]
call qword [0x180102408]
mov ebx, eax
test eax, eax
js 0x18007ca92
mov r8, qword [rsp + 0x30]
mov dword [rsp + 0x20], r12d
lea rdx, [rsp + 0x20]
mov ecx, edi
nop dword [rax]
imul ecx, ecx, 0x21
movzx eax, byte [rdx]
xor ecx, eax
inc rdx
lea rax, [rsp + 0x24]
cmp rdx, rax
jb 0x18007c920
mov eax, edi
movsx edx, byte [r8]
test edx, edx
je 0x18007c951
nop
imul eax, eax, 0x21
xor eax, edx
lea r8, [r8 + 1]
movsx edx, byte [r8]
test edx, edx
jne 0x18007c940
lea edx, [rcx + rax]
mov rcx, qword [rbp + 0x538]
call fcn.18007e720
test rax, rax
je 0x18007ca85
mov ecx, esi
bts ecx, 0x18
mov dword [rax], ecx
inc esi
cmp esi, r15d
ja 0x18007ca92
jmp 0x18007c870
and esi, 0xffffff
add rcx, 0x5a8
mov rax, qword [rcx]
lea r8, [rsp + 0x88]
mov edx, esi
mov rax, qword [rax + 0xa8]
call qword [0x180102408]
mov ebx, eax
test eax, eax
js 0x18007ca92
mov r8, qword [rbp + 0xf0]
movzx edx, byte [r8 + 4]
add rdx, qword [rsp + 0x88]
movzx ecx, byte [r8 + 5]
sub ecx, 1
je 0x18007c9f4
sub ecx, 1
je 0x18007c9e3
cmp ecx, 2
je 0x18007c9df
mov edx, r12d
jmp 0x18007c9f7
mov edx, dword [rdx]
jmp 0x18007c9f7
cmp byte [r8 + 3], 0x60
jne 0x18007c9ef
movsx edx, word [rdx]
jmp 0x18007c9f7
movzx edx, word [rdx]
jmp 0x18007c9f7
movzx edx, byte [rdx]
lea rcx, [rbp + 0x14d0]
mov dword [rsp + 0x38], r12d
mov rax, qword [rcx]
lea r8, [rsp + 0x30]
mov rax, qword [rax + 0x40]
call qword [0x180102408]
mov ebx, eax
test eax, eax
js 0x18007ca92
mov r8, qword [rsp + 0x30]
mov dword [rsp + 0x28], r12d
lea rdx, [rsp + 0x28]
mov edi, 0x1505
mov ecx, edi
nop dword [rax]
nop word [rax + rax]
imul ecx, ecx, 0x21
movzx eax, byte [rdx]
xor ecx, eax
inc rdx
lea rax, [rsp + 0x2c]
cmp rdx, rax
jb 0x18007ca40
movsx eax, byte [r8]
test eax, eax
je 0x18007ca71
nop dword [rax]
imul edi, edi, 0x21
xor edi, eax
lea r8, [r8 + 1]
movsx eax, byte [r8]
test eax, eax
jne 0x18007ca60
lea edx, [rdi + rcx]
mov rcx, qword [rbp + 0x538]
call fcn.18007e720
test rax, rax
jne 0x18007ca8c
mov ebx, 0x8007000e
jmp 0x18007ca92
bts esi, 0x18
mov dword [rax], esi
mov eax, ebx
mov rbx, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret