public static unsafe string LoadStringMaybe(DataStreamPtr reader, string ifnot) { byte[] bytes = new byte[1]; fixed(byte *buff = bytes) { reader.Read(buff, 1); } byte b = bytes[0]; bytes = new byte[3]; fixed(byte *buff = bytes) { reader.Read(buff, 3); } if (b < 99 && b > 0) { bytes = new byte[b]; fixed(byte *buff = bytes) { reader.Read(buff, b); } string str = Encoding.UTF8.GetString(bytes); return(str); } else { uint pos = reader.Tell(); pos = pos - 4; reader.Seek(pos); return(ifnot); } }