Function at 0x140016ad9
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0xb0]
mov rbx, rcx
mov rcx, qword [rbx]
mov rbx, qword [rbx + 8]
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rbx
mov rbx, rdx
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov qword [rbp - 0x90], rax
mov qword [rbp - 0x88], rdx
lea rax, str.startsWith
mov qword [rbp - 0x58], rax
lea rax, str._home_pluto_.choosenim_toolchains_nim_2.0.0_lib_pure_strutils.nim
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0
mov word [rbp - 0x40], 0
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.nimFrame_9
mov byte [rbp - 1], 0
mov qword [rbp - 0x50], 0x38
lea rax, str._home_pluto_.choosenim_toolchains_nim_2.0.0_lib_std_private_strimpl.nim
mov qword [rbp - 0x48], rax
mov rax, qword [rbp - 0x90]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x50], 0x39
mov rax, qword [rbp - 0x80]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x50], 0x3a
mov qword [rbp - 0x10], 0
mov qword [rbp - 0x50], 0x658
lea rax, str._home_pluto_.choosenim_toolchains_nim_2.0.0_lib_pure_strutils.nim
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0x3c
lea rax, str._home_pluto_.choosenim_toolchains_nim_2.0.0_lib_std_private_strimpl.nim
mov qword [rbp - 0x48], rax
mov rax, qword [rbp - 0x20]
cmp rax, qword [rbp - 0x10]
jg 0x140016be5
mov qword [rbp - 0x50], 0x64b
lea rax, str._home_pluto_.choosenim_toolchains_nim_2.0.0_lib_pure_strutils.nim
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0x3c
lea rax, str._home_pluto_.choosenim_toolchains_nim_2.0.0_lib_std_private_strimpl.nim
mov qword [rbp - 0x48], rax
mov byte [rbp - 1], 1
jmp 0x140016d12
nop
mov qword [rbp - 0x50], 0x3d
mov byte [rbp - 0x11], 0
mov rax, qword [rbp - 0x28]
cmp rax, qword [rbp - 0x10]
setle al
mov byte [rbp - 0x11], al
cmp byte [rbp - 0x11], 0
jne 0x140016c95
cmp qword [rbp - 0x10], 0
js 0x140016c1b
mov rax, qword [rbp - 0x80]
cmp qword [rbp - 0x10], rax
jl 0x140016c34
mov rax, qword [rbp - 0x80]
lea rdx, [rax - 1]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.raiseIndexError2
jmp 0x140016d12
cmp qword [rbp - 0x10], 0
js 0x140016c48
mov rax, qword [rbp - 0x90]
cmp qword [rbp - 0x10], rax
jl 0x140016c64
mov rax, qword [rbp - 0x90]
lea rdx, [rax - 1]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call sym.raiseIndexError2
jmp 0x140016d12
mov rdx, qword [rbp - 0x78]
mov rax, qword [rbp - 0x10]
add rax, rdx
add rax, 8
movzx edx, byte [rax]
mov rcx, qword [rbp - 0x88]
mov rax, qword [rbp - 0x10]
add rax, rcx
add rax, 8
movzx eax, byte [rax]
cmp dl, al
setne al
mov byte [rbp - 0x11], al
jmp 0x140016c96
nop
movzx eax, byte [rbp - 0x11]
xor eax, 1
test al, al
jne 0x140016ccd
mov qword [rbp - 0x50], 0x64b
lea rax, str._home_pluto_.choosenim_toolchains_nim_2.0.0_lib_pure_strutils.nim
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x50], 0x3d
lea rax, str._home_pluto_.choosenim_toolchains_nim_2.0.0_lib_std_private_strimpl.nim
mov qword [rbp - 0x48], rax
mov byte [rbp - 1], 0
jmp 0x140016d12
nop
mov qword [rbp - 0x50], 0x3e
mov edx, 0
mov rax, qword [rbp - 0x10]
add rax, 1
jno 0x140016cea
mov edx, 1
mov rcx, rax
lea rax, [rbp - 0x68]
mov qword [rax], rcx
mov rax, rdx
and eax, 1
test al, al
je 0x140016d05
call sym.raiseOverflow
jmp 0x140016d12
mov rax, qword [rbp - 0x68]
mov qword [rbp - 0x10], rax
jmp 0x140016b99
call sym.popFrame_9
movzx eax, byte [rbp - 1]
add rsp, 0xb8
pop rbx
pop rbp
ret