Function at 0x18007a2d0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Hash data using djb2

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rbx, r8
mov ebp, edx
mov rsi, rcx
xor edi, edi
mov r8d, edi
mov r13, qword [rcx + 0x490]
mov eax, dword [rcx + 0x18]
shr rax, 0x18
test al, 1
je 0x18007a3ac
mov rdx, qword [rcx + 0x260]
movzx eax, word [rdx + 6]
mov word [r11 + 8], ax
movzx eax, byte [rdx + 8]
mov byte [r11 + 0xa], al
mov ecx, ebp
and ecx, 0xff000000
mov eax, edi
lea r12, [0x18010c120]
cmp dword [r12 + rax*4], ecx
je 0x18007a345
inc rax
cmp rax, 2
jb 0x18007a332
mov ebp, edi
jmp 0x18007a34f
and ebp, 0xffffff
add ebp, ebp
or ebp, eax
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9d, ebp
lea r8, [rsp + 0x90]
mov edx, 0x18
mov rcx, rsi
call fcn.18006f610
mov r8d, eax
test eax, eax
js 0x18007a5bf
mov dword [rbx + 8], edi
mov dword [rbx], edi
mov edx, dword [rsp + 0xa8]
mov dword [rbx + 0x14], edx
mov dword [rbx + 0xc], edx
mov ecx, dword [rsp + 0x38]
mov dword [rbx + 0x10], ecx
sub ecx, edx
mov dword [rbx + 4], ecx
jmp 0x18007a5bf
lea r14, [rbx + 0x18]
mov dword [rbx + 4], edi
mov qword [rbx + 0xc], rdi
mov dword [rbx + 0x14], edi
mov qword [rsp + 0x90], r14
mov eax, 4
test r13, r13
je 0x18007a4f4
mov qword [r14 + 0x14], rdi
mov dword [r14 + 0x1c], edi
mov dword [rbx + 8], 2
mov dword [rbx], 0xffffffff
mov qword [r14], rdi
mov qword [r14 + 8], rdi
mov dword [r14 + 0x10], 0x10
mov word [r14 + 0x14], ax
mov byte [r14 + 0x16], 1
mov dword [rsp + 0x30], ebp
lea rdx, [rsp + 0x30]
mov eax, 0x1505
nop dword [rax]
imul eax, eax, 0x21
movzx ecx, byte [rdx]
xor eax, ecx
inc rdx
lea rcx, [rsp + 0x34]
cmp rdx, rcx
jb 0x18007a410
xor edx, edx
div dword [r13 + 0x20]
movsxd rcx, edx
mov rax, qword [r13 + 0x18]
movsxd rdx, dword [rax + rcx*4]
cmp edx, 0xffffffff
je 0x18007a5bf
lea rcx, [rdx + rdx*2]
mov rax, qword [r13]
lea rdi, [rax + rcx*4]
mov r15d, dword [rdi + 8]
test rdi, rdi
je 0x18007a5bf
lea r12, [0x18010c120]
lea rcx, [rsi + 0xcd8]
mov rax, qword [rcx]
lea r8, [rsp + 0x40]
mov edx, dword [rdi]
mov rax, qword [rax + 0xa8]
call qword [0x180102408]
mov r8d, eax
test eax, eax
js 0x18007a5bf
mov rax, qword [rsi + 0x260]
movzx ecx, byte [rax + 7]
add rcx, qword [rsp + 0x40]
cmp byte [rax + 8], 2
jne 0x18007a4a3
movzx ecx, word [rcx]
jmp 0x18007a4a5
mov ecx, dword [rcx]
mov eax, ecx
and eax, 1
shr ecx, 1
or ecx, dword [r12 + rax*4]
cmp ecx, ebp
jne 0x18007a4d2
mov edi, dword [rdi]
mov rcx, r14
call fcn.18008d130
test rax, rax
je 0x18007a5b9
mov dword [rax], edi
inc dword [rbx + 4]
inc dword [rbx + 0x10]
xor r8d, r8d
cmp r15d, 0xffffffff
je 0x18007a5bf
movsxd rax, r15d
lea rcx, [rax + rax*2]
mov rax, qword [r13]
lea rdi, [rax + rcx*4]
mov r15d, dword [rdi + 8]
jmp 0x18007a45f
mov qword [r14 + 4], rdi
mov qword [r14 + 0x14], rdi
mov dword [r14 + 0x1c], edi
mov dword [rbx + 8], 2
mov dword [rbx], 0xffffffff
mov qword [r14], rdi
mov dword [r14 + 0xc], edi
mov dword [r14 + 0x10], 0x10
mov word [r14 + 0x14], ax
mov byte [r14 + 0x16], 1
mov edi, 1
cmp dword [rcx + 0x80], edi
jb 0x18007a5bf
lea r12, [0x18010c120]
nop
mov rax, qword [rsi + 0xcd8]
lea r8, [rsp + 0x40]
mov edx, edi
lea rcx, [rsi + 0xcd8]
mov rax, qword [rax + 0xa8]
call qword [0x180102408]
mov r8d, eax
test eax, eax
js 0x18007a5bf
mov rax, qword [rsi + 0x260]
movzx ecx, byte [rax + 7]
add rcx, qword [rsp + 0x40]
cmp byte [rax + 8], 2
jne 0x18007a584
movzx ecx, word [rcx]
jmp 0x18007a586
mov ecx, dword [rcx]
mov eax, ecx
and eax, 1
shr ecx, 1
or ecx, dword [r12 + rax*4]
cmp ecx, ebp
jne 0x18007a5ad
mov rcx, r14
call fcn.18008d130
test rax, rax
je 0x18007a5b9
mov dword [rax], edi
inc dword [rbx + 4]
inc dword [rbx + 0x10]
xor r8d, r8d
inc edi
cmp edi, dword [rsi + 0x80]
ja 0x18007a5bf
jmp 0x18007a540
mov r8d, 0x8007000e
mov eax, r8d
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret