Function at 0x1800c97a0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rdi
push r13
push r14
sub rsp, 0x30
mov rbx, qword [rsp + 0x80]
lea rdi, [r8 - 1]
mov qword [rsp + 0x28], r12
mov r14, r9
mov r12, rdi
mov qword [rsp + 0x20], r15
sar r12, 1
mov rax, r8
mov qword [rsp + 0x60], rdi
mov r10, rdx
mov rbp, rcx
mov r13, rdx
mov r15, rdx
cmp rdx, r12
jge 0x1800c992a
mov qword [rsp + 0x68], rsi
nop dword [rax]
nop word [rax + rax]
mov edx, dword [rbx]
add r15, r15
imul rcx, r15, 0x1850
test edx, edx
je 0x1800c982d
cmp edx, 1
je 0x1800c9819
xor al, al
jmp 0x1800c9842
vmovss xmm0, dword [rcx + rbp + 0x1878]
vcomiss xmm0, dword [rcx + rbp + 0x30c8]
jmp 0x1800c983f
vmovss xmm0, dword [rcx + rbp + 0x1874]
vcomiss xmm0, dword [rcx + rbp + 0x30c4]
seta al
movzx eax, al
mov r8d, 0x1800
xor rax, 1
inc rax
add r15, rax
imul rdi, r10, 0x1850
imul rsi, r15, 0x1850
add rdi, rbp
lea rcx, [rdi + 0x38]
add rsi, rbp
mov rax, qword [rsi]
lea rdx, [rsi + 0x38]
mov qword [rdi], rax
mov eax, dword [rsi + 8]
mov dword [rdi + 8], eax
mov eax, dword [rsi + 0xc]
mov dword [rdi + 0xc], eax
mov eax, dword [rsi + 0x10]
mov dword [rdi + 0x10], eax
mov eax, dword [rsi + 0x14]
mov dword [rdi + 0x14], eax
mov eax, dword [rsi + 0x18]
mov dword [rdi + 0x18], eax
mov eax, dword [rsi + 0x1c]
mov dword [rdi + 0x1c], eax
mov eax, dword [rsi + 0x20]
mov dword [rdi + 0x20], eax
mov eax, dword [rsi + 0x24]
mov dword [rdi + 0x24], eax
mov eax, dword [rsi + 0x28]
mov dword [rdi + 0x28], eax
mov eax, dword [rsi + 0x2c]
mov dword [rdi + 0x2c], eax
mov eax, dword [rsi + 0x30]
mov dword [rdi + 0x30], eax
mov eax, dword [rsi + 0x34]
mov dword [rdi + 0x34], eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsi + 0x1838]
mov r10, r15
mov dword [rdi + 0x1838], eax
mov eax, dword [rsi + 0x183c]
mov dword [rdi + 0x183c], eax
mov eax, dword [rsi + 0x1840]
mov dword [rdi + 0x1840], eax
movzx eax, byte [rsi + 0x1844]
mov byte [rdi + 0x1844], al
movzx eax, byte [rsi + 0x1845]
mov byte [rdi + 0x1845], al
movzx eax, byte [rsi + 0x1848]
mov byte [rdi + 0x1848], al
cmp r15, r12
jl 0x1800c9800
mov rsi, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x60]
cmp r15, r12
mov r15, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
jne 0x1800c9960
test al, 1
jne 0x1800c9960
imul rdx, rax, 0x1850
imul rcx, r10, 0x1850
add rdx, 0xffffffffffffe7b0
add rdx, rbp
add rcx, rbp
call fcn.1800c8690
mov r10, rdi
cmp r13, r10
jge 0x1800c99c2
nop word [rax + rax]
mov ecx, dword [rbx]
lea rdi, [r10 - 1]
sar rdi, 1
imul rdx, rdi, 0x1850
add rdx, rbp
test ecx, ecx
je 0x1800c9999
cmp ecx, 1
jne 0x1800c99c2
vmovss xmm0, dword [r14 + 0x28]
vcomiss xmm0, dword [rdx + 0x28]
jmp 0x1800c99a4
vmovss xmm0, dword [r14 + 0x24]
vcomiss xmm0, dword [rdx + 0x24]
seta al
test al, al
je 0x1800c99c2
imul rcx, r10, 0x1850
add rcx, rbp
call fcn.1800c8690
mov r10, rdi
cmp r13, rdi
jl 0x1800c9970
mov rax, qword [r14]
lea rdx, [r14 + 0x38]
imul rbx, r10, 0x1850
mov r8d, 0x1800
add rbx, rbp
mov qword [rbx], rax
lea rcx, [rbx + 0x38]
mov eax, dword [r14 + 8]
mov dword [rbx + 8], eax
mov eax, dword [r14 + 0xc]
mov dword [rbx + 0xc], eax
mov eax, dword [r14 + 0x10]
mov dword [rbx + 0x10], eax
mov eax, dword [r14 + 0x14]
mov dword [rbx + 0x14], eax
mov eax, dword [r14 + 0x18]
mov dword [rbx + 0x18], eax
mov eax, dword [r14 + 0x1c]
mov dword [rbx + 0x1c], eax
mov eax, dword [r14 + 0x20]
mov dword [rbx + 0x20], eax
mov eax, dword [r14 + 0x24]
mov dword [rbx + 0x24], eax
mov eax, dword [r14 + 0x28]
mov dword [rbx + 0x28], eax
mov eax, dword [r14 + 0x2c]
mov dword [rbx + 0x2c], eax
mov eax, dword [r14 + 0x30]
mov dword [rbx + 0x30], eax
mov eax, dword [r14 + 0x34]
mov dword [rbx + 0x34], eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [r14 + 0x1838]
mov dword [rbx + 0x1838], eax
mov eax, dword [r14 + 0x183c]
mov dword [rbx + 0x183c], eax
mov eax, dword [r14 + 0x1840]
mov dword [rbx + 0x1840], eax
movzx eax, byte [r14 + 0x1844]
mov byte [rbx + 0x1844], al
movzx eax, byte [r14 + 0x1845]
mov byte [rbx + 0x1845], al
movzx eax, byte [r14 + 0x1848]
mov byte [rbx + 0x1848], al
add rsp, 0x30
pop r14
pop r13
pop rdi
pop rbp
pop rbx
ret