Function at 0x18001a790
Capabilities:
Encrypt data using rc4 prga

Disassembly:
test rdx, rdx
je 0x18001a9bc
mov r11, rsp
push r12
push r15
sub rsp, 0x98
mov r15, r8
mov r12, rdx
test r8, r8
je 0x18001a9b1
mov edx, dword [rsp + 0xe8]
xorps xmm0, xmm0
movzx ecx, byte [rsp + 0x100]
mov qword [r11 + 8], rbx
mov ebx, dword [rsp + 0xe0]
mov qword [r11 - 0x18], rbp
mov qword [r11 - 0x20], rsi
lea ebp, [rcx + rcx]
mov qword [r11 - 0x30], r13
xor esi, esi
movaps xmmword [rsp + 0x60], xmm6
xorps xmm6, xmm6
cvtsi2ss xmm0, rbx
mov eax, r9d
mov dword [rsp + 0xc0], ebp
mov dword [rsp + 0xb8], esi
movaps xmmword [rsp + 0x20], xmm10
xorps xmm10, xmm10
cvtsi2ss xmm6, rax
mov eax, dword [rsp + 0xd0]
cvtsi2ss xmm10, rax
mov eax, ecx
xor eax, 1
divss xmm6, xmm0
lea r13d, [rax + rax]
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
divss xmm10, xmm0
test edx, edx
je 0x18001a989
mov eax, dword [rsp + 0xd8]
mov qword [r11 - 0x28], rdi
mov qword [r11 - 0x38], r14
movzx r14d, byte [rsp + 0xf8]
movaps xmmword [rsp + 0x50], xmm7
movaps xmmword [r11 - 0x68], xmm8
movss xmm8, dword [0x18004cab4]
movaps xmmword [r11 - 0x78], xmm9
xorps xmm9, xmm9
cvtsi2ss xmm9, rax
nop dword [rax + rax]
xor edi, edi
test ebx, ebx
je 0x18001a95a
xorps xmm0, xmm0
mov eax, esi
cvtsi2ss xmm0, rax
mulss xmm0, xmm10
call fcn.18002e9b0
movaps xmm7, xmm0
cmp byte [rsp + 0xf0], dil
je 0x18001a9c0
mov ebp, dword [rsp + 0xe8]
sub ebp, esi
mov esi, dword [rsp + 0xc0]
nop
xorps xmm0, xmm0
mov eax, edi
cvtsi2ss xmm0, rax
mulss xmm0, xmm6
call fcn.18002e9b0
movaps xmm1, xmm0
test r14b, r14b
je 0x18001a8ee
mov r8d, ebp
imul r8d, ebx
sub r8d, edi
dec r8d
lea r8d, [r8 + r8*2]
jmp 0x18001a8fa
lea eax, [rbp - 1]
imul eax, ebx
add eax, edi
lea r8d, [rax + rax*2]
lea ecx, [rsi + r8]
mulss xmm1, xmm8
inc edi
movaps xmm0, xmm9
mulss xmm0, xmm7
addss xmm0, xmm1
cvttss2si eax, xmm0
movsxd rdx, eax
movzx eax, byte [rdx + r12]
mov byte [rcx + r15], al
lea ecx, [r8 + 1]
movzx eax, byte [rdx + r12 + 1]
mov byte [rcx + r15], al
lea ecx, [r8 + r13]
movzx eax, byte [rdx + r12 + 2]
mov byte [rcx + r15], al
cmp edi, ebx
jb 0x18001a8c0
mov esi, dword [rsp + 0xb8]
mov ebp, dword [rsp + 0xc0]
mov edx, dword [rsp + 0xe8]
inc esi
mov dword [rsp + 0xb8], esi
cmp esi, edx
jb 0x18001a880
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
mov r14, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x60]
mov r13, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xb0]
movaps xmm10, xmmword [rsp + 0x20]
add rsp, 0x98
pop r15
pop r12
ret
xorps xmm0, xmm0
mov eax, edi
cvtsi2ss xmm0, rax
mulss xmm0, xmm6
call fcn.18002e9b0
lea r8d, [rsi + 1]
movaps xmm1, xmm0
test r14b, r14b
je 0x18001a9f2
mov r9d, r8d
imul r9d, ebx
sub r9d, edi
dec r9d
lea r9d, [r9 + r9*2]
jmp 0x18001a9fd
mov eax, esi
imul eax, ebx
add eax, edi
lea r9d, [rax + rax*2]
lea ecx, [r9 + rbp]
mulss xmm1, xmm8
inc edi
movaps xmm0, xmm9
mulss xmm0, xmm7
addss xmm0, xmm1
cvttss2si eax, xmm0
movsxd rdx, eax
movzx eax, byte [rdx + r12]
mov byte [rcx + r15], al
lea ecx, [r9 + 1]
movzx eax, byte [rdx + r12 + 1]
mov byte [rcx + r15], al
lea ecx, [r9 + r13]
movzx eax, byte [rdx + r12 + 2]
mov byte [rcx + r15], al
cmp edi, ebx
jb 0x18001a9c0
mov edx, dword [rsp + 0xe8]
mov esi, r8d
jmp 0x18001a95c