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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
xor ebx, ebx
mov r14, r9
mov r15, r8
mov r12d, edx
mov rbp, rcx
test r8, r8
je 0x1800bcc26
mov r13, qword [rsp + 0xc8]
test r13, r13
je 0x1800bcc26
mov dword [r13], 0xa000000
mov r9, qword [rcx + 0x3c0]
test r9, r9
je 0x1800bca8b
mov ecx, 0x1505
mov dword [rsp + 0x30], edx
mov edx, ecx
lea r8, [rsp + 0x30]
nop dword [rax]
movzx eax, byte [r8]
inc r8
imul edx, edx, 0x21
xor edx, eax
lea rax, [rsp + 0x34]
cmp r8, rax
jb 0x1800bc9c0
movsx eax, byte [r15]
mov r8, r15
test eax, eax
je 0x1800bc9f2
imul ecx, ecx, 0x21
lea r8, [r8 + 1]
xor ecx, eax
movsx eax, byte [r8]
test eax, eax
jne 0x1800bc9e1
lea eax, [rcx + rdx]
xor edx, edx
div dword [r9 + 0x20]
mov rax, qword [r9 + 0x18]
movsxd rcx, edx
movsxd rdx, dword [rax + rcx*4]
cmp edx, 0xffffffff
je 0x1800bcc26
mov rax, qword [r9]
lea rcx, [rdx + rdx*2]
mov esi, dword [rax + rcx*4 + 8]
lea rdi, [rax + rcx*4]
test rdi, rdi
je 0x1800bcc26
mov r14d, dword [rsp + 0xc0]
nop
mov rax, qword [rsp + 0xb8]
mov r9, r15
mov edx, dword [rdi]
mov r8d, r12d
mov dword [rsp + 0x28], r14d
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.18007bc40
test eax, eax
jne 0x1800bca5e
mov eax, dword [rdi]
cmp dword [r13], eax
jne 0x1800bca82
cmp esi, 0xffffffff
je 0x1800bcc26
movsxd rax, esi
lea rdx, [rax + rax*2]
mov rax, qword [rbp + 0x3c0]
mov rcx, qword [rax]
mov esi, dword [rcx + rdx*4 + 8]
lea rdi, [rcx + rdx*4]
jmp 0x1800bca30
mov dword [r13], eax
jmp 0x1800bcc2b
mov dword [r13], 0xa000000
mov edi, 1
mov esi, dword [rcx + 0x48]
mov dword [rsp + 0xd0], esi
cmp esi, edi
jb 0x1800bcc26
mov esi, dword [rsp + 0xc0]
mov eax, dword [rsp + 0xd0]
test edi, edi
je 0x1800bcc1c
lea rcx, [rbp + 0x878]
mov edx, edi
mov rax, qword [rcx]
lea r8, [rsp + 0xb0]
mov rax, qword [rax + 0xa8]
call qword [0x180102408]
mov ebx, eax
test eax, eax
js 0x1800bcc2b
mov rdx, qword [rsp + 0xb0]
test r12d, 0xffffff
je 0x1800bcb3e
mov rax, qword [rbp + 0x180]
cmp byte [rax + 2], 2
movzx ecx, byte [rax + 1]
jne 0x1800bcb13
movzx ecx, word [rcx + rdx]
jmp 0x1800bcb16
mov ecx, dword [rcx + rdx]
mov eax, ecx
and eax, 7
cmp eax, 5
jb 0x1800bcb27
mov ecx, 0x2000000
jmp 0x1800bcb35
shr ecx, 3
lea r8, [0x18010c1e0]
or ecx, dword [r8 + rax*4]
cmp ecx, r12d
jne 0x1800bcc15
cmp byte [r15], 0
je 0x1800bcbaf
mov rax, qword [rbp + 0x180]
lea r8, [rsp + 0x48]
mov dword [rsp + 0x50], 0
movzx ecx, byte [rax + 4]
mov edx, dword [rcx + rdx]
lea rcx, [rbp + 0x14d0]
mov rax, qword [rcx]
and edx, dword [rbp + 0x3b0]
mov rax, qword [rax + 0x40]
call qword [0x180102408]
mov ebx, eax
test eax, eax
js 0x1800bcc2b
mov r8, qword [rsp + 0x48]
mov rax, r15
sub r8, r15
nop
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1800bcba3
inc rax
test ecx, ecx
jne 0x1800bcb90
test edx, edx
jne 0x1800bcc15
mov rdx, qword [rsp + 0xb0]
test esi, esi
je 0x1800bcc45
test r14, r14
je 0x1800bcc45
mov rax, qword [rbp + 0x180]
lea r8, [rsp + 0x38]
mov dword [rsp + 0x40], 0
movzx ecx, byte [rax + 7]
mov edx, dword [rcx + rdx]
lea rcx, [rbp + 0x1550]
mov rax, qword [rcx]
and edx, dword [rbp + 0x3b8]
mov rax, qword [rax + 0x30]
call qword [0x180102408]
mov ebx, eax
test eax, eax
js 0x1800bcc2b
cmp dword [rsp + 0x40], esi
jne 0x1800bcc15
mov rdx, qword [rsp + 0x38]
mov r8, rsi
mov rcx, r14
call fcn.1800dd060
test eax, eax
je 0x1800bcc45
mov eax, dword [rsp + 0xd0]
inc edi
cmp edi, eax
jbe 0x1800bcab8
mov ebx, 0x80131130
mov eax, ebx
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
or edi, 0xa000000
mov dword [r13], edi
xor eax, eax
jmp 0x1800bcc2d