         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.globl	next_free_bound_index
				.bss
				.align 4
		next_free_bound_index:
				.zero	4
				.comm	_lb,384,32
				.comm	_ub,384,32
				.globl	main
		main:
		.LFB189:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				pushl	%ecx
				subl	$16, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				subl	$8, %esp
				pushl	4(%eax)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2   %integer i
    3   i = 42
				movl	$42, -16(%ebp)
    4   %for i = 0, 1, 17 %cycle
				movl	$-1, -16(%ebp)
		.L2:
				cmpl	$17, -16(%ebp)
				je	.L47
				addl	$1, -16(%ebp)
				nop
				jmp	.L18
		.L49:
    5     i = i - 1
				subl	$1, -16(%ebp)
    6     %continue %if i <= 4
				cmpl	$4, -16(%ebp)
				jle	.L48
				nop
		.L6:
				nop
		.L7:
    7     i = i - 1
				subl	$1, -16(%ebp)
    8     %exit %if i = 5
				cmpl	$5, -16(%ebp)
				je	.L49
				nop
		.L9:
				nop
		.L10:
		.L18:
    9     i = i - 1
				subl	$1, -16(%ebp)
				jmp	.L2
		.L48:
   10   %repeat
				jmp	.L2
		.L4:
		.L47:
   11
   12   %while i > 5 %cycle
				cmpl	$5, -16(%ebp)
				jle	.L50
				nop
				jmp	.L27
		.L52:
   13     i = i - 1
				subl	$1, -16(%ebp)
   14     %continue %if i <= 4
				cmpl	$4, -16(%ebp)
				jle	.L51
				nop
		.L14:
				nop
		.L15:
   15     i = i - 1
				subl	$1, -16(%ebp)
   16     %exit %if i = 5
				cmpl	$5, -16(%ebp)
				je	.L52
				nop
		.L17:
				nop
		.L19:
		.L27:
   17     i = i - 1
				subl	$1, -16(%ebp)
				jmp	.L18
		.L51:
   18   %repeat
				jmp	.L18
		.L12:
		.L50:
   19
   20   %cycle
   21     i = i + 1
				addl	$1, -16(%ebp)
   22     %continue %if i <= 4
				cmpl	$4, -16(%ebp)
				jle	.L53
				nop
		.L21:
				nop
		.L22:
   23     i = i - 1
				subl	$1, -16(%ebp)
   24     %exit %if i = 5
				cmpl	$5, -16(%ebp)
				je	.L54
				nop
		.L24:
				nop
				jmp	.L37
		.L55:
				nop
		.L28:
		.L37:
   25     i = i - 1
				subl	$1, -16(%ebp)
				jmp	.L22
		.L53:
   26   %repeat %until i = 10
				cmpl	$10, -16(%ebp)
				je	.L55
				jmp	.L27
		.L25:
		.L54:
   27
   28   %while i > 5 %cycle
				cmpl	$5, -16(%ebp)
				jle	.L56
				nop
				jmp	.L30
		.L58:
   29     i = i - 1
				subl	$1, -16(%ebp)
   30     %continue %if i <= 4
				cmpl	$4, -16(%ebp)
				jle	.L57
				nop
		.L32:
				nop
		.L33:
   31     i = i - 1
				subl	$1, -16(%ebp)
   32     %exit %if i = 5
				cmpl	$5, -16(%ebp)
				je	.L58
				nop
		.L35:
				nop
				jmp	.L30
		.L59:
				nop
		.L30:
   33     i = i - 1
				subl	$1, -16(%ebp)
				jmp	.L33
		.L57:
   34   %repeat %until i = 10
				cmpl	$10, -16(%ebp)
				je	.L59
				jmp	.L37
		.L56:
   35
   36   %for i = 0, 1, 17 %cycle
				movl	$-1, -16(%ebp)
		.L38:
				cmpl	$17, -16(%ebp)
				je	.L60
				addl	$1, -16(%ebp)
				nop
				jmp	.L40
		.L62:
   37     i = i - 1
				subl	$1, -16(%ebp)
   38     %continue %if i <= 4
				cmpl	$4, -16(%ebp)
				jle	.L61
				nop
		.L42:
				nop
		.L43:
   39     i = i - 1
				subl	$1, -16(%ebp)
   40     %exit %if i = 5
				cmpl	$5, -16(%ebp)
				je	.L62
				nop
		.L45:
				nop
				jmp	.L40
		.L63:
				nop
		.L40:
				movl	$0, -12(%ebp)
		.LBB4:
		.LBB5:
				subl	$12, %esp
				pushl	-12(%ebp)
				call	exit@PLT
		.LBE5:
		.LBE4:
		.LFE189:
				.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
				.globl	__x86.get_pc_thunk.bx
				.hidden	__x86.get_pc_thunk.bx
		__x86.get_pc_thunk.bx:
		.LFB190:
				movl	(%esp), %ebx
				ret
		.LFE190:
		.Letext0:
   41     i = i - 1
				subl	$1, -16(%ebp)
				jmp	.L43
		.L61:
   42   %repeat %until i = 10
				cmpl	$10, -16(%ebp)
				je	.L63
				jmp	.L38
		.L60:
   43
   44
   45 %endofprogram
   39 Statements compiled
