а раньше у тя после кейресс прога продалжала выполняться вниз по коду где у тя начинается Inp, вот она повторно и выполнялась. когда доходила до ret она забирала какой то мусор из стека для возврата к месту откуда "была вызвана" (она не вызвалась, а значит и возвращаться некуда было), а так как там мусор, то он указывал на тот участок памяти который тебе не принадлежит, вот прога и крашилась