Function at 0x100cc660
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x102d5080]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x50], esi
push edi
mov edi, dword [ebx + 8]
cmp ecx, 3
jl 0x100ccdfd
test byte [esi + 0x24], 2
mov eax, dword [esi + 0x28]
movss xmm0, dword [eax]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x44], xmm0
je 0x100ccbd1
lea eax, [ecx + ecx]
push eax
mov dword [ebp - 0x60], eax
lea eax, [ecx*8 - 6]
add eax, ecx
mov ecx, esi
push eax
call fcn.100cb5c0
mov eax, dword [esi + 0x34]
mov edi, 2
mov dword [ebp - 0x10], eax
lea ecx, [eax + 1]
mov dword [ebp - 0xc], ecx
movzx ecx, ax
mov dword [ebp - 0x20], ecx
mov eax, dword [esi + 0x3c]
lea edx, [ecx + edi*2]
inc edi
mov word [eax], cx
lea ecx, [edx - 2]
mov eax, dword [esi + 0x3c]
mov word [eax + 2], cx
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x20]
mov word [eax + 4], dx
add dword [esi + 0x3c], 6
cmp edi, dword [ebx + 0xc]
jl 0x100cc6e8
mov edi, dword [ebx + 0xc]
lea eax, [edi*8]
call fcn.101f4840
movss xmm5, dword [0x102bdf90]
lea eax, [edi - 1]
movss xmm6, dword [0x102bd7ac]
mov edx, edi
mov edi, dword [ebx + 8]
xorps xmm4, xmm4
mov dword [ebp - 0x18], eax
mov esi, esp
shl eax, 3
xor ecx, ecx
nop dword [eax]
nop word [eax + eax]
movss xmm2, dword [ecx + edi]
movss xmm3, dword [edi + ecx + 4]
subss xmm2, dword [eax + edi]
subss xmm3, dword [eax + edi + 4]
movaps xmm1, xmm2
movaps xmm0, xmm3
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
comiss xmm0, xmm4
jbe 0x100cc794
call fcn.1000ded0
movaps xmm1, xmm6
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm3, xmm1
mulss xmm2, xmm0
xorps xmm2, xmm5
movss dword [eax + esi], xmm3
movss dword [eax + esi + 4], xmm2
mov eax, ecx
add ecx, 8
sub edx, 1
jne 0x100cc750
mov eax, dword [ebp - 0x10]
lea ecx, [edi + 4]
movss xmm7, dword [0x102bd73c]
movss xmm5, dword [0x102bda54]
movzx eax, ax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0xc]
movzx eax, ax
mov dword [ebp - 0x20], eax
mov eax, esi
mov edx, eax
mov dword [ebp - 0x2c], ecx
sub edx, edi
xor edi, edi
mov dword [ebp - 0x4c], edx
mov edx, dword [ebp - 0x18]
movss xmm2, dword [eax + edi*8]
addss xmm2, dword [eax + edx*8]
mov esi, dword [ebp - 0x4c]
movss xmm3, dword [esi + ecx]
movaps xmm0, xmm2
addss xmm3, dword [eax + edx*8 + 4]
mulss xmm0, xmm2
mov esi, dword [ebp - 0x50]
mov edx, dword [ebx + 0x10]
movaps xmm1, xmm3
mulss xmm1, xmm3
mov eax, dword [esi + 0x38]
addss xmm1, xmm0
movss xmm0, dword [0x102bd6f8]
mulss xmm1, xmm0
maxss xmm1, xmm7
movaps xmm7, xmm6
divss xmm7, xmm1
movaps xmm1, xmm7
mulss xmm7, xmm3
mulss xmm1, xmm2
mulss xmm7, xmm0
mulss xmm1, xmm0
movss xmm0, dword [ecx - 4]
movss dword [ebp - 0x48], xmm7
subss xmm0, xmm1
movss dword [ebp - 0x58], xmm1
movss dword [eax], xmm0
movss xmm0, dword [ecx]
mov eax, dword [esi + 0x38]
subss xmm0, xmm7
movss dword [eax + 4], xmm0
mov eax, dword [esi + 0x38]
movss xmm0, dword [ebp - 0x40]
movss dword [eax + 8], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [eax + 0xc], xmm0
mov eax, dword [esi + 0x38]
movss xmm3, dword [edx + 4]
movss xmm2, dword [edx + 0x14]
movss xmm7, dword [edx + 8]
subss xmm2, xmm3
movss xmm1, dword [eax]
subss xmm1, dword [edx + 0x20]
movss dword [ebp - 0x3c], xmm3
movss xmm3, dword [edx + 0x18]
subss xmm3, xmm7
movss dword [ebp - 0x34], xmm7
movss xmm7, dword [edx + 0xc]
divss xmm1, dword [edx + 0x28]
movss dword [ebp - 0x24], xmm7
minss xmm1, xmm6
mulss xmm3, xmm1
mulss xmm2, xmm1
movss dword [ebp - 8], xmm3
movss xmm3, dword [edx + 0x1c]
subss xmm3, xmm7
movss xmm7, dword [edx + 0x10]
subss xmm7, dword [edx]
mulss xmm3, xmm1
mulss xmm7, xmm1
movss dword [ebp - 0xc], xmm3
movss dword [ebp - 0x14], xmm3
movaps xmm1, xmm7
movss dword [ebp - 0x28], xmm7
addss xmm1, dword [edx]
movss xmm7, dword [ebp - 8]
movss dword [ebp - 8], xmm3
comiss xmm4, xmm1
jbe 0x100cc927
movss xmm1, dword [ebp - 0x34]
movss dword [ebp - 0x10], xmm1
movss xmm1, dword [ebp - 0x24]
movss dword [ebp - 0x28], xmm4
movaps xmm6, xmm1
jmp 0x100cc956
movss xmm0, dword [ebp - 0x3c]
minss xmm1, xmm6
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x28], xmm1
movss xmm1, dword [ebp - 0x34]
movss dword [ebp - 0x10], xmm1
movss dword [ebp - 0x34], xmm1
movss xmm1, dword [ebp - 0x24]
movaps xmm6, xmm1
movss dword [ebp - 0x24], xmm6
movss dword [ebp - 0x38], xmm6
movaps xmm0, xmm7
movss xmm4, dword [ebp - 0x38]
addss xmm4, dword [ebp - 8]
addss xmm7, dword [ebp - 0x34]
addss xmm2, dword [ebp - 0x3c]
addss xmm3, dword [ebp - 0x24]
addss xmm1, dword [ebp - 0xc]
movss dword [ebp - 0x38], xmm4
movss xmm4, dword [ebp - 0x14]
addss xmm0, dword [ebp - 0x10]
movss dword [ebp - 8], xmm7
movss xmm7, dword [ebp - 0x28]
movss dword [ebp - 0x30], xmm6
addss xmm4, dword [ebp - 0x30]
movss xmm6, dword [0x102bd7ac]
mulss xmm7, xmm5
movss dword [ebp - 0x14], xmm4
movss dword [ebp - 0x28], xmm7
movss xmm4, dword [ebp - 0x28]
movss xmm7, dword [0x102bd73c]
addss xmm4, xmm7
cvttss2si ecx, xmm4
xorps xmm4, xmm4
shl ecx, 0x10
comiss xmm4, xmm2
jbe 0x100cc9df
movss xmm3, dword [ebp - 0x38]
xorps xmm2, xmm2
jmp 0x100cc9ed
movss xmm0, dword [ebp - 8]
minss xmm2, xmm6
movss xmm1, dword [ebp - 0x14]
mulss xmm2, xmm5
addss xmm2, xmm7
cvttss2si eax, xmm2
shl eax, 8
or ecx, eax
comiss xmm4, xmm0
jbe 0x100cca08
xorps xmm0, xmm0
jmp 0x100cca0f
minss xmm0, xmm6
movaps xmm1, xmm3
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si eax, xmm0
or ecx, eax
comiss xmm4, xmm1
jbe 0x100cca27
xorps xmm1, xmm1
jmp 0x100cca2b
minss xmm1, xmm6
mulss xmm1, xmm5
movss xmm0, dword [ebp - 0x58]
addss xmm1, xmm7
cvttss2si eax, xmm1
shl eax, 0x18
or eax, ecx
mov ecx, dword [esi + 0x38]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [esi + 0x38]
addss xmm0, dword [ecx - 4]
movss dword [eax + 0x14], xmm0
movss xmm0, dword [ebp - 0x48]
addss xmm0, dword [ecx]
mov eax, dword [esi + 0x38]
movss dword [eax + 0x18], xmm0
mov eax, dword [esi + 0x38]
movss xmm0, dword [ebp - 0x40]
movss dword [eax + 0x1c], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [eax + 0x20], xmm0
mov eax, dword [esi + 0x38]
movss xmm3, dword [edx + 0x14]
movss xmm2, dword [edx + 4]
movss xmm5, dword [edx + 8]
subss xmm3, xmm2
movss xmm1, dword [eax + 0x14]
subss xmm1, dword [edx + 0x20]
movss xmm7, dword [edx + 0x18]
subss xmm7, xmm5
movss dword [ebp - 0xc], xmm5
divss xmm1, dword [edx + 0x28]
minss xmm1, xmm6
mulss xmm3, xmm1
mulss xmm7, xmm1
movss dword [ebp - 0x10], xmm3
movss xmm3, dword [edx + 0x10]
subss xmm3, dword [edx]
movaps xmm0, xmm7
mulss xmm3, xmm1
movss xmm1, dword [ebp - 0x10]
addss xmm3, dword [edx]
comiss xmm4, xmm3
jbe 0x100ccae6
xorps xmm3, xmm3
jmp 0x100ccaea
minss xmm3, xmm6
mulss xmm3, dword [0x102bda54]
addss xmm5, xmm7
movss xmm7, dword [0x102bd73c]
addss xmm2, xmm1
addss xmm0, dword [ebp - 0xc]
addss xmm3, xmm7
cvttss2si ecx, xmm3
shl ecx, 0x10
comiss xmm4, xmm2
jbe 0x100ccb1c
xorps xmm2, xmm2
jmp 0x100ccb23
minss xmm2, xmm6
movaps xmm0, xmm5
movss xmm5, dword [0x102bda54]
mulss xmm2, xmm5
addss xmm2, xmm7
cvttss2si eax, xmm2
shl eax, 8
or ecx, eax
comiss xmm4, xmm0
jbe 0x100ccb46
xorps xmm0, xmm0
jmp 0x100ccb4a
minss xmm0, xmm6
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si eax, xmm0
or eax, ecx
mov ecx, dword [esi + 0x38]
and eax, 0xffffff
mov dword [ecx + 0x24], eax
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x5c]
add dword [esi + 0x38], 0x28
lea edx, [ecx + edi*2]
mov word [eax], dx
mov eax, dword [ebp - 0x18]
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 0x3c]
mov word [eax + 2], cx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
lea ecx, [ecx + eax*2]
mov eax, dword [esi + 0x3c]
mov word [eax + 4], cx
mov eax, dword [esi + 0x3c]
mov word [eax + 6], cx
mov eax, dword [ebp - 0x20]
lea ecx, [eax + edi*2]
mov eax, dword [esi + 0x3c]
mov word [eax + 8], cx
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x2c]
add ecx, 8
mov dword [ebp - 0x2c], ecx
mov word [eax + 0xa], dx
mov edx, edi
add dword [esi + 0x3c], 0xc
inc edi
mov eax, esp
mov dword [ebp - 0x18], edx
cmp edi, dword [ebx + 0xc]
jl 0x100cc7e2
mov eax, dword [ebp - 0x60]
jmp 0x100ccdf7
push ecx
add ecx, 0xfffffffe
lea eax, [ecx + ecx*2]
mov ecx, esi
push eax
call fcn.100cb5c0
mov eax, dword [ebx + 0xc]
xorps xmm6, xmm6
movss xmm7, dword [0x102bd7ac]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x38]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
movss xmm0, dword [ebp - 0x40]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, dword [esi + 0x38]
movss dword [eax + 8], xmm0
movss xmm0, dword [ebp - 0x44]
movss dword [eax + 0xc], xmm0
mov eax, dword [ebx + 0x10]
movss xmm1, dword [edi]
subss xmm1, dword [eax + 0x20]
movss xmm3, dword [eax + 0x14]
movss xmm2, dword [eax + 4]
movss xmm5, dword [eax + 0xc]
subss xmm3, xmm2
movss xmm4, dword [eax + 0x1c]
divss xmm1, dword [eax + 0x28]
subss xmm4, xmm5
movss dword [ebp - 8], xmm5
minss xmm1, xmm7
movss dword [ebp - 0x14], xmm5
movss xmm7, dword [eax + 0x18]
mulss xmm3, xmm1
mulss xmm4, xmm1
movss dword [ebp - 0x1c], xmm3
movss xmm3, dword [eax + 8]
subss xmm7, xmm3
movss dword [ebp - 0x18], xmm3
movss xmm3, dword [eax + 0x10]
subss xmm3, dword [eax]
movss dword [ebp - 0xc], xmm4
movss dword [ebp - 0x10], xmm4
mulss xmm7, xmm1
mulss xmm3, xmm1
movss dword [ebp - 0x30], xmm7
movss dword [ebp - 0x20], xmm4
addss xmm3, dword [eax]
comiss xmm6, xmm3
jbe 0x100ccca8
movss xmm1, dword [ebp - 0x18]
movaps xmm3, xmm6
jmp 0x100cccc7
movss xmm0, dword [ebp - 0x1c]
minss xmm3, dword [0x102bd7ac]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ebp - 0x18]
movaps xmm1, xmm0
movss dword [ebp - 0x18], xmm0
mulss xmm3, dword [0x102bda54]
movaps xmm0, xmm5
addss xmm2, dword [ebp - 0x1c]
addss xmm0, dword [ebp - 0xc]
addss xmm3, dword [0x102bd73c]
addss xmm1, dword [ebp - 0x30]
addss xmm5, xmm4
movss xmm4, dword [ebp - 0x14]
addss xmm4, dword [ebp - 0x20]
cvttss2si edx, xmm3
movss dword [ebp - 0x14], xmm4
movss xmm4, dword [ebp - 8]
addss xmm4, dword [ebp - 0x10]
shl edx, 0x10
comiss xmm6, xmm2
movss dword [ebp - 8], xmm4
movss xmm4, dword [ebp - 0x18]
addss xmm4, xmm7
movss xmm7, dword [0x102bd7ac]
jbe 0x100ccd32
movss xmm3, dword [ebp - 0x14]
movaps xmm2, xmm6
jmp 0x100ccd41
movss xmm0, dword [ebp - 8]
minss xmm2, xmm7
movaps xmm1, xmm4
movaps xmm3, xmm5
movss xmm5, dword [0x102bda54]
movss xmm4, dword [0x102bd73c]
mulss xmm2, xmm5
addss xmm2, xmm4
cvttss2si eax, xmm2
shl eax, 8
or edx, eax
comiss xmm6, xmm1
jbe 0x100ccd6c
movaps xmm1, xmm6
jmp 0x100ccd73
minss xmm1, xmm7
movaps xmm0, xmm3
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si eax, xmm1
or edx, eax
comiss xmm6, xmm0
jbe 0x100ccd8b
movaps xmm0, xmm6
jmp 0x100ccd8f
minss xmm0, xmm7
mov eax, dword [esi + 0x38]
add edi, 8
mulss xmm0, xmm5
addss xmm0, xmm4
cvttss2si ecx, xmm0
shl ecx, 0x18
or ecx, edx
mov dword [eax + 0x10], ecx
add dword [esi + 0x38], 0x14
sub dword [ebp - 0x2c], 1
jne 0x100ccbf1
mov edi, 2
nop dword [eax]
mov ecx, dword [esi + 0x3c]
mov ax, word [esi + 0x34]
movzx edx, di
inc edi
mov word [ecx], ax
movzx ecx, word [esi + 0x34]
mov eax, dword [esi + 0x3c]
dec cx
add cx, dx
mov word [eax + 2], cx
mov eax, dword [esi + 0x3c]
movzx ecx, word [esi + 0x34]
add cx, dx
mov word [eax + 4], cx
add dword [esi + 0x3c], 6
mov eax, dword [ebx + 0xc]
cmp edi, eax
jl 0x100ccdc0
movzx eax, ax
add dword [esi + 0x34], eax
lea esp, [ebp - 0x68]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101f36c3
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc