static uint?ReadVersion(MemoryReader reader, byte?[] pattern, int offset) { var off = reader.ReadOffset(offset + pattern.TakeWhile(x => x != null).Count()); return(reader.IsInRange(off) ? (uint?)reader.Read <uint>(off) : null); }