Function at 0x497470
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
movsx eax, byte [0x7e8122]
xor edx, edx
movss xmm5, dword [0x4fc598]
movaps xmm4, xmm3
mulss xmm4, dword [0x4fc3d4]
push esi
mov ecx, dword [eax*4 + 0x7d0e30]
mov eax, ecx
movss xmm6, dword [0x4fc230]
movss xmm3, dword [0x4fc2d8]
movss xmm7, dword [0x4fc188]
shr eax, 0x10
movzx eax, al
mov dword [ebp - 0x18], eax
mov eax, ecx
shr eax, 8
movzx eax, al
mov dword [ebp - 0x10], eax
mov eax, ecx
movss dword [ebp - 0x20], xmm1
and eax, 0xff0000ff
movss xmm1, dword [ebp + 8]
mulss xmm1, dword [0x4fc3d4]
mov dword [ebp - 0x14], eax
movzx eax, cl
movss dword [ebp - 0x24], xmm2
movss dword [ebp + 8], xmm1
mov dword [ebp - 4], edx
mov dword [ebp - 0x1c], eax
push edi
movzx esi, dx
xor edi, edi
mov dword [ebp - 0xc], esi
xor cl, cl
xorps xmm2, xmm2
test di, di
je 0x497519
movss xmm0, dword [0x4fcb40]
movss dword [ebp - 8], xmm0
jmp 0x49751e
movss dword [ebp - 8], xmm5
test dx, dx
jne 0x497532
movaps xmm1, xmm4
xorps xmm1, xmmword [0x4fd2b0]
jmp 0x49768e
cmp dx, 6
jge 0x49757b
lea eax, [edx + 0xb]
mov cl, dl
shl eax, 0xc
movaps xmm0, xmm6
movzx eax, ax
subss xmm0, xmm4
movss xmm1, dword [eax*4 + 0x98ab20]
movss xmm2, dword [eax*4 + 0x94ab20]
mov al, cl
mulss xmm1, xmm6
shl al, 2
mulss xmm2, xmm6
add cl, al
shl cl, 2
addss xmm1, xmm0
addss xmm2, xmm3
jmp 0x49768e
cmp dx, 0xb
jge 0x4975c9
lea eax, [edx - 6]
mov cl, 0xb
shl eax, 0xc
sub cl, dl
movzx eax, ax
movaps xmm0, xmm4
subss xmm0, xmm6
movss xmm2, dword [eax*4 + 0x94ab20]
movss xmm1, dword [eax*4 + 0x98ab20]
mov al, cl
mulss xmm2, xmm6
shl al, 2
mulss xmm1, xmm6
add cl, al
shl cl, 2
addss xmm2, xmm3
movaps xmm3, xmm5
addss xmm1, xmm0
jmp 0x497691
jne 0x4975d6
movaps xmm1, xmm4
movaps xmm3, xmm5
jmp 0x497691
cmp dx, 0xc
jne 0x4975eb
movaps xmm1, xmm4
movaps xmm3, xmm5
subss xmm1, xmm7
jmp 0x497691
cmp dx, 0x12
jge 0x49763c
lea eax, [edx - 0xd]
mov ecx, 4
sub ecx, eax
movaps xmm0, xmm4
shl ecx, 0xc
subss xmm0, xmm6
movzx eax, cx
lea ecx, [edx - 0xc]
movss xmm2, dword [eax*4 + 0x94ab20]
movss xmm1, dword [eax*4 + 0x98ab20]
mov al, cl
mulss xmm2, xmm7
shl al, 2
mulss xmm1, xmm7
add cl, al
shl cl, 2
addss xmm2, xmm3
movaps xmm3, xmm5
addss xmm1, xmm0
jmp 0x497691
cmp dx, 0x17
jge 0x497687
lea eax, [edx - 0x12]
mov cl, 0x17
imul eax, eax, 0xf000
sub cl, dl
movaps xmm0, xmm6
subss xmm0, xmm4
movzx eax, ax
movss xmm1, dword [eax*4 + 0x98ab20]
movss xmm2, dword [eax*4 + 0x94ab20]
mov al, cl
mulss xmm1, xmm7
shl al, 2
mulss xmm2, xmm7
add cl, al
shl cl, 2
addss xmm1, xmm0
addss xmm2, xmm3
jmp 0x49768e
movaps xmm1, xmm7
subss xmm1, xmm4
xorps xmm3, xmm3
movss xmm0, dword [ebp + 8]
mulss xmm0, dword [ebp - 8]
movsx eax, si
lea esi, [eax + eax*2]
shl esi, 4
movss dword [esi + 0xa18a94], xmm0
movss xmm0, dword [0xa03724]
movss dword [esi + 0xa18a90], xmm1
subss xmm0, xmm2
movss dword [esi + 0xa18ab0], xmm3
movss dword [esi + 0xa18a98], xmm0
cmp dx, 0xc
jge 0x4976db
xorps xmm0, xmm0
jmp 0x4976de
movaps xmm0, xmm5
mov edx, dword [ebp - 0x10]
movaps xmm3, xmm1
mov eax, dword [ebp - 0x18]
movaps xmm1, xmm3
mulss xmm1, dword [0x97ab20]
inc edi
movzx ecx, cl
imul edx, ecx
imul eax, ecx
mulss xmm3, dword [0x9bab20]
movss dword [esi + 0xa18ab4], xmm0
or edx, dword [ebp - 0x14]
and eax, 0xffffff00
and edx, 0xffffff00
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x1c]
imul eax, ecx
shr eax, 8
or edx, eax
mov dword [esi + 0xa18aa8], edx
movss xmm2, dword [esi + 0xa18a94]
movaps xmm0, xmm2
mov edx, dword [ebp - 4]
mulss xmm0, dword [0x9bab20]
mulss xmm2, dword [0x97ab20]
subss xmm1, xmm0
addss xmm2, xmm3
movss xmm3, dword [0x4fc2d8]
movaps xmm0, xmm1
addss xmm0, dword [ebp - 0x20]
movss dword [esi + 0xa18a94], xmm2
movss dword [esi + 0xa18a90], xmm0
movss xmm0, dword [esi + 0xa18a94]
addss xmm0, dword [ebp - 0x24]
movss dword [esi + 0xa18a94], xmm0
mov esi, dword [ebp - 0xc]
add esi, 0x18
mov dword [ebp - 0xc], esi
cmp di, 2
jl 0x497500
inc edx
mov dword [ebp - 4], edx
cmp dx, 0x18
jl 0x4974f8
pop edi
pop esi
mov esp, ebp
pop ebp
ret