Идет обфускация, пожалуйста, подождите...
Этот код не защищен, легко понять что он делает. Включить защиту!
Теперь код в безопасности. Отключить защиту
// <Module>
public static void ?(object obj, object obj2, long num, long num2, TimeSpan timeSpan)
{
    int num3;
    int num4;
    int num5;
    do
    {
        int arg_35_0 = obj.InvokeRequired ? 1 : 0;
        num3 += 208;
        num4 = arg_35_0;
        num5 = -3139;
    }
    while (Type.EmptyTypes.Length + -4658 == -14010);
    if (num4 == 0)
    {
        num3 += 29;
        object obj3 = <Module>.?(obj, obj2);
        if (num5 == -3139)
        {
            if (obj3 == null)
            {
                goto IL_75F;
            }
            switch (Type.EmptyTypes.Length + 0)
            {
            }
        }
        object arg_95_0 = obj3;
        num3 -= 176;
        object obj4 = (ProgressBar)calli(System.Windows.Forms.Control/ControlCollection(), arg_95_0, .[num3 - 59])[1];
        num4 = (obj4.InvokeRequired ? 1 : 0);
        if (num4 == 0)
        {
            Debug.Assert(!obj4.InvokeRequired);
            object arg_F6_0 = obj4;
            float arg_E0_0 = (float)num;
            float arg_E0_1 = (float)num2;
            TimeSpan timeSpan2;
            <Module>. = timeSpan2;
            num3 += 355;
            calli(System.Void(System.Int32), arg_F6_0, (int)(arg_E0_0 / arg_E0_1 * 100f), ;.[num3 - 404]);
            num3 -= 65;
            object obj5 = (Label)calli(System.Windows.Forms.Control/ControlCollection(), obj3, .[num3 - 349])[2];
            obj5.Text = calli(System.String(System.String,System.String), num.ToString(), <Module>.(((7168 & ~(num3 % 570)) == 7168) ? (Type.EmptyTypes.Length + 43067) : (sizeof(long) + -1694481604), Type.EmptyTypes.Length + 34733, ((-597377024 & 1024 * num4) == (num4 * 396 + num4 * 628 & -597377024)) ? (sizeof(Guid) + 105) : checked(-1257195602 + -259780954)), .[num3 - 351]);
            object arg_205_0 = obj3;
            . = <Module>.(checked((int)48557L), sizeof(float) + 37950, Type.EmptyTypes.Length + 217);
            obj5 = (Label)calli(System.Windows.Forms.Control/ControlCollection(), arg_205_0, .[num3 - 349])[3];
            if (calli(System.Double(), ref timeSpan, ;.[num3 - 337]) >= 1.0)
            {
                num3 -= 48;
                long num6 = num / calli(System.Double(), ref timeSpan, ;.[num3 - 289]) / 1024L;
                num4 = ((num6 <= 0L) ? 1 : 0);
                if (num4 == 0)
                {
                    long num7 = (num2 - num) / 1024L / num6;
                    double arg_2A3_0 = (double)num7;
                    num3 += 43;
                    timeSpan2 = calli(System.TimeSpan(System.Double), arg_2A3_0, ;.[num3 - 331]);
                    Control arg_6F4_0 = obj5;
                    object obj6 = new string[8];
                    obj6[0] = num6.ToString();
                    object arg_316_0 = obj6;
                    num3 += 130;
                    arg_316_0[1] = <Module>.((((1676541952 & 4296 & num3) | -1369934765) == -1369934765) ? 18742 : checked(-832238552 + -609901864), Type.EmptyTypes.Length + 26606, sizeof(int) + 71);
                    object arg_476_0 = obj6;
                    int arg_476_1 = 2;
                    int num8 = calli(System.Int32(), ref timeSpan2, ;.[num3 - 460]);
                    arg_476_0[arg_476_1] = calli(System.String(System.String), ref num8, <Module>.(sizeof(int) + 67439, (((uint)(num3 & -1414510637) >> 1) + 4160749568u == (uint)(num3 / 3612 % 4096)) ? ((num4 - -117178368 == (int)((int)((uint)num4 >> 11) << 11)) ? checked((int)unchecked((IntPtr)(2074432587 ^ 913134943))) : (Type.EmptyTypes.Length + -2114143070)) : ((~(((num3 << 22) + -3922) * 16384) != num3 / 256) ? (sizeof(ulong) + 75326) : ((2 * num4 + num4 * 14 - 5274 == (num4 + 7 * num4) * 2) ? (((num3 % 64 ^ 8113) == 0 || (-2147482894 ^ num3 / 111) == 0) ? ((((-num4 << 3 ^ num4 * 4 + num4 * 4) & 8) == 0) ? (Type.EmptyTypes.Length + -907752833) : (Type.EmptyTypes.Length + 1686862984)) : (Type.EmptyTypes.Length + -942368006)) : (Type.EmptyTypes.Length + 426750012))), -72284327 ^ -72284414), ;.[num3 - 459]);
                    object arg_4F6_0 = obj6;
                    int arg_4F6_1 = 3;
                    int arg_4F1_0 = checked((int)((long)(1005102932 + -1005080180)));
                    int arg_4F1_1 = Type.EmptyTypes.Length + 30646;
                    int num9 = <Module>.
;
                    arg_4F6_0[arg_4F6_1] = <Module>.(arg_4F1_0, arg_4F1_1, ((~(num9 << 8) & 6429) == 0) ? (((num3 / 632 & 973078528) != (int)((uint)(num3 / 214225) >> 2 & 973078528u)) ? checked(583661800 - -556083385) : (sizeof(ulong) + 430762187)) : (Type.EmptyTypes.Length + 8));
                    object arg_60F_0 = obj6;
                    int arg_60F_1 = 4;
                    num8 = calli(System.Int32(), ref timeSpan2, ;.[num3 - 458]);
                    int arg_5ED_0 = checked((int)1099L);
                    int arg_5ED_1;
                    if ((num9 << 16) - 1043333120 != 3945 + 65536 * num9)
                    {
                        arg_5ED_1 = (((-1643151360 & num9 % 29766) != 0) ? ((170 * num9 + 854 * num9 + 86592 != (int)((uint)(9728 & num9) >> 22)) ? (Type.EmptyTypes.Length + -1042653518) : (Type.EmptyTypes.Length + 575588761)) : (sizeof(byte) + 11571));
                    }
                    else
                    {
                        int num10 = <Module>.
;
                        arg_5ED_1 = ((~(num10 * 1672 + num10 * 376) == (int)((uint)(-324796416 * (num10 / 3375123)) >> 9)) ? (sizeof(uint) + 1488687707) : (969066867 ^ -106509477));
                    }
                    string arg_60A_1 = <Module>.(arg_5ED_0, arg_5ED_1, sizeof(float) + 43);
                    num3 -= 173;
                    arg_60F_0[arg_60F_1] = calli(System.String(System.String), ref num8, arg_60A_1, ;.[num3 - 286]);
                    obj6[5] = <Module>.(((368967680 * num9 / 201 ^ -2944) != 0) ? (43958 + -7180) : checked((int)1726752712L), Type.EmptyTypes.Length + 48566, Type.EmptyTypes.Length + 149);
                    object arg_6B6_0 = obj6;
                    int arg_6B6_1 = 6;
                    num8 = calli(System.Int32(), ref timeSpan2, ;.[num3 - 284]);
                    arg_6B6_0[arg_6B6_1] = calli(System.String(System.String), ref num8, <Module>.(-353698349 ^ -353723310, Type.EmptyTypes.Length + 20420, Type.EmptyTypes.Length + 116), ;.[num3 - 286]);
                    obj6[7] = <Module>.(Type.EmptyTypes.Length + 10436, checked(1361858224 - 1361856146), Type.EmptyTypes.Length + 3);
                    arg_6F4_0.Text = calli(System.String(System.String[]), obj6, ;.[num3 - 283]);
                }
                num3 += 48;
            }
        }
        else
        {
            object obj7 = new .(obj.?);
            Delegate arg_750_1 = obj7;
            object arg_728_0 = new object[4];
            num3 += 290;
            object obj8 = arg_728_0;
            obj8[0] = obj2;
            obj8[1] = num;
            obj8[2] = num2;
            obj8[3] = timeSpan;
            obj.BeginInvoke(arg_750_1, obj8);
        }
        num3 -= 114;
        IL_75F:;
    }
    else
    {
        object obj7 = new .(obj.?);
        Delegate arg_7AC_1 = obj7;
        object obj8 = new object[]
        {
            obj2,
            num,
            num2,
            timeSpan
        };
        num3 += 29;
        obj.Invoke(arg_7AC_1, obj8);
    }
}

// FTP.NET.FTPNET
public void UpdateProgress(string FullPath, long BytesTransferred, long FileSize, TimeSpan ElapsedTime)
{
    if (!base.InvokeRequired)
    {
        Panel panel = this.FindPanelByTag(FullPath);
        if (panel != null)
        {
            ProgressBar pb = (ProgressBar)panel.Controls[1];
            if (!pb.InvokeRequired)
            {
                Debug.Assert(!pb.InvokeRequired);
                pb.Value = (int)((float)BytesTransferred / (float)FileSize * 100f);
                Label label = (Label)panel.Controls[2];
                label.Text = BytesTransferred.ToString() + " bytes received";
                label = (Label)panel.Controls[3];
                if (ElapsedTime.TotalSeconds >= 1.0)
                {
                    long kbps = BytesTransferred / (long)ElapsedTime.TotalSeconds / 1024L;
                    if (kbps > 0L)
                    {
                        long secsRemaining = (FileSize - BytesTransferred) / 1024L / kbps;
                        TimeSpan time = TimeSpan.FromSeconds((double)secsRemaining);
                        label.Text = string.Concat(new string[]
                        {
                            kbps.ToString(),
                            " kb/s, ",
                            time.Hours.ToString("D2"),
                            ":",
                            time.Minutes.ToString("D2"),
                            ":",
                            time.Seconds.ToString("D2"),
                            " remaining."
                        });
                    }
                }
            }
            else
            {
                FTPNET.UpdateProgressDelegate updateProgress = new FTPNET.UpdateProgressDelegate(this.UpdateProgress);
                base.BeginInvoke(updateProgress, new object[]
                {
                    FullPath,
                    BytesTransferred,
                    FileSize,
                    ElapsedTime
                });
            }
        }
    }
    else
    {
        FTPNET.UpdateProgressDelegate updateProgress = new FTPNET.UpdateProgressDelegate(this.UpdateProgress);
        base.Invoke(updateProgress, new object[]
        {
            FullPath,
            BytesTransferred,
            FileSize,
            ElapsedTime
        });
    }
}