Function at 0x6f5281c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r14, qword [0x6f7534a0]
mov rdi, rcx
mov rbx, rdx
mov r13, r8
mov rax, qword [r14]
mov qword [rsp + 0x28], rax
xor eax, eax
test r8, r8
je 0x6f5281f3
mov byte [r8], 0
mov rcx, rbx
mov qword [rdi], 0
mov qword [rdi + 8], 0
mov qword [rdi + 0x10], 0
call sym.strlen
lea rdx, [rax + rax*4]
mov rcx, rdi
shr rdx, 3
call dbg.std::vector<unsigned char, std::allocator<unsigned char> >::reserve(unsigned long long)
movzx eax, byte [rbx]
lea rsi, [0x6f6f6ca0]
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x6f52837a
movzx edx, byte [rbx + 1]
lea rbp, [rbx + 1]
mov ebx, dword [rsi + rdx*4]
cmp ebx, 0xffffffff
je 0x6f528370
lea r12, [rsp + 0x27]
mov edx, ebx
shl eax, 3
mov rcx, rdi
sar edx, 2
or eax, edx
mov rdx, r12
mov byte [rsp + 0x27], al
call dbg.void std::vector<unsigned char, std::allocator<unsigned char> >::emplace_back<unsigned char>(unsigned char&&)
movzx eax, byte [rbp + 1]
and ebx, 3
mov rdx, rax
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x6f528400
shl ebx, 5
or ebx, eax
movzx eax, byte [rbp + 2]
mov r15d, dword [rsi + rax*4]
cmp r15d, 0xffffffff
je 0x6f528370
mov eax, r15d
add ebx, ebx
mov rdx, r12
sar eax, 4
mov rcx, rdi
or ebx, eax
mov byte [rsp + 0x27], bl
call dbg.void std::vector<unsigned char, std::allocator<unsigned char> >::emplace_back<unsigned char>(unsigned char&&)
movzx edx, byte [rbp + 3]
and r15d, 0xf
mov ebx, dword [rsi + rdx*4]
mov rax, rdx
cmp ebx, 0xffffffff
je 0x6f5283e0
mov eax, ebx
shl r15d, 4
mov rdx, r12
sar eax, 1
mov rcx, rdi
or r15d, eax
mov byte [rsp + 0x27], r15b
call dbg.void std::vector<unsigned char, std::allocator<unsigned char> >::emplace_back<unsigned char>(unsigned char&&)
movzx eax, byte [rbp + 4]
and ebx, 1
mov rdx, rax
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x6f5283b1
shl ebx, 5
or ebx, eax
movzx eax, byte [rbp + 5]
mov r15d, dword [rsi + rax*4]
cmp r15d, 0xffffffff
je 0x6f528370
mov eax, r15d
shl ebx, 2
mov rdx, r12
sar eax, 3
mov rcx, rdi
or ebx, eax
mov byte [rsp + 0x27], bl
call dbg.void std::vector<unsigned char, std::allocator<unsigned char> >::emplace_back<unsigned char>(unsigned char&&)
movzx eax, byte [rbp + 6]
and r15d, 7
mov rdx, rax
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x6f5283a0
shl r15d, 5
mov rdx, r12
mov rcx, rdi
or r15d, eax
mov byte [rsp + 0x27], r15b
call dbg.void std::vector<unsigned char, std::allocator<unsigned char> >::emplace_back<unsigned char>(unsigned char&&)
movzx eax, byte [rbp + 7]
mov eax, dword [rsi + rax*4]
cmp eax, 0xffffffff
je 0x6f52837a
add rbp, 8
movzx edx, byte [rbp]
mov ebx, dword [rsi + rdx*4]
cmp ebx, 0xffffffff
jne 0x6f528251
nop
test r13, r13
je 0x6f52837a
mov byte [r13], 1
mov rcx, qword [rsp + 0x28]
xor rcx, qword [r14]
mov rax, rdi
jne 0x6f528430
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r13, r13
je 0x6f52837a
cmp dl, 0x3d
jne 0x6f528375
test r15d, r15d
jne 0x6f528375
jmp 0x6f5283cb
test r13, r13
je 0x6f52837a
cmp dl, 0x3d
jne 0x6f528375
test bl, bl
jne 0x6f528375
cmp byte [rbp + 5], 0x3d
jne 0x6f528375
cmp byte [rbp + 6], 0x3d
jne 0x6f528375
movzx eax, byte [rbp + 7]
cmp dword [rsi + rax*4], 0xffffffff
jne 0x6f528375
jmp 0x6f52837a
test r13, r13
je 0x6f52837a
cmp al, 0x3d
jne 0x6f528375
test r15d, r15d
jne 0x6f528375
cmp byte [rbp + 4], 0x3d
jne 0x6f528375
jmp 0x6f5283bf
test r13, r13
je 0x6f52837a
cmp dl, 0x3d
jne 0x6f528375
test ebx, ebx
jne 0x6f528375
cmp byte [rbp + 2], 0x3d
jne 0x6f528375
cmp byte [rbp + 3], 0x3d
jne 0x6f528375
jmp 0x6f5283ee
call sym.__stack_chk_fail
mov rcx, qword [rdi]
mov rbx, rax
test rcx, rcx
je 0x6f528445
call sym.operator_delete_void_
mov rcx, rbx
call sym._Unwind_Resume
nop
nop