Function at 0x18001e480
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, rdx
movzx ebx, r9b
sub rax, rcx
mov rsi, r8
and rax, 0xfffffffffffffff8
mov r15, rdx
mov rdi, rcx
cmp rax, 0x100
jle 0x18001e53b
test rsi, rsi
jle 0x18001e5a6
movzx r9d, bl
lea rcx, [rsp + 0x30]
mov r8, r15
mov rdx, rdi
call fcn.18001a560
mov r14, qword [rsp + 0x30]
mov rcx, rsi
mov rbp, qword [rsp + 0x38]
mov rax, r14
sar rcx, 2
sub rax, rdi
sar rsi, 1
and rax, 0xfffffffffffffff8
add rsi, rcx
movzx r9d, bl
mov rcx, r15
mov r8, rsi
sub rcx, rbp
and rcx, 0xfffffffffffffff8
cmp rax, rcx
jge 0x18001e517
mov rdx, r14
mov rcx, rdi
call fcn.18001e480
mov rdi, rbp
jmp 0x18001e525
mov rdx, r15
mov rcx, rbp
call fcn.18001e480
mov r15, r14
mov rax, r15
sub rax, rdi
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x18001e4b3
cmp rdi, r15
je 0x18001e753
lea rbx, [rdi + 8]
cmp rbx, r15
je 0x18001e753
lea rbp, [rbx + 8]
nop word [rax + rax]
mov rsi, qword [rbx]
mov r11, rbx
mov rax, qword [rdi]
mov rdx, qword [rsi]
mov r8, qword [rax]
mov rcx, qword [rdx + 8]
cmp qword [r8 + 8], rcx
jne 0x18001e57f
mov rax, qword [rdx]
cmp qword [r8], rax
setl al
test al, al
je 0x18001e70f
mov r8, rbx
mov rcx, rbp
sub r8, rdi
mov rdx, rdi
sub rcx, r8
call sub.VCRUNTIME140.dll_memmove
mov qword [rdi], rsi
jmp 0x18001e742
mov qword [rsp + 0x80], r13
mov r13, r15
sub r13, rdi
sar r13, 3
mov r11, r13
sar r11, 1
test r11, r11
jle 0x18001e6a6
lea rbp, [r13 - 1]
mov qword [rsp + 0x78], r12
sar rbp, 1
nop dword [rax]
nop word [rax + rax]
mov r14, qword [rdi + r11*8 - 8]
dec r11
mov rdx, r11
mov rcx, r11
cmp r11, rbp
jge 0x18001e637
lea r10, [rcx + rcx]
mov rax, qword [rdi + r10*8 + 0x10]
mov r8, qword [rax]
mov rax, qword [rdi + r10*8 + 8]
mov rcx, qword [r8 + 8]
mov r9, qword [rax]
cmp qword [r9 + 8], rcx
jne 0x18001e617
mov rax, qword [r8]
cmp qword [r9], rax
setl al
movzx ecx, al
xor rcx, 1
inc rcx
add rcx, r10
mov rax, qword [rdi + rcx*8]
mov qword [rdi + rdx*8], rax
mov rdx, rcx
cmp rcx, rbp
jl 0x18001e5f3
cmp rcx, rbp
jne 0x18001e64f
test r13b, 1
jne 0x18001e64f
mov rax, qword [rdi + r13*8 - 8]
mov qword [rdi + rdx*8], rax
lea rdx, [r13 - 1]
cmp r11, rdx
jge 0x18001e694
nop dword [rax]
nop dword [rax + rax]
mov r9, qword [r14]
lea rcx, [rdx - 1]
sar rcx, 1
mov rax, qword [r9 + 8]
mov rsi, qword [rdi + rcx*8]
mov r10, qword [rsi]
cmp rax, qword [r10 + 8]
jne 0x18001e681
mov rax, qword [r10]
cmp qword [r9], rax
setl al
test al, al
je 0x18001e694
mov qword [rdi + rdx*8], rsi
mov rdx, rcx
cmp r11, rcx
jl 0x18001e660
mov qword [rdi + rdx*8], r14
test r11, r11
jg 0x18001e5e0
mov r12, qword [rsp + 0x78]
cmp r13, 2
mov r13, qword [rsp + 0x80]
jl 0x18001e753
mov ebp, 8
lea rsi, [r15 - 8]
sub rbp, rdi
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rsi]
lea r9, [rsp + 0x70]
mov qword [rsp + 0x70], rax
mov r8, rsi
mov rax, qword [rdi]
sub r8, rdi
sar r8, 3
xor edx, edx
mov rcx, rdi
mov qword [rsi], rax
mov byte [rsp + 0x20], bl
call fcn.18001c210
sub rsi, 8
lea rax, [rsi + rbp]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x18001e6d0
jmp 0x18001e753
mov rcx, rbx
mov r10, qword [rcx - 8]
sub rcx, 8
mov r8, qword [rsi]
mov r9, qword [r10]
mov rax, qword [r8 + 8]
cmp qword [r9 + 8], rax
jne 0x18001e730
mov rax, qword [r8]
cmp qword [r9], rax
setl al
test al, al
je 0x18001e73f
mov qword [r11], r10
mov r11, rcx
jmp 0x18001e712
mov qword [r11], rsi
add rbx, 8
add rbp, 8
cmp rbx, r15
jne 0x18001e560
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret