Function at 0x4858c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ecx
mov edx, dword [esp + 0x10]
movss xmm0, dword [0x4d3a88]
push ebx
mov ebx, dword [esp + 0x10]
push ebp
mov ebp, dword [esp + 0x10]
movss dword [edx], xmm0
mov edx, dword [esp + 0x1c]
push esi
lea ecx, [eax*4]
push edi
cvttss2si edi, dword [esp + 0x28]
mov byte [esp + 0x1c], 0
mov dword [esp + 0x10], ecx
mov dword [ebx], 0
mov dword [ebp + 0xc0], 0
test edx, edx
je 0x485a1a
nop
mov ecx, dword [ebx]
mov al, byte [ecx + edx]
test al, al
je 0x485a1a
cmp al, 0xa
jne 0x48592b
cmp byte [ebp + 0x70], 0
je 0x485a55
movzx eax, al
inc ecx
mov dword [ebx], ecx
cmp eax, 0xff
je 0x485910
mov esi, dword [ebp + 0x68]
lea edx, [eax + eax*4]
lea esi, [esi + edx*4]
test eax, eax
je 0x485971
mov edx, dword [esp + 0x24]
cmp byte [ecx + edx], 0
je 0x485971
movzx ecx, byte [edx]
movzx eax, ax
shl eax, 0x10
add eax, ecx
mov dword [esp + 0x18], eax
lea ecx, [ebp + 0x44]
lea eax, [esp + 0x18]
call fcn.00487820
test eax, eax
je 0x485971
add edi, dword [eax + 4]
movsx edx, word [esi + 0x10]
add edx, dword [ebp + 0xa8]
mov ecx, dword [ebp + 0xc0]
add edi, edx
mov edx, dword [ebp + 0xbc]
lea esi, [ebp + 0xb8]
mov eax, edx
cvtsi2ss xmm0, edi
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x4d33c8]
shr eax, 1
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x28], xmm0
cmp ecx, eax
jae 0x4859bd
mov eax, dword [esi]
movss dword [eax + ecx*4], xmm0
inc dword [esi + 8]
jmp 0x485a05
inc ecx
mov dword [esi + 8], ecx
test dl, 1
jne 0x485a05
lea ecx, [eax - 1]
test eax, ecx
jne 0x4859e6
add eax, eax
jne 0x4859d6
mov eax, 1
push esi
call fcn.00431240
test eax, eax
je 0x485a05
movss xmm0, dword [esp + 0x28]
mov edx, dword [esi + 4]
mov eax, dword [esi]
shr edx, 1
movss dword [eax + edx*4], xmm0
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 0xfffffffe
add ecx, 2
and eax, 1
xor ecx, eax
mov dword [esi + 4], ecx
cmp edi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
jl 0x485910
dec dword [ebx]
mov byte [esp + 0x1c], 1
cmp byte [esp + 0x2c], 0
je 0x485a79
cmp byte [esp + 0x1c], 0
je 0x485ab8
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
jle 0x485afa
inc ecx
mov byte [eax + edx], 0x2e
cmp ecx, 3
je 0x485afa
dec eax
test eax, eax
jg 0x485a38
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0x18
mov eax, ecx
test eax, eax
je 0x485afa
mov edx, dword [ebp + 0xb8]
fld dword [edx + eax*4 - 4]
mov eax, dword [esp + 0x20]
fstp dword [eax]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0x18
cmp byte [esp + 0x1c], 0
je 0x485ab8
mov ecx, dword [ebx]
test ecx, ecx
jle 0x485ac1
movzx eax, byte [ecx + edx]
cmp eax, 0x20
je 0x485ab4
cmp eax, 9
je 0x485ab4
cmp eax, 0x2d
je 0x485ab4
cmp eax, 0x2f
je 0x485ab4
cmp eax, 0x3a
je 0x485ab4
cmp eax, 0x2e
je 0x485ab4
cmp eax, 0x7c
je 0x485ab4
dec ecx
test ecx, ecx
jg 0x485a86
jmp 0x485ac1
mov dword [ebx], ecx
jmp 0x485ac1
mov eax, dword [ebx]
test eax, eax
je 0x485ac1
dec eax
mov dword [ebx], eax
mov eax, dword [ebp + 0xc0]
mov ecx, dword [ebx]
cmp ecx, eax
jae 0x485ae6
mov edx, dword [ebp + 0xb8]
mov eax, dword [esp + 0x20]
fld dword [edx + ecx*4]
fstp dword [eax]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0x18
test eax, eax
je 0x485afa
mov ecx, dword [ebp + 0xb8]
fld dword [ecx + eax*4 - 4]
mov edx, dword [esp + 0x20]
fstp dword [edx]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret 0x18