Function at 0x1401ab550
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
lea rbp, [r8 - 1]
mov qword [rsp + 0x50], rdx
sar rbp, 1
mov r13, r9
mov r12, r8
mov r15, rdx
mov r14, rcx
mov rsi, rdx
cmp rdx, rbp
jge 0x1401ab668
lea rsi, [rsi*2 + 2]
imul rdi, rsi, 0x58
imul rbx, rsi, 0x58
lea rdx, [r14 - 0x38]
add rdx, rdi
mov rax, qword [rdx + 0x10]
add rbx, r14
cmp qword [rdx + 0x18], 0x10
lea rcx, [rbx + 0x20]
jb 0x1401ab5bc
mov rdx, qword [rdx]
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x1401ab5ca
mov rcx, qword [rcx]
cmp r8, rax
jne 0x1401ab5df
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1401ab5df
mov eax, 1
jmp 0x1401ab5e1
xor eax, eax
test al, al
je 0x1401ab5ee
mov rdx, rbx
lea rcx, [r14 - 0x58]
jmp 0x1401ab5f6
lea rdx, [rbx + 0x20]
lea rcx, [r14 - 0x38]
add rcx, rdi
call fcn.14002e020
test al, al
je 0x1401ab605
dec rsi
imul rdi, rsi, 0x58
imul rbx, r15, 0x58
add rdi, r14
mov rdx, rdi
add rbx, r14
mov rcx, rbx
call fcn.1400443f0
lea rdx, [rdi + 0x20]
lea rcx, [rbx + 0x20]
call fcn.1400443f0
mov eax, dword [rdi + 0x40]
mov r15, rsi
mov dword [rbx + 0x40], eax
movzx eax, byte [rdi + 0x44]
mov byte [rbx + 0x44], al
movzx eax, byte [rdi + 0x45]
mov byte [rbx + 0x45], al
movzx eax, byte [rdi + 0x46]
mov byte [rbx + 0x46], al
movzx eax, byte [rdi + 0x47]
mov byte [rbx + 0x47], al
movzx eax, byte [rdi + 0x48]
mov byte [rbx + 0x48], al
mov rax, qword [rdi + 0x50]
mov qword [rbx + 0x50], rax
cmp rsi, rbp
jl 0x1401ab590
cmp rsi, rbp
jne 0x1401ab699
mov rax, r12
cqo
and eax, 1
xor rax, rdx
cmp rax, rdx
jne 0x1401ab699
imul rdx, r12, 0x58
imul rcx, r15, 0x58
add rdx, 0xffffffffffffffa8
add rdx, r14
add rcx, r14
call fcn.1401b4990
lea r15, [r12 - 1]
mov r12, qword [rsp + 0x50]
cmp r12, r15
jge 0x1401ab777
nop word [rax + rax]
lea rbp, [r15 - 1]
sar rbp, 1
lea rdx, [r13 + 0x20]
imul rbx, rbp, 0x58
add rbx, r14
cmp qword [r13 + 0x38], 0x10
lea rcx, [rbx + 0x20]
jb 0x1401ab6d1
mov rdx, qword [r13 + 0x20]
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x1401ab6df
mov rcx, qword [rcx]
cmp r8, qword [r13 + 0x30]
jne 0x1401ab6f5
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1401ab6f5
mov eax, 1
jmp 0x1401ab6f7
xor eax, eax
test al, al
je 0x1401ab703
mov rdx, rbx
mov rcx, r13
jmp 0x1401ab70b
lea rdx, [rbx + 0x20]
lea rcx, [r13 + 0x20]
call fcn.14002e020
test al, al
je 0x1401ab777
imul rdi, rbp, 0x58
imul rbx, r15, 0x58
add rdi, r14
mov rdx, rdi
add rbx, r14
mov rcx, rbx
call fcn.1400443f0
lea rdx, [rdi + 0x20]
lea rcx, [rbx + 0x20]
call fcn.1400443f0
mov eax, dword [rdi + 0x40]
mov r15, rbp
mov dword [rbx + 0x40], eax
movzx eax, byte [rdi + 0x44]
mov byte [rbx + 0x44], al
movzx eax, byte [rdi + 0x45]
mov byte [rbx + 0x45], al
movzx eax, byte [rdi + 0x46]
mov byte [rbx + 0x46], al
movzx eax, byte [rdi + 0x47]
mov byte [rbx + 0x47], al
movzx eax, byte [rdi + 0x48]
mov byte [rbx + 0x48], al
mov rax, qword [rdi + 0x50]
mov qword [rbx + 0x50], rax
cmp r12, rbp
jl 0x1401ab6b0
imul rbx, r15, 0x58
mov rdx, r13
add rbx, r14
mov rcx, rbx
call fcn.1400443f0
lea rdx, [r13 + 0x20]
lea rcx, [rbx + 0x20]
call fcn.1400443f0
mov eax, dword [r13 + 0x40]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
mov dword [rbx + 0x40], eax
movzx eax, byte [r13 + 0x44]
mov byte [rbx + 0x44], al
movzx eax, byte [r13 + 0x45]
mov byte [rbx + 0x45], al
movzx eax, byte [r13 + 0x46]
mov byte [rbx + 0x46], al
movzx eax, byte [r13 + 0x47]
mov byte [rbx + 0x47], al
movzx eax, byte [r13 + 0x48]
mov byte [rbx + 0x48], al
mov rax, qword [r13 + 0x50]
mov qword [rbx + 0x50], rax
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret