Function at 0x1006ebb0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
call fcn.10088ad2
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [eax]
movsx ecx, byte [eax + edx]
mov dword [ebp - 0x18], ecx
xorps xmm0, xmm0
movsd qword [ebp - 0x28], xmm0
mov dword [ebp - 8], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [edx], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x10174949]
and eax, 8
je 0x1006ec15
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
jmp 0x1006ebf8
lea edx, [ebp + 8]
push edx
call fcn.1006eb60
add esp, 4
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
movsx ecx, byte [eax]
cmp ecx, 0x30
jne 0x1006ec47
mov edx, dword [ebp + 8]
movsx eax, byte [edx + 1]
cmp eax, 0x78
je 0x1006ec4e
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + 1]
cmp edx, 0x58
je 0x1006ec4e
fldz
jmp 0x1006ee05
mov eax, dword [ebp + 8]
add eax, 2
mov dword [ebp + 8], eax
jmp 0x1006ec62
mov ecx, dword [ebp + 8]
add ecx, 1
mov dword [ebp + 8], ecx
mov edx, dword [ebp + 8]
movsx eax, byte [edx]
cmp eax, dword [ebp - 0x18]
jne 0x1006ec86
cmp dword [ebp - 0x10], 0
je 0x1006ec7a
jmp 0x1006ed19
mov dword [ebp - 0x10], 1
jmp 0x1006ed14
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x10174949]
and eax, 0x10
je 0x1006ed12
cmp dword [ebp - 8], 0
jne 0x1006ecb4
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx]
cmp edx, 0x30
jne 0x1006ecb4
mov eax, dword [ebp - 0x14]
add eax, 1
mov dword [ebp - 0x14], eax
jmp 0x1006ed01
mov ecx, dword [ebp - 8]
add ecx, 1
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], 0x1e
jg 0x1006ecf8
movsd xmm0, qword [ebp - 0x28]
mulsd xmm0, qword [0x10174908]
mov edx, dword [ebp + 8]
movsx eax, byte [edx]
push eax
movsd qword [ebp - 0x30], xmm0
call fcn.1006e220
add esp, 4
cvtsi2sd xmm0, eax
movsd xmm1, qword [ebp - 0x30]
addsd xmm1, xmm0
movsd qword [ebp - 0x28], xmm1
jmp 0x1006ed01
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
cmp dword [ebp - 0x10], 0
je 0x1006ed10
mov edx, dword [ebp - 4]
sub edx, 1
mov dword [ebp - 4], edx
jmp 0x1006ed14
jmp 0x1006ed19
jmp 0x1006ec59
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 8]
jne 0x1006ed28
fldz
jmp 0x1006ee05
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [ecx], edx
mov eax, dword [ebp - 4]
shl eax, 2
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx]
cmp edx, 0x70
je 0x1006ed53
mov eax, dword [ebp + 8]
movsx ecx, byte [eax]
cmp ecx, 0x50
jne 0x1006edd5
mov dword [ebp - 0xc], 0
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
lea eax, [ebp + 8]
push eax
call fcn.1006eb60
add esp, 4
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x10174949]
and eax, 2
jne 0x1006ed88
fldz
jmp 0x1006ee05
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx]
movzx eax, byte [edx + 0x10174949]
and eax, 2
je 0x1006edb6
imul ecx, dword [ebp - 0xc], 0xa
mov edx, dword [ebp + 8]
movsx eax, byte [edx]
lea ecx, [ecx + eax - 0x30]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 8]
add edx, 1
mov dword [ebp + 8], edx
jmp 0x1006ed88
cmp dword [ebp - 0x1c], 0
je 0x1006edc4
mov eax, dword [ebp - 0xc]
neg eax
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [edx], eax
cmp dword [ebp - 0x20], 0
je 0x1006edec
movsd xmm0, qword [ebp - 0x28]
xorps xmm0, xmmword [0x1016e5a0]
movsd qword [ebp - 0x28], xmm0
mov ecx, dword [ebp - 4]
push ecx
sub esp, 8
movsd xmm0, qword [ebp - 0x28]
movsd qword [esp], xmm0
call fcn.1008c0c9
add esp, 0xc
mov esp, ebp
pop ebp
ret