Hey Shankle,
Did you try something like
OR esi, esi
jz > somewhere (or jnz > somewhere)
or...
TEST esi, esi
jz > somewhere (or jnz > somewhere)
Either can be used as a short test for 0 (mods the zero flag, 0 bits remain 0, 1 bits remain 1).
Flags Affected (for both OR and TEST):
The OF and CF flags are cleared; the SF, ZF, and PF flags are set according to the result. The state of the AF flag is
undefined.
GoAsm doesn't support run-time .while, and a compare would be something like:
cmp esi, 0
je > somewhere (or jne > somewhere)