(All numbers are stored in little-endian format)
char[3] magic "BDT"
unsigned short version;
unsigned char intsize; (remaining ints are all unsigned and "intsize" bytes)
unsigned file 1 size
unsigned file 2 size
unsigned number of matches
for (number of matches) {
	unsigned match relative location 1 (this value can represent a negative)
	unsigned match relative location 2
	unsigned match size
}
<data which is not matched>
