Function at 0x140002710
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r13
push r14
push r15
cmp byte [rdx + 0x3e], 0
mov r9, rcx
mov r14b, byte [rdx + 0x42]
mov sil, byte [rdx + 0x41]
mov r8, qword [rcx]
lea edi, [r14 + 0x48]
je 0x140002a3e
test sil, sil
jne 0x140002759
cmp dil, 4
jne 0x140002759
xor eax, eax
jmp 0x140002a44
imul r11d, dword [rcx + 8], 0x41c64e6d
mov r13d, 0x3039
mov r15, qword [rdx + 0x4e]
mov r12d, 1
add r11d, r13d
mov ebx, r11d
shr ebx, 0x10
and bl, r12b
je 0x1400027be
imul r11d, r11d, 0x41c64e6d
mov eax, 0xaaaaaaab
add r11d, r13d
mov r10d, r11d
mov dword [rcx + 8], r11d
ror r10d, 0x10
mul r10d
shr edx, 2
lea eax, [rdx + rdx*2]
add eax, eax
sub r10d, eax
add r10b, 2
test sil, sil
je 0x1400027b5
cmp r10b, dil
je 0x14000277f
mov byte [r8], 0x41
add r8, r12
jmp 0x1400027f6
imul r11d, r11d, 0x41c64e6d
mov eax, 0xcccccccd
add r11d, r13d
mov ecx, r11d
mov dword [r9 + 8], r11d
ror ecx, 0x10
mul ecx
shr edx, 2
lea eax, [rdx + rdx*4]
sub ecx, eax
add cl, 3
mov r10b, cl
cmp cl, 4
je 0x1400027be
test sil, sil
jne 0x1400027f6
cmp cl, dil
je 0x1400027be
lea eax, [r10 + 0x50]
mov byte [r8], al
add r8, r12
imul eax, dword [r9 + 8], 0x41c64e6d
add eax, r13d
mov dword [r9 + 8], eax
shr eax, 0x10
and al, 3
add al, r12b
je 0x1400028a8
movzx ebp, al
imul r11d, dword [r9 + 8], 0x41c64e6d
add r11d, r13d
mov dword [r9 + 8], r11d
shr r11d, 0x10
and r11b, r12b
je 0x14000283e
test bl, bl
jne 0x140002843
jmp 0x14000284a
test sil, sil
je 0x14000284a
mov byte [r8], 0x41
add r8, r12
mov byte [r8], 0x81
add r8, r12
imul edx, dword [r9 + 8], 0x41c64e6d
movzx eax, r10b
movzx ecx, dil
add edx, r13d
mov dword [r9 + 8], edx
shr edx, 0x10
and dl, 7
shl dl, 3
test r11b, r11b
cmovne ecx, eax
sub dl, 0x40
add dl, cl
mov byte [r8], dl
add r8, r12
imul eax, dword [r9 + 8], 0x41c64e6d
add eax, r13d
mov dword [r9 + 8], eax
ror eax, 0x10
btr eax, 0x1f
mov dword [r8], eax
add r8, 4
sub rbp, r12
jne 0x140002820
imul ecx, dword [r9 + 8], 0x41c64e6d
add ecx, r13d
imul edx, ecx, 0x41c64e6d
mov r11d, ecx
shl r11d, 0x10
shl r11, 0x10
mov eax, ecx
and rax, 0xffffffffffff0000
or r11, rax
add edx, r13d
mov dword [r9 + 8], edx
shl r11, 0x10
mov eax, edx
shr rax, 0x10
or r11, rax
shl edx, 0x10
mov eax, edx
or r11, rax
lea eax, [rsi + 0x48]
mov byte [r8], al
add r8, r12
mov byte [r8], r14b
add r8, r12
mov qword [r8], r11
add r8, 8
imul eax, dword [r9 + 8], 0x41c64e6d
add eax, r13d
mov dword [r9 + 8], eax
shr eax, 0x10
and al, 3
add al, r12b
je 0x140002973
movzx ecx, al
test bl, bl
je 0x140002928
mov byte [r8], 0x41
add r8, r12
mov byte [r8], 0x81
add r8, r12
imul eax, dword [r9 + 8], 0x41c64e6d
add eax, r13d
mov dword [r9 + 8], eax
shr eax, 0x10
and al, 7
shl al, 3
sub al, 0x40
add al, r10b
mov byte [r8], al
add r8, r12
imul eax, dword [r9 + 8], 0x41c64e6d
add eax, r13d
mov dword [r9 + 8], eax
ror eax, 0x10
btr eax, 0x1f
mov dword [r8], eax
add r8, 4
sub rcx, r12
jne 0x14000291d
lea eax, [rbx + 0x48]
xor r11, r15
mov byte [r8], al
add r8, r12
lea eax, [r10 - 0x48]
mov byte [r8], al
add r8, r12
lea eax, [rbx + 0x12]
shl al, 2
add al, sil
mov qword [r8], r11
add r8, 8
mov byte [r8], al
add r8, r12
mov al, r10b
shl al, 3
sub al, 0x40
add al, dil
mov byte [r8], 0x31
add r8, r12
mov byte [r8], al
add r8, r12
imul eax, dword [r9 + 8], 0x41c64e6d
add eax, r13d
mov dword [r9 + 8], eax
shr eax, 0x10
and al, 3
add al, r12b
je 0x140002a29
movzx ecx, al
test bl, bl
je 0x1400029de
mov byte [r8], 0x41
add r8, r12
mov byte [r8], 0x81
add r8, r12
imul eax, dword [r9 + 8], 0x41c64e6d
add eax, r13d
mov dword [r9 + 8], eax
shr eax, 0x10
and al, 7
shl al, 3
sub al, 0x40
add al, r10b
mov byte [r8], al
add r8, r12
imul eax, dword [r9 + 8], 0x41c64e6d
add eax, r13d
mov dword [r9 + 8], eax
ror eax, 0x10
btr eax, 0x1f
mov dword [r8], eax
add r8, 4
sub rcx, r12
jne 0x1400029d3
test bl, bl
je 0x140002a34
mov byte [r8], 0x41
add r8, r12
add r10b, 0x58
mov byte [r8], r10b
add r8, r12
sub r8d, dword [r9]
mov eax, r8d
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
pop r15
pop r14
pop r13
pop r12
ret
mov al, byte [rdx + 0x42]
add al, 0x48
cmp al, 7
jbe 0x140002710
xor eax, eax
ret