Try saving return values and pushing them back after the LEAVE
Fix all the things
formatting stuff cause I am anal
removing debug code