Function at 0x140023124
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb0
mov rdi, rdx
mov rsi, rcx
lea rbx, [rsp + 0x30]
mov rcx, rbx
call fcn.14002305f
cmp dword [rbx], 2
jne 0x14002315d
mov dl, byte [rsp + 0x34]
lea rcx, [rsp + 0x70]
call fcn.140023415
jmp 0x14002318e
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 0x1400231ff
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.14002305f
mov eax, dword [rbx]
cmp eax, 2
jne 0x1400232ad
movzx r15d, byte [rsp + 0x34]
test r15b, r15b
js 0x140023253
mov r14d, r15d
and r14d, 0xffffff00
or r14d, r15d
mov al, byte [rsp + 0x2a]
mov byte [rsi + 0xa], al
movzx eax, word [rsp + 0x28]
mov word [rsi + 8], ax
mov dword [rsi + 4], r14d
mov dword [rsi], 2
jmp 0x1400233f3
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 0x1400233f3
xor eax, eax
cmp r15d, 0x80
jne 0x140023266
mov bpl, 5
jmp 0x140023361
mov bpl, 0xd
cmp r15b, 0x84
ja 0x140023361
mov r12, r15
xor r12, 0x80
xor r14d, r14d
lea rbx, [rsp + 0x30]
sub r12, 1
jb 0x1400232fe
mov rcx, rbx
mov rdx, rdi
call fcn.14002305f
mov eax, dword [rsp + 0x30]
cmp eax, 2
jne 0x1400232ad
shl r14d, 8
movzx eax, byte [rsp + 0x34]
or r14d, eax
jmp 0x140023285
mov r14b, 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 + 0x2c], dx
mov dl, byte [rsp + 0x3b]
mov byte [rsp + 0x2e], 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 0x140023361
cmp r14d, 0xfffffff
ja 0x140023405
mov eax, r14d
and eax, 0xffffff80
mov cl, 1
mov dl, 0x81
cmp eax, 0x80
je 0x14002334d
lea eax, [r14 - 0x100]
mov dl, 0x82
cmp eax, 0xff00
jb 0x14002334d
lea eax, [r14 - 0x10000]
mov dl, 0x83
cmp eax, 0xff0000
jb 0x14002334d
lea eax, [r14 - 0x1000000]
cmp eax, 0xf000000
setb cl
mov dl, 0x84
xor eax, eax
test cl, cl
je 0x140023361
cmp dl, r15b
jne 0x140023361
movzx r15d, r14b
jmp 0x1400231d6
shl ecx, 8
movzx edx, r14b
or edx, ecx
cmp bpl, 0xd
jne 0x140023389
mov al, byte [rsp + 0x2a]
mov byte [rsp + 0x26], al
movzx eax, word [rsp + 0x28]
mov word [rsp + 0x24], ax
xor eax, eax
mov bpl, 6
jmp 0x1400233bf
mov cl, byte [rsp + 0x2e]
mov byte [rsp + 0x26], cl
movzx ecx, word [rsp + 0x2c]
mov word [rsp + 0x24], 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 + 0x26]
mov byte [rsi + 0xb], cl
movzx ecx, word [rsp + 0x24]
mov word [rsi + 9], cx
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], bpl
add rsp, 0xb0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov ecx, r14d
shr ecx, 8
xor eax, eax
mov bpl, 0xc
jmp 0x140023361