public void Write <T>(T value, int bits) { BinaryWriter binaryWriter_ = this.stream as BinaryWriter; int num = 0; int num2 = 0; byte value2; while (true) { IL_236: uint arg_1EC_0 = 3853054254u; while (true) { uint num3; switch ((num3 = (arg_1EC_0 ^ 3822343185u)) % 15u) { case 0u: this.preByte = 0; arg_1EC_0 = (num3 * 1308454025u ^ 2360235369u); continue; case 1u: num = bits; arg_1EC_0 = (num3 * 615170171u ^ 1083175457u); continue; case 2u: goto IL_236; case 3u: num2 = (this.count & 7); arg_1EC_0 = ((num2 != 0) ? 4047609542u : 3817100251u); continue; case 4u: num = 8 - num2; arg_1EC_0 = ((num >= bits) ? 2275874581u : 2260975821u); continue; case 5u: arg_1EC_0 = ((bits != 0) ? 2292956640u : 2290361256u); continue; case 6u: arg_1EC_0 = (num3 * 1271639527u ^ 1190542238u); continue; case 7u: arg_1EC_0 = (((num2 != 0) ? 4225350203u : 3087155715u) ^ num3 * 567680321u); continue; case 8u: bits -= num; arg_1EC_0 = (num3 * 1418491570u ^ 710958391u); continue; case 9u: this.Write <byte>(value2); arg_1EC_0 = 3397105997u; continue; case 10u: { Stream expr_D1 = AuthPacket.smethod_5(binaryWriter_); AuthPacket.smethod_41(expr_D1, AuthPacket.smethod_40(expr_D1) - 1L); arg_1EC_0 = (num3 * 2093632183u ^ 3005065087u); continue; } case 12u: { ulong num4; value2 = (byte)(((ulong)this.preByte & (ulong)(~(ulong)((1L << (num & 31)) - 1L << (num2 & 31)))) | (num4 >> bits - num & (ulong)((long)((1 << num) - 1))) << num2); this.count += num; arg_1EC_0 = 3527270891u; continue; } case 13u: { ulong num4 = (ulong)AuthPacket.smethod_15(value, AuthPacket.smethod_14(typeof(ulong).TypeHandle)); value2 = 0; arg_1EC_0 = (num3 * 2889322655u ^ 1901488133u); continue; } case 14u: arg_1EC_0 = (((AuthPacket.smethod_6(AuthPacket.smethod_5(binaryWriter_)) <= 0L) ? 1517721775u : 1685766937u) ^ num3 * 506475948u); continue; } goto Block_6; } } Block_6: this.preByte = value2; }