Function at 0x140031c18
Capabilities:
Encrypt data using rc4 prga

Disassembly:
test edx, edx
jle 0x140031ea4
push rbx
push rsi
push rdi
push r14
push r15
sub rsp, 0x30
mov rax, qword [0x1400ec0a0]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov r14d, dword [rsp + 0x80]
mov ebx, r8d
mov qword [rsp + 0x68], rbp
sub ebx, r14d
movsxd rsi, r9d
mov r15d, r8d
mov rdi, rcx
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x70], r12
mov ebp, edx
nop
mov r8, r14
lea rcx, [rsp + 0x20]
xor edx, edx
call fcn.140082860
xor r10d, r10d
mov eax, r14d
sub eax, 2
je 0x140031dde
sub eax, 1
je 0x140031d8d
sub eax, 1
je 0x140031d42
xor ecx, ecx
cmp eax, 1
je 0x140031cf0
test ebx, ebx
js 0x140031e27
xor r11d, r11d
nop dword [rax]
nop word [rax + rax]
mov eax, ecx
movsxd r9, r11d
and eax, 7
add r11d, esi
movzx r8d, byte [r9 + rdi]
movzx edx, byte [rsp + rax + 0x20]
mov eax, r8d
sub eax, edx
xor edx, edx
add r10d, eax
lea eax, [r14 + rcx]
and eax, 7
inc ecx
mov byte [rsp + rax + 0x20], r8b
mov eax, r10d
div r14d
mov byte [r9 + rdi], al
cmp ecx, ebx
jle 0x140031cb0
jmp 0x140031e27
test ebx, ebx
js 0x140031e27
xor r11d, r11d
nop dword [rax + rax]
mov eax, ecx
movsxd r9, r11d
and eax, 7
add r11d, esi
movzx r8d, byte [r9 + rdi]
movzx edx, byte [rsp + rax + 0x20]
mov eax, r8d
sub eax, edx
add r10d, eax
lea eax, [rcx - 3]
and eax, 7
inc ecx
mov byte [rsp + rax + 0x20], r8b
mov eax, 0xcccccccd
mul r10d
shr edx, 2
mov byte [r9 + rdi], dl
cmp ecx, ebx
jle 0x140031d00
jmp 0x140031e27
xor ecx, ecx
test ebx, ebx
js 0x140031e27
xor r11d, r11d
nop
mov eax, ecx
movsxd r9, r11d
and eax, 7
add r11d, esi
movzx r8d, byte [r9 + rdi]
movzx edx, byte [rsp + rax + 0x20]
mov eax, r8d
sub eax, edx
add r10d, eax
lea eax, [rcx - 4]
and eax, 7
inc ecx
mov byte [rsp + rax + 0x20], r8b
mov eax, r10d
shr eax, 2
mov byte [r9 + rdi], al
cmp ecx, ebx
jle 0x140031d50
jmp 0x140031e27
xor ecx, ecx
test ebx, ebx
js 0x140031e27
xor r11d, r11d
nop word [rax + rax]
mov eax, ecx
movsxd r9, r11d
and eax, 7
add r11d, esi
movzx r8d, byte [r9 + rdi]
movzx edx, byte [rsp + rax + 0x20]
mov eax, r8d
sub eax, edx
add r10d, eax
lea eax, [rcx + 3]
and eax, 7
inc ecx
mov byte [rsp + rax + 0x20], r8b
mov eax, 0xaaaaaaab
mul r10d
shr edx, 1
mov byte [r9 + rdi], dl
cmp ecx, ebx
jle 0x140031da0
jmp 0x140031e27
xor ecx, ecx
test ebx, ebx
js 0x140031e27
xor r11d, r11d
nop word [rax + rax]
mov eax, ecx
movsxd r9, r11d
and eax, 7
add r11d, esi
movzx r8d, byte [r9 + rdi]
movzx edx, byte [rsp + rax + 0x20]
mov eax, r8d
sub eax, edx
add r10d, eax
lea eax, [rcx + 2]
and eax, 7
inc ecx
mov byte [rsp + rax + 0x20], r8b
mov eax, r10d
shr eax, 1
mov byte [r9 + rdi], al
cmp ecx, ebx
jle 0x140031df0
cmp ecx, r15d
jge 0x140031e75
mov eax, esi
movsxd r9, ecx
imul eax, ecx
movsxd r8, eax
mov eax, r15d
add r8, rdi
sub eax, ecx
mov ecx, eax
nop dword [rax]
nop word [rax + rax]
mov rax, r9
xor edx, edx
and eax, 7
inc r9
movzx eax, byte [rsp + rax + 0x20]
sub r10d, eax
mov eax, r10d
div r14d
mov byte [r8], al
add r8, rsi
sub rcx, 1
jne 0x140031e50
inc rdi
sub rbp, 1
jne 0x140031c60
mov r12, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140045970
add rsp, 0x30
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret