private static decimal DecodeDecimal64(ByteBuffer buffer) { byte[] numArray = new byte[8]; AmqpBitConverter.ReadBytes(buffer, numArray, 0, (int)numArray.Length); int num = 1; int num1 = 0; num = ((numArray[0] & 128) != 0 ? -1 : 1); if ((numArray[0] & 96) != 96) { num1 = (numArray[0] & 127) << 3 | (numArray[1] & 224) >> 5; numArray[0] = 0; numArray[1] = (byte)(numArray[1] & 31); } else if ((numArray[0] & 120) == 0) { num1 = (numArray[0] & 31) << 8 | (numArray[1] & 248) >> 3; numArray[0] = 0; numArray[1] = (byte)(numArray[1] & 7); numArray[1] = (byte)(numArray[1] | 32); } int num2 = (int)AmqpBitConverter.ReadUInt(numArray, 0, 4); int num3 = (int)AmqpBitConverter.ReadUInt(numArray, 4, 4); return(DecimalEncoding.CreateDecimal(num3, num2, 0, num, num1 - 398)); }
private static decimal DecodeDecimal128(ByteBuffer buffer) { byte[] numArray = new byte[16]; AmqpBitConverter.ReadBytes(buffer, numArray, 0, (int)numArray.Length); int num = 1; int num1 = 0; num = ((numArray[0] & 128) != 0 ? -1 : 1); if ((numArray[0] & 96) != 96) { num1 = (numArray[0] & 127) << 7 | (numArray[1] & 254) >> 1; numArray[0] = 0; numArray[1] = (byte)(numArray[1] & 1); } else if ((numArray[0] & 120) == 0) { return(new decimal(0)); } int num2 = (int)AmqpBitConverter.ReadUInt(numArray, 4, 4); int num3 = (int)AmqpBitConverter.ReadUInt(numArray, 8, 4); int num4 = (int)AmqpBitConverter.ReadUInt(numArray, 12, 4); return(DecimalEncoding.CreateDecimal(num4, num3, num2, num, num1 - 6176)); }