Function at 0x448682
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
mov rdi, rdx
mov rsi, rcx
lea rbx, [rsp + 0x30]
mov rcx, rbx
call fcn.0044897d
cmp dword [rbx], 2
jne 0x4486ba
mov dl, byte [rsp + 0x34]
lea rcx, [rsp + 0x70]
call fcn.0042ccd6
jmp 0x4486eb
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xa0], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x90], xmm2
movaps xmmword [rsp + 0x80], xmm1
movaps xmmword [rsp + 0x70], xmm0
mov eax, dword [rsp + 0x70]
cmp eax, 2
jne 0x44875c
mov al, byte [rsp + 0x76]
movzx ecx, word [rsp + 0x74]
mov word [rsp + 0x28], cx
mov byte [rsp + 0x2a], al
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, rdi
call fcn.0044897d
mov eax, dword [rbx]
cmp eax, 2
jne 0x448872
movzx r14d, byte [rsp + 0x34]
test r14b, r14b
js 0x4487b0
mov r15d, r14d
and r15d, 0xffffff00
or r15d, r14d
mov al, byte [rsp + 0x2a]
mov byte [rsi + 0xa], al
movzx eax, word [rsp + 0x28]
mov word [rsi + 8], ax
mov dword [rsi + 4], r15d
mov dword [rsi], 2
jmp 0x448961
mov cl, byte [rsp + 0x76]
mov byte [rsp + 0x26], cl
movzx ecx, word [rsp + 0x74]
mov word [rsp + 0x24], cx
mov cl, byte [rsp + 0xa7]
mov byte [rsi + 0x37], cl
movups xmm0, xmmword [rsp + 0x97]
movups xmmword [rsi + 0x27], xmm0
movups xmm0, xmmword [rsp + 0x87]
movups xmmword [rsi + 0x17], xmm0
movups xmm0, xmmword [rsp + 0x77]
movups xmmword [rsi + 7], xmm0
mov cl, byte [rsp + 0x26]
mov byte [rsi + 6], cl
movzx ecx, word [rsp + 0x24]
mov word [rsi + 4], cx
mov dword [rsi], eax
jmp 0x448961
cmp r14, 0x80
je 0x448912
cmp r14b, 0x85
jae 0x448912
mov r12, r14
xor r12, 0x80
je 0x448912
xor r15d, r15d
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, rdi
call fcn.0044897d
mov eax, dword [rsp + 0x30]
cmp eax, 2
jne 0x448872
mov eax, r15d
shl eax, 8
movzx r15d, byte [rsp + 0x34]
or r15d, eax
dec r12
jne 0x4487df
cmp r15d, 0x10000000
jae 0x448972
mov ecx, r15d
and ecx, 0xfffff80
mov al, 0x81
cmp ecx, 0x80
je 0x448860
lea ecx, [r15 - 0x100]
mov al, 0x82
cmp ecx, 0xff00
jb 0x448860
lea ecx, [r15 - 0x10000]
mov al, 0x83
cmp ecx, 0xff0000
jb 0x448860
mov ecx, r15d
or ecx, 0xf0000000
mov al, 0x84
cmp ecx, 0xf1000000
jb 0x448912
cmp al, r14b
jne 0x448912
movzx r14d, r15b
jmp 0x448733
mov dl, byte [rsp + 0x34]
mov cl, byte [rsp + 0x38]
movzx r9d, byte [rsp + 0x37]
shl r9d, 0x10
movzx r8d, word [rsp + 0x35]
or r8d, r9d
movzx r9d, word [rsp + 0x39]
mov word [rsp + 0x2c], r9w
mov r9b, byte [rsp + 0x3b]
mov byte [rsp + 0x2e], r9b
movups xmm0, xmmword [rsp + 0x3c]
movaps xmmword [rsp + 0x70], xmm0
movups xmm0, xmmword [rsp + 0x4c]
movaps xmmword [rsp + 0x80], xmm0
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [rsp + 0x8c], xmm0
shl r8d, 8
movzx edx, dl
or edx, r8d
cmp cl, 0xb
je 0x448914
mov r8b, byte [rsp + 0x2e]
mov byte [rsp + 0x26], r8b
movzx r8d, word [rsp + 0x2c]
mov word [rsp + 0x24], r8w
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
movups xmm0, xmmword [rsp + 0x8c]
movups xmmword [rsp + 0x4c], xmm0
jmp 0x44892a
xor edx, edx
mov al, byte [rsp + 0x2a]
mov byte [rsp + 0x26], al
movzx eax, word [rsp + 0x28]
mov word [rsp + 0x24], ax
xor eax, eax
mov cl, 5
mov r8b, byte [rsp + 0x26]
mov byte [rsi + 0xb], r8b
movzx r8d, word [rsp + 0x24]
mov word [rsi + 9], r8w
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movups xmmword [rsi + 0xc], xmm0
movups xmmword [rsi + 0x1c], xmm1
movups xmm0, xmmword [rsp + 0x4c]
movups xmmword [rsi + 0x28], xmm0
mov dword [rsi], eax
mov dword [rsi + 4], edx
mov byte [rsi + 8], cl
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov cl, 0xa
xor edx, edx
xor eax, eax
jmp 0x4488d6