Function at 0x1800dc540
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0xb8
mov rbx, qword [rsp + 0x110]
lea r12, [r8 - 1]
mov qword [rax - 0x38], rbp
mov r13, r9
mov rbp, r12
mov qword [rax - 0x40], r14
sar rbp, 1
mov r10, rdx
mov qword [rsp + 0x70], rdx
mov r15, rcx
mov r14, rdx
cmp rdx, rbp
jge 0x1800dc75f
mov r13, qword [rcx]
vmovaps xmmword [rax - 0x58], xmm6
mov r11, r13
vmovss xmm6, dword [0x18020ab00]
vmovaps xmmword [rax - 0x68], xmm7
mov rdi, r13
mov rax, qword [rcx + 8]
vmovss xmm7, dword [0x18020a2f8]
mov rdx, rax
mov rsi, rax
mov r15, rax
nop dword [rax]
nop word [rax + rax]
mov rax, qword [r13 + 0x10]
lea rcx, [r15 + 1]
dec rax
add r14, r14
add rcx, r14
and rcx, rax
mov rax, qword [r13 + 8]
mov r8, qword [rax + rcx*8]
lea rcx, [r14 + 2]
mov rax, qword [r13 + 0x10]
add rcx, rdx
dec rax
and rcx, rax
mov rax, qword [r13 + 8]
cmp byte [0x180235e61], 0
mov r9, qword [rax + rcx*8]
je 0x1800dc619
movzx eax, byte [r9 + 0xc]
cmp al, byte [r8 + 0xc]
jne 0x1800dc686
mov rax, qword [0x180234c08]
vmovss xmm0, dword [r9]
vmovss xmm5, dword [rax + 0x1c]
mov rax, qword [rbx + 8]
vdivss xmm1, xmm0, xmm5
vaddss xmm2, xmm1, xmm7
vxorps xmm0, xmm0, xmm0
mov edx, dword [rax]
mov ecx, edx
mov rax, qword [rbx]
vmovss xmm4, dword [rax]
vcvttss2si eax, xmm2
sub ecx, eax
vcvtsi2ss xmm0, xmm0, ecx
vmulss xmm1, xmm0, xmm5
vmovss xmm0, dword [r8]
vsubss xmm3, xmm4, xmm1
vdivss xmm1, xmm0, xmm5
vaddss xmm2, xmm1, xmm7
vcvttss2si eax, xmm2
sub edx, eax
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, edx
vmulss xmm1, xmm0, xmm5
vsubss xmm2, xmm4, xmm1
vandps xmm2, xmm2, xmm6
vandps xmm3, xmm3, xmm6
vcomiss xmm2, xmm3
seta al
mov r8d, 0x1800
movzx eax, al
xor rax, 1
inc rax
add r14, rax
mov rax, qword [r11 + 0x10]
dec rax
lea rcx, [r14 + rsi]
and rcx, rax
mov rax, qword [r11 + 8]
mov rsi, qword [rax + rcx*8]
lea rcx, [r10 + r15]
mov rax, qword [rdi + 0x10]
dec rax
and rcx, rax
mov rax, qword [rdi + 8]
lea rdx, [rsi + 0x10]
mov rdi, qword [rax + rcx*8]
mov eax, dword [rsi]
mov dword [rdi], eax
lea rcx, [rdi + 0x10]
mov eax, dword [rsi + 4]
mov dword [rdi + 4], eax
mov eax, dword [rsi + 8]
mov dword [rdi + 8], eax
movzx eax, byte [rsi + 0xc]
mov byte [rdi + 0xc], al
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsi + 0x1810]
mov r10, r14
mov dword [rdi + 0x1810], eax
mov rdx, r15
mov eax, dword [rsi + 0x1814]
mov r11, r13
mov dword [rdi + 0x1814], eax
mov eax, dword [rsi + 0x1818]
mov dword [rdi + 0x1818], eax
movzx eax, byte [rsi + 0x181c]
mov rsi, r15
mov byte [rdi + 0x181c], al
mov rdi, r13
cmp r14, rbp
jl 0x1800dc5d0
vmovaps xmm7, xmmword [rsp + 0x80]
vmovaps xmm6, xmmword [rsp + 0x90]
mov r15, qword [rsp + 0xf0]
mov r8, qword [rsp + 0x100]
mov r13, qword [rsp + 0x108]
cmp r14, rbp
mov r14, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xb0]
jne 0x1800dc818
test r8b, 1
jne 0x1800dc818
mov rdx, qword [r15]
dec r8
mov rcx, qword [r15 + 8]
add rcx, r8
mov r8d, 0x1800
mov rax, qword [rdx + 0x10]
dec rax
and rcx, rax
mov rax, qword [rdx + 8]
mov rsi, qword [rax + rcx*8]
mov rcx, qword [rdx + 0x10]
mov rax, qword [r15 + 8]
dec rcx
add rax, r10
and rcx, rax
mov rax, qword [rdx + 8]
lea rdx, [rsi + 0x10]
mov rdi, qword [rax + rcx*8]
mov eax, dword [rsi]
mov dword [rdi], eax
lea rcx, [rdi + 0x10]
mov eax, dword [rsi + 4]
mov dword [rdi + 4], eax
mov eax, dword [rsi + 8]
mov dword [rdi + 8], eax
movzx eax, byte [rsi + 0xc]
mov byte [rdi + 0xc], al
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [rsi + 0x1810]
mov r10, r12
mov dword [rdi + 0x1810], eax
mov eax, dword [rsi + 0x1814]
mov dword [rdi + 0x1814], eax
mov eax, dword [rsi + 0x1818]
mov dword [rdi + 0x1818], eax
movzx eax, byte [rsi + 0x181c]
mov byte [rdi + 0x181c], al
vmovups xmm0, xmmword [r15]
mov r8, qword [rsp + 0x70]
lea rcx, [rsp + 0x60]
mov r9, r13
mov qword [rsp + 0x20], rbx
mov rdx, r10
vmovups xmmword [rsp + 0x60], xmm0
call fcn.1800dc9c0
add rsp, 0xb8
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret