public Class191(Class190 class1901, int int4, int int5, int int6) { _class1900 = class1901; Int0 = int5; _int3 = int6; Short0 = new short[int4]; _int2 = new int[int6]; }
private void method_0(byte[] byte0) { var array = new int[16]; var array2 = new int[16]; for (var i = 0; i < byte0.Length; i++) { int num = byte0[i]; if (num > 0) { array[num]++; } } var num2 = 0; var num3 = 512; for (var j = 1; j <= 15; j++) { array2[j] = num2; num2 += array[j] << 16 - j; if (j >= 10) { var num4 = array2[j] & 130944; var num5 = num2 & 130944; num3 += num5 - num4 >> 16 - j; } } _short0 = new short[num3]; var num6 = 512; for (var k = 15; k >= 10; k--) { var num7 = num2 & 130944; num2 -= array[k] << 16 - k; var num8 = num2 & 130944; for (var l = num8; l < num7; l += 128) { _short0[Class190.smethod_0(l)] = (short)(-num6 << 4 | k); num6 += 1 << k - 9; } } for (var m = 0; m < byte0.Length; m++) { int num9 = byte0[m]; if (num9 != 0) { num2 = array2[num9]; int num10 = Class190.smethod_0(num2); if (num9 <= 9) { do { _short0[num10] = (short)(m << 4 | num9); num10 += 1 << num9; } while (num10 < 512); } else { int num11 = _short0[num10 & 511]; var num12 = 1 << (num11 & 15); num11 = -(num11 >> 4); do { _short0[num11 | num10 >> 9] = (short)(m << 4 | num9); num10 += 1 << num9; } while (num10 < num12); } array2[num9] = num2 + (1 << 16 - num9); } } }