diff --git a/src/asn1c/UE-Capabilities.c b/src/asn1c/UE-Capabilities.c
new file mode 100644
index 0000000..a8a99b1
--- /dev/null
+++ b/src/asn1c/UE-Capabilities.c
@@ -0,0 +1,84 @@
+/*
+ * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
+ * From ASN.1 module "HNBAP-IEs"
+ * 	found in "../../asn1/hnbap/HNBAP-IEs.asn"
+ * 	`asn1c -gen-PER -fnative-types`
+ */
+
+#include "UE-Capabilities.h"
+
+static asn_TYPE_member_t asn_MBR_UE_Capabilities_1[] = {
+	{ ATF_NOFLAGS, 0, offsetof(struct UE_Capabilities, access_stratum_release_indicator),
+		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_Access_stratum_release_indicator,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"access-stratum-release-indicator"
+		},
+	{ ATF_NOFLAGS, 0, offsetof(struct UE_Capabilities, csg_capability),
+		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_CSG_Capability,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"csg-capability"
+		},
+	{ ATF_POINTER, 1, offsetof(struct UE_Capabilities, iE_Extensions),
+		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
+		-1,	/* IMPLICIT tag at current level */
+		&asn_DEF_IE_Extensions,
+		0,	/* Defer constraints checking to the member type */
+		0,	/* No PER visible constraints */
+		0,
+		"iE-Extensions"
+		},
+};
+static const int asn_MAP_UE_Capabilities_oms_1[] = { 2 };
+static const ber_tlv_tag_t asn_DEF_UE_Capabilities_tags_1[] = {
+	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
+};
+static const asn_TYPE_tag2member_t asn_MAP_UE_Capabilities_tag2el_1[] = {
+    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* access-stratum-release-indicator */
+    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* csg-capability */
+    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
+};
+static asn_SEQUENCE_specifics_t asn_SPC_UE_Capabilities_specs_1 = {
+	sizeof(struct UE_Capabilities),
+	offsetof(struct UE_Capabilities, _asn_ctx),
+	asn_MAP_UE_Capabilities_tag2el_1,
+	3,	/* Count of tags in the map */
+	asn_MAP_UE_Capabilities_oms_1,	/* Optional members */
+	1, 0,	/* Root/Additions */
+	2,	/* Start extensions */
+	4	/* Stop extensions */
+};
+asn_TYPE_descriptor_t asn_DEF_UE_Capabilities = {
+	"UE-Capabilities",
+	"UE-Capabilities",
+	SEQUENCE_free,
+	SEQUENCE_print,
+	SEQUENCE_constraint,
+	SEQUENCE_decode_ber,
+	SEQUENCE_encode_der,
+	SEQUENCE_decode_xer,
+	SEQUENCE_encode_xer,
+	SEQUENCE_decode_uper,
+	SEQUENCE_encode_uper,
+	SEQUENCE_decode_aper,
+	SEQUENCE_encode_aper,
+	0,	/* Use generic outmost tag fetcher */
+	asn_DEF_UE_Capabilities_tags_1,
+	sizeof(asn_DEF_UE_Capabilities_tags_1)
+		/sizeof(asn_DEF_UE_Capabilities_tags_1[0]), /* 1 */
+	asn_DEF_UE_Capabilities_tags_1,	/* Same as above */
+	sizeof(asn_DEF_UE_Capabilities_tags_1)
+		/sizeof(asn_DEF_UE_Capabilities_tags_1[0]), /* 1 */
+	0,	/* No PER visible constraints */
+	asn_MBR_UE_Capabilities_1,
+	3,	/* Elements count */
+	&asn_SPC_UE_Capabilities_specs_1	/* Additional specs */
+};
+
