+ match_DspSimpleText();
+ match_DspString();
+ match_u32_assert(0);
+}
+
+static void
+parse_dimension(int i)
+{
+ printf ("%#x: dimension %d\n", pos, i);
+ if (i == 0)
+ {
+ match_zeros_assert(5);
+ match_u32_assert(1);
+ get_u16(); match_u16_assert(0x0e74); match_byte_assert(0);
+ match_DspSimpleText();
+ match_DspString();
+
+ int n_categories = get_u32();
+ for (int j = 0; j < n_categories; j++)
+ parse_category(j);
+ }
+ else
+ {
+ match_zeros_assert(6);
+
+ int n_units16 = get_u32();
+ match_u16_assert(1);
+ for (int j = 0; j < n_units16; j++)
+ get_u16();
+
+ match_byte_assert(0);
+
+ int n_units32 = get_u32();
+ match_u16_assert(0);
+ for (int j = 0; j < n_units32; j++)
+ get_u32();
+
+ get_u16(); match_byte_assert(0);
+
+ get_u16(); match_byte_assert(0);
+ get_u16(); match_byte_assert(0);
+ match_u32_assert(0);
+ match_u32_assert(1);
+
+ get_u16(); match_u16_assert(0x0e74); match_byte_assert(0);
+ match_DspSimpleText();
+ match_DspString();
+
+ int n_categories = get_u32();
+ for (int j = 0; j < n_categories; j++)
+ parse_category(j);
+ }
+}
+
+static void
+parse_PMModelItemInfo(void)
+{
+ for (int i = 0; i < n_dims; i++)
+ parse_dimension(i);
+ printf("%#x: end of model\n", pos);
+ exit(0);