// Token: 0x06001158 RID: 4440 // RVA: 0x0005EB80 File Offset: 0x0005CD80 internal void method_0(Class137 class137_0) { short[] array = this.short_0; short[] short_ = this.class144_0.short_2; int num = this.class144_0.int_0; int num2 = -1; class137_0.int_8 = 0; class137_0.int_9 = Class145.int_5; for (int i = 0; i < num; i++) { if (array[i * 2] != 0) { num2 = (class137_0.int_7[++class137_0.int_8] = i); class137_0.sbyte_1[i] = 0; } else { array[i * 2 + 1] = 0; } } int num3; while (class137_0.int_8 < 2) { num3 = (class137_0.int_7[++class137_0.int_8] = ((num2 < 2) ? (++num2) : 0)); array[num3 * 2] = 1; class137_0.sbyte_1[num3] = 0; class137_0.int_24--; if (short_ != null) { class137_0.int_28 -= (int)short_[num3 * 2 + 1]; } } this.int_6 = num2; for (int i = class137_0.int_8 / 2; i >= 1; i--) { class137_0.method_19(array, i); } num3 = num; do { int i = class137_0.int_7[1]; class137_0.int_7[1] = class137_0.int_7[class137_0.int_8--]; class137_0.method_19(array, 1); int num4 = class137_0.int_7[1]; class137_0.int_7[--class137_0.int_9] = i; class137_0.int_7[--class137_0.int_9] = num4; array[num3 * 2] = array[i * 2] + array[num4 * 2]; class137_0.sbyte_1[num3] = (sbyte)(Math.Max((byte)class137_0.sbyte_1[i], (byte)class137_0.sbyte_1[num4]) + 1); array[i * 2 + 1] = (array[num4 * 2 + 1] = (short)num3); class137_0.int_7[1] = num3++; class137_0.method_19(array, 1); } while (class137_0.int_8 >= 2); class137_0.int_7[--class137_0.int_9] = class137_0.int_7[1]; this.method_1(class137_0); Class145.smethod_2(array, num2, class137_0.short_1); }