Function at 0x140020e70
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x60
lea rbp, [rsp + 0x20]
mov qword [rbp + 0x70], rbx
mov r15d, r9d
mov qword [rbp + 0x78], rsi
mov rsi, rdx
mov qword [rbp + 0x88], rdi
mov rbx, rcx
movaps xmmword [rbp + 0x30], xmm6
movaps xmmword [rbp + 0x20], xmm7
movaps xmmword [rbp + 0x10], xmm8
movaps xmmword [rbp], xmm9
mov edi, r8d
cmp r8d, 3
jl 0x1400211fe
test byte [rcx + 0x30], 4
mov rax, qword [rcx + 0x38]
movsd xmm6, qword [rax]
je 0x14002116a
movss xmm9, dword [rcx + 0xc0]
lea r13d, [rdi + rdi]
lea edx, [rdi*8 - 6]
mov dword [rbp + 0x80], r13d
mov r12d, r9d
add edx, edi
mov r8d, r13d
and r12d, 0xffffff
call fcn.14001fd80
mov r14d, dword [rbx + 0x34]
mov r8d, 2
cmp edi, r8d
jle 0x140020f43
nop word [rax + rax]
mov rax, qword [rbx + 0x50]
movzx edx, r8w
add dx, dx
inc r8d
add dx, r14w
mov word [rax], r14w
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, edi
jl 0x140020f10
movsxd rax, edi
shl rax, 3
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140020f5d
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.140094280
sub rsp, rcx
lea r10d, [rdi - 1]
lea r9, [rsp + 0x20]
test edi, edi
jle 0x140020ff8
movss xmm4, dword [0x1400a83e0]
mov r8, rsi
movsxd rax, r10d
mov rcx, rsi
neg r8
mov rdx, rdi
xorps xmm5, xmm5
lea rax, [rax*8]
nop dword [rax + rax]
movss xmm2, dword [rcx]
movss xmm3, dword [rcx + 4]
subss xmm2, dword [rax + rsi]
subss xmm3, dword [rax + rsi + 4]
movaps xmm0, xmm2
movaps xmm1, xmm3
mulss xmm0, xmm2
mulss xmm1, xmm3
addss xmm1, xmm0
comiss xmm1, xmm5
jbe 0x140020fda
movaps xmm0, xmm1
rsqrtss xmm1, xmm1
mulss xmm2, xmm1
mulss xmm3, xmm1
xorps xmm2, xmm4
movss dword [rax + r9], xmm3
movss dword [rax + r9 + 4], xmm2
lea rax, [r8 + rcx]
add rcx, 8
sub rdx, 1
jne 0x140020fa0
xor r11d, r11d
test edi, edi
jle 0x140021161
movss xmm4, dword [0x1400a7c80]
lea r13d, [r14 + 1]
movss xmm8, dword [0x1400a7c3c]
movss xmm5, dword [0x1400a7cb4]
movss xmm7, dword [0x1400a7d70]
mulss xmm9, xmm4
nop dword [rax]
movsxd rcx, r11d
movsxd rax, r10d
movss xmm2, dword [r9 + rcx*8]
movss xmm3, dword [r9 + rcx*8 + 4]
addss xmm2, dword [r9 + rax*8]
addss xmm3, dword [r9 + rax*8 + 4]
mulss xmm2, xmm4
mulss xmm3, xmm4
movaps xmm0, xmm2
mulss xmm0, xmm2
movaps xmm1, xmm3
mulss xmm1, xmm3
addss xmm1, xmm0
comiss xmm1, xmm8
jbe 0x140021086
movaps xmm0, xmm5
divss xmm0, xmm1
movaps xmm1, xmm7
minss xmm1, xmm0
mulss xmm2, xmm1
mulss xmm3, xmm1
movss xmm0, dword [rsi + rcx*8]
add r10w, r10w
mov rax, qword [rbx + 0x48]
movzx r8d, r11w
mulss xmm2, xmm9
add r8w, r8w
mulss xmm3, xmm9
subss xmm0, xmm2
lea edx, [r14 + r8]
add r8w, r13w
movss dword [rax], xmm0
movss xmm1, dword [rsi + rcx*8 + 4]
mov rax, qword [rbx + 0x48]
subss xmm1, xmm3
movss dword [rax + 4], xmm1
mov rax, qword [rbx + 0x48]
movsd qword [rax + 8], xmm6
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x10], r15d
addss xmm2, dword [rsi + rcx*8]
mov rax, qword [rbx + 0x48]
movss dword [rax + 0x14], xmm2
addss xmm3, dword [rsi + rcx*8 + 4]
mov rax, qword [rbx + 0x48]
lea ecx, [r14 + r10]
add r10w, r13w
movss dword [rax + 0x18], xmm3
mov rax, qword [rbx + 0x48]
movsd qword [rax + 0x1c], xmm6
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x24], r12d
mov rax, qword [rbx + 0x50]
add qword [rbx + 0x48], 0x28
mov word [rax], dx
mov rax, qword [rbx + 0x50]
mov word [rax + 2], cx
mov rax, qword [rbx + 0x50]
mov word [rax + 4], r10w
mov rax, qword [rbx + 0x50]
mov word [rax + 6], r10w
mov r10d, r11d
mov rax, qword [rbx + 0x50]
inc r11d
mov word [rax + 8], r8w
mov rax, qword [rbx + 0x50]
mov word [rax + 0xa], dx
add qword [rbx + 0x50], 0xc
cmp r11d, edi
jl 0x140021030
mov r13d, dword [rbp + 0x80]
movzx eax, r13w
jmp 0x1400211fb
lea eax, [rdi - 2]
mov r8d, edi
lea edx, [rax + rax*2]
call fcn.14001fd80
test edi, edi
jle 0x1400211ac
mov rcx, rdi
nop
mov rax, qword [rbx + 0x48]
movsd xmm0, qword [rsi]
lea rsi, [rsi + 8]
movsd qword [rax], xmm0
mov rax, qword [rbx + 0x48]
movsd qword [rax + 8], xmm6
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x10], r15d
add qword [rbx + 0x48], 0x14
sub rcx, 1
jne 0x140021180
mov r8d, 2
cmp edi, r8d
jle 0x1400211f8
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, edi
jl 0x1400211c0
movzx eax, di
add dword [rbx + 0x34], eax
mov rbx, qword [rbp + 0x70]
mov rsi, qword [rbp + 0x78]
mov rdi, qword [rbp + 0x88]
movaps xmm6, xmmword [rbp + 0x30]
movaps xmm7, xmmword [rbp + 0x20]
movaps xmm8, xmmword [rbp + 0x10]
movaps xmm9, xmmword [rbp]
lea rsp, [rbp + 0x40]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret