Function at 0x1800d9030
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 0x1800d923c
mov r13, qword [rcx]
movaps xmmword [rax - 0x58], xmm6
mov r11, r13
movss xmm6, dword [0x1802009b0]
mov rdi, r13
movaps xmmword [rax - 0x68], xmm7
mov rax, qword [rcx + 8]
movss xmm7, dword [0x180200090]
mov rdx, rax
mov rsi, rax
mov r15, 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 [0x18022acc1], 0
mov r9, qword [rax + rcx*8]
je 0x1800d90fa
movzx eax, byte [r9 + 0xc]
cmp al, byte [r8 + 0xc]
jne 0x1800d9165
mov rax, qword [0x180229a88]
movss xmm0, dword [r9]
movss xmm2, dword [rax + 0x1c]
mov rax, qword [rbx + 8]
divss xmm0, xmm2
mov edx, dword [rax]
mov ecx, edx
mov rax, qword [rbx]
movss xmm3, dword [rax]
addss xmm0, xmm7
movaps xmm1, xmm3
cvttss2si eax, xmm0
sub ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
subss xmm1, xmm0
movss xmm0, dword [r8]
divss xmm0, xmm2
andps xmm1, xmm6
addss xmm0, xmm7
cvttss2si eax, xmm0
sub edx, eax
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm2
subss xmm3, xmm0
andps xmm3, xmm6
comiss xmm3, xmm1
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 0x1800d90b1
mov r15, qword [rsp + 0xf0]
mov r8, qword [rsp + 0x100]
mov r13, qword [rsp + 0x108]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
cmp r14, rbp
mov r14, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xb0]
jne 0x1800d92f5
test r8b, 1
jne 0x1800d92f5
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
movups xmm0, xmmword [r15]
mov r8, qword [rsp + 0x70]
lea rcx, [rsp + 0x60]
mov r9, r13
mov qword [rsp + 0x20], rbx
mov rdx, r10
movaps xmmword [rsp + 0x60], xmm0
call fcn.1800d9330
add rsp, 0xb8
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret