Кто нибудь шарит в ассемблерных вставках? Можете подсказать, почему выделенное условие всегда истинно, что бы не находилось во входной строке (ebx)? То есть строчка 60 никогда не выполняется...
На сколько помню, чтобы сделать сдвиг на 1 элемент, надо прибавить 4, по этому он должен затираться от умножения, тем самым условие истинное и прыжок от последнего действия выполнится. Но лучше спроси на стеке, чем тут.