public static bool ReadHexAndVerify(string fileName) { try { FileInfo fileInfo = new FileInfo(fileName); TextReader textReader = fileInfo.OpenText(); string text = textReader.ReadLine(); bool result = true; int num = 0; while (text != null) { if (text[0] == ':' && text.Length >= 11) { int num2 = int.Parse(text.Substring(1, 2), NumberStyles.HexNumber); int num3 = int.Parse(text.Substring(3, 4), NumberStyles.HexNumber); int num4 = int.Parse(text.Substring(7, 2), NumberStyles.HexNumber); if (num4 == 0 && num3 >= 8192 && num3 < 32736) { int num5 = num3 & 0xF; int num6 = num3 & 0xFFF0; if (num != num6) { PICkitFunctions.BL_ReadFlash16(num6); } if (text.Length >= 11 + 2 * num2) { for (int i = 0; i < num2; i++) { uint num7 = uint.Parse(text.Substring(9 + 2 * i, 2), NumberStyles.HexNumber); if (PICkitFunctions.Usb_read_array[6 + num5 + i] != (byte)(num7 & 0xFF)) { result = false; num4 = 1; break; } } } num = num6; } if (num4 == 1) { break; } } text = textReader.ReadLine(); } textReader.Close(); return(result); } catch { return(false); } }