Function at 0x6cc4b660
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
add esp, 0xffffff80
mov esi, dword [ebp + 8]
movzx edx, word [esi + 0x14]
test dx, dx
je 0x6cc4b75a
mov eax, dword [esi + 0x34]
lea edx, [edx + edx*2]
mov edi, esi
lea ecx, [eax + edx*4]
mov ebx, eax
mov dword [esp + 0x2c], ecx
jmp 0x6cc4b69d
add ebx, 0xc
cmp dword [esp + 0x2c], ebx
je 0x6cc4b758
movzx esi, word [ebx + 4]
cmp si, 4
jbe 0x6cc4b690
movzx eax, word [ebx]
mov edx, eax
shl edx, 4
add edx, dword [edi + 0x30]
test byte [edx], 4
jne 0x6cc4b690
movzx edx, word [edi + 0x16]
test dx, dx
je 0x6cc4b690
sub esi, 5
mov dword [esp + 0x38], ebx
movzx esi, si
lea ecx, [esi + esi*4]
mov esi, dword [edi + 0x4c]
shl ecx, 2
mov dword [esp + 0x30], ecx
lea ecx, [edx*8]
mov dword [esp + 0x34], ecx
lea eax, [esi + eax*4]
xor esi, esi
mov ebx, esi
mov esi, eax
lea esi, [esi]
nop
mov eax, dword [esp + 0x38]
movss xmm0, dword [esi]
movss dword [esp + 4], xmm0
mov dword [esp], eax
call fcn.6cc4b100
mov edx, dword [edi + 0x38]
mov eax, dword [esp + 0x30]
fstp dword [esp + 0x3c]
movss xmm1, dword [esp + 0x3c]
add eax, dword [edx + ebx + 4]
movss xmm0, dword [eax + 0xc]
mov edx, eax
comiss xmm1, xmm0
ja 0x6cc4b730
movss xmm0, dword [eax + 8]
maxss xmm0, xmm1
mov eax, dword [esp + 0x34]
add ebx, 8
movss dword [edx + 4], xmm0
cmp ebx, eax
jne 0x6cc4b6f0
mov ebx, dword [esp + 0x38]
add ebx, 0xc
cmp dword [esp + 0x2c], ebx
jne 0x6cc4b69d
lea esi, [esi]
mov esi, edi
mov eax, dword [esi + 0x58]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x6cc4b91d
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 4]
cvttss2si ecx, dword [eax + 0xcc]
movss xmm1, dword [eax + 4]
cvttss2si edi, dword [eax + 0xb8]
cvttss2si edx, dword [eax + 0x54]
cvttss2si esi, dword [eax + 0xa4]
cvttss2si ebx, dword [eax + 0x18]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edi
cvttss2si ecx, dword [eax + 0x40]
cvttss2si edi, dword [eax + 0x2c]
mov dword [esp + 0x28], edx
cvttss2si edx, dword [eax + 0x90]
mov dword [esp + 0x30], esi
cvttss2si esi, dword [eax + 0xf4]
mov dword [esp + 0x2c], ebx
cvttss2si ebx, dword [eax + 0x68]
movzx ecx, cl
shl ecx, 8
movss xmm0, dword [eax + 0x1a8]
mov dword [esp + 0x20], edx
mov edx, edi
movzx edi, dl
mov edx, esi
movss dword [esp + 0x40], xmm0
movss xmm0, dword [0x6cc6d640]
or ecx, edi
mov dword [esp + 0x24], ebx
movzx esi, dl
movzx edx, byte [esp + 0x20]
cvttss2si ebx, dword [eax + 0x7c]
shl ecx, 8
shufps xmm0, xmm0, 0
movaps xmm2, xmm0
or ecx, esi
movzx edi, byte [esp + 0x2c]
cmpleps xmm2, xmm1
shl ecx, 8
mov esi, ecx
movzx ecx, byte [esp + 0x24]
shl edx, 8
movzx ebx, bl
andps xmm0, xmm2
subps xmm1, xmm0
or edx, ebx
pslld xmm2, 0x1f
or esi, edi
shl edx, 8
mov dword [esp + 0x48], esi
or edx, ecx
movzx ecx, byte [esp + 0x28]
cvttps2dq xmm1, xmm1
pxor xmm1, xmm2
shl edx, 8
movd dword [esp + 0x44], xmm1
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x2c]
or edx, edi
mov dword [esp + 0x4c], edx
cvttss2si edx, dword [eax + 0xe0]
movzx ecx, byte [esp + 0x38]
movss xmm1, dword [eax + 0x194]
movss xmm0, dword [eax + 0x180]
movzx edx, dl
movss xmm2, dword [eax + 0x16c]
unpcklps xmm0, xmm1
shl edx, 8
movss xmm1, dword [eax + 0x158]
movlps qword [esp + 0x6c], xmm0
or edx, ecx
movzx ecx, byte [esp + 0x34]
movss xmm3, dword [eax + 0x144]
unpcklps xmm1, xmm2
shl edx, 8
movlps qword [esp + 0x64], xmm1
movss xmm2, dword [eax + 0x130]
movss xmm4, dword [eax + 0x11c]
unpcklps xmm2, xmm3
movss xmm3, dword [eax + 0x108]
lea eax, [esp + 0x40]
or edx, ecx
mov dword [esp + 8], eax
movzx ecx, byte [esp + 0x30]
shl edx, 8
mov eax, dword [esp + 0x3c]
unpcklps xmm3, xmm4
movlps qword [esp + 0x5c], xmm2
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x34
or edx, ecx
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 0x50], edx
movlps qword [esp + 0x54], xmm3
call fcn.6cc54ca0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret