для версии 40.13
00E81000-начальный адрес df.
эти функции используются для обработки фильтруемых строк.
Здесь возможно придется поменять условия a-z на a-я. Что делать с ё пока не ясно, я бы ее убрал из текста , чтобы патчит 1:1.
00EBB310 upper_case_string
00EBB490 capitalize_string_words
00EBB690 capitalize_string_first_word
____________________________________________________________________________
тут функция по обработке нажатий клавиш.
надо обратить внимание что все нажатия дублируются.
Внизу функции еще набор каких то вызовов с двумя параметрами связанных с текстом.
Их назначение пока не понял.
Патчил именно эту функцию.
012ECD20
тут идут триггеры которые срабатывают при нажатии соответствующих клавиш
012ECD75 mov bl, 61h
......
mov bl, 62h
после этого идут вызовы SDL, потом должна быть функция по переводу буквы в верхний регистр.Ее еще не нашел.
ну и наконец условие с a-z перед вызовом функции фильтра.Я его отключил для тестов.
012026A0 mov cl, [esp+eax+54h]
Пока это все работает только в английской раскладке, ну может удастся и это исправить. т к при выборе русской раскладки функция 012ECD20 также вызывается, но ни один из триггеров по установки кода букв не срабатывает.
фильтр в работе