public ProtocolIE_FieldPair Decode(BitArrayInputStream input) { int nBits = 0; long num3 = 0L; ProtocolIE_FieldPair pair = new ProtocolIE_FieldPair(); pair.InitDefaults(); int num4 = input.ReadBits(1) + 1; input.skipUnreadedBits(); pair.id = input.ReadBits(num4 * 8); num4 = 2; pair.firstCriticality = (Criticality)input.ReadBits(num4); input.skipUnreadedBits(); nBits = 0; while (true) { switch (input.ReadBit()) { case 0: nBits += input.ReadBits(7); goto Label_00DD; case 1: switch (input.ReadBit()) { case 0: nBits += input.ReadBits(14); goto Label_00DD; case 1: input.ReadBits(2); nBits += input.ReadBits(4) * 0x400; break; } break; } } Label_00DD: num3 = input.Position; try { pair.firstValue = X2AP_PROTOCOL_IES_PAIR.Switcher(pair.id, "FirstValue", input); input.skipUnreadedBits(); } catch (Exception) { input.skipUnreadedBits(); input.Position = num3; pair.firstValue = input.readOctetString(nBits); } if (input.Position != (num3 + nBits)) { input.Position = num3 + nBits; } num4 = 2; pair.secondCriticality = (Criticality)input.ReadBits(num4); input.skipUnreadedBits(); nBits = 0; while (true) { switch (input.ReadBit()) { case 0: nBits += input.ReadBits(7); goto Label_01ED; case 1: switch (input.ReadBit()) { case 0: nBits += input.ReadBits(14); goto Label_01ED; case 1: input.ReadBits(2); nBits += input.ReadBits(4) * 0x400; break; } break; } } Label_01ED: num3 = input.Position; try { pair.secondValue = X2AP_PROTOCOL_IES_PAIR.Switcher(pair.id, "SecondValue", input); input.skipUnreadedBits(); } catch (Exception) { input.skipUnreadedBits(); input.Position = num3; pair.secondValue = input.readOctetString(nBits); } if (input.Position != (num3 + nBits)) { input.Position = num3 + nBits; } return pair; }
public ProtocolIE_FieldPair Decode(BitArrayInputStream input) { int nBits = 0; long num3 = 0L; ProtocolIE_FieldPair pair = new ProtocolIE_FieldPair(); pair.InitDefaults(); int num4 = input.readBits(1) + 1; input.skipUnreadedBits(); pair.id = input.readBits(num4 * 8); num4 = 2; pair.firstCriticality = (Criticality)input.readBits(num4); input.skipUnreadedBits(); nBits = 0; while (true) { switch (input.readBit()) { case 0: nBits += input.readBits(7); goto Label_00DD; case 1: switch (input.readBit()) { case 0: nBits += input.readBits(14); goto Label_00DD; case 1: input.readBits(2); nBits += input.readBits(4) * 0x400; break; } break; } } Label_00DD: num3 = input.Position; try { pair.firstValue = X2AP_PROTOCOL_IES_PAIR.Switcher(pair.id, "FirstValue", input); input.skipUnreadedBits(); } catch (Exception) { input.skipUnreadedBits(); input.Position = num3; pair.firstValue = input.readOctetString(nBits); } if (input.Position != (num3 + nBits)) { input.Position = num3 + nBits; } num4 = 2; pair.secondCriticality = (Criticality)input.readBits(num4); input.skipUnreadedBits(); nBits = 0; while (true) { switch (input.readBit()) { case 0: nBits += input.readBits(7); goto Label_01ED; case 1: switch (input.readBit()) { case 0: nBits += input.readBits(14); goto Label_01ED; case 1: input.readBits(2); nBits += input.readBits(4) * 0x400; break; } break; } } Label_01ED: num3 = input.Position; try { pair.secondValue = X2AP_PROTOCOL_IES_PAIR.Switcher(pair.id, "SecondValue", input); input.skipUnreadedBits(); } catch (Exception) { input.skipUnreadedBits(); input.Position = num3; pair.secondValue = input.readOctetString(nBits); } if (input.Position != (num3 + nBits)) { input.Position = num3 + nBits; } return(pair); }