abstract class QuickSortProgram { public static void Main(System.String[] args) { IL_00: // No-op IL_01: System.String[] expr01 = args; IL_02: int expr02 = arg1.Length; IL_03: int expr03 = (Int32)arg1; IL_04: object expr04 = new int[arg1]; IL_09: V_0 = arg1; IL_0A: short expr0A = 0; IL_0B: V_1 = arg1; IL_0C: goto IL_1F; IL_0E: // No-op IL_0F: System.Int32[] expr0F = V_0; IL_10: int expr10 = V_1; IL_11: System.String[] expr11 = args; IL_12: int expr12 = V_1; IL_13: object expr13 = arg1[arg2]; IL_14: int expr14 = System.Int32.Parse(arg0); IL_19: arg1[arg2] = arg3; IL_1A: // No-op IL_1B: int expr1B = V_1; IL_1C: short expr1C = 1; IL_1D: int expr1D = arg1 + arg2; IL_1E: V_1 = arg1; IL_1F: int expr1F = V_1; IL_20: System.Int32[] expr20 = V_0; IL_21: int expr21 = arg1.Length; IL_22: int expr22 = (Int32)arg1; IL_23: bool expr23 = arg1 < arg2; IL_25: V_2 = arg1; IL_26: bool expr26 = V_2; IL_27: if (arg1) goto IL_0E; IL_29: System.Int32[] expr29 = V_0; IL_2A: short expr2A = 0; IL_2B: System.Int32[] expr2B = V_0; IL_2C: int expr2C = arg1.Length; IL_2D: int expr2D = (Int32)arg1; IL_2E: short expr2E = 1; IL_2F: int expr2F = arg1 - arg2; IL_30: QuickSortProgram.QuickSort(arg0, arg1, arg2); IL_35: // No-op IL_36: short expr36 = 0; IL_37: V_1 = arg1; IL_38: goto IL_5C; IL_3A: // No-op IL_3B: System.Int32[] expr3B = V_0; IL_3C: int expr3C = V_1; IL_3D: object expr3D = arg1[arg2]; IL_42: string expr42 = arg1.ToString(); IL_47: string expr47 = " "; IL_4C: string expr4C = System.String.Concat(arg0, arg1); IL_51: System.Console.Write(arg0); IL_56: // No-op IL_57: // No-op IL_58: int expr58 = V_1; IL_59: short expr59 = 1; IL_5A: int expr5A = arg1 + arg2; IL_5B: V_1 = arg1; IL_5C: int expr5C = V_1; IL_5D: System.Int32[] expr5D = V_0; IL_5E: int expr5E = arg1.Length; IL_5F: int expr5F = (Int32)arg1; IL_60: bool expr60 = arg1 < arg2; IL_62: V_2 = arg1; IL_63: bool expr63 = V_2; IL_64: if (arg1) goto IL_3A; IL_66: return; } public static void QuickSort(System.Int32[] array, int left, int right) { IL_00: // No-op IL_01: int expr01 = right; IL_02: int expr02 = left; IL_03: bool expr03 = arg1 > arg2; IL_05: short expr05 = 0; IL_06: bool expr06 = arg1 == arg2; IL_08: V_2 = arg1; IL_09: bool expr09 = V_2; IL_0A: if (arg1) goto IL_34; IL_0C: // No-op IL_0D: int expr0D = left; IL_0E: int expr0E = right; IL_0F: int expr0F = arg1 + arg2; IL_10: short expr10 = 2; IL_11: int expr11 = arg1 / arg2; IL_12: V_0 = arg1; IL_13: System.Int32[] expr13 = array; IL_14: int expr14 = left; IL_15: int expr15 = right; IL_16: int expr16 = V_0; IL_17: int expr17 = QuickSortProgram.Partition(arg0, arg1, arg2, arg3); IL_1C: V_1 = arg1; IL_1D: System.Int32[] expr1D = array; IL_1E: int expr1E = left; IL_1F: int expr1F = V_1; IL_20: short expr20 = 1; IL_21: int expr21 = arg1 - arg2; IL_22: QuickSortProgram.QuickSort(arg0, arg1, arg2); IL_27: // No-op IL_28: System.Int32[] expr28 = array; IL_29: int expr29 = V_1; IL_2A: short expr2A = 1; IL_2B: int expr2B = arg1 + arg2; IL_2C: int expr2C = right; IL_2D: QuickSortProgram.QuickSort(arg0, arg1, arg2); IL_32: // No-op IL_33: // No-op IL_34: return; } private static int Partition(System.Int32[] array, int left, int right, int pivotIndex) { IL_00: // No-op IL_01: System.Int32[] expr01 = array; IL_02: int expr02 = pivotIndex; IL_03: int expr03 = arg1[arg2]; IL_04: V_0 = arg1; IL_05: System.Int32[] expr05 = array; IL_06: int expr06 = pivotIndex; IL_07: int expr07 = right; IL_08: QuickSortProgram.Swap(arg0, arg1, arg2); IL_0D: // No-op IL_0E: int expr0E = left; IL_0F: V_1 = arg1; IL_10: int expr10 = left; IL_11: V_2 = arg1; IL_12: goto IL_35; IL_14: // No-op IL_15: System.Int32[] expr15 = array; IL_16: int expr16 = V_2; IL_17: int expr17 = arg1[arg2]; IL_18: int expr18 = V_0; IL_19: bool expr19 = arg1 > arg2; IL_1B: V_4 = arg1; IL_1D: bool expr1D = V_4; IL_1F: if (arg1) goto IL_30; IL_21: // No-op IL_22: System.Int32[] expr22 = array; IL_23: int expr23 = V_1; IL_24: int expr24 = V_2; IL_25: QuickSortProgram.Swap(arg0, arg1, arg2); IL_2A: // No-op IL_2B: int expr2B = V_1; IL_2C: short expr2C = 1; IL_2D: int expr2D = arg1 + arg2; IL_2E: V_1 = arg1; IL_2F: // No-op IL_30: // No-op IL_31: int expr31 = V_2; IL_32: short expr32 = 1; IL_33: int expr33 = arg1 + arg2; IL_34: V_2 = arg1; IL_35: int expr35 = V_2; IL_36: int expr36 = right; IL_37: bool expr37 = arg1 < arg2; IL_39: V_4 = arg1; IL_3B: bool expr3B = V_4; IL_3D: if (arg1) goto IL_14; IL_3F: System.Int32[] expr3F = array; IL_40: int expr40 = right; IL_41: int expr41 = V_1; IL_42: QuickSortProgram.Swap(arg0, arg1, arg2); IL_47: // No-op IL_48: int expr48 = V_1; IL_49: V_3 = arg1; IL_4A: goto IL_4C; IL_4C: int expr4C = V_3; IL_4D: return arg1; } private static void Swap(System.Int32[] array, int index1, int index2) { IL_00: // No-op IL_01: System.Int32[] expr01 = array; IL_02: int expr02 = index1; IL_03: int expr03 = arg1[arg2]; IL_04: V_0 = arg1; IL_05: System.Int32[] expr05 = array; IL_06: int expr06 = index1; IL_07: System.Int32[] expr07 = array; IL_08: int expr08 = index2; IL_09: int expr09 = arg1[arg2]; IL_0A: arg1[arg2] = arg3; IL_0B: System.Int32[] expr0B = array; IL_0C: int expr0C = index2; IL_0D: int expr0D = V_0; IL_0E: arg1[arg2] = arg3; IL_0F: return; } }