procedure Form1.button1_Click(sender: Object; e: EventArgs);
Я бы первым делом проверил время выполнения при отсортированном списке (в этом случае при IndexOf используется умный алгоритм поиска, а не обычный перебор). Т. е. добавьте "L2.Sorted := True". Если результат не устроит, то экспериментируйте дальше. Например, попробуйте для L2 вместо TStringList использовать хеш-таблицу TDictionary и метод ContainsKey.
А еще у вас утечки памяти. В случае exit объекты не уничтожаются. Используйте try и finally.
Недавно столкнулся с аналогичной проблемой на ноутбуке HP. Сильно гудел кулер (вибрировал). Разобрал ноутбук, снял кулер, почистил - не помогло. Решил купить новый. Оказалось, что найти замену крайне проблематично, т. к. кулеры у разных моделей ноутбуков сильно отличаются. В итоге, позвонил в сервис HP, где мне сказали, что замена кулера - гарантийный случай. Бесплатный ремонт занял около недели.
P. S. У меня не было ни чека, ни гарантийного талона, а ноутбуку было больше двух лет.
Дописывайте строку в конец бинарника, а потом читайте её при запуске. Менять CRC или разбираться в структуре PE файла не требуется.
Грубый пример PHP-скрипта:
header('Content-Type: application/octet-stream');
readfile('file.exe');
echo chr(0) . $_GET['name'];
metadata : {
defaults : {
type: 'attr',
name: 'data-meta',
cre: /({.*})/,
single: 'metadata'
},