Function at 0x404820
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
movss xmm3, dword [0x4fd2b0]
mov eax, 0x4e9450
push esi
mov esi, ecx
mov dword [ebp - 4], 0
push edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0x11
mov edi, dword [esi + 0x70]
mov dword [ebp - 0x14], edi
nop
movzx eax, byte [eax]
xor edx, edx
shl eax, 0xc
movss xmm1, dword [eax + 0x98ab20]
movss xmm2, dword [eax + 0x94ab20]
mov eax, edx
inc edx
shl eax, 0xb
movzx ecx, ax
mov eax, dword [ebp - 4]
movzx eax, ax
inc dword [ebp - 4]
movss xmm0, dword [ecx*4 + 0x98ab20]
mulss xmm0, xmm1
lea eax, [eax + eax*2]
add eax, eax
mulss xmm0, dword [esi + 0x68]
movss dword [edi + eax*8], xmm0
movss xmm0, dword [ecx*4 + 0x94ab20]
mulss xmm0, xmm1
mulss xmm0, dword [esi + 0x68]
movss dword [edi + eax*8 + 4], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi + 0x68]
xorps xmm0, xmm3
movss dword [edi + eax*8 + 8], xmm0
cmp dx, 0x21
jb 0x404868
mov eax, dword [ebp - 0x10]
inc eax
sub dword [ebp - 0xc], 1
mov dword [ebp - 0x10], eax
jne 0x404850
mov edx, dword [ebp - 0x14]
xor edi, edi
movss xmm3, dword [0x4fc168]
add edx, 0x2c
movss xmm4, dword [0x4fc0a4]
movss xmm5, dword [0x4fc4ec]
movss xmm6, dword [0x4fc254]
movss xmm7, dword [0x4fbfb8]
mov dword [ebp - 0x10], 0xfffffffb
mov dword [ebp - 4], 0x4e9450
mov eax, 0x2000
mov dword [ebp - 0x14], 0x21
mov ecx, 0x20
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], ecx
nop dword [eax + eax]
cmp di, 4
jae 0x4049a3
movzx ecx, ax
mov eax, dword [ebp - 4]
movss xmm0, dword [0x4fc1b0]
movzx eax, byte [eax]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movaps xmm1, xmm2
divss xmm1, dword [0x4fc82c]
divss xmm2, dword [0x4fc86c]
mulss xmm1, dword [ecx*4 + 0x98ab20]
mulss xmm2, dword [ecx*4 + 0x94ab20]
mov ecx, dword [ebp - 0xc]
mulss xmm1, dword [0x4fc464]
subss xmm0, xmm1
movss dword [edx - 0xc], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
addss xmm0, xmm4
addss xmm2, xmm0
movss dword [edx - 8], xmm2
lea eax, [edi - 3]
cmp ax, 1
ja 0x4049d9
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
mulss xmm0, xmm5
addss xmm0, xmm6
movss dword [edx - 4], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
addss xmm0, xmm7
jmp 0x404a56
cmp di, 0xc
jae 0x404a24
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
mulss xmm0, xmm5
addss xmm0, xmm6
movss dword [edx - 4], xmm0
movzx eax, byte [esi + 8]
movd xmm0, dword [ebp - 0x10]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
mulss xmm0, dword [0x4fc018]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm3
addss xmm1, xmm7
addss xmm1, xmm0
movss dword [edx], xmm1
jmp 0x404a5a
cmp di, 0xe
jae 0x404a5a
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
mulss xmm0, xmm5
addss xmm0, xmm6
movss dword [edx - 4], xmm0
movzx eax, byte [esi + 8]
inc eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
subss xmm0, xmm7
movss dword [edx], xmm0
cmp di, 0xd
jb 0x404ad3
mov eax, dword [ebp - 4]
mov ecx, 0x20
movzx eax, byte [eax]
sub ecx, eax
mov eax, dword [ebp - 8]
movzx eax, ax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mov ecx, dword [ebp - 0xc]
movaps xmm0, xmm1
divss xmm0, dword [0x4fc82c]
divss xmm1, dword [0x4fc86c]
mulss xmm0, dword [eax*4 + 0x98ab20]
mulss xmm1, dword [eax*4 + 0x94ab20]
mulss xmm0, dword [0x4fc464]
addss xmm0, dword [0x4fc1b0]
movss dword [edx - 0xc], xmm0
movzx eax, byte [esi + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
addss xmm0, xmm4
addss xmm1, xmm0
movss dword [edx - 8], xmm1
mov eax, dword [ebp - 8]
dec ecx
add eax, 0x800
mov dword [ebp - 0xc], ecx
add edx, 0x30
mov dword [ebp - 8], eax
sub dword [ebp - 0x14], 1
jne 0x404930
inc dword [ebp - 4]
inc edi
inc dword [ebp - 0x10]
cmp di, 0x11
jb 0x404914
pop edi
pop esi
mov esp, ebp
pop ebp
ret