Function at 0x140013410
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
sub rsp, 0x110
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], r9
mov qword [rbp + 0x58], rdx
mov word [rbp + 0x66], cx
mov rax, qword [rbp + 0xd0]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0xc8]
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0xc0]
mov qword [rbp + 0x78], rax
shr cx, 8
mov al, cl
mov byte [rbp + 0x87], al
mov rax, r8
shl rax, 1
add rdx, rax
mov qword [rbp + 0x88], rdx
cmp r8, 0
je 0x140013486
mov rax, qword [rbp + 0x58]
mov cx, word [rbp + 0x66]
mov byte [rbp + 0x3f], cl
xor ecx, ecx
mov qword [rbp + 0x40], rcx
mov qword [rbp + 0x48], rax
jmp 0x1400134c0
mov rcx, qword [rbp + 0x68]
mov rax, qword [rbp + 0x70]
add rax, rcx
mov qword [rbp + 0x30], rax
mov al, 1
cmp rcx, 0
mov byte [rbp + 0x3e], al
je 0x14001367a
mov rax, qword [rbp + 0x70]
mov cx, word [rbp + 0x66]
movzx ecx, cx
mov dl, 1
mov byte [rbp + 0x23], dl
mov dword [rbp + 0x24], ecx
mov qword [rbp + 0x28], rax
jmp 0x1400135b3
mov cl, byte [rbp + 0x87]
mov rdx, qword [rbp + 0x40]
mov r8, qword [rbp + 0x48]
mov qword [rbp - 8], rdx
mov rax, r8
add rax, 2
mov qword [rbp], rax
mov al, byte [r8]
mov byte [rbp + 0xf], al
movzx r8d, byte [r8 + 1]
mov qword [rbp + 0x10], r8
add rdx, r8
mov qword [rbp + 0x18], rdx
cmp al, cl
je 0x140013524
mov rdx, qword [rbp + 0x88]
mov rcx, qword [rbp]
mov r8b, byte [rbp + 0x87]
mov al, byte [rbp + 0xf]
sub al, r8b
seta al
sub rcx, rdx
sete cl
or al, cl
test al, 1
jne 0x140013486
jmp 0x14001359e
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp - 8]
cmp rax, rcx
jb 0x140013540
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x78]
cmp rax, rcx
ja 0x140013554
jmp 0x140013568
mov rdx, qword [rbp + 0x18]
mov rcx, qword [rbp - 8]
lea r8, str.Pq_b_
call fcn.140010a10
mov rdx, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x18]
lea r8, str.Pq_b_
call fcn.14000df30
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp - 8]
mov rax, qword [rbp + 0x50]
add rax, rcx
mov rcx, rax
add rcx, rdx
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], rax
jmp 0x140013688
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x88]
cmp rax, rcx
je 0x140013486
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x18]
mov qword [rbp + 0x40], rcx
mov qword [rbp + 0x48], rax
jmp 0x1400134c0
mov cl, byte [rbp + 0x23]
mov edx, dword [rbp + 0x24]
mov rax, qword [rbp + 0x28]
mov qword [rbp - 0x38], rax
mov dword [rbp - 0x30], edx
mov byte [rbp - 0x29], cl
mov rcx, rax
add rcx, 1
mov qword [rbp - 0x28], rcx
mov al, byte [rax]
mov byte [rbp - 0x19], al
cmp al, 0xff
jle 0x1400135ee
mov rcx, qword [rbp - 0x28]
mov al, byte [rbp - 0x19]
movzx eax, al
mov qword [rbp - 0x48], rcx
mov dword [rbp - 0x3c], eax
jmp 0x1400135fd
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp + 0x30]
cmp rax, rcx
je 0x14001361d
jmp 0x140013629
mov al, byte [rbp - 0x29]
mov ecx, dword [rbp - 0x30]
mov r8, qword [rbp - 0x48]
mov edx, dword [rbp - 0x3c]
mov qword [rbp - 0x58], r8
sub ecx, edx
mov dword [rbp - 0x4c], ecx
cmp ecx, 0
mov byte [rbp + 0x3e], al
jl 0x14001367a
jmp 0x140013650
lea rcx, str.core_srcunicodeprintable.rs
call fcn.140010a90
mov al, byte [rbp - 0x19]
mov rdx, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x38]
add rcx, 2
mov dl, byte [rdx]
and al, 0x7f
movzx eax, al
shl eax, 8
movzx edx, dl
or eax, edx
mov qword [rbp - 0x48], rcx
mov dword [rbp - 0x3c], eax
jmp 0x1400135fd
mov rcx, qword [rbp - 0x58]
mov edx, dword [rbp - 0x4c]
mov r8, qword [rbp + 0x30]
mov al, byte [rbp - 0x29]
xor al, 0xff
cmp rcx, r8
mov r8b, al
mov byte [rbp + 0x23], r8b
mov dword [rbp + 0x24], edx
mov qword [rbp + 0x28], rcx
mov byte [rbp + 0x3e], al
jne 0x1400135b3
mov al, byte [rbp + 0x3e]
and al, 1
add rsp, 0x110
pop rbp
ret
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x10]
mov qword [rbp - 0x60], rax
cmp rax, rcx
je 0x14001358a
mov rdx, qword [rbp - 0x60]
mov r8b, byte [rbp + 0x3f]
mov rax, rdx
add rax, 1
xor ecx, ecx
cmp byte [rdx], r8b
mov byte [rbp + 0x3e], cl
mov qword [rbp - 0x10], rax
je 0x14001367a
jmp 0x140013688