def validate!
raise FormatError, "OLE2 signature is invalid" unless magic == MAGIC
if num_bat == 0 or
num_bat > 109 && num_bat > 109 + num_mbat * (1 << b_shift - 2) or
num_bat < 109 && num_mbat != 0 or
s_shift > b_shift or b_shift <= 6 or b_shift >= 31 or
byte_order != "\xfe\xff"
raise FormatError, "not valid OLE2 structured storage file"
end
if threshold != 4096 or
num_mbat == 0 && mbat_start != AllocationTable::EOC or
reserved != "\x00" * 6
Log.warn "may not be a valid OLE2 structured storage file"
end
true
end