Function at 0x18001e468
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 r12d, 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
mov edi, r8d
cmp r8d, 3
jl 0x18001e7e7
test byte [rcx + 0x30], 4
mov rax, qword [rcx + 0x38]
movss xmm7, dword [rax]
movss xmm8, dword [rax + 4]
je 0x18001e759
movss xmm6, dword [rcx + 0xc0]
lea r13d, [rdi + rdi]
mov eax, r9d
mov dword [rbp + 4], r13d
lea edx, [rdi*8 - 6]
and eax, 0xffffff
add edx, edi
mov dword [rbp], eax
mov r8d, r13d
call fcn.18001d3d0
mov r14d, dword [rbx + 0x34]
mov r8d, 2
mov r10d, r8d
lea r9d, [r8 - 1]
mov rax, qword [rbx + 0x50]
movzx edx, r10w
add dx, dx
add r10d, r9d
add dx, r14w
movzx ecx, dx
mov word [rax], r14w
sub cx, r8w
mov rax, qword [rbx + 0x50]
mov word [rax + 2], cx
mov rax, qword [rbx + 0x50]
mov word [rax + 4], dx
add qword [rbx + 0x50], 6
cmp r10d, edi
jl 0x18001e502
movsxd rax, edi
shl rax, 3
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x18001e553
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.180041e70
sub rsp, rcx
movsxd rax, edi
mov rcx, rsi
mov rdx, rdi
lea r10, [rsp + 0x20]
lea rax, [rax*8 - 8]
movss xmm1, dword [rcx]
movss xmm2, dword [rcx + 4]
subss xmm1, dword [rax + rsi]
subss xmm2, dword [rax + rsi + 4]
movaps xmm0, xmm1
movaps xmm3, xmm2
mulss xmm0, xmm1
mulss xmm3, xmm2
addss xmm3, xmm0
comiss xmm3, dword [0x180085fb4]
jbe 0x18001e5b3
rsqrtss xmm0, xmm3
mulss xmm1, xmm0
mulss xmm2, xmm0
xorps xmm1, xmmword [0x1800864d0]
movss dword [rax + r10 + 4], xmm1
movss dword [rax + r10], xmm2
mov rax, rcx
sub rax, rsi
add rcx, 8
sub rdx, r9
jne 0x18001e578
movss xmm4, dword [0x18008601c]
lea r15, [rsi + 4]
mov r11, r10
mulss xmm6, xmm4
sub r11, rsi
lea r13d, [rdi - 1]
mov esi, dword [rbp]
xor ecx, ecx
mov dword [rbp + 0x80], ecx
movss xmm2, dword [r11 + r15 - 4]
movss xmm3, dword [r11 + r15]
movsxd rax, r13d
addss xmm2, dword [r10 + rax*8]
addss xmm3, dword [r10 + 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, dword [0x180085fc8]
jbe 0x18001e65b
movss xmm0, dword [0x18008605c]
divss xmm0, xmm1
movss xmm1, dword [0x18008611c]
minss xmm1, xmm0
mulss xmm2, xmm1
mulss xmm3, xmm1
movss xmm0, dword [r15 - 4]
movzx r8d, cx
mov rax, qword [rbx + 0x48]
add r13w, r13w
mulss xmm2, xmm6
add r8w, r8w
mulss xmm3, xmm6
lea ecx, [r14 + r13]
subss xmm0, xmm2
lea edx, [r14 + r8]
movss dword [rax], xmm0
movss xmm1, dword [r15]
mov rax, qword [rbx + 0x48]
subss xmm1, xmm3
movss dword [rax + 4], xmm1
mov rax, qword [rbx + 0x48]
movss dword [rax + 8], xmm7
movss dword [rax + 0xc], xmm8
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x10], r12d
addss xmm2, dword [r15 - 4]
mov rax, qword [rbx + 0x48]
movss dword [rax + 0x14], xmm2
addss xmm3, dword [r15]
mov rax, qword [rbx + 0x48]
add r15, 8
movss dword [rax + 0x18], xmm3
mov rax, qword [rbx + 0x48]
movss dword [rax + 0x1c], xmm7
movss dword [rax + 0x20], xmm8
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x24], esi
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, [r14 + 1]
mov rax, qword [rbx + 0x50]
add ecx, r13d
mov word [rax + 4], cx
mov rax, qword [rbx + 0x50]
mov word [rax + 6], cx
lea eax, [r14 + 1]
mov ecx, dword [rbp + 0x80]
add r8w, ax
mov rax, qword [rbx + 0x50]
mov r13d, ecx
add ecx, r9d
mov dword [rbp + 0x80], ecx
mov word [rax + 8], r8w
mov rax, qword [rbx + 0x50]
mov word [rax + 0xa], dx
add qword [rbx + 0x50], 0xc
cmp ecx, edi
jl 0x18001e5fb
mov r13d, dword [rbp + 4]
movzx eax, r13w
jmp 0x18001e7e4
lea eax, [rdi - 2]
mov r8d, edi
lea edx, [rax + rax*2]
call fcn.18001d3d0
mov rcx, rdi
mov r9d, 1
mov rax, qword [rbx + 0x48]
movsd xmm0, qword [rsi]
lea rsi, [rsi + 8]
movsd qword [rax], xmm0
mov rax, qword [rbx + 0x48]
movss dword [rax + 8], xmm7
movss dword [rax + 0xc], xmm8
mov rax, qword [rbx + 0x48]
mov dword [rax + 0x10], r12d
add qword [rbx + 0x48], 0x14
sub rcx, r9
jne 0x18001e770
lea r8d, [rcx + 2]
mov rcx, qword [rbx + 0x50]
movzx eax, word [rbx + 0x34]
mov word [rcx], ax
movzx ecx, r8w
add cx, word [rbx + 0x34]
mov rax, qword [rbx + 0x50]
sub cx, r9w
mov word [rax + 2], cx
movzx ecx, r8w
mov rax, qword [rbx + 0x50]
add r8d, r9d
add cx, word [rbx + 0x34]
mov word [rax + 4], cx
add qword [rbx + 0x50], 6
cmp r8d, edi
jl 0x18001e7a5
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]
lea rsp, [rbp + 0x40]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret