public static string ReadSerString(this IBinaryStreamReader reader)
{
if (reader.ReadByte() == 0xFF)
return null;
reader.Position--;
uint length;
if (!reader.TryReadCompressedUInt32(out length))
return null;
return Encoding.UTF8.GetString(reader.ReadBytes((int)length));
}