fix cs_group_name() after the change on generic group ids
diff --git a/arch/AArch64/AArch64Mapping.c b/arch/AArch64/AArch64Mapping.c
index c08d17c..683d2e8 100644
--- a/arch/AArch64/AArch64Mapping.c
+++ b/arch/AArch64/AArch64Mapping.c
@@ -14802,23 +14802,31 @@
 
 #ifndef CAPSTONE_DIET
 static name_map group_name_maps[] = {
+	// generic groups
 	{ ARM64_GRP_INVALID, NULL },
+	{ ARM64_GRP_JUMP, "jump" },
+
+	// architecture-specific groups
 	{ ARM64_GRP_CRYPTO, "crypto" },
 	{ ARM64_GRP_FPARMV8, "fparmv8" },
 	{ ARM64_GRP_NEON, "neon" },
 	{ ARM64_GRP_CRC, "crc" },
 
-	{ ARM64_GRP_JUMP, "jump" },
 };
 #endif
 
 const char *AArch64_group_name(csh handle, unsigned int id)
 {
 #ifndef CAPSTONE_DIET
-	if (id >= ARM64_GRP_ENDING)
+	// verify group id
+	if (id >= ARM64_GRP_ENDING || (id > ARM64_GRP_JUMP && id < ARM64_GRP_CRYPTO))
 		return NULL;
 
-	return group_name_maps[id].name;
+	// NOTE: when new generic groups are added, 2 must be changed accordingly
+	if (id >= 128)
+		return group_name_maps[id - 128 + 2].name;
+	else
+		return group_name_maps[id].name;
 #else
 	return NULL;
 #endif