You’re calling
push
right in the middle of your high level code – this is almost bound to cause problems because the
asm code generated by the compiler from your source code most likely uses the stack, too. You were just lucky that it didn’t break before.