예제 #1
0
        protected Task StartSTATask(Action func)
        {
label_1:
            int num1 = -396204695;
            Task task;

            while (true)
            {
                int    num2 = -1882111531;
                uint   num3;
                Thread thread;
                TaskCompletionSource <object> tcs;
                switch ((num3 = (uint)(num1 ^ num2)) % 7U)
                {
                case 0:
                    num1 = (int)num3 * 354809277 ^ 453180871;
                    continue;

                case 1:
                    JoinAttack.\u206C‭‭‌‪‪‌‬​​‫‍‍‬‎‭‮‭‭‎‌‍‌‭‌‎‫‬‮(thread);
                    num1 = (int)num3 * 345773881 ^ -1515043857;
                    continue;

                case 2:
                    tcs    = new TaskCompletionSource <object>();
                    thread = JoinAttack.\u206F‌‍‍‮​‮‭‬‎‮‍​‭‫‭‌‍‭‪‏‮‏‌‬‮((ThreadStart)(() =>
                    {
                        try
                        {
                            label_2:
                            int num2 = 2135717351;
                            while (true)
                            {
                                int num3 = 1344962558;
                                uint num4;
                                switch ((num4 = (uint)(num2 ^ num3)) % 6U)
                                {
                                case 0:
                                    goto label_2;

                                case 1:
                                    func.Invoke();
                                    num2 = (int)num4 * 2115475405 ^ 1380241215;
                                    continue;

                                case 2:
                                    num2 = (int)num4 * -2045662633 ^ 384423091;
                                    continue;

                                case 3:
                                    goto label_17;

                                case 4:
                                    tcs.SetResult((object)null);
                                    num2 = (int)num4 * 1162006518 ^ -2028136351;
                                    continue;

                                case 5:
                                    num2 = (int)num4 * 1865279441 ^ 819704023;
                                    continue;

                                default:
                                    goto label_13;
                                }
                            }
                            label_13:
                            return;

                            label_17:;
                        }
                        catch (Exception ex)
                        {
                            label_11:
                            int num2 = 1300745360;
                            while (true)
                            {
                                int num3 = 1344962558;
                                uint num4;
                                switch ((num4 = (uint)(num2 ^ num3)) % 5U)
                                {
                                case 0:
                                    num2 = (int)num4 * -1722933173 ^ -11178998;
                                    continue;

                                case 1:
                                    tcs.SetException(ex);
                                    num2 = (int)num4 * 1227794919 ^ 108165958;
                                    continue;

                                case 2:
                                    num2 = (int)num4 * -265963207 ^ 1555775733;
                                    continue;

                                case 3:
                                    goto label_9;

                                case 4:
                                    goto label_11;

                                default:
                                    goto label_4;
                                }
                            }
                            label_4:
                            return;

                            label_9:;
                        }
                    }));
                    JoinAttack.\u202C‪‭‮‬‎​‏​‫‌‪‎‪‌‮‪‬‍‎‮‫‫‫‍‭‮(thread, ApartmentState.STA);
                    num1 = (int)num3 * 1677934264 ^ 653834358;
                    continue;

                case 3:
                    goto label_1;

                case 4:
                    num1 = (int)num3 * -1376066048 ^ 1605591330;
                    continue;

                case 5:
                    task = (Task)tcs.get_Task();
                    num1 = (int)num3 * 68481832 ^ -721269245;
                    continue;

                default:
                    goto label_8;
                }
            }
label_8:
            return(task);
        }