Function at 0x18011e4b4
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rax, qword [rdx + 0x10]
xor r11d, r11d
mov r14, qword [rdx]
or esi, 0xffffffff
mov r15, rdx
mov rdi, rcx
mov r8d, r11d
movsxd rbp, dword [rax + 0x14]
mov r10, qword [rax]
lea r12d, [rsi + 2]
mov dword [rcx + 0x149c], r11d
mov dword [rcx + 0x14a0], 0x23d
test ebp, ebp
jle 0x18011e525
mov edx, r11d
cmp word [r14 + rdx*4], r11w
jne 0x18011e685
mov word [r14 + rdx*4 + 2], r11w
add r8d, r12d
add rdx, r12
cmp rdx, rbp
jl 0x18011e509
mov r13d, 2
mov edx, dword [rdi + 0x149c]
cmp edx, r13d
jl 0x18011e6ad
mov dword [r15 + 8], esi
mov eax, dword [rdi + 0x149c]
cdq
idiv r13d
mov ebx, eax
cmp eax, r12d
jl 0x18011e565
mov r8d, ebx
mov rdx, r14
mov rcx, rdi
call fcn.18011e700
sub ebx, r12d
cmp ebx, r12d
jge 0x18011e54f
movsxd rdx, dword [rdi + 0x149c]
mov r8d, r12d
movsxd rbx, dword [rdi + 0xbac]
mov ecx, dword [rdi + rdx*4 + 0xba8]
lea eax, [rdx - 1]
mov dword [rdi + 0xbac], ecx
mov rdx, r14
mov rcx, rdi
mov dword [rdi + 0x149c], eax
call fcn.18011e700
movsxd rcx, dword [rdi + 0x14a0]
mov r8d, r12d
movsxd rdx, dword [rdi + 0xbac]
mov r9, rdx
lea eax, [rcx - 1]
mov dword [rdi + 0x14a0], eax
mov dword [rdi + rcx*4 + 0xba4], ebx
movsxd rcx, dword [rdi + 0x14a0]
lea eax, [rcx - 1]
mov dword [rdi + 0x14a0], eax
mov dword [rdi + rcx*4 + 0xba4], edx
movzx eax, word [r14 + rbx*4]
add ax, word [r14 + r9*4]
movsxd rdx, ebp
mov word [r14 + rdx*4], ax
movzx ecx, byte [rbx + rdi + 0x14a4]
movzx eax, byte [r9 + rdi + 0x14a4]
cmp cl, al
cmovb ecx, eax
add cl, r12b
mov byte [rdx + rdi + 0x14a4], cl
mov rdx, r14
mov word [r14 + r9*4 + 2], bp
mov rcx, rdi
mov word [r14 + rbx*4 + 2], bp
mov dword [rdi + 0xbac], ebp
add ebp, r12d
call fcn.18011e700
cmp dword [rdi + 0x149c], r13d
jge 0x18011e565
movsxd r8, dword [rdi + 0x14a0]
mov rdx, r15
lea eax, [r8 - 1]
mov dword [rdi + 0x14a0], eax
mov eax, dword [rdi + 0xbac]
mov dword [rdi + r8*4 + 0xba4], eax
call fcn.18011e858
lea r8, [rdi + 0xb88]
mov edx, esi
mov rcx, r14
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp 0x18011e7b4
movsxd rcx, dword [rdi + 0x149c]
mov esi, r8d
lea eax, [rcx + 1]
mov dword [rdi + 0x149c], eax
mov dword [rdi + rcx*4 + 0xbac], r8d
mov byte [rdx + rdi + 0x14a4], r11b
jmp 0x18011e51a
cmp esi, r13d
lea eax, [rdx + 1]
mov dword [rdi + 0x149c], eax
lea ecx, [rsi + 1]
movsxd rax, edx
mov r8d, ecx
cmovge ecx, r11d
cmovge r8d, esi
mov dword [rdi + rax*4 + 0xbac], ecx
movsxd rax, ecx
mov word [r14 + rax*4], r12w
mov byte [rax + rdi + 0x14a4], r11b
dec dword [rdi + 0x16fc]
test r10, r10
je 0x18011e6f8
movzx eax, word [r10 + rax*4 + 2]
sub dword [rdi + 0x1700], eax
mov esi, r8d
jmp 0x18011e52b
push rbx
sub rsp, 0x30
mov rax, qword [0x1803e3008]
xor rax, rsp
mov qword [rsp + 0x20], rax
xor r10d, r10d
lea rax, [rsp + 2]
mov r11, rcx
sub r8, rax
lea ebx, [r10 + 1]
mov r9d, ebx
lea rax, [r8 + r9*2]
movzx ecx, word [rsp + rax]
add r10d, ecx
add r10d, r10d
mov word [rsp + r9*2], r10w
add r9, rbx
cmp r9, 0xf
jle 0x18011e7de
movsxd r10, edx
test edx, edx
js 0x18011e816
xor edx, edx
movzx r8d, word [r11 + rdx*4 + 2]
test r8d, r8d
jne 0x18011e829
add rdx, rbx
cmp rdx, r10
jle 0x18011e803
mov rcx, qword [rsp + 0x20]
xor rcx, rsp
call fcn.180181080
add rsp, 0x30
pop rbx
ret
movzx r9d, word [rsp + r8*2]
xor ecx, ecx
lea eax, [rbx + r9]
mov word [rsp + r8*2], ax
mov eax, r9d
sub r8d, ebx
and eax, ebx
shr r9d, 1
or ecx, eax
add ecx, ecx
test r8d, r8d
jg 0x18011e839
shr ecx, 1
mov word [r11 + rdx*4], cx
jmp 0x18011e80e