Function at 0x14001ffa0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp r8d, 3
jl 0x140020371
mov r11, rsp
push rbx
push rsi
push rdi
push r14
sub rsp, 0x78
mov esi, r8d
mov r14d, r9d
mov rdi, rdx
mov rbx, rcx
test r9d, 0xff000000
je 0x140020368
test byte [rcx + 0x30], 4
mov rax, qword [rcx + 0x38]
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm7
movss xmm6, dword [rax]
movss xmm7, dword [rax + 4]
je 0x1400202c5
mov qword [r11 + 8], rbp
lea eax, [rsi + rsi]
mov qword [r11 + 0x10], r12
lea edx, [rsi*8 - 6]
mov qword [r11 + 0x20], r13
add edx, esi
mov qword [r11 - 0x28], r15
mov r13d, r9d
movaps xmmword [r11 - 0x58], xmm8
and r13d, 0xffffff
movaps xmmword [r11 - 0x68], xmm9
mov r8d, eax
movaps xmmword [r11 - 0x78], xmm10
movss xmm10, dword [rcx + 0xc0]
mov dword [rsp + 0xb0], eax
call fcn.140025980
mov ebp, dword [rbx + 0x34]
mov r8d, 2
nop word [rax + rax]
mov rax, qword [rbx + 0x50]
movzx edx, r8w
add dx, dx
inc r8d
add dx, bp
mov word [rax], bp
mov rax, qword [rbx + 0x50]
lea ecx, [rdx - 2]
mov word [rax + 2], cx
mov rax, qword [rbx + 0x50]
mov word [rax + 4], dx
add qword [rbx + 0x50], 6
cmp r8d, esi
jl 0x140020050
mov rcx, qword [rbx + 0x38]
mov edx, esi
add rcx, 0x30
call fcn.140028500
mov rax, qword [rbx + 0x38]
lea r15d, [rsi - 1]
movss xmm4, dword [0x140116000]
mov rcx, rdi
mov rdx, rsi
xorps xmm5, xmm5
mov r9, qword [rax + 0x38]
movsxd rax, esi
lea rax, [rax*8 - 8]
nop dword [rax + rax]
movss xmm2, dword [rcx]
movss xmm3, dword [rcx + 4]
subss xmm2, dword [rax + rdi]
subss xmm3, dword [rax + rdi + 4]
movaps xmm1, xmm2
movaps xmm0, xmm3
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
comiss xmm0, xmm5
jbe 0x1400200f8
call fcn.140024c60
mulss xmm2, xmm0
mulss xmm3, xmm0
movss dword [rax + r9], xmm3
xorps xmm2, xmm4
movss dword [rax + r9 + 4], xmm2
mov rax, rcx
sub rax, rdi
add rcx, 8
sub rdx, 1
jne 0x1400200c0
movss xmm4, dword [0x1401143e4]
lea r10, [rdi + 4]
movss xmm9, dword [0x14011d068]
xor r12d, r12d
movss xmm5, dword [0x1401143e8]
mov r11, r9
movss xmm8, dword [0x140115f80]
sub r11, rdi
mulss xmm10, xmm4
nop dword [rax]
movss xmm2, dword [r11 + r10 - 4]
movsxd rax, r15d
movss xmm3, dword [r9 + rax*8 + 4]
addss xmm3, dword [r11 + r10]
addss xmm2, dword [r9 + rax*8]
mulss xmm3, xmm4
mulss xmm2, xmm4
movaps xmm1, xmm3
mulss xmm1, xmm3
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm1, xmm0
comiss xmm1, xmm9
jbe 0x1400201a4
movaps xmm0, xmm5
divss xmm0, xmm1
movaps xmm1, xmm8
minss xmm1, xmm0
mulss xmm2, xmm1
mulss xmm3, xmm1
movss xmm0, dword [r10 - 4]
add r15w, r15w
mov rax, qword [rbx + 0x48]
movzx r8d, r12w
mulss xmm2, xmm10
add r8w, r8w
lea ecx, [r15 + rbp]
mulss xmm3, xmm10
subss xmm0, xmm2
lea edx, [r8 + rbp]
movss dword [rax], xmm0
movss xmm1, dword [r10]
mov rax, qword [rbx + 0x48]
subss xmm1, xmm3
movss dword [rax + 4], xmm1
mov rax, qword [rbx + 0x48]
movss dword [rax + 8], xmm6
movss dword [rax + 0xc], xmm7
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x10], r14d
addss xmm2, dword [r10 - 4]
mov rax, qword [rbx + 0x48]
movss dword [rax + 0x14], xmm2
addss xmm3, dword [r10]
mov rax, qword [rbx + 0x48]
add r10, 8
movss dword [rax + 0x18], xmm3
mov rax, qword [rbx + 0x48]
movss dword [rax + 0x1c], xmm6
movss dword [rax + 0x20], xmm7
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x24], r13d
mov rax, qword [rbx + 0x50]
add qword [rbx + 0x48], 0x28
mov word [rax], dx
mov rax, qword [rbx + 0x50]
mov word [rax + 2], cx
lea ecx, [rbp + 1]
mov rax, qword [rbx + 0x50]
add r15w, cx
add r8w, cx
mov word [rax + 4], r15w
mov rax, qword [rbx + 0x50]
mov word [rax + 6], r15w
mov r15d, r12d
mov rax, qword [rbx + 0x50]
inc r12d
mov word [rax + 8], r8w
mov rax, qword [rbx + 0x50]
mov word [rax + 0xa], dx
add qword [rbx + 0x50], 0xc
cmp r12d, esi
jl 0x140020150
movaps xmm10, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
mov r15, qword [rsp + 0x70]
mov r13, qword [rsp + 0xb8]
mov r12, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xa0]
movzx eax, word [rsp + 0xb0]
jmp 0x14002035b
lea eax, [rsi - 2]
mov r8d, esi
lea edx, [rax + rax*2]
call fcn.140025980
mov rcx, rsi
nop word [rax + rax]
mov rax, qword [rbx + 0x48]
movsd xmm0, qword [rdi]
lea rdi, [rdi + 8]
movsd qword [rax], xmm0
mov rax, qword [rbx + 0x48]
movss dword [rax + 8], xmm6
movss dword [rax + 0xc], xmm7
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x10], r14d
add qword [rbx + 0x48], 0x14
sub rcx, 1
jne 0x1400202e0
mov r8d, 2
nop word [rax + rax]
mov rcx, qword [rbx + 0x50]
movzx eax, word [rbx + 0x34]
mov word [rcx], ax
lea ecx, [r8 - 1]
add cx, word [rbx + 0x34]
mov rax, qword [rbx + 0x50]
mov word [rax + 2], cx
movzx ecx, r8w
mov rax, qword [rbx + 0x50]
inc r8d
add cx, word [rbx + 0x34]
mov word [rax + 4], cx
add qword [rbx + 0x50], 6
cmp r8d, esi
jl 0x140020320
movzx eax, si
add dword [rbx + 0x34], eax
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x50]
add rsp, 0x78
pop r14
pop rdi
pop rsi
pop rbx
ret