public Narc LoadNarc(BinaryReader reader) { reader.BaseStream.Seek(4L, SeekOrigin.Begin); magic = reader.ReadInt32(); narcSize = reader.ReadUInt32(); sectionSize = reader.ReadInt16(); sectionNum = reader.ReadInt16(); reader.ReadInt32(); fatbSize = reader.ReadUInt32(); fatbNum = reader.ReadUInt32(); fatb = new NarcFat_s(); uint fatbStartOffset = (uint)reader.BaseStream.Position; fatb.ReadFat(reader, fatbNum); reader.ReadInt32(); fntbSize = reader.ReadUInt32(); fntbStartOffset = (uint)reader.BaseStream.Position; fntb = new NarcFnt_s(); treeSystem = fntb.ReadFnt(reader, fntbSize, fntbStartOffset, fatb); reader.BaseStream.Position = fntbStartOffset + fntbSize; figm.magicId = reader.ReadChars(4); figm.sizeFigm = reader.ReadInt32(); figm.startFigm = (int)reader.BaseStream.Position; figm.fileData = new List <ClosableMemoryStream>(); for (int fileCounter = 0; fileCounter < fatbNum; fileCounter++) { ClosableMemoryStream actualFileStream = new ClosableMemoryStream(); //MessageBox.Show(fntb.getpad().ToString()); reader.BaseStream.Position = fatb.getFileStartAt(fileCounter) + fntbStartOffset + fntbSize; Utils.loadStream(reader, fatb.getFileEndAt(fileCounter) - fatb.getFileStartAt(fileCounter), actualFileStream); figm.fileData.Add(actualFileStream); } return(this); }
private void LoadMapBW(BinaryReader reader) { Nsbmd nsbmd; BinaryWriter writer; string[] materialListForNsbmd; PkmnMapDemuxer_Bw bw = new PkmnMapDemuxer_Bw(reader, type); mapHeaderBW = PkmnMapHeader_Bw.FromReader(reader); streamNSBMD = new ClosableMemoryStream(); writer = new BinaryWriter(streamNSBMD); writer.Write(bw.DemuxBMDBytes(mapHeaderBW, 0)); streamMovement = new ClosableMemoryStream(); writer = new BinaryWriter(streamMovement); writer.Write(bw.DemuxMovBytes(mapHeaderBW)); arrayMovementBW = MovLoader.LoadMov_Bw(streamMovement); streamObject = new ClosableMemoryStream(); writer = new BinaryWriter(streamObject); writer.Write(bw.DemuxObjBytes(mapHeaderBW)); listObjectsBW = ObjLoader.LoadObj_Bw(streamObject); nsbmd = new Nsbmd(); var reader2 = new BinaryReader(streamNSBMD); reader2.BaseStream.Position = 0; nsbmd.LoadBMD0(reader2, (int)mapHeaderBW.BMDOffset); actualModel = nsbmd; getMatrixInfo(); materialListForNsbmd = actualModel.getTexNameArray(); if (actualModel.actualTex != null) { nsbmd.MatchTextures(); } }
private void readMatrixBW(ClosableMemoryStream actualNode) { BinaryReader reader = new BinaryReader(actualNode); reader.BaseStream.Position = 4; MapMat.Width = reader.ReadUInt16(); MapMat.Height = reader.ReadUInt16(); MapMat.Headers = new List <int>(); for (int i = 0; i < MapMat.Width * MapMat.Height; i++) { int item = reader.ReadInt32(); MapMat.Headers.Add(item); } if (reader.BaseStream.Position + 1 < reader.BaseStream.Length) { MapMat.Borders = new List <int>(); for (int i = 0; i < MapMat.Width * MapMat.Height; i++) { int item = reader.ReadInt32(); MapMat.Borders.Add(item); } //MapMat.Terrain = new List<int>(); //for (int i = 0; i < MapMat.Width * MapMat.Height; i++) //{ // short item = reader.ReadInt16(); // MapMat.Terrain.Add(item); //} } }
public Nds LoadNds() { Header = new NdsHeader(this.reader); Header.ReadHeader(); ARM9 = new ClosableMemoryStream(); this.reader.BaseStream.Seek((long)Header.getARM9Offset(), SeekOrigin.Begin); Utils.loadStream(this.reader, Header.getARM9Size() + 12, ARM9); this.reader.BaseStream.Seek((long)Header.getARM9Ov_Off(), SeekOrigin.Begin); OverlayList = new NdsOverlay(); OverlayList.readOverlays(this.reader, Header.getARM9Ov_Size()); uint position = (uint)this.reader.BaseStream.Position; ARM7 = new ClosableMemoryStream(); Utils.loadStream(this.reader, Header.getARM7Size(), ARM7); FAT = new NdsFat_s(); FAT.ReadFat(this.reader, Header.getFAT_Size(), Header.getFAT_Off()); OverlayList.readOverlaysData(this.reader, position, (int)Header.getARM9Ov_Size(), FAT); FNT = new NdsFnt_s(); this.Tree = new Common.Folder_s(); this.reader.BaseStream.Seek((long)Header.getFNT_Off(), SeekOrigin.Begin); this.Tree = NdsFnt_s.readFnt(this.reader, Header.getFNT_Size(), Header.getFNT_Off(), FAT); Icon = new ClosableMemoryStream(); Utils.loadStream(this.reader, 0xa00, Icon); return(this); }
/// <summary> /// 获取邮件的内容 /// </summary> public static Result <EMail_DKIM_RAW_EML> ToRAW(MailMessage message) { var rtv = new Result <EMail_DKIM_RAW_EML>(); if (MailWriterFactory == null || Close == null || Send2 == null && Send3 == null) { rtv.error("email内容获取器未初始化成功"); return(rtv); } var headers = message.Headers; //备份hook head var hT = headers[EMail_DKIM.DKIMTimeKeyT]; var hTS = headers[EMail_DKIM.DKIMTimeKeyTS]; try { using (var internalStream = new ClosableMemoryStream()) { object mailWriter = MailWriterFactory(internalStream); if (Send2 != null) { Send2(message, mailWriter, false); } else if (Send3 != null) { //由smtp.DeliveryFormat决定的allowUnicode为false Send3(message, mailWriter, false, false); } Close(mailWriter); internalStream.Position = 0; string text; using (var reader = new StreamReader(internalStream, Encoding.UTF8)) { text = reader.ReadToEnd(); } internalStream.ReallyClose(); var val = EMail_DKIM_RAW_EML.ParseOrNull(text); if (val == null) { rtv.error("整个email内容获取后解析失败"); return(rtv); } rtv.Value = val; return(rtv); } } catch (Exception e) { rtv.fail("无法获取整个email内容:" + e.Message, e.ToString()); return(rtv); } finally { //还原hook head if (hTS != null) { headers.Set(EMail_DKIM.DKIMTimeKeyT, hT); headers.Set(EMail_DKIM.DKIMTimeKeyTS, hTS); } } }
private void ABList_SelectedIndexChanged(object sender, EventArgs e) { BinaryReader reader; int num3; int selectedIndex = ABList.SelectedIndex; int num2 = NarcList.SelectedIndex; ClosableMemoryStream input = new ClosableMemoryStream(); BlockInfo_s _s = new BlockInfo_s(); if (num2 > -1) { input = Ab[num2].BlockData[selectedIndex]; _s = Ab[num2].BlockInfo[selectedIndex]; reader = new BinaryReader(input); } else { input = Ab[0].BlockData[selectedIndex]; _s = Ab[0].BlockInfo[selectedIndex]; reader = new BinaryReader(input); num2 = 0; } SubList.Items.Clear(); SubList.Text = ""; reader.BaseStream.Seek(0x13L, SeekOrigin.Begin); _s.File_Num = reader.ReadByte(); _s.FileOff = new ArrayList(); for (num3 = 0; num3 < _s.File_Num; num3++) { uint num4 = reader.ReadUInt32(); _s.FileOff.Add(num4); } _s.FileData = new List <ClosableMemoryStream>(); reader.ReadInt32(); SubList.Text = "Loaded"; if (_s.File_Num == 0) { ClosableMemoryStream item = Ab[num2].BlockData[selectedIndex]; _s.FileData.Add(item); SubList.Items.Add("Unique File"); } for (num3 = 0; num3 < _s.File_Num; num3++) { ClosableMemoryStream output = new ClosableMemoryStream(); byte[] buffer = new byte[0]; if (num3 == (_s.File_Num - 1)) { buffer = new byte[((uint)input.Length) - ((uint)_s.FileOff[num3])]; } else { buffer = new byte[((uint)_s.FileOff[num3 + 1]) - ((uint)_s.FileOff[num3])]; } reader.Read(buffer, 0, buffer.Length); new BinaryWriter(output).Write(buffer); _s.FileData.Add(output); SubList.Items.Add("Elem:" + num3); } Ab[num2].BlockInfo[selectedIndex] = _s; }
private void LoadMapDPP(BinaryReader reader) { Nsbmd nsbmd; BinaryWriter writer; string[] materialListForNsbmd; PkmnMapDemuxer demuxer = new PkmnMapDemuxer(reader, type); mapHeader = PkmnMapHeader.FromReader(reader); streamMovement = new ClosableMemoryStream(); writer = new BinaryWriter(streamMovement); writer.Write(demuxer.DemuxMovBytes(mapHeader)); arrayMovement = MovLoader.LoadMov(streamMovement); streamObject = new ClosableMemoryStream(); writer = new BinaryWriter(streamObject); writer.Write(demuxer.DemuxObjBytes(mapHeader)); listObjects = ObjLoader.LoadObj(streamObject); streamNSBMD = new ClosableMemoryStream(); writer = new BinaryWriter(streamNSBMD); writer.Write(demuxer.DemuxBMDBytes(mapHeader, 0)); streamBDHC = new ClosableMemoryStream(); writer = new BinaryWriter(streamBDHC); writer.Write(demuxer.DemuxBdhcBytes(mapHeader)); nsbmd = new Nsbmd(); var reader2 = new BinaryReader(streamNSBMD); nsbmd.LoadBMD0(reader2, (int)mapHeader.BMDOffset); actualModel = nsbmd; getMatrixInfo(); materialListForNsbmd = actualModel.getTexNameArray(); if (actualModel.actualTex != null) { nsbmd.MatchTextures(); } }
public void setFileStreamAt(int i, ClosableMemoryStream input) { FileOff_s _s = FileOff[i]; _s.File_Data = new ClosableMemoryStream(); input.WriteTo(_s.File_Data); FileOff[i] = _s; }
private void openNarcToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog { Filter = "Narc File (*.narc)|*.narc|Texture File(*.btx)|*.btx", }; if (dialog.ShowDialog() != DialogResult.Cancel) { BinaryReader reader = new BinaryReader(dialog.OpenFile()); var extension = Encoding.UTF8.GetString(reader.ReadBytes(4)); if (extension == "NARC") { Narc narc = new Narc(); narc.LoadNarc(reader); tex = new List <Tex_List>(); Texture_Out.Clear(); for (int i = 0; i < narc.fatbNum; i++) { Tex_List list = new Tex_List(); Nsbtx _c = new Nsbtx(); ClosableMemoryStream stream = narc.figm.fileData[i]; actualTex = new Nsbtx(); actualTex.LoadBTX0(stream); _c = actualTex; list.File_Name = "Tex_" + i.ToString(); Texture_Out.AppendText(list.File_Name + "="); list.Texture = new List <string>(); for (int j = 0; j < actualTex.tex0.texNum; j++) { list.Texture.Add(actualTex.tex0.texNameArray[j]); Texture_Out.AppendText(actualTex.tex0.texNameArray[j] + ";"); } Texture_Out.AppendText("\n"); } } else if (extension == "BTX0") { Tex_List list = new Tex_List(); Nsbtx _c = new Nsbtx(); actualTex = new Nsbtx(); actualTex.LoadBTX0(reader); _c = actualTex; list.File_Name = dialog.SafeFileName; Texture_Out.AppendText(list.File_Name + "="); list.Texture = new List <string>(); for (int j = 0; j < actualTex.tex0.texNum; j++) { list.Texture.Add(actualTex.tex0.texNameArray[j]); Texture_Out.AppendText(actualTex.tex0.texNameArray[j] + ";"); } Texture_Out.AppendText("\n"); } } }
private ClosableMemoryStream getStream(short position) { uint startOffset = main.actualNds.getFat().getFileStartAt(position); uint lenght = main.actualNds.getFat().getFileEndAt(position) - startOffset; var reader = new BinaryReader(main.ROM); reader.BaseStream.Seek((long)startOffset, SeekOrigin.Begin); var stream = new ClosableMemoryStream(); Utils.loadStream(reader, lenght, stream); return(stream); }
public MapMatrix(ClosableMemoryStream actualNode, int type) { InitializeComponent(); this.actualNode = actualNode; if (type == 0) { readMatrix(actualNode); } else { readMatrixBW(actualNode); } showMatrix(MatrixHeaderInfo, MatrixBorderInfo, MatrixTerrainInfo); }
private void button1_Click(object sender, EventArgs e) { SaveFileDialog dialog = new SaveFileDialog(); if (dialog.ShowDialog() != DialogResult.Cancel) { BinaryWriter writer = new BinaryWriter(dialog.OpenFile()); ClosableMemoryStream input = Ab[NarcList.SelectedIndex].BlockInfo[ABList.SelectedIndex].FileData[SubList.SelectedIndex]; BinaryReader reader = new BinaryReader(input); reader.BaseStream.Seek(0L, SeekOrigin.Begin); for (int i = 0; i < input.Length; i++) { writer.Write(reader.ReadByte()); } writer.Close(); } }
/// <summary> /// 获取邮件的内容 /// </summary> public static Result <EMail_DKIM_RAW_EML> ToRAW(MailMessage message) { var rtv = new Result <EMail_DKIM_RAW_EML>(); if (MailWriterFactory == null || Close == null || Send2 == null && Send3 == null) { rtv.error("email内容获取器未初始化成功"); return(rtv); } try { using (var internalStream = new ClosableMemoryStream()) { object mailWriter = MailWriterFactory(internalStream); if (Send2 != null) { Send2(message, mailWriter, false); } else if (Send3 != null) { Send3(message, mailWriter, false, false); } Close(mailWriter); internalStream.Position = 0; string text; using (var reader = new StreamReader(internalStream, Encoding.UTF8)) { text = reader.ReadToEnd(); } internalStream.ReallyClose(); var val = EMail_DKIM_RAW_EML.ParseOrNull(text); if (val == null) { rtv.error("整个email内容获取后解析失败"); return(rtv); } rtv.Value = val; return(rtv); } } catch (Exception e) { rtv.fail("无法获取整个email内容:" + e.Message, e.ToString()); return(rtv); } }
private void button2_Click(object sender, EventArgs e) { for (int i = 0; i < Ab.Count; i++) { for (int j = 0; j < Ab[i].BlockInfo.Count; j++) { for (int k = 0; k < Ab[i].BlockInfo[j].FileData.Count; k++) { ClosableMemoryStream input = Ab[i].BlockInfo[j].FileData[k]; BinaryReader reader = new BinaryReader(input); reader.BaseStream.Seek(0L, SeekOrigin.Begin); Encoding encoding = Encoding.UTF8; byte[] bytes = reader.ReadBytes(4); int num4 = 0; string str = ""; int index = 0; while (index < 4) { char[] invalidPathChars = Path.GetInvalidPathChars(); foreach (char ch in invalidPathChars) { if (bytes[index] == ch) { num4 = 1; } } index++; } if (num4 == 0) { str = encoding.GetString(bytes); } Stream output = new FileStream(i.ToString() + "-" + k.ToString() + "-" + j.ToString() + "." + str, FileMode.Create); BinaryWriter writer = new BinaryWriter(output); reader.BaseStream.Seek(0L, SeekOrigin.Begin); for (index = 0; index < input.Length; index++) { writer.Write(reader.ReadByte()); } writer.Close(); } } } }
private Stream getARM9(int type) { Stream ARM9 = new ClosableMemoryStream(); if (type == 0 || type == 1) { ARM9 = main.actualNds.getARM9(); } else if (type == 2) { ARM9 = File.OpenRead("Textures/arm9.bin"); } else if (type == 3) { var tableNarc = new Narc(); tableNarc.LoadNarc(new BinaryReader(main.actualNds.getFat().getFileStreamAt((short)main.Sys.Nodes[0].Nodes[0].Nodes[0].Nodes[1].Nodes[2].Tag))); ARM9 = tableNarc.figm.fileData[0]; } return(ARM9); }
public static string GetText([NotNull] this MailMessage message) { if (message == null) { throw new ArgumentNullException("message"); } if (message.From == null) { throw new ArgumentException("From property cannot be null"); } using (var internalStream = new ClosableMemoryStream()) { object mailWriter = MailWriterFactory(internalStream); if (Send2 != null) { Send2(message, mailWriter, false); } else { Send3(message, mailWriter, false, true); } Close(mailWriter); internalStream.Position = 0; string text; using (var reader = new StreamReader(internalStream)) { text = reader.ReadToEnd(); } internalStream.ReallyClose(); return(text); } }
public ScriptRoutineViewer(ClosableMemoryStream ARM9) { InitializeComponent(); this.ARM9 = ARM9; var reader = new BinaryReader(ARM9); reader.BaseStream.Position = 0xEAC58; scriptRoutineList = new List <scriptRoutine_S>(); scriptRoutineOffsetList = new List <int>(); for (int i = 0; i < 839; i++) { var item = new scriptRoutine_S(); item.id = i; item.offset = reader.ReadInt32(); scriptRoutineOffsetList.Add(item.offset); commandList.Items.Add(i.ToString("X")); scriptRoutineBox.AppendText("\nCommand " + item.id.ToString("X") + " = 0x" + item.offset.ToString("X")); scriptRoutineList.Add(item); } scriptRoutineOffsetList.Sort(); }
private void LoadGenericNSBMD(BinaryReader reader) { PkmnMapDemuxer demuxer; Nsbmd nsbmd; List <NsbmdModel.MatTexPalStruct> list; Nsbtx.type = NSBMD_MODEL; demuxer = new PkmnMapDemuxer(reader, 1); PkmnMapHeader map = new PkmnMapHeader(); streamNSBMD = new ClosableMemoryStream(); new BinaryWriter(streamNSBMD).Write(demuxer.DemuxBMDBytes(map, 1)); nsbmd = new Nsbmd(); var reader2 = new BinaryReader(streamNSBMD); nsbmd.LoadBMD0(reader2, 0); actualModel = nsbmd; list = null; list = nsbmd.getMaterials(); if (actualModel.actualTex != null) { nsbmd.MatchTextures(); } }
public static AB_s LoadAb(BinaryReader fp, AB_s Ab) { fp.BaseStream.Seek(0L, SeekOrigin.Begin); int num = 0; fp.ReadInt16(); Ab.Block_Num = fp.ReadInt16(); Ab.BlockStartOff = new ArrayList(); for (num = 0; num <= Ab.Block_Num; num++) { uint num2 = fp.ReadUInt32(); Ab.BlockStartOff.Add(num2); } Ab.BlockData = new List <ClosableMemoryStream>(); Ab.BlockInfo = new List <BlockInfo_s>(); num = 0; for (num = 0; num < Ab.Block_Num; num++) { ClosableMemoryStream output = new ClosableMemoryStream(); byte[] buffer = new byte[((uint)Ab.BlockStartOff[num + 1]) - ((uint)Ab.BlockStartOff[num])]; fp.Read(buffer, 0, buffer.Length); new BinaryWriter(output).Write(buffer); Ab.BlockData.Add(output); BlockInfo_s item = new BlockInfo_s(); BinaryReader reader = new BinaryReader(Ab.BlockData[num]); reader.BaseStream.Seek(0x13L, SeekOrigin.Begin); item.File_Num = reader.ReadByte(); item.FileOff = new ArrayList(); int num3 = 0; while (num3 < item.File_Num) { uint num4 = reader.ReadUInt32(); item.FileOff.Add(num4); num3++; } item.FileData = new List <ClosableMemoryStream>(); reader.ReadInt32(); if (item.File_Num == 0) { ClosableMemoryStream stream2 = Ab.BlockData[num]; item.FileData.Add(stream2); } else { for (num3 = 0; num3 < item.File_Num; num3++) { ClosableMemoryStream stream3 = new ClosableMemoryStream(); byte[] buffer2 = new byte[0]; if (num3 == (item.File_Num - 1)) { buffer2 = new byte[((uint)Ab.BlockData[num].Length) - ((uint)item.FileOff[num3])]; } else { buffer2 = new byte[((uint)item.FileOff[num3 + 1]) - ((uint)item.FileOff[num3])]; } reader.Read(buffer, 0, buffer.Length); new BinaryWriter(stream3).Write(buffer); item.FileData.Add(stream3); } } Ab.BlockInfo.Add(item); } return(Ab); }
public static long Decompress(ClosableMemoryStream instream, long inLength, ref ClosableMemoryStream outstream) { long num = 0L; instream.Seek(0L, SeekOrigin.Begin); byte num2 = (byte)instream.ReadByte(); byte[] buffer = new byte[3]; instream.Read(buffer, 0, 3); int num3 = IOUtils.ToNDSu24(buffer, 0); num += 4L; if (num3 == 0) { buffer = new byte[4]; instream.Read(buffer, 0, 4); num3 = IOUtils.ToNDSs32(buffer, 0); num += 4L; } int num4 = 0x1000; byte[] buffer2 = new byte[num4]; int index = 0; int num6 = 0; int num7 = 0; int num8 = 1; outstream = new ClosableMemoryStream(); while (num6 < num3) { if (num8 == 1) { num7 = instream.ReadByte(); num += 1L; num8 = 0x80; } else { num8 = num8 >> 1; } if ((num7 & num8) > 0) { if (((num + 1L) >= inLength) && (num < inLength)) { instream.ReadByte(); num += 1L; } int num9 = instream.ReadByte(); num += 1L; int num10 = instream.ReadByte(); num += 1L; int num11 = num9 >> 4; num11 += 3; int num12 = ((num9 & 15) << 8) | num10; num12++; int num13 = (index + num4) - num12; for (int i = 0; i < num11; i++) { byte num15 = buffer2[num13 % num4]; num13++; outstream.WriteByte(num15); buffer2[index] = num15; index = (index + 1) % num4; } num6 += num11; } else { int num16 = instream.ReadByte(); num += 1L; num6++; outstream.WriteByte((byte)num16); buffer2[index] = (byte)num16; index = (index + 1) % num4; } } if (num < inLength) { } return((long)num3); }
public Hex_Viewer(ClosableMemoryStream File) { int num2; string str; int num3; byte num4; components = null; InitializeComponent(); BinaryReader reader = new BinaryReader(File); reader.BaseStream.Seek(0L, SeekOrigin.Begin); int num = 0; if (reader.BaseStream.Length > 0x10L) { for (num2 = 0; num2 < (File.Length / 0x10L); num2++) { str = ""; if (num < 0x100) { if (num < 0x10) { str = "00" + num.ToString("X"); } else { str = "0" + num.ToString("X"); } } else { str = num.ToString("X"); } HexBox.AppendText("0x" + str + " "); num3 = 0; while (num3 < 0x10) { num4 = reader.ReadByte(); if (num4 < 0x10) { str = "0" + num4.ToString("X"); } else { str = num4.ToString("X"); } HexBox.AppendText(str + " "); num++; num3++; } reader.BaseStream.Seek(-16L, SeekOrigin.Current); HexBox.AppendText(" : "); num3 = 0; while (num3 < 0x10) { num4 = reader.ReadByte(); char ch = (char)num4; if (num4 < 0x20) { ch = '.'; } HexBox.AppendText(ch + " "); num3++; } HexBox.AppendText("\n"); } } else { HexBox.AppendText("0x000 "); for (num2 = 0; num2 < File.Length; num2++) { num4 = reader.ReadByte(); if (num4 < 0x10) { str = "0" + num4.ToString("X"); } else { str = num4.ToString("X"); } HexBox.AppendText(str + " "); num++; } reader.BaseStream.Seek((long)-num, SeekOrigin.Current); HexBox.AppendText(" : "); for (num3 = 0; num3 < num; num3++) { num4 = reader.ReadByte(); char ch2 = (char)num4; if (num4 < 0x20) { ch2 = '.'; } HexBox.AppendText(ch2 + " "); } } }
public static long Decompress(ClosableMemoryStream instream, long inLength, ref ClosableMemoryStream outstream) { long num = 0L; byte num2 = (byte)instream.ReadByte(); byte[] buffer = new byte[3]; instream.Read(buffer, 0, 3); int num3 = IOUtils.ToNDSu24(buffer, 0); num += 4L; if (num3 == 0) { buffer = new byte[4]; instream.Read(buffer, 0, 4); num3 = IOUtils.ToNDSs32(buffer, 0); num += 4L; } int num4 = 0x1000; byte[] buffer2 = new byte[num4]; int index = 0; int num6 = 0; int num7 = 0; int num8 = 1; while (num6 < num3) { if (num8 == 1) { num7 = instream.ReadByte(); num += 1L; num8 = 0x80; } else { num8 = num8 >> 1; } if ((num7 & num8) > 0) { int num12; int num13; int num9 = instream.ReadByte(); num += 1L; int num10 = num9 >> 4; int num11 = -1; if (num10 == 0) { num12 = instream.ReadByte(); num += 1L; num13 = instream.ReadByte(); num += 1L; num10 = (((num9 & 15) << 4) | (num12 >> 4)) + 0x11; num11 = (((num12 & 15) << 8) | num13) + 1; } else if (num10 == 1) { num12 = instream.ReadByte(); num += 1L; num13 = instream.ReadByte(); num += 1L; int num14 = instream.ReadByte(); num += 1L; num10 = ((((num9 & 15) << 12) | (num12 << 4)) | (num13 >> 4)) + 0x111; num11 = (((num13 & 15) << 8) | num14) + 1; } else { num12 = instream.ReadByte(); num += 1L; num10 = ((num9 & 240) >> 4) + 1; num11 = (((num9 & 15) << 8) | num12) + 1; } int num15 = (index + num4) - num11; for (int i = 0; i < num10; i++) { byte num17 = buffer2[num15 % num4]; num15++; outstream.WriteByte(num17); buffer2[index] = num17; index = (index + 1) % num4; } num6 += num10; } else { int num18 = instream.ReadByte(); num += 1L; outstream = new ClosableMemoryStream(); outstream.WriteByte((byte)num18); num6++; buffer2[index] = (byte)num18; index = (index + 1) % num4; } } if (num < inLength) { } return((long)num3); }
public static string GetText([NotNull]this MailMessage message) { if (message == null) { throw new ArgumentNullException("message"); } if (message.From == null) { throw new ArgumentException("From property cannot be null"); } using (var internalStream = new ClosableMemoryStream()) { object mailWriter = MailWriterFactory(internalStream); if (Send2 != null) { Send2(message, mailWriter, false); } else { Send3(message, mailWriter, false, true); } Close(mailWriter); internalStream.Position = 0; string text; using (var reader = new StreamReader(internalStream)) { text = reader.ReadToEnd(); } internalStream.ReallyClose(); return text; } }
public List <NsbmdModel.MatTexPalStruct> LoadBTX0(ClosableMemoryStream stream) { BinaryReader reader = new BinaryReader(stream); return(LoadBTX0(reader)); }