Опечатался немного. Надо конечно
Код:
for i := 0 to m - 2 do
table[fArr[i]] := m - i -1;
Т.е. m-2 вместо m-1. Потому что последний символ выдает сдвиг в ноль байт, и все виснет. А вообще, думаю, для поиска подстроки в строке (в данном случае в HTTP запросе) лучше использовать стандартный Pos; думаю, он написан неплохо и оптимизирован.