From fd065ac619e5c986daeb75d9440513f6cc0406b3 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 28 Jun 2020 04:33:05 +0000 Subject: [PATCH] more progress --- dump-spo2.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/dump-spo2.c b/dump-spo2.c index bc1e97d57f..02acd3af6a 100644 --- a/dump-spo2.c +++ b/dump-spo2.c @@ -717,7 +717,10 @@ parse_NavHead(void) match_byte_assert(2); match_zeros_assert(24); match_byte_assert(1); - match_zeros_assert(7); + match_zeros_assert(3); + if (!match_byte(1)) + match_byte_assert(0); + match_zeros_assert(3); match_DspSimpleText(); parse_flexible(); } @@ -745,6 +748,21 @@ parse_NavOleItem(void) match_byte_assert(0); } +static void +parse_NavTitle(void) +{ + match_byte_assert(2); + match_zeros_assert(8); + match_u32_assert(24); + get_u32(); + pos++; + match_byte_assert(4); + match_zeros_assert(2); + get_u32(); + match_u32_assert(2); + match_u32_assert(1); +} + static void parse_flexible(void) { @@ -766,6 +784,8 @@ parse_flexible(void) match_zeros_assert(14); else if (!strcmp(heading, "NavOleItem")) parse_NavOleItem(); + else if (!strcmp(heading, "NavTitle")) + parse_NavTitle(); else { fprintf(stderr, "don't know %s at offset 0x%x: ", heading, start); @@ -964,6 +984,8 @@ main(int argc, char *argv[]) parse_flexible(); parse_flexible(); parse_flexible(); + parse_flexible(); + parse_flexible(); exit(0); puts(get_padded_string(32)); if (!match_u32(80)) -- 2.30.2