         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
		_imp_IEXP:
		.LFB60:
				pushl	%ebp
				movl	%esp, %ebp
				subl	$16, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	$1, -8(%ebp)
				movl	12(%ebp), %eax
				movl	%eax, -4(%ebp)
				jmp	.L2
		.L3:
				movl	-8(%ebp), %eax
				imull	8(%ebp), %eax
				movl	%eax, -8(%ebp)
		.L2:
				movl	-4(%ebp), %eax
				leal	-1(%eax), %edx
				movl	%edx, -4(%ebp)
				testl	%eax, %eax
				jg	.L3
				movl	-8(%ebp), %eax
				cltd
				leave
				ret
		.LFE60:
				.globl	main
		main:
		.LFB189:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				pushl	%ecx
				subl	$48, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -44(%ebp)
				movl	%gs:20, %ecx
				movl	%ecx, -12(%ebp)
				xorl	%ecx, %ecx
				subl	$8, %esp
				pushl	-44(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2   %integername p,p2
    3   %integer q, q2
    4     q = 1
				movl	$1, -32(%ebp)
    5     q = 1
				movl	$1, -32(%ebp)
    6     q = '*'
				movl	$42, -32(%ebp)
    7     q = '    '
				movl	$32, -32(%ebp)
    8     q = M'abcd'
				movl	$1633837924, -32(%ebp)
    9     q = K'7777'
				movl	$4095, -32(%ebp)
   10     q = B'0101010101'
				movl	$341, -32(%ebp)
   11     q = 123
				movl	$123, -32(%ebp)
   12     q = X'CAFE' + 1
				movl	$51967, -32(%ebp)
   13     q = (400+24) + 242
				movl	$666, -32(%ebp)
   14     q = 123 & 12 + 234 ! 23 * 345 !! 34 - 45 - (5 // 2) << 2 >> 3 ^^ 2 ^^ 2
				subl	$8, %esp
				pushl	$2
				pushl	$1
				call	_imp_IEXP
				addl	$16, %esp
				subl	$8, %esp
				pushl	$2
				pushl	%eax
				call	_imp_IEXP
				addl	$16, %esp
				movl	$7856, %edx
				subl	%eax, %edx
				movl	%edx, %eax
				movl	%eax, -32(%ebp)
   15     q = 1
				movl	$1, -32(%ebp)
   16     q = '*'
				movl	$42, -32(%ebp)
   17     q = '    '
				movl	$32, -32(%ebp)
   18     q = M'abcd'
				movl	$1633837924, -32(%ebp)
   19     q = K'7777'
				movl	$4095, -32(%ebp)
   20     q = B'0101010101'
				movl	$341, -32(%ebp)
   21     q = 123
				movl	$123, -32(%ebp)
   22     q = X'CAFE' + 1
				movl	$51967, -32(%ebp)
   23     q = (400+24) + 242
				movl	$666, -32(%ebp)
   24     q = 123 & 12 + 234 ! 23 * 345 !! 34 - 45 - (5 // 2) << 2 >> 3 ^^ 2 ^^ 2
				subl	$8, %esp
				pushl	$2
				pushl	$1
				call	_imp_IEXP
				addl	$16, %esp
				subl	$8, %esp
				pushl	$2
				pushl	%eax
				call	_imp_IEXP
				addl	$16, %esp
				movl	$7856, %edx
				subl	%eax, %edx
				movl	%edx, %eax
				movl	%eax, -32(%ebp)
   25     q = 1
				movl	$1, -32(%ebp)
   26     q = q2
				movl	-28(%ebp), %eax
				movl	%eax, -32(%ebp)
   27     p == q
				leal	-32(%ebp), %eax
				movl	%eax, -24(%ebp)
   28     p == p2
				movl	-20(%ebp), %eax
				movl	%eax, -24(%ebp)
   29     p = 1
				movl	-24(%ebp), %eax
				movl	$1, (%eax)
   30     p = q
				movl	-32(%ebp), %edx
				movl	-24(%ebp), %eax
				movl	%edx, (%eax)
				movl	$0, -16(%ebp)
		.LBB4:
		.LBB5:
				subl	$12, %esp
				pushl	-16(%ebp)
				call	exit@PLT
		.LBE5:
		.LBE4:
		.LFE189:
				.section	.text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
				.globl	__x86.get_pc_thunk.ax
				.hidden	__x86.get_pc_thunk.ax
		__x86.get_pc_thunk.ax:
		.LFB190:
				movl	(%esp), %eax
				ret
		.LFE190:
				.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:
		.LFB191:
				movl	(%esp), %ebx
				ret
		.LFE191:
		.Letext0:
   31 %endofprogram
   31 Statements compiled
