Function at 0x1800bca10
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 0x1800bcb98
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 0x1800bca9c
cmp edx, 1
je 0x1800bca89
xor al, al
jmp 0x1800bcab0
movss xmm0, dword [rcx + rbp + 0x1878]
comiss xmm0, dword [rcx + rbp + 0x30c8]
jmp 0x1800bcaad
movss xmm0, dword [rcx + rbp + 0x1874]
comiss 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 0x1800bca70
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 0x1800bcbce
test al, 1
jne 0x1800bcbce
imul rdx, rax, 0x1850
imul rcx, r10, 0x1850
add rdx, 0xffffffffffffe7b0
add rdx, rbp
add rcx, rbp
call fcn.1800bb900
mov r10, rdi
cmp r13, r10
jge 0x1800bcc30
nop dword [rax]
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 0x1800bcc08
cmp ecx, 1
jne 0x1800bcc30
movss xmm0, dword [r14 + 0x28]
comiss xmm0, dword [rdx + 0x28]
jmp 0x1800bcc12
movss xmm0, dword [r14 + 0x24]
comiss xmm0, dword [rdx + 0x24]
seta al
test al, al
je 0x1800bcc30
imul rcx, r10, 0x1850
add rcx, rbp
call fcn.1800bb900
mov r10, rdi
cmp r13, rdi
jl 0x1800bcbe0
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