Function at 0x1400c9860
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r15d, r8d
mov rsi, rcx
add dword [rcx + 0x7c], r8d
mov rdi, r9
mov ebp, edx
mov r13b, byte [rcx + 0x78]
test r13b, r13b
mov byte [rsp + 0x28], r13b
je 0x1400c9919
xor eax, eax
mov qword [rsp + 0x30], rax
xor ebx, ebx
nop word [rax + rax]
movzx r8d, r13b
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [rsi + rax*8]
cmp ecx, ebp
setb r14b
jae 0x1400c98d0
add rax, 1
cmp r8d, eax
jne 0x1400c98b0
mov eax, r8d
jmp 0x1400c98d6
je 0x1400c9a3f
cmp byte [rsi + 0x79], 0
je 0x1400c9945
cmp r13b, 0xf
jne 0x1400c99ee
mov rcx, rsi
mov rdx, rdi
call fcn.1400c9b50
xor eax, eax
cmp dword [rdi + 0x10], ebp
setbe al
xor bl, 1
or r12b, bl
mov rsi, qword [rdi + rax*8]
add dword [rsi + 0x7c], r15d
mov r13b, byte [rsi + 0x78]
mov bl, 1
mov edi, 0
test r13b, r13b
jne 0x1400c98a0
jmp 0x1400c991e
mov qword [rsp + 0x30], rdi
cmp byte [rsp + 0x28], 0
setne bl
lea r14, [rsi + 0x78]
xor eax, eax
cmp byte [rsi + 0x79], 0
jne 0x1400c99f6
mov qword [rsp + 0x28], r14
mov r14b, 1
mov rdi, qword [rsp + 0x30]
jmp 0x1400c994e
lea rcx, [rsi + 0x78]
mov qword [rsp + 0x28], rcx
mov eax, eax
mov qword [rsp + 0x30], rax
mov rcx, qword [rsi + rax*8 + 0x80]
mov edx, ebp
mov r8d, r15d
mov r9, rdi
call fcn.1400c9860
test al, al
je 0x1400c9a09
mov rax, qword [rsp + 0x28]
cmp byte [rax], 0xf
jne 0x1400c9a2b
mov rax, qword [rdi]
mov rcx, qword [rsp + 0x30]
mov qword [rsi + rcx*8 + 0x80], rax
mov r15, qword [rdi + 8]
mov ebp, dword [rdi + 0x10]
mov r13d, dword [rdi + 0x14]
mov rcx, rsi
mov rdx, rdi
call fcn.1400c9b50
xor eax, eax
cmp ebp, dword [rdi + 0x10]
setae al
mov rdi, qword [rdi + rax*8]
movzx r14d, byte [rdi + 0x78]
test r14d, r14d
je 0x1400c99e1
mov eax, r14d
xor esi, esi
nop word cs:[rax + rax]
nop dword [rax + rax]
cmp ebp, dword [rdi + rsi*8]
jbe 0x1400c9ad8
add rsi, 1
cmp eax, esi
jne 0x1400c99d0
mov qword [rdi + r14*8 + 0x88], r15
jmp 0x1400c9b26
lea r14, [rsi + 0x78]
cmp ecx, ebp
jae 0x1400c9a46
mov edi, eax
shl r15, 0x20
mov eax, ebp
or rax, r15
mov qword [rsi + rdi*8], rax
add byte [r14], 1
xor eax, eax
movzx ecx, r12b
movzx eax, al
test bl, 1
cmovne eax, ecx
and al, 1
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx r13d, r13b
test r14b, r14b
je 0x1400c9a62
mov rbp, qword [rsp + 0x30]
lea r15d, [rbp + 1]
jmp 0x1400c9a90
add dword [rsi + rax*8 + 4], r15d
jmp 0x1400c9a09
mov edi, eax
lea rcx, [rsi + rdi*8]
add rcx, 8
lea rdx, [rsi + rdi*8]
sub r8d, eax
shl r8, 3
call sub.VCRUNTIME140.dll_memmove
jmp 0x1400c99f8
mov rbp, qword [rsp + 0x30]
lea rcx, [rsi + rbp*8]
add rcx, 0x90
lea r15, [rbp + 1]
lea rdx, [rsi + rbp*8]
add rdx, 0x88
mov r8d, r13d
sub r8d, ebp
shl r8, 3
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rdi]
mov qword [rsi + rbp*8 + 0x80], rax
mov rax, qword [rdi + 8]
mov qword [rsi + r15*8 + 0x80], rax
test r14b, r14b
jne 0x1400c9ac3
lea rcx, [rsi + r15*8]
lea rdx, [rsi + rbp*8]
sub r13d, ebp
shl r13, 3
mov r8, r13
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rdi + 0x10]
mov qword [rsi + rbp*8], rax
mov rax, qword [rsp + 0x28]
add byte [rax], 1
jmp 0x1400c9a09
lea rax, [rdi + rsi*8]
mov qword [rsp + 0x28], rax
lea rcx, [rdi + rsi*8]
add rcx, 0x90
lea rdx, [rdi + rsi*8]
add rdx, 0x88
sub r14d, esi
shl r14, 3
mov r8, r14
call sub.VCRUNTIME140.dll_memmove
mov qword [rdi + rsi*8 + 0x88], r15
lea rcx, [rdi + rsi*8]
add rcx, 8
mov rdx, qword [rsp + 0x28]
mov r8, r14
call sub.VCRUNTIME140.dll_memmove
mov r14, rsi
mov dword [rdi + r14*8], ebp
mov dword [rdi + r14*8 + 4], r13d
add byte [rdi + 0x78], 1
add r13d, dword [r15 + 0x7c]
add dword [rdi + 0x7c], r13d
mov al, 1
jmp 0x1400c9a0b