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);
     }
 }