object obj3;
SerializedDataWithType type = SerializeHelper.ByteArrayToObject(serializedWithTypeData) as SerializedDataWithType;
if (type != null)
{
Type typeFromProgID = Type.GetTypeFromProgID(type.TypeName);
bool flag = typeFromProgID == null;
while (!flag)
{
object deserializeObject = Activator.CreateInstance(typeFromProgID);
if (0x7fffffff == 0)
{
return obj3;
}
if (0 == 0)
{
DeserializeObject(deserializeObject, type.SerializedData);
return deserializeObject;
}
}
}
do
{
obj3 = null;
}
while (-1 == 0);
return obj3;