мои пять копеек (фантазия на тему). 1) Adres и Kolvo рассматриваются как независимые величины и беззнаковые
2) MaxReg знаковая величина
3) я не помню (напрочъ старческий склероз) как/что будет, если Adres+Kolvo даёт значение больше чем максимальное значение знакового MaxReg. Вдруг оно будет трактоваться как отрицательное? и как вариант не "попадать на return" , а идти дальше на цикл.