Function at 0x140046f80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x18], r13
mov rbx, rcx
mov rdx, qword [rbx + 8]
mov rax, qword [rbx]
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rdx
mov rdi, qword [rbp - 0x10]
test rdi, rdi
lea rdi, [rdi - 1]
je 0x140047019
mov rcx, qword [rbp - 8]
movzx esi, byte [rdi + rcx]
cmp sil, 0x80
jb 0x140046fdb
lea r8, [rdi + 1]
mov r9, qword [rbx]
cmp r9, r8
jae 0x140047038
jmp 0x140047193
movzx ecx, sil
call fcn.14005ce70
xor al, 1
je 0x140046fb2
lea r8, [rdi + 1]
mov rdx, qword [rbx]
cmp rdx, r8
jb 0x1400471ae
lea rax, [rdi + 1]
mov rdx, qword [rbx + 8]
mov rbx, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x30]
mov rdi, qword [rbp - 0x28]
mov r12, qword [rbp - 0x20]
mov r13, qword [rbp - 0x18]
mov rsp, rbp
pop rbp
ret
mov rdx, qword [rbx + 8]
xor eax, eax
mov rbx, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x30]
mov rdi, qword [rbp - 0x28]
mov r12, qword [rbp - 0x20]
mov r13, qword [rbp - 0x18]
mov rsp, rbp
pop rbp
ret
lea rax, [rdi + 1]
mov rdx, qword [rbx + 8]
mov qword [rbx], rax
mov qword [rbx + 8], rdx
mov rsi, qword [rbx]
test rsi, rsi
lea rsi, [rsi - 1]
je 0x140047162
mov r8, qword [rbx]
cmp rsi, r8
jae 0x1400471c9
mov r10, qword [rbx + 8]
movzx edi, byte [r10 + rsi]
cmp dil, 0x7f
ja 0x140047084
movzx ecx, dil
call fcn.140041f50
test al, al
jne 0x14004704a
jmp 0x140047162
test rsi, rsi
je 0x140047162
mov r9b, dil
and r9b, 0xc0
cmp r9b, 0x80
jne 0x140047162
mov r12d, edi
and r12d, 0x3f
lea r8, [rsi - 1]
mov rdx, qword [rbx]
cmp r8, rdx
jae 0x1400471e4
mov r10, qword [rbx + 8]
add r10, rsi
movzx edi, byte [r10 - 1]
mov r9d, edi
and r9b, 0xe0
cmp r9b, 0xc0
jne 0x1400470f4
mov cl, dil
and ecx, 0x1f
shl ecx, 6
add ecx, r12d
call fcn.140041f50
test al, al
je 0x140047162
dec rsi
jmp 0x14004704a
cmp rsi, 1
je 0x140047162
mov r8b, dil
and r8b, 0xc0
cmp r8b, 0x80
jne 0x140047162
lea rdx, [rsi - 2]
mov rcx, qword [rbx]
cmp rdx, rcx
jae 0x1400471ff
mov r10, qword [rbx + 8]
add r10, rsi
movzx r13d, byte [r10 - 2]
mov r9d, r13d
and r9b, 0xf0
cmp r9b, 0xe0
jne 0x140047162
mov cl, r13b
and ecx, 0xf
shl ecx, 0xc
mov dl, dil
and edx, 0x3f
shl edx, 6
add edx, r12d
add ecx, edx
call fcn.140041f50
test al, al
je 0x140047162
add rsi, 0xfffffffffffffffe
jmp 0x14004704a
lea r8, [rsi + 1]
mov r9, qword [rbx]
cmp r9, r8
jb 0x14004721a
lea rax, [rsi + 1]
mov rdx, qword [rbx + 8]
mov rbx, qword [rbp - 0x38]
mov rsi, qword [rbp - 0x30]
mov rdi, qword [rbp - 0x28]
mov r12, qword [rbp - 0x20]
mov r13, qword [rbp - 0x18]
mov rsp, rbp
pop rbp
ret
mov qword [rbp - 0x40], r9
mov r9, r8
xor r8d, r8d
mov edx, 0xca6
lea rcx, str.std_string.d
call fcn.140012a70
mov qword [rbp - 0x40], rdx
mov r9, r8
xor r8d, r8d
mov edx, 0xcab
lea rcx, str.std_string.d
call fcn.140012a70
mov qword [rbp - 0x40], r8
mov r9, rsi
xor r8d, r8d
mov edx, 0xcc1
lea rcx, str.std_string.d
call fcn.140012a70
mov qword [rbp - 0x40], rdx
mov r9, r8
xor r8d, r8d
mov edx, 0xccd
lea rcx, str.std_string.d
call fcn.140012a70
mov qword [rbp - 0x40], rcx
mov r9, rdx
xor r8d, r8d
mov edx, 0xcd9
lea rcx, str.std_string.d
call fcn.140012a70
mov qword [rbp - 0x40], r9
mov r9, r8
xor r8d, r8d
mov edx, 0xce8
lea rcx, str.std_string.d
call fcn.140012a70
int3