Function at 0x18012a849
Capabilities:
Encrypt data using rc4 prga

Disassembly:
test rcx, rcx
je 0x18012ac87
mov r11, rsp
push rsi
push r13
sub rsp, 0x68
mov rax, qword [0x180267080]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov qword [r11 + 0x20], rbx
mov r13, rcx
mov qword [r11 - 0x18], rbp
mov esi, r9d
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
mov r10d, dword [r13]
mov qword [r11 - 0x30], r14
mov r14d, r10d
mov qword [rsp + 0x30], rcx
lea rcx, [0x1801e0728]
movsxd rax, r8d
mov qword [r11 - 0x38], r15
lea r9d, [r10 - 1]
movzx r11d, byte [r13 + 0x13]
mov edi, r9d
mov r15d, dword [rcx + rax*4]
mov ecx, r11d
imul r14d, r15d
mov dword [rsp + 0x28], r14d
lea r8d, [r14 - 1]
mov ebx, r8d
sub ecx, 1
je 0x18012ab2c
sub ecx, 1
je 0x18012aa3b
cmp ecx, 2
je 0x18012a94a
mov esi, r11d
xor r14d, r14d
shr rsi, 3
imul rdi, rsi
imul rbx, rsi
add rdi, rdx
add rbx, rdx
test r10d, r10d
je 0x18012ac27
nop dword [rax]
nop word [rax + rax]
mov r8, rsi
lea rcx, [rsp + 0x30]
mov rdx, rdi
call fcn.1801801b0
test r15d, r15d
jle 0x18012a939
mov rbp, r15
nop dword [rax + rax]
mov r8, rsi
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.1801801b0
sub rbx, rsi
sub rbp, 1
jne 0x18012a920
sub rdi, rsi
inc r14d
cmp r14d, dword [r13]
jb 0x18012a900
jmp 0x18012ac27
shr rdi, 1
and r9d, 1
shr rbx, 1
and r8d, 1
add rdi, rdx
shl r9d, 2
add rbx, rdx
shl r8d, 2
mov ecx, 4
and esi, 0x10000
jne 0x18012a983
mov eax, ecx
sub eax, r9d
mov r9d, eax
mov eax, ecx
sub eax, r8d
mov r8d, eax
test esi, esi
mov r12d, 0xfffffffc
cmove r12d, ecx
xor r14d, r14d
test esi, esi
mov r11d, r14d
cmove r11d, ecx
neg esi
sbb ebp, ebp
and ebp, ecx
test r10d, r10d
je 0x18012ac27
nop word [rax + rax]
movzx r10d, byte [rdi]
movzx ecx, r9b
shr r10b, cl
mov rax, rdi
and r10b, 0xf
test r15d, r15d
jle 0x18012aa14
mov rsi, r15
mov r13d, 4
movzx eax, r10b
mov ecx, r13d
sub ecx, r8d
mov edx, 0xf0f
sar edx, cl
mov ecx, r8d
and dl, byte [rbx]
shl al, cl
mov ecx, ebp
or dl, al
lea eax, [r12 + r8]
cmp r8d, r11d
mov byte [rbx], dl
cmovne ecx, eax
lea rax, [rbx - 1]
cmovne rax, rbx
mov r8d, ecx
mov rbx, rax
sub rsi, 1
jne 0x18012a9d0
mov r13, qword [rsp + 0x30]
mov rax, rdi
inc r14d
dec rdi
cmp r9d, r11d
cmovne rdi, rax
lea eax, [r9 + r12]
mov r9d, ebp
cmovne r9d, eax
cmp r14d, dword [r13]
jb 0x18012a9b0
jmp 0x18012ac27
shr rdi, 2
and r9d, 3
shr rbx, 2
and r8d, 3
add rdi, rdx
add rbx, rdx
add r9d, r9d
add r8d, r8d
mov ecx, 6
and esi, 0x10000
jne 0x18012aa74
mov eax, ecx
sub eax, r9d
mov r9d, eax
mov eax, ecx
sub eax, r8d
mov r8d, eax
test esi, esi
mov ebp, 0xfffffffe
mov eax, 2
cmove ebp, eax
xor r14d, r14d
test esi, esi
mov r11d, r14d
cmove r11d, ecx
neg esi
sbb r12d, r12d
and r12d, ecx
test r10d, r10d
je 0x18012ac27
movzx r10d, byte [rdi]
movzx ecx, r9b
shr r10b, cl
mov rax, rdi
and r10b, 3
test r15d, r15d
jle 0x18012ab05
mov rsi, r15
mov r13d, 6
movzx eax, r10b
mov ecx, r13d
sub ecx, r8d
mov edx, 0x3f3f
sar edx, cl
mov ecx, r8d
and dl, byte [rbx]
shl al, cl
mov ecx, r12d
or dl, al
lea eax, [r8 + rbp]
cmp r8d, r11d
mov byte [rbx], dl
cmovne ecx, eax
lea rax, [rbx - 1]
cmovne rax, rbx
mov r8d, ecx
mov rbx, rax
sub rsi, 1
jne 0x18012aac0
mov r13, qword [rsp + 0x30]
mov rax, rdi
inc r14d
dec rdi
cmp r9d, r11d
cmovne rdi, rax
lea eax, [r9 + rbp]
mov r9d, r12d
cmovne r9d, eax
cmp r14d, dword [r13]
jb 0x18012aaa0
jmp 0x18012ac27
shr rdi, 3
lea r8d, [r14 - 1]
shr rbx, 3
and r8d, 7
add rdi, rdx
add rbx, rdx
dec r10d
mov ecx, 7
and r10d, 7
mov eax, 1
and esi, 0x10000
mov ebp, 0xffffffff
cmove ebp, eax
xor r14d, r14d
test esi, esi
mov r11d, r14d
mov eax, esi
cmove r11d, ecx
neg eax
mov eax, ecx
sbb r12d, r12d
sub eax, r8d
and r12d, ecx
test esi, esi
cmove r8d, eax
mov eax, ecx
sub eax, r10d
test esi, esi
cmove r10d, eax
cmp dword [r13], r14d
jbe 0x18012ac27
nop word [rax + rax]
movzx r9d, byte [rdi]
movzx ecx, r10b
shr r9b, cl
mov rax, rdi
and r9b, 1
test r15d, r15d
jle 0x18012ac05
mov rsi, r15
mov r13d, 7
movzx eax, r9b
mov ecx, r13d
sub ecx, r8d
mov edx, 0x7f7f
sar edx, cl
mov ecx, r8d
and dl, byte [rbx]
shl al, cl
mov ecx, r12d
or dl, al
lea eax, [r8 + rbp]
cmp r8d, r11d
mov byte [rbx], dl
cmovne ecx, eax
lea rax, [rbx - 1]
cmovne rax, rbx
mov r8d, ecx
mov rbx, rax
sub rsi, 1
jne 0x18012abc0
mov r13, qword [rsp + 0x30]
mov rax, rdi
inc r14d
dec rdi
cmp r10d, r11d
cmovne rdi, rax
lea eax, [r10 + rbp]
mov r10d, r12d
cmovne r10d, eax
cmp r14d, dword [r13]
jb 0x18012aba0
movzx eax, byte [r13 + 0x13]
mov ecx, dword [rsp + 0x28]
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x98]
mov dword [r13], ecx
cmp al, 8
jb 0x18012ac63
shr rax, 3
imul rax, rcx
jmp 0x18012ac6f
imul rax, rcx
add rax, 7
shr rax, 3
mov qword [r13 + 8], rax
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.18017df00
add rsp, 0x68
pop r13
pop rsi
ret