Function at 0x1018bea0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0xd8
mov eax, dword [0x10411ce0]
xor eax, esp
mov dword [esp + 0xd4], eax
movsd xmm1, qword [esp + 0xec]
xor ecx, ecx
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe8]
push ebp
mov ebp, dword [esp + 0xe8]
unpcklpd xmm1, xmm1
push esi
mov esi, dword [esp + 0xe4]
movsd xmm2, xmm1
push edi
unpcklpd xmm2, xmm2
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
movupd xmm0, xmmword [ecx*8 + 0x10358f58]
mulpd xmm0, xmm2
movupd xmmword [esp + ecx*8 + 0x18], xmm0
movupd xmm0, xmmword [ecx*8 + 0x10358f68]
mulpd xmm0, xmm2
movupd xmmword [esp + ecx*8 + 0x28], xmm0
add ecx, 4
cmp ecx, 0x17
jle 0x1018bef2
cmp ecx, 0x18
jg 0x1018bf80
mov eax, 0x19
sub eax, ecx
cmp eax, 4
jl 0x1018bf5b
movups xmm0, xmmword [ecx*8 + 0x10358f58]
mulpd xmm0, xmm1
movups xmmword [esp + ecx*8 + 0x18], xmm0
movups xmm0, xmmword [ecx*8 + 0x10358f68]
mulpd xmm0, xmm1
movups xmmword [esp + ecx*8 + 0x28], xmm0
add ecx, 4
cmp ecx, 0x15
jle 0x1018bf31
cmp ecx, 0x18
jg 0x1018bf80
shl ecx, 3
movsd xmm0, qword [ecx + 0x10358f58]
mulsd xmm0, xmm1
movsd qword [esp + ecx + 0x18], xmm0
add ecx, 8
cmp ecx, 0xc0
jle 0x1018bf63
xor edi, edi
lea eax, [ebp + 0x100]
cmp dword [esp + 0x104], edi
jle 0x1018c2d0
sub eax, ebp
mov dword [esp + 0x14], eax
push ebx
lea esp, [esp]
movsx ebx, byte [eax + ebp]
lea eax, [ebx + 3]
cmp eax, 7
ja case.0x1018bfb0.1
jmp dword [eax*4 + 0x1018c2e8]
cmp dword [esp + 0x104], 0
je 0x1018c002
movzx ecx, word [esi + 0x338]
mov eax, ecx
shl ecx, 8
shr eax, 8
xor cx, word [eax*2 + 0x10359020]
movzx eax, cx
mov word [esi + 0x338], ax
movzx ecx, byte [ebp]
cwde
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x103592c0]
mulsd xmm0, qword [esp + ecx*8 + 0x1c]
jmp 0x1018c2af
xorps xmm0, xmm0
jmp 0x1018c2af
mov ecx, dword [edx + 0x28]
test ecx, ecx
js 0x1018c031
movzx eax, byte [ebp]
movsd xmm0, qword [esp + eax*8 + 0x1c]
mulsd xmm0, qword [edx + ecx*8]
mov eax, dword [esp + 0x10]
movsd qword [eax + edi*8], xmm0
dec dword [edx + 0x28]
jmp 0x1018c2b8
mov eax, dword [esi + 0x33c]
cmp eax, 5
jbe 0x1018c059
mov ebx, dword [esi + 0x340]
mov ecx, 0x20
sub ecx, eax
shl ebx, cl
shr ebx, 0x1b
add eax, 0xfffffffb
mov dword [esi + 0x33c], eax
jmp 0x1018c06a
push 5
push esi
call fcn.1018fe60
mov edx, dword [esp + 0x1c]
add esp, 8
mov ebx, eax
movsd xmm0, qword [ebx*8 + 0x10357998]
mov dword [edx + 0x28], 1
movsd qword [edx], xmm0
movsd xmm0, qword [ebx*8 + 0x10357898]
movsd qword [edx + 8], xmm0
movzx eax, byte [ebp]
movsd xmm0, qword [esp + eax*8 + 0x1c]
mulsd xmm0, qword [ebx*8 + 0x10357798]
jmp 0x1018c2af
mov ecx, dword [edx + 0x2c]
test ecx, ecx
js 0x1018c0cc
movzx eax, byte [ebp]
movsd xmm0, qword [esp + eax*8 + 0x1c]
mulsd xmm0, qword [edx + ecx*8 + 0x10]
mov eax, dword [esp + 0x10]
movsd qword [eax + edi*8], xmm0
dec dword [edx + 0x2c]
jmp 0x1018c2b8
mov eax, dword [esi + 0x33c]
cmp eax, 7
jbe 0x1018c0f4
mov ebx, dword [esi + 0x340]
mov ecx, 0x20
sub ecx, eax
shl ebx, cl
shr ebx, 0x19
add eax, 0xfffffff9
mov dword [esi + 0x33c], eax
jmp 0x1018c105
push 7
push esi
call fcn.1018fe60
mov edx, dword [esp + 0x1c]
add esp, 8
mov ebx, eax
movsd xmm0, qword [ebx*8 + 0x10358298]
mov dword [edx + 0x2c], 1
movsd qword [edx + 0x10], xmm0
movsd xmm0, qword [ebx*8 + 0x10357e98]
movsd qword [edx + 0x18], xmm0
movzx eax, byte [ebp]
movsd xmm0, qword [esp + eax*8 + 0x1c]
mulsd xmm0, qword [ebx*8 + 0x10357a98]
jmp 0x1018c2af
mov eax, dword [esi + 0x33c]
cmp eax, 3
jbe 0x1018c168
mov edx, dword [esi + 0x340]
mov ecx, 0x20
sub ecx, eax
shl edx, cl
shr edx, 0x1d
add eax, 0xfffffffd
mov dword [esi + 0x33c], eax
jmp 0x1018c175
push 3
push esi
call fcn.1018fe60
add esp, 8
mov edx, eax
movzx ecx, byte [ebp]
movsd xmm0, qword [esp + ecx*8 + 0x1c]
mulsd xmm0, qword [edx*8 + str.mm]
jmp 0x1018c2af
cmp dword [edx + 0x30], 0
jne 0x1018c1ae
mov dword [edx + 0x30], 0xffffffff
movzx eax, byte [ebp]
movsd xmm0, qword [esp + eax*8 + 0x1c]
mulsd xmm0, qword [edx + 0x20]
jmp 0x1018c2af
mov eax, dword [esi + 0x33c]
cmp eax, 7
jbe 0x1018c1d6
mov ebx, dword [esi + 0x340]
mov ecx, 0x20
sub ecx, eax
shl ebx, cl
shr ebx, 0x19
add eax, 0xfffffff9
mov dword [esi + 0x33c], eax
jmp 0x1018c1e7
push 7
push esi
call fcn.1018fe60
mov edx, dword [esp + 0x1c]
add esp, 8
mov ebx, eax
movsd xmm0, qword [ebx*8 + 0x10358ad8]
movsd qword [edx + 0x20], xmm0
mov dword [edx + 0x30], 0
movzx ecx, byte [ebp]
movsd xmm0, qword [esp + ecx*8 + 0x1c]
mulsd xmm0, qword [ebx*8 + 0x103586d8]
jmp 0x1018c2af
mov eax, dword [esi + 0x33c]
cmp eax, 4
jbe 0x1018c23c
mov edx, dword [esi + 0x340]
mov ecx, 0x20
sub ecx, eax
shl edx, cl
shr edx, 0x1c
add eax, 0xfffffffc
mov dword [esi + 0x33c], eax
jmp 0x1018c249
push 4
push esi
call fcn.1018fe60
add esp, 8
mov edx, eax
movzx ecx, byte [ebp]
movsd xmm0, qword [esp + ecx*8 + 0x1c]
mulsd xmm0, qword [edx*8 + 0x10358ed8]
jmp 0x1018c2af
mov edx, dword [esi + 0x33c]
cmp ebx, edx
jae 0x1018c28a
mov eax, dword [esi + 0x340]
mov ecx, 0x20
sub ecx, edx
shl eax, cl
mov ecx, 0x20
sub ecx, ebx
sar eax, cl
sub edx, ebx
mov dword [esi + 0x33c], edx
jmp 0x1018c294
push ebx
push esi
call fcn.1018fef0
add esp, 8
mov ecx, 0x10
sub ecx, ebx
shl eax, cl
movd xmm0, eax
movzx eax, byte [ebp]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [esp + eax*8 + 0x1c]
mov eax, dword [esp + 0x10]
movsd qword [eax + edi*8], xmm0
mov edx, dword [esp + 0x14]
inc edi
mov eax, dword [esp + 0x18]
inc ebp
cmp edi, dword [esp + 0x108]
jl 0x1018bfa0
pop ebx
mov ecx, dword [esp + 0xe0]
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.102d6d23
add esp, 0xd8
ret