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); }