Function at 0x180052120
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, 0xe8
mov rdi, rdx
mov rsi, rcx
lea rbx, [rsp + 0x30]
mov rcx, rbx
call fcn.1800523e8
lea r14, [rsp + 0x70]
mov rcx, r14
mov rdx, rbx
call fcn.18005270f
mov eax, dword [r14]
cmp eax, 2
jne 0x1800521c6
mov al, byte [rsp + 0x76]
movzx ecx, word [rsp + 0x74]
mov word [rsp + 0x20], cx
mov byte [rsp + 0x22], al
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, rdi
call fcn.1800523e8
mov r15d, dword [rbx]
cmp r15d, 2
jne 0x18005227d
movzx r12d, byte [rsp + 0x34]
test r12b, r12b
js 0x180052226
mov ebx, r12d
and ebx, 0xffffff00
or ebx, r12d
mov al, byte [rsp + 0x22]
mov byte [rsi + 0xa], al
movzx eax, word [rsp + 0x20]
mov word [rsi + 8], ax
mov dword [rsi + 4], ebx
mov dword [rsi], 2
jmp 0x1800523ca
mov cl, byte [rsp + 0x76]
mov byte [rsp + 0xb2], cl
movzx ecx, word [rsp + 0x74]
mov word [rsp + 0xb0], 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 + 0xb2]
mov byte [rsi + 6], cl
movzx ecx, word [rsp + 0xb0]
mov word [rsi + 4], cx
mov dword [rsi], eax
jmp 0x1800523ca
xor r15d, r15d
cmp r12b, 0x80
jne 0x180052237
mov bpl, 5
jmp 0x1800522f5
mov bpl, 0xd
cmp r12b, 0x84
ja 0x1800522f5
mov r13, r12
xor r13, 0x80
xor ebx, ebx
lea r14, [rsp + 0x30]
sub r13, 1
jb 0x1800522cd
mov rcx, r14
mov rdx, rdi
call fcn.1800523e8
mov r15d, dword [rsp + 0x30]
cmp r15d, 2
jne 0x18005227d
shl ebx, 8
movzx eax, byte [rsp + 0x34]
or ebx, eax
jmp 0x180052255
mov al, byte [rsp + 0x34]
mov bpl, byte [rsp + 0x38]
movzx edx, byte [rsp + 0x37]
shl edx, 0x10
movzx ecx, word [rsp + 0x35]
or ecx, edx
movzx edx, word [rsp + 0x39]
mov word [rsp + 0x24], dx
mov dl, byte [rsp + 0x3b]
mov byte [rsp + 0x26], dl
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
jmp 0x1800522f5
xor r15d, r15d
cmp ebx, 0x10000000
jae 0x1800523de
mov ecx, ebx
call fcn.180020e59
test al, al
je 0x1800522f5
cmp dl, r12b
jne 0x1800522f5
movzx r12d, bl
jmp 0x18005219f
shl ecx, 8
movzx eax, al
or eax, ecx
cmp bpl, 0xd
jne 0x18005231d
mov cl, byte [rsp + 0x22]
mov byte [rsp + 0x2a], cl
movzx ecx, word [rsp + 0x20]
mov word [rsp + 0x28], cx
xor r15d, r15d
mov bpl, 6
jmp 0x180052353
mov cl, byte [rsp + 0x26]
mov byte [rsp + 0x2a], cl
movzx ecx, word [rsp + 0x24]
mov word [rsp + 0x28], cx
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
mov cl, byte [rsp + 0x2a]
mov byte [rsp + 0x2e], cl
movzx ecx, word [rsp + 0x28]
mov word [rsp + 0x2c], cx
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm1
movups xmm0, xmmword [rsp + 0x4c]
movups xmmword [rsp + 0xcc], xmm0
mov byte [rsi + 8], bpl
movzx ecx, word [rsp + 0x2c]
mov word [rsi + 9], cx
mov cl, byte [rsp + 0x2e]
mov byte [rsi + 0xb], cl
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [rsi + 0xc], xmm0
movups xmmword [rsi + 0x1c], xmm1
movups xmm0, xmmword [rsp + 0xcc]
movups xmmword [rsi + 0x28], xmm0
mov dword [rsi], r15d
mov dword [rsi + 4], eax
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov bpl, 0xc
xor ecx, ecx
jmp 0x1800522f5