Function at 0x1400c1840
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 0x1400c1958
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 0x1400c18ac
mov rdx, qword [rdx]
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x1400c18ba
mov rcx, qword [rcx]
cmp r8, rax
jne 0x1400c18cf
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400c18cf
mov eax, 1
jmp 0x1400c18d1
xor eax, eax
test al, al
je 0x1400c18de
mov rdx, rbx
lea rcx, [r14 - 0x58]
jmp 0x1400c18e6
lea rdx, [rbx + 0x20]
lea rcx, [r14 - 0x38]
add rcx, rdi
call fcn.140051b00
test al, al
je 0x1400c18f5
dec rsi
imul rdi, rsi, 0x58
imul rbx, r15, 0x58
add rdi, r14
mov rdx, rdi
add rbx, r14
mov rcx, rbx
call fcn.14006bca0
lea rdx, [rdi + 0x20]
lea rcx, [rbx + 0x20]
call fcn.14006bca0
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 0x1400c1880
cmp rsi, rbp
jne 0x1400c1989
mov rax, r12
cqo
and eax, 1
xor rax, rdx
cmp rax, rdx
jne 0x1400c1989
imul rdx, r12, 0x58
imul rcx, r15, 0x58
add rdx, 0xffffffffffffffa8
add rdx, r14
add rcx, r14
call fcn.1400ca960
lea r15, [r12 - 1]
mov r12, qword [rsp + 0x50]
cmp r12, r15
jge 0x1400c1a67
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 0x1400c19c1
mov rdx, qword [r13 + 0x20]
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x1400c19cf
mov rcx, qword [rcx]
cmp r8, qword [r13 + 0x30]
jne 0x1400c19e5
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1400c19e5
mov eax, 1
jmp 0x1400c19e7
xor eax, eax
test al, al
je 0x1400c19f3
mov rdx, rbx
mov rcx, r13
jmp 0x1400c19fb
lea rdx, [rbx + 0x20]
lea rcx, [r13 + 0x20]
call fcn.140051b00
test al, al
je 0x1400c1a67
imul rdi, rbp, 0x58
imul rbx, r15, 0x58
add rdi, r14
mov rdx, rdi
add rbx, r14
mov rcx, rbx
call fcn.14006bca0
lea rdx, [rdi + 0x20]
lea rcx, [rbx + 0x20]
call fcn.14006bca0
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 0x1400c19a0
imul rbx, r15, 0x58
mov rdx, r13
add rbx, r14
mov rcx, rbx
call fcn.14006bca0
lea rdx, [r13 + 0x20]
lea rcx, [rbx + 0x20]
call fcn.14006bca0
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