Thank you, BinaryReader seems to be what I'm looking for.
I was able to use BinaryReader.ReadUInt32() to read DWORD StrLength on all the files, which is always 7.
I set BinaryReader.BaseStream.Position=13 and used BinaryReader.ReadInt32() to read DWORD XMLLength which gave me 8640.
I then tried BinaryReader.ReadChars(8640) and it starts at the correct position but gives me too much data. Looking at the file with a hex editor shows shows DWORD XMLLength is "C0 21 00 00" and the XML data ends at offset 21C0. What am I doing wrong?