using Data; using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading; using System.Windows.Forms; public class frmOnboard : Form { public Button button1; public ComboBox comboBox1; public Button button3; public Button button5; public Button button4; public Button button2; public static bool bool_0; private Class17 class17_0; private static Class17 class17_2; private Class10_settings class10_0; public int int_0; private Label label8; private Label label5; private Label label4; private Label label3; private Label label2; private Label label1; public Button button8; private ProgressBar ProgressBar1; private ListView listView1; private ColumnHeader columnHeader_0; private ColumnHeader columnHeader_1; private ColumnHeader columnHeader_2; private ColumnHeader columnHeader_3; private ColumnHeader columnHeader_4; public bool bool_1; public string[] string_0 = new string[0xff]; private IContainer icontainer_0; private System.Timers.Timer timer_0; internal frmOnboard(ref Class17 class11_1, ref Class10_settings class10_1 ) { this.class17_0 = class11_1; this.class10_0 = class10_1; this.InitializeComponent(); class17_2 = class17_0; this.timer_0 = new System.Timers.Timer(); this.timer_0.Interval = 10; //this.ProgressBar1.String_0 = ""; //this.ProgressBar1.Color_1 = Color.LightGreen; //this.ProgressBar1.Color_0 = Color.Black; //this.ProgressBar1.Font_0 = new Font("Times New Roman", 11f, FontStyle.Italic | FontStyle.Bold); //this.ProgressBar1.GEnum19_0 = GEnum19.CurrProgress; foreach (Control control in base.Controls) { float emSize = control.Font.Size * (class10_0.scaleRate / 100f); control.Font = new Font(control.Font.Name, emSize, control.Font.Style, control.Font.Unit); } } private void button1_Click(object sender, EventArgs e) { this.button1.Enabled = false; this.method_7(); this.button1.Enabled = true; } private void button2_Click(object sender, EventArgs e) { if (class17_0.serialPort_0.IsOpen) { this.method_6(true); } } private void button3_Click(object sender, EventArgs e) { this.method_8(); } private void button4_Click(object sender, EventArgs e) { this.method_3(); } private void button5_Click(object sender, EventArgs e) { this.method_4(); } private void frmOnboard_Load(object sender, EventArgs e) { bool flag = false; if (class10_0.emulatorMode_0 != EmulatorMode.Demon) { MessageBox.Show("This only works when connected to Moates Demon", "BMTune"); base.Close(); } else { try { /*if (class17_0.serialPort_0.IsOpen) { this.ProgressBar1.GEnum19_0 = GEnum19.CustomText; }*/ flag = true; } catch { MessageBox.Show("This only works when connected to Moates Demon", "BMTune"); base.Close(); } } if (flag) { this.method_1(); } } private void InitializeComponent() { this.icontainer_0 = new Container(); ComponentResourceManager manager = new ComponentResourceManager(typeof(frmOnboard)); this.button1 = new Button(); this.comboBox1 = new ComboBox(); this.button3 = new Button(); this.button5 = new Button(); this.button4 = new Button(); this.button2 = new Button(); this.label8 = new Label(); this.label5 = new Label(); this.label4 = new Label(); this.label3 = new Label(); this.label2 = new Label(); this.label1 = new Label(); this.button8 = new Button(); this.listView1 = new ListView(); this.columnHeader_0 = new ColumnHeader(); this.columnHeader_1 = new ColumnHeader(); this.columnHeader_2 = new ColumnHeader(); this.columnHeader_3 = new ColumnHeader(); this.columnHeader_4 = new ColumnHeader(); this.ProgressBar1 = new ProgressBar(); base.SuspendLayout(); this.button1.Location = new Point(0x39b, 0x18e); this.button1.Margin = new Padding(2); this.button1.Name = "button1"; this.button1.Size = new Size(0x9a, 0x3e); this.button1.TabIndex = 70; this.button1.Text = "Dump"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new EventHandler(this.button1_Click); this.comboBox1.FormattingEnabled = true; object[] items = new object[] { "20ms (8min)", "40ms (16min)", "80ms (32min)", "100ms (40min)", "125ms (50min)" }; this.comboBox1.Items.AddRange(items); this.comboBox1.Location = new Point(0x39f, 0xc5); this.comboBox1.Margin = new Padding(2); this.comboBox1.Name = "comboBox1"; this.comboBox1.Size = new Size(150, 0x20); this.comboBox1.TabIndex = 0x44; this.comboBox1.Text = "20ms (8min)"; this.button3.Location = new Point(0x39f, 11); this.button3.Margin = new Padding(6); this.button3.Name = "button3"; this.button3.Size = new Size(150, 0x2e); this.button3.TabIndex = 0x42; this.button3.Text = "Scan"; this.button3.UseVisualStyleBackColor = true; this.button3.Click += new EventHandler(this.button3_Click); this.button5.Location = new Point(0x39b, 0xf4); this.button5.Margin = new Padding(2); this.button5.Name = "button5"; this.button5.Size = new Size(0x9a, 0x30); this.button5.TabIndex = 0x3a; this.button5.Text = "Erase"; this.button5.UseVisualStyleBackColor = true; this.button5.Click += new EventHandler(this.button5_Click); this.button4.Location = new Point(0x39f, 0x41); this.button4.Margin = new Padding(2); this.button4.Name = "button4"; this.button4.Size = new Size(150, 0x34); this.button4.TabIndex = 0x39; this.button4.Text = "Compression"; this.button4.UseVisualStyleBackColor = true; this.button4.Click += new EventHandler(this.button4_Click); this.button2.Location = new Point(0x39f, 0x80); this.button2.Margin = new Padding(2); this.button2.Name = "button2"; this.button2.Size = new Size(150, 0x37); this.button2.TabIndex = 0x38; this.button2.Text = "Enable OB"; this.button2.UseVisualStyleBackColor = true; this.button2.Click += new EventHandler(this.button2_Click); this.label8.AutoSize = true; this.label8.Location = new Point(0x28c, 0x1b0); this.label8.Margin = new Padding(2, 0, 2, 0); this.label8.Name = "label8"; this.label8.Size = new Size(0x86, 0x19); this.label8.TabIndex = 0x4c; this.label8.Text = "Compression:"; this.label5.AutoSize = true; this.label5.Location = new Point(0x296, 0x18b); this.label5.Margin = new Padding(2, 0, 2, 0); this.label5.Name = "label5"; this.label5.Size = new Size(0x7c, 0x19); this.label5.TabIndex = 0x4b; this.label5.Text = "Total Space:"; this.label4.AutoSize = true; this.label4.Location = new Point(0x151, 0x1b0); this.label4.Margin = new Padding(2, 0, 2, 0); this.label4.Name = "label4"; this.label4.Size = new Size(160, 0x19); this.label4.TabIndex = 0x4a; this.label4.Text = "Space Available:"; this.label3.AutoSize = true; this.label3.Location = new Point(0x173, 0x18b); this.label3.Margin = new Padding(2, 0, 2, 0); this.label3.Name = "label3"; this.label3.Size = new Size(0x7e, 0x19); this.label3.TabIndex = 0x49; this.label3.Text = "Space Used:"; this.label2.AutoSize = true; this.label2.Location = new Point(0x20, 0x1b0); this.label2.Margin = new Padding(2, 0, 2, 0); this.label2.Name = "label2"; this.label2.Size = new Size(0x92, 0x19); this.label2.TabIndex = 0x48; this.label2.Text = "Logs Available:"; this.label1.AutoSize = true; this.label1.Location = new Point(0x1c, 0x18b); this.label1.Margin = new Padding(2, 0, 2, 0); this.label1.Name = "label1"; this.label1.Size = new Size(150, 0x19); this.label1.TabIndex = 0x47; this.label1.Text = "Recorded Logs:"; this.button8.Location = new Point(0x39b, 0x131); this.button8.Margin = new Padding(2); this.button8.Name = "button8"; this.button8.Size = new Size(0x9a, 0x30); this.button8.TabIndex = 0x4d; this.button8.Text = "Write"; this.button8.UseVisualStyleBackColor = true; ColumnHeader[] values = new ColumnHeader[] { this.columnHeader_0, this.columnHeader_1, this.columnHeader_2, this.columnHeader_3, this.columnHeader_4 }; this.listView1.Columns.AddRange(values); this.listView1.HideSelection = false; this.listView1.Location = new Point(0x12, 11); this.listView1.Margin = new Padding(2); this.listView1.Name = "listView1"; this.listView1.Size = new Size(0x37c, 0x176); this.listView1.TabIndex = 0x4f; this.listView1.UseCompatibleStateImageBehavior = false; this.listView1.View = View.Details; this.listView1.DoubleClick += new EventHandler(this.listView1_DoubleClick); this.columnHeader_0.Text = "LOG#"; this.columnHeader_0.Width = 0x84; this.columnHeader_1.Text = "Size"; this.columnHeader_1.Width = 80; this.columnHeader_2.Text = "Samples"; this.columnHeader_2.Width = 80; this.columnHeader_3.Text = "Duration"; this.columnHeader_3.Width = 90; this.columnHeader_4.Text = "Compressed"; this.columnHeader_4.Width = 0x66; this.ProgressBar1.Location = new Point(0x12, 0x1dc); this.ProgressBar1.Name = "ProgressBar1"; this.ProgressBar1.Size = new Size(0x423, 0x29); this.ProgressBar1.TabIndex = 0x4e; base.AutoScaleDimensions = new SizeF(11f, 24f); base.AutoScaleMode = AutoScaleMode.Font; base.ClientSize = new Size(0x445, 0x214); base.Controls.Add(this.listView1); base.Controls.Add(this.ProgressBar1); base.Controls.Add(this.button8); base.Controls.Add(this.label8); base.Controls.Add(this.label5); base.Controls.Add(this.label4); base.Controls.Add(this.label3); base.Controls.Add(this.label2); base.Controls.Add(this.label1); base.Controls.Add(this.button1); base.Controls.Add(this.comboBox1); base.Controls.Add(this.button3); base.Controls.Add(this.button5); base.Controls.Add(this.button4); base.Controls.Add(this.button2); base.FormBorderStyle = FormBorderStyle.FixedDialog; base.Margin = new Padding(4); base.MaximizeBox = false; base.MinimizeBox = false; base.Name = "frmOnboard"; this.Text = "Onboard Datalogging"; base.Load += new EventHandler(this.frmOnboard_Load); base.ResumeLayout(false); base.PerformLayout(); } private void listView1_DoubleClick(object sender, EventArgs e) { this.method_9(); } public byte[] method_0(byte[] byte_0) { byte num = 0; foreach (byte num3 in byte_0) { num = (byte) (num + num3); } byte[] buffer = new byte[byte_0.Length + 1]; byte_0.CopyTo(buffer, 0); buffer[buffer.Length - 1] = num; return buffer; } public void method_1() { class17_0.serialPort_0.DiscardInBuffer(); class17_0.serialPort_0.DiscardOutBuffer(); byte[] buffer = new byte[0x20]; byte[] buffer2 = this.method_0(new byte[] { 0x44, 0x4f, 0x4c, 0x4e }); class17_0.serialPort_0.Write(buffer2, 0, buffer2.Length); Thread.Sleep(20); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); if (buffer[0] == 0x4f) { byte[] buffer3 = this.method_0(new byte[] { 0x44, 0x4f, 0x4c, 110 }); class17_0.serialPort_0.Write(buffer3, 0, buffer3.Length); Thread.Sleep(20); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); if (buffer[0] == 0x4f) { byte[] buffer4 = this.method_0(new byte[] { 0x44, 0x4f, 0x4c, 0x49 }); class17_0.serialPort_0.Write(buffer4, 0, buffer4.Length); Thread.Sleep(20); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); byte num = buffer[1]; byte num2 = buffer[2]; byte num3 = buffer[3]; byte num14 = buffer[14]; byte num15 = buffer[15]; this.bool_1 = buffer[12] == 0x59; int num17 = 0; if (num15 == 0) { num17 = 0x100; } else if (num15 == 1) { num17 = 0x200; } else if (num15 == 3) { num17 = 0x200; } if (num14 == 7) { this.int_0 = 0xfa000; } else if (num14 == 15) { this.int_0 = 0x3e8000; } else if (num14 == 0x1f) { this.int_0 = 0x3e8000; } float num18 = ((float) (((num2 << 8) | num3) * num17)) / 1000f; this.label1.Text = "Recorded Logs: " + num.ToString(); this.label2.Text = "Logs Available: " + (0xff - num).ToString(); this.label3.Text = "Space Used: " + num18.ToString() + "KB"; this.label4.Text = "Space Available: " + ((this.int_0 / 0x3e8) - num18).ToString() + "KB"; this.label5.Text = "Total Space: " + (this.int_0 / 0x3e8).ToString() + "KB"; this.label8.Text = "Compression: " + this.bool_1.ToString(); if ((num != 0) && (MessageBox.Show("New Onboard Datalogs," + Environment.NewLine + "Do you want to scan them?", "Onboard", MessageBoxButtons.YesNo) == DialogResult.Yes)) { this.method_8(); } } } } private void method_10(object sender, ProgressChangedEventArgs e) { float num2 = (((float) int.Parse(e.ProgressPercentage.ToString())) / ((float) this.int_0)) * 100f; //this.ProgressBar1.String_0 = "Dumping Rom: " + num2.ToString() + " %"; this.Text = "Onboard Datalogging - Dumping Rom: " + num2.ToString() + " % "; this.ProgressBar1.Value = (int) num2; } private byte[] method_2(params byte[][] byte_0) { byte[] buffer = new byte[byte_0.Sum(TestOnBoardClass.TestInt ?? (TestOnBoardClass.TestInt = new Func(frmOnboard.TestOnBoardClass.TestValue.method_0)))]; int num = 0; foreach (byte[] buffer2 in byte_0) { Buffer.BlockCopy(buffer2, 0, buffer, num, buffer2.Length); num += buffer2.Length; } return buffer; } public void method_3() { if (class17_0.serialPort_0.IsOpen) { class17_0.serialPort_0.DiscardInBuffer(); class17_0.serialPort_0.DiscardOutBuffer(); byte[] buffer = new byte[0x40]; DialogResult dialogResult = MessageBox.Show(string.Concat(new string[] { "Compression is set to ", this.bool_1.ToString(), Environment.NewLine, "Do you want to set it to ", (!this.bool_1).ToString() }), "Onboard Compression", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { if (this.bool_1) { byte[] buffer2 = this.method_0(new byte[] { 0x44, 0x4f, 0x43, 0x4e }); class17_0.serialPort_0.Write(buffer2, 0, buffer2.Length); Thread.Sleep(20); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); } else { byte[] buffer3 = this.method_0(new byte[] { 0x44, 0x4f, 0x43, 0x59 }); class17_0.serialPort_0.Write(buffer3, 0, buffer3.Length); Thread.Sleep(20); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); } if (buffer[0] == 0x4f) { MessageBox.Show("Change Set."); this.method_1(); } } } } public void method_4() { if (class17_0.serialPort_0.IsOpen) { byte[] buffer = new byte[0x40]; string[] textArray1 = new string[] { "Do you want to erase all onboard logs?", Environment.NewLine, "**** Warning ****", Environment.NewLine, "It takes 10 sec for memory to be erase" }; if (MessageBox.Show(string.Concat(textArray1), "Onboard Erase", MessageBoxButtons.YesNo) == DialogResult.Yes) { byte[] buffer2 = this.method_0(new byte[] { 0x44, 0x4f, 0x45 }); class17_0.serialPort_0.DiscardInBuffer(); class17_0.serialPort_0.DiscardOutBuffer(); class17_0.serialPort_0.Write(buffer2, 0, buffer2.Length); for (byte i = 0; (buffer[0] == 0) && (i <= 12); i = (byte) (i + 1)) { class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); if (buffer[0] == 0x4f) { MessageBox.Show("Onboard erased."); this.method_1(); return; } Thread.Sleep(0x3e8); } } } } public int method_5(int int_1, int int_2) { while (int_2 != 0) { int num = ~int_1 & int_2; int_1 ^= int_2; int_2 = num << 1; } return int_1; } private void method_6(bool bool_2) { byte[] buffer = new byte[0x20]; byte[] buffer2 = new byte[8]; if (bool_2) { buffer2 = this.method_0(new byte[] { 0x44, 0x4f, 0x4c, 0x59 }); class17_0.serialPort_0.Write(buffer2, 0, buffer2.Length); Thread.Sleep(50); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); if (buffer[0] == 0x4f) { buffer2 = this.method_0(new byte[] { 0x44, 0x4f, 0x4c, 0x79 }); class17_0.serialPort_0.Write(buffer2, 0, buffer2.Length); Thread.Sleep(50); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); if (buffer[0] == 0x4f) { this.button2.Text = "Disable OB"; } } } else { buffer2 = this.method_0(new byte[] { 0x44, 0x4f, 0x4c, 0x4e }); class17_0.serialPort_0.Write(buffer2, 0, buffer2.Length); Thread.Sleep(50); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); if (buffer[0] == 0x4f) { buffer2 = this.method_0(new byte[] { 0x44, 0x4f, 0x4c, 110 }); class17_0.serialPort_0.Write(buffer2, 0, buffer2.Length); Thread.Sleep(50); class17_0.serialPort_0.Read(buffer, 0, class17_0.serialPort_0.BytesToRead); if (buffer[0] == 0x4f) { this.button2.Text = "Enable OB"; } } } } private void method_7() { if (class17_0.serialPort_0.IsOpen) { Class45 class2 = new Class45 { frmOnboard_0 = this, byte_0 = new byte[1] }; if (MessageBox.Show("Do you want to dump the complete onboard memory of your demon?", "Dump Demon", MessageBoxButtons.YesNo) == DialogResult.Yes) { class2.dialogResult_0 = MessageBox.Show("Only dump written zones?", "Dump Demon", MessageBoxButtons.YesNo); class2.int_0 = 0; BackgroundWorker worker = new BackgroundWorker { WorkerReportsProgress = true }; worker.DoWork += new DoWorkEventHandler(class2.method_0); worker.ProgressChanged += new ProgressChangedEventHandler(this.method_10); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(class2.method_1); worker.RunWorkerAsync(); } } } private void method_8() { Class46 class2 = new Class46 { frmOnboard_0 = this }; this.listView1.Items.Clear(); class2.byte_0 = new byte[1]; if (class17_0.serialPort_0.IsOpen) { Class47 class3 = new Class47 { class46_0 = class2, int_0 = 0 }; BackgroundWorker worker = new BackgroundWorker { WorkerReportsProgress = true }; worker.DoWork += new DoWorkEventHandler(class3.method_0); worker.ProgressChanged += new ProgressChangedEventHandler(class3.class46_0.method_0); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(class3.class46_0.method_1); worker.RunWorkerAsync(); } } private void method_9() { int index = this.listView1.SelectedIndices[0] + 1; SaveFileDialog dialog = new SaveFileDialog { Filter = "Demon Datalog|*.log", Title = "Save Demon Onboard Datalog" }; dialog.ShowDialog(); if (dialog.FileName != "") { if (File.Exists(dialog.FileName)) { File.Delete(dialog.FileName); } using (Stream stream = (Stream) File.OpenWrite(dialog.FileName)) { byte[] buffer = smethod_0(this.string_0[index]); stream.Write(buffer, 0, buffer.Length); } } } public static byte[] smethod_0(string string_1) { int length = string_1.Length; byte[] buffer = new byte[length / 2]; for (int i = 0; i < length; i += 2) { buffer[i / 2] = Convert.ToByte(string_1.Substring(i, 2), 0x10); } return buffer; } public static string smethod_1(byte[] byte_0) { return BitConverter.ToString(byte_0).Replace("-", ""); } private sealed class TestOnBoardClass { public static readonly frmOnboard.TestOnBoardClass TestValue = new frmOnboard.TestOnBoardClass(); public static Func TestInt; internal int method_0(byte[] byte_0) { return byte_0.Length; } } private sealed class Class45 { public byte[] byte_0; public DialogResult dialogResult_0; public int int_0; public frmOnboard frmOnboard_0; internal void method_0(object sender, DoWorkEventArgs e) { BackgroundWorker backgroundWorker = sender as BackgroundWorker; Stopwatch stopwatch = Stopwatch.StartNew(); bool flag = false; byte[] array = new byte[2]; bool flag2 = false; while (this.byte_0.Length <= this.frmOnboard_0.int_0 && !flag2) { frmOnboard frmOnboard = this.frmOnboard_0; byte[] array2 = new byte[] { 68, 79, 82, 0, 0, 5 }; array2[3] = array[0]; array2[4] = array[1]; byte[] array3 = frmOnboard.method_0(array2); switch (array[1]) { case 251: flag = true; break; case 252: flag = true; break; case 253: flag = true; break; case 254: flag = true; break; case 255: flag = true; break; } byte[] array4 = array; int num = 1; array4[num] += 5; if (flag) { byte[] array5 = array; int num2 = 0; array5[num2] += 1; flag = false; } class17_2.serialPort_0.Write(array3, 0, array3.Length); Thread.Sleep(45); byte[] array6 = new byte[this.frmOnboard_0.method_5(class17_2.serialPort_0.BytesToRead, 1)]; byte[] array7 = new byte[array6.Length + 1]; class17_2.serialPort_0.Read(array7, 0, array7.Length); byte b = 0; int num3 = 0; foreach (byte b2 in array7) { num3++; if (num3 != array7.Length) { b += b2; } } if (b == array7[array6.Length]) { Array.Copy(array7, array6, array6.Length); this.byte_0 = this.frmOnboard_0.method_2(new byte[][] { this.byte_0, array6 }); backgroundWorker.ReportProgress(this.byte_0.Length); } else { MessageBox.Show("Checksum fault!", "error"); flag2 = true; } if (this.dialogResult_0 == DialogResult.Yes && array6[2] == 255 && array6[3] == 255 && array6[4] == 255 && array6[5] == 255 && array6[6] == 255 && array6[array6.Length - 8] == 255 && array6[array6.Length - 4] == 255 && array6[array6.Length - 2] == 255) { byte[] array9 = new byte[this.frmOnboard_0.int_0 - this.byte_0.Length]; for (int j = 0; j < array9.Length; j++) { array9[j] = byte.MaxValue; } this.byte_0 = this.frmOnboard_0.method_2(new byte[][] { this.byte_0, array9 }); flag2 = true; } } this.int_0 = (int)stopwatch.ElapsedMilliseconds / 1000; stopwatch.Stop(); } internal void method_1(object sender, RunWorkerCompletedEventArgs e) { string str = (this.int_0 / 60).ToString() + ":" + (this.int_0 % 60).ToString(); //this.frmOnboard_0.ProgressBar1.String_0 = "Completed in: " + str; this.frmOnboard_0.Text = "Onboard Datalogging - Completed in: " + str; SaveFileDialog dialog = new SaveFileDialog { Filter = "Demon Dump|*.DD", Title = "Save Demon Onboard Memory" }; dialog.ShowDialog(); if (dialog.FileName != "") { if (File.Exists(dialog.FileName)) { File.Delete(dialog.FileName); } using (Stream stream = (Stream) File.OpenWrite(dialog.FileName)) { stream.Write(this.byte_0, 0, this.byte_0.Length); } } } } private sealed class Class46 { public frmOnboard frmOnboard_0; public byte[] byte_0; internal void method_0(object sender, ProgressChangedEventArgs e) { float num2 = (((float) int.Parse(e.ProgressPercentage.ToString())) / ((float) this.frmOnboard_0.int_0)) * 100f; //this.frmOnboard_0.ProgressBar1.String_0 = "Scanning Dataloggs Total Rom Read: " + num2.ToString() + " %"; this.frmOnboard_0.Text = "Onboard Datalogging - Scanning Dataloggs Total Rom Read: " + num2.ToString() + " %"; this.frmOnboard_0.ProgressBar1.Value = (int) num2; } internal void method_1(object sender, RunWorkerCompletedEventArgs e) { //this.frmOnboard_0.ProgressBar1.String_0 = "Finished Scanning."; this.frmOnboard_0.Text = "Onboard Datalogging - Finished Scanning."; string @string = Encoding.UTF8.GetString(this.byte_0); string[] array = @string.Split(new string[] { "" }, StringSplitOptions.None); this.frmOnboard_0.string_0 = frmOnboard.smethod_1(this.byte_0).Replace("3C2F533E", "").Split(new string[] { "3C533E" }, StringSplitOptions.None); int num = 1; int num2 = 50; foreach (string text in array) { try { if (!text.Substring(0, 2).Contains("\0")) { string[] array3 = text.Split(new string[] { "" }, StringSplitOptions.None); TimeSpan timeSpan = TimeSpan.FromSeconds((double)(num2 * array3.Length / 1000)); string[] array4 = new string[5]; array4[0] = "Onboard Log " + num++.ToString(); array4[1] = (array3.Length * 71 / 1000).ToString() + " KB"; array4[2] = array3.Length.ToString(); array4[3] = timeSpan.ToString(); if (array4[1] == "0 KB") { array4[4] = "True"; } else { array4[4] = "False"; } ListViewItem value = new ListViewItem(array4); this.frmOnboard_0.listView1.Items.Add(value); } } catch { } } } } private sealed class Class47 { public int int_0; public frmOnboard.Class46 class46_0; internal void method_0(object sender, DoWorkEventArgs e) { BackgroundWorker backgroundWorker = sender as BackgroundWorker; Stopwatch stopwatch = Stopwatch.StartNew(); bool flag = false; byte[] array = new byte[2]; bool flag2 = true; while (flag2) { frmOnboard frmOnboard_ = this.class46_0.frmOnboard_0; byte[] array2 = new byte[] { 68, 79, 82, 0, 0, 5 }; array2[3] = array[0]; array2[4] = array[1]; byte[] array3 = frmOnboard_.method_0(array2); switch (array[1]) { case 251: flag = true; break; case 252: flag = true; break; case 253: flag = true; break; case 254: flag = true; break; case 255: flag = true; break; } byte[] array4 = array; int num = 1; array4[num] += 5; if (flag) { byte[] array5 = array; int num2 = 0; array5[num2] += 1; flag = false; } class17_2.serialPort_0.Write(array3, 0, array3.Length); Thread.Sleep(45); byte[] array6 = new byte[this.class46_0.frmOnboard_0.method_5(class17_2.serialPort_0.BytesToRead, 1)]; byte[] array7 = new byte[array6.Length + 1]; class17_2.serialPort_0.Read(array7, 0, array7.Length); byte b = 0; int num3 = 0; foreach (byte b2 in array7) { num3++; if (num3 != array7.Length) { b += b2; } } if (b == array7[array6.Length]) { Array.Copy(array7, array6, array6.Length); this.class46_0.byte_0 = this.class46_0.frmOnboard_0.method_2(new byte[][] { this.class46_0.byte_0, array6 }); backgroundWorker.ReportProgress(this.class46_0.byte_0.Length); } else { flag2 = false; } if (array6[2] == 255 && array6[3] == 255 && array6[4] == 255 && array6[5] == 255 && array6[6] == 255 && array6[array6.Length - 8] == 255 && array6[array6.Length - 4] == 255 && array6[array6.Length - 2] == 255) { flag2 = false; } } this.int_0 = ((int) stopwatch.ElapsedMilliseconds) / 0x3e8; stopwatch.Stop(); } } }