В классе WDBReader есть такой участок кода, но при количестве записей == 0, он будет выдавать ошибку, потому что reader.BaseStream.Position будет на 4 байта меньше чем reader.BaseStream.Length :
Код:
if (entry == 0 && size == 0 && reader.BaseStream.Position == reader.BaseStream.Length)
break;
может лучше так:
Код:
if ((entry == 0 && size == 0) || reader.BaseStream.Position == reader.BaseStream.Length)
break;