Well, there's no "rete" instruction I know of (an x86 issue, not a Nasm issue).
cmp al, 0
jne dont_ret
ret
dont_ret:
...
Might be better to:
cmp al, 0
je exit_this_function
...
...
exit_this_function:
pop ?
leave ?
ret
Multiple exit-points in a function might make for hard-to-maintain code...
Best,
Frank