1.) First of all there is no return statements at the end of the procedure(s).
2.) Since I am using floating point AND STACK I put finit before each procedure call.
3.) I needed to establish a stack frame in the beginning of each procedure
push ebp ; save base pointer
mov ebp, esp ; establish stack frame
push ebx ; save EBX
4.) Pop the registers from the stack frame before the return on each procedure
pop ebx ; restore EBX
pop ebp ; restore EBP
ret ; return
Those things fixed my problem.
2
solved Procedures with floating points breaking