Function at 0x485d10
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ecx
mov edx, dword [esp + 0x10]
movss xmm0, dword [0x4d3ab8]
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 0x485e6a
nop
mov ecx, dword [ebx]
mov al, byte [ecx + edx]
test al, al
je 0x485e6a
cmp al, 0xa
jne 0x485d7b
cmp byte [ebp + 0x70], 0
je 0x485ea5
movzx eax, al
inc ecx
mov dword [ebx], ecx
cmp eax, 0xff
je 0x485d60
mov esi, dword [ebp + 0x68]
lea edx, [eax + eax*4]
lea esi, [esi + edx*4]
test eax, eax
je 0x485dc1
mov edx, dword [esp + 0x24]
cmp byte [ecx + edx], 0
je 0x485dc1
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.00487c70
test eax, eax
je 0x485dc1
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 [0x4d33f8]
shr eax, 1
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x28], xmm0
cmp ecx, eax
jae 0x485e0d
mov eax, dword [esi]
movss dword [eax + ecx*4], xmm0
inc dword [esi + 8]
jmp 0x485e55
inc ecx
mov dword [esi + 8], ecx
test dl, 1
jne 0x485e55
lea ecx, [eax - 1]
test eax, ecx
jne 0x485e36
add eax, eax
jne 0x485e26
mov eax, 1
push esi
call fcn.004314d0
test eax, eax
je 0x485e55
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 0x485d60
dec dword [ebx]
mov byte [esp + 0x1c], 1
cmp byte [esp + 0x2c], 0
je 0x485ec9
cmp byte [esp + 0x1c], 0
je 0x485f08
mov eax, dword [ebx]
xor ecx, ecx
test eax, eax
jle 0x485f4a
inc ecx
mov byte [eax + edx], 0x2e
cmp ecx, 3
je 0x485f4a
dec eax
test eax, eax
jg 0x485e88
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 0x18
mov eax, ecx
test eax, eax
je 0x485f4a
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 0x485f08
mov ecx, dword [ebx]
test ecx, ecx
jle 0x485f11
movzx eax, byte [ecx + edx]
cmp eax, 0x20
je 0x485f04
cmp eax, 9
je 0x485f04
cmp eax, 0x2d
je 0x485f04
cmp eax, 0x2f
je 0x485f04
cmp eax, 0x3a
je 0x485f04
cmp eax, 0x2e
je 0x485f04
cmp eax, 0x7c
je 0x485f04
dec ecx
test ecx, ecx
jg 0x485ed6
jmp 0x485f11
mov dword [ebx], ecx
jmp 0x485f11
mov eax, dword [ebx]
test eax, eax
je 0x485f11
dec eax
mov dword [ebx], eax
mov eax, dword [ebp + 0xc0]
mov ecx, dword [ebx]
cmp ecx, eax
jae 0x485f36
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 0x485f4a
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