Function at 0x180059b49
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp rcx, rdx
je 0x180059e17
mov r11, rsp
push rbx
push rdi
push r12
sub rsp, 0xf0
mov rax, qword [0x1800a8088]
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 0x180059df4
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 0x180059bfd
mov rdx, qword [r12 + 8]
lea ecx, [rdx + 0xff]
shl rbp, cl
add rbp, rbp
nop
call fcn.180065ffc
mov ecx, eax
mov rax, qword [r12 + 0x10]
cmp rcx, rax
ja 0x180059bd0
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 0x180059bc2
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 0x180059c1d
cmp r8, r14
jne 0x180059bb4
xor edx, edx
mov rax, rbp
div r15
cmp rdx, r14
je 0x180059dae
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], reloc.OLEAUT32.dll_SafeArrayDestroy
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], reloc.OLEAUT32.dll_SafeArrayDestroy
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], reloc.OLEAUT32.dll_SafeArrayDestroy
mov rdx, r13
movups xmmword [rsp + 0xa8], xmm0
mov byte [rsp + 0xa1], al
movups xmmword [rsp + 0xb8], xmm1
mov byte [r15], 0
call fcn.180055f10
lea rdx, [r13 + 0x20]
mov rcx, rbp
call fcn.180055f10
lea rdx, [r13 + 0x40]
mov rcx, rsi
call fcn.180055f10
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.180055f10
lea rdx, [rsp + 0x40]
mov rcx, r13
call fcn.180055f10
lea rdx, [rsp + 0x60]
lea rcx, [r13 + 0x20]
call fcn.180055f10
lea rdx, [rsp + 0x80]
lea rcx, [r13 + 0x40]
call fcn.180055f10
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.180055f10
lea rcx, [rsp + 0x40]
call fcn.18004c0c0
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 0x180059bb0
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.1800618d0
add rsp, 0xf0
pop r12
pop rdi
pop rbx
ret