Function at 0x140028313
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov rbx, rcx
mov qword [rsp + 0x20], 1
lea r9, [0x1400f6aaa]
lea r14, [rsp + 0x70]
mov rcx, r14
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], r8
call fcn.140016dc8
cmp qword [r14], 0
je 0x1400284eb
mov qword [rsp + 0x30], rbx
mov rsi, qword [rsp + 0xa8]
mov r11, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xc8]
mov r9, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x90]
mov r10, qword [rsp + 0x80]
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x38], rax
mov r15, qword [rsp + 0xb0]
mov rax, r9
not rax
mov qword [rsp + 0x68], rax
add rax, r11
mov qword [rsp + 0x60], rax
mov rax, r11
sub rax, r9
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x28], r10
cmp r10, r15
mov rax, r15
cmovb rax, r10
cmp rsi, 0xffffffffffffffff
cmove rax, r10
cmove r15, r9
lea rbx, [rax - 1]
mov r14, r12
sub r14, r9
cmp r14, rdx
jae 0x140028629
movzx r10d, byte [r11 + r14]
bt rcx, r10
jae 0x14002846d
mov r11, rsi
mov r10, qword [rsp + 0x60]
lea rbp, [r10 + r12]
mov r10, qword [rsp + 0x68]
add r10, r12
mov rdi, rax
mov rsi, rax
sub rsi, 1
jb 0x140028478
cmp rbx, r9
jae 0x14002864b
lea r13, [r10 + rdi]
cmp r13, rdx
jae 0x14002864b
mov r13b, byte [r8 + rdi - 1]
cmp r13b, byte [rbp + rdi]
mov rdi, rsi
je 0x14002842a
add r12, rsi
sub r12, qword [rsp + 0x28]
mov rsi, r11
cmp r11, 0xffffffffffffffff
mov r11, qword [rsp + 0x50]
je 0x1400283f6
jmp 0x1400284de
mov r12, r14
cmp rsi, 0xffffffffffffffff
je 0x1400283f6
jmp 0x1400284db
mov r10, qword [rsp + 0x58]
add r10, r12
mov rsi, qword [rsp + 0x28]
cmp rsi, r15
jae 0x1400285ed
cmp rsi, r9
jae 0x14002864b
lea rdi, [r14 + rsi]
cmp rdi, rdx
jae 0x14002864b
mov dil, byte [r8 + rsi]
lea rbp, [rsi + 1]
cmp dil, byte [r10 + rsi]
mov rsi, rbp
je 0x140028485
sub r12, qword [rsp + 0x38]
mov rsi, r11
cmp r11, 0xffffffffffffffff
mov r11, qword [rsp + 0x50]
je 0x1400283f6
mov r15, qword [rsp + 0x38]
mov r10, qword [rsp + 0x28]
jmp 0x1400283dc
mov r12, r14
mov r15, r9
mov r10, qword [rsp + 0x28]
jmp 0x1400283dc
mov bpl, byte [rsp + 0x8a]
mov r15, qword [rsp + 0xb8]
mov r12, qword [rsp + 0xc0]
mov sil, byte [rsp + 0x89]
mov r14, qword [rsp + 0x80]
test bpl, bpl
jne 0x140028632
mov eax, esi
xor al, 1
mov byte [rsp + 0x89], al
mov rcx, r15
mov rdx, r12
mov r8, r14
call fcn.1400245e6
test rdx, rdx
je 0x1400285e3
movzx ecx, byte [rax + rdx - 1]
test cl, cl
jns 0x140028592
movzx r8d, byte [rax + rdx - 2]
cmp r8b, 0xc0
jge 0x140028573
movzx r9d, byte [rax + rdx - 3]
cmp r9b, 0xc0
jge 0x140028579
movzx eax, byte [rax + rdx - 4]
and eax, 7
shl eax, 6
and r9d, 0x3f
or r9d, eax
jmp 0x14002857d
and r8d, 0x1f
jmp 0x140028588
and r9d, 0xf
shl r9d, 6
and r8d, 0x3f
or r8d, r9d
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
test sil, sil
jne 0x1400285e8
cmp ecx, 0x110000
je 0x140028632
mov rax, 0xffffffffffffffff
cmp ecx, 0x80
jb 0x1400285d0
mov rax, 0xfffffffffffffffe
cmp ecx, 0x800
jb 0x1400285d0
xor eax, eax
cmp ecx, 0x10000
setb al
or rax, 0xfffffffffffffffc
add r14, rax
mov qword [rsp + 0x80], r14
mov sil, 1
jmp 0x140028513
test sil, sil
je 0x140028632
mov qword [rsp + 0x30], rbx
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
inc r14
mov r8, r14
call fcn.14002f9d4
mov rdi, rax
mov rbx, rdx
mov rcx, rax
call fcn.1400176bb
test al, 1
jne 0x140028629
shr eax, 0x10
mov rcx, qword [rsp + 0x30]
mov qword [rcx + 8], rbx
mov rbx, rcx
mov word [rcx + 0x10], ax
jmp 0x140028634
xor edi, edi
mov rbx, qword [rsp + 0x30]
jmp 0x140028634
xor edi, edi
mov qword [rbx], rdi
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2