public object ParseAsn() { object obj2 = null; if (MessageContents != null) { return(MessageContents); } if (L3MessageContents == null) { return(null); } BitArrayInputStream input = new BitArrayInputStream(new MemoryStream(L3MessageContents)); try { switch (_AsnType.MsgDepend) { case "BCCH_BCH_Message": obj2 = BCCH_BCH_Message.PerDecoder.Instance.Decode(input); goto Label_0199; case "BCCH_DL_SCH_Message": obj2 = BCCH_DL_SCH_Message.PerDecoder.Instance.Decode(input); goto Label_0199; case "MCCH_Message": obj2 = MCCH_Message.PerDecoder.Instance.Decode(input); goto Label_0199; case "DL_CCCH_Message": obj2 = DL_CCCH_Message.PerDecoder.Instance.Decode(input); goto Label_0199; case "DL_DCCH_Message": obj2 = DL_DCCH_Message.PerDecoder.Instance.Decode(input); goto Label_0199; case "UL_CCCH_Message": obj2 = UL_CCCH_Message.PerDecoder.Instance.Decode(input); goto Label_0199; case "UL_DCCH_Message": obj2 = UL_DCCH_Message.PerDecoder.Instance.Decode(input); goto Label_0199; case "X2AP_PDU": obj2 = X2AP_PDU.PerDecoder.Instance.Decode(input); goto Label_0199; case "S1AP_PDU": obj2 = S1AP_PDU.PerDecoder.Instance.Decode(input); goto Label_0199; } } catch (Exception exception) { Console.WriteLine(exception); } finally { input.Dispose(); } Label_0199: MessageContents = obj2; return(obj2); }