Function at 0x140143150
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 0x140143268
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 0x1401431bc
mov rdx, qword [rdx]
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x1401431ca
mov rcx, qword [rcx]
cmp r8, rax
jne 0x1401431df
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1401431df
mov eax, 1
jmp 0x1401431e1
xor eax, eax
test al, al
je 0x1401431ee
mov rdx, rbx
lea rcx, [r14 - 0x58]
jmp 0x1401431f6
lea rdx, [rbx + 0x20]
lea rcx, [r14 - 0x38]
add rcx, rdi
call fcn.1400e7c30
test al, al
je 0x140143205
dec rsi
imul rdi, rsi, 0x58
imul rbx, r15, 0x58
add rdi, r14
mov rdx, rdi
add rbx, r14
mov rcx, rbx
call fcn.14003b5c0
lea rdx, [rdi + 0x20]
lea rcx, [rbx + 0x20]
call fcn.14003b5c0
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 0x140143190
cmp rsi, rbp
jne 0x140143299
mov rax, r12
cqo
and eax, 1
xor rax, rdx
cmp rax, rdx
jne 0x140143299
imul rdx, r12, 0x58
imul rcx, r15, 0x58
add rdx, 0xffffffffffffffa8
add rdx, r14
add rcx, r14
call fcn.14014c590
lea r15, [r12 - 1]
mov r12, qword [rsp + 0x50]
cmp r12, r15
jge 0x140143377
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 0x1401432d1
mov rdx, qword [r13 + 0x20]
cmp qword [rcx + 0x18], 0x10
mov r8, qword [rcx + 0x10]
jb 0x1401432df
mov rcx, qword [rcx]
cmp r8, qword [r13 + 0x30]
jne 0x1401432f5
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1401432f5
mov eax, 1
jmp 0x1401432f7
xor eax, eax
test al, al
je 0x140143303
mov rdx, rbx
mov rcx, r13
jmp 0x14014330b
lea rdx, [rbx + 0x20]
lea rcx, [r13 + 0x20]
call fcn.1400e7c30
test al, al
je 0x140143377
imul rdi, rbp, 0x58
imul rbx, r15, 0x58
add rdi, r14
mov rdx, rdi
add rbx, r14
mov rcx, rbx
call fcn.14003b5c0
lea rdx, [rdi + 0x20]
lea rcx, [rbx + 0x20]
call fcn.14003b5c0
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 0x1401432b0
imul rbx, r15, 0x58
mov rdx, r13
add rbx, r14
mov rcx, rbx
call fcn.14003b5c0
lea rdx, [r13 + 0x20]
lea rcx, [rbx + 0x20]
call fcn.14003b5c0
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