Function at 0x180023b39
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp rcx, rdx
je 0x180023e07
mov r11, rsp
push rbx
push rdi
push r12
sub rsp, 0xf0
mov rax, qword [0x180063088]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov qword [r11 + 0x20], r13
mov r12, r8
lea r13, [rcx + 0x88]
mov rbx, rdx
mov qword [rsp + 0x28], r13
mov rdi, rcx
cmp r13, rdx
je 0x180023de4
mov qword [r11 + 8], rbp
lea rcx, [r13 + 0x38]
mov qword [r11 + 0x10], rsi
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
mov r15d, 2
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x20], rcx
nop
lea r14, [r15 - 1]
xor ebp, ebp
xor esi, esi
test r14, r14
je 0x180023bed
mov rdx, qword [r12 + 8]
lea ecx, [rdx + 0xff]
shl rbp, cl
add rbp, rbp
nop
call fcn.1800306ac
mov ecx, eax
mov rax, qword [r12 + 0x10]
cmp rcx, rax
ja 0x180023bc0
mov rdx, qword [r12 + 8]
or rbp, rcx
lea ecx, [rdx + 0xff]
shl rsi, cl
add rsi, rsi
or rsi, rax
cmp rsi, r14
jb 0x180023bb2
xor edx, edx
mov rax, rsi
div r15
mov rcx, rax
mov r8, rdx
xor edx, edx
mov rax, rbp
div r15
cmp rax, rcx
jb 0x180023c0d
cmp r8, r14
jne 0x180023ba4
xor edx, edx
mov rax, rbp
div r15
cmp rdx, r14
je 0x180023d9e
mov rcx, qword [rsp + 0x28]
imul r13, rdx, 0x88
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
mov rdx, qword [rsp + 0x20]
mov byte [rcx], 0
lea rbp, [rdx - 0x18]
lea rsi, [rdx + 8]
movaps xmmword [rsp + 0x40], xmm0
lea r15, [rdx + 0x30]
movaps xmmword [rsp + 0x50], xmm1
mov qword [rdx - 0x28], 0
add r13, rdi
mov qword [rdx - 0x20], 0xf
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
mov qword [rdx - 8], 0
mov qword [rdx], 0xf
mov byte [rbp], 0
movaps xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x70], xmm1
movups xmm1, xmmword [rsi + 0x10]
mov qword [rdx + 0x18], 0
mov qword [rdx + 0x20], 0xf
mov byte [rsi], 0
movzx eax, byte [rdx + 0x28]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [r15]
mov byte [rsp + 0xa0], al
movzx eax, byte [rdx + 0x29]
movaps xmmword [rsp + 0x90], xmm1
movups xmm1, xmmword [r15 + 0x10]
mov qword [rdx + 0x40], 0
mov qword [rdx + 0x48], 0xf
mov rdx, r13
movups xmmword [rsp + 0xa8], xmm0
mov byte [rsp + 0xa1], al
movups xmmword [rsp + 0xb8], xmm1
mov byte [r15], 0
call fcn.1800204f0
lea rdx, [r13 + 0x20]
mov rcx, rbp
call fcn.1800204f0
lea rdx, [r13 + 0x40]
mov rcx, rsi
call fcn.1800204f0
movzx eax, byte [r13 + 0x60]
lea rdx, [r13 + 0x68]
mov rcx, qword [rsp + 0x20]
mov byte [rcx + 0x28], al
movzx eax, byte [r13 + 0x61]
mov byte [rcx + 0x29], al
mov rcx, r15
call fcn.1800204f0
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.1800204f0
lea rdx, [rsp + 0x60]
lea rcx, [r13 + 0x20]
call fcn.1800204f0
lea rdx, [rsp + 0x80]
lea rcx, [r13 + 0x40]
call fcn.1800204f0
movzx eax, byte [rsp + 0xa0]
lea rdx, [rsp + 0xa8]
mov byte [r13 + 0x60], al
lea rcx, [r13 + 0x68]
movzx eax, byte [rsp + 0xa1]
mov byte [r13 + 0x61], al
call fcn.1800204f0
lea rcx, [rsp + 0x40]
call fcn.1800028b0
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x28]
add qword [rsp + 0x20], 0x88
inc r15
add r13, 0x88
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], r13
cmp r13, rbx
jne 0x180023ba0
mov r15, qword [rsp + 0xe0]
mov r14, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x110]
mov r13, qword [rsp + 0x128]
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.18002c4c0
add rsp, 0xf0
pop r12
pop rdi
pop rbx
ret