.globl slowsqrt slowsqrt: .LFB1: pushl %ebx /* save a callee-save register */ movl 8(%esp), %ebx /* load parameter into b */ movl $0, %eax /* a = 0 */ .L3: /* do { */ leal 1(%eax), %edx /* d = a + 1 */ movl %edx, %ecx /* c = d */ imull %eax, %ecx /* c *= a */ cmpl %ebx, %ecx /* if (b c) { */ jae .L2 /* >= break; } */ movl %edx, %eax /* a = d */ jmp .L3 /* } while (true); */ .L2: popl %ebx /* restore a callee-save register */ ret /* return a */