         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
		RFN1.6054:
		.LFB190:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%ebx
				pushl	%ecx
				subl	$892, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -876(%ebp)
				movl	%gs:20, %edi
				movl	%edi, -28(%ebp)
				xorl	%edi, %edi
				leal	8(%ebp), %edx
				movl	%edx, -832(%ebp)
				subl	$8, %esp
				pushl	-876(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2   %comment %begin
    3   %recordformat rf ( %integer i, %real r, %integer i2)
    4   %comment   %recordformat rf ( %integer i, %real r, %integer i2)
    5
    6   %comment
    7   %record (rf) rec1, rec2
    8   %comment   %record (rf) rec1, rec2
    9   %record (rf) %name recn1, recn2
   10   %comment   %record (rf) %name recn1, recn2
   11   %record (rf) %array reca1,reca2(2:3),reca3(4:5,1:2)
				leal	-708(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-804(%ebp), %eax
				movl	%eax, -708(%ebp)
				movl	$12, -704(%ebp)
				leal	-640(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-780(%ebp), %eax
				movl	%eax, -640(%ebp)
				movl	$12, -636(%ebp)
				leal	-572(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-756(%ebp), %eax
				movl	%eax, -572(%ebp)
				movl	$12, -568(%ebp)
   12   %comment   %record (rf) %array reca1,reca2(2:3),reca3(4:5,1:2)
   13   %record (rf) %array %name recan1,recan2
				leal	-504(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-436(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
   14   %comment   %record (rf) %array %name recan1,recan2
   15   %record (rf) %name %array recna1,recna2(2:3),recna3(1:2)
				leal	-368(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-828(%ebp), %eax
				movl	%eax, -368(%ebp)
				movl	$4, -364(%ebp)
				leal	-300(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-820(%ebp), %eax
				movl	%eax, -300(%ebp)
				movl	$4, -296(%ebp)
				leal	-232(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-812(%ebp), %eax
				movl	%eax, -232(%ebp)
				movl	$4, -228(%ebp)
   16   %comment   %record (rf) %name %array recna1,recna2(2:3),recna3(1:2)
   17   %record (rf) %name %array %name recnan1,recnan2
				leal	-164(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-96(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
   18   %comment   %record (rf) %name %array %name recnan1,recnan2
   19   %record(rf)%fn rfn1
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	8(%ebp), %eax
				movl	%eax, -28(%ebp)
				movl	%ecx, %edx
				movl	%ecx, -32(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -12(%ebp)
				xorl	%eax, %eax
   20   %comment   %record(rf)%fn rfn1
   21     %result = rec2
				movl	-28(%ebp), %eax
				movl	(%edx), %ecx
				movl	%ecx, (%eax)
				movl	4(%edx), %ecx
				movl	%ecx, 4(%eax)
				movl	8(%edx), %edx
				movl	%edx, 8(%eax)
   22   %comment     %result = rec2
   23   %end
				movl	-28(%ebp), %eax
				movl	-12(%ebp), %edx
				xorl	%gs:20, %edx
				je	.L3
				call	__stack_chk_fail_local
		.L3:
				leave
				ret	$4
		.LFE190:
				.globl	main
		main:
		.LFB189:
   24   %comment   %end
   25   %record(rf)%map rmap1
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %eax
				movl	%ecx, -28(%ebp)
				movl	%gs:20, %edx
				movl	%edx, -12(%ebp)
				xorl	%edx, %edx
   26   %comment   %record(rf)%map rmap1
   27     %result == rec2
   28   %comment     %result == rec2
   29   %end
				movl	-12(%ebp), %edx
				xorl	%gs:20, %edx
				je	.L8
				call	__stack_chk_fail_local
		.L8:
				leave
				ret
		.LFE191:
				.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:
		.LFB192:
				movl	(%esp), %eax
				ret
		.LFE192:
				.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:
		.LFB193:
				movl	(%esp), %ebx
				ret
		.LFE193:
		.Letext0:
   30   %comment   %end
   31
   32   %comment
   33   rec1 = rec2
				movl	-844(%ebp), %eax
				movl	%eax, -856(%ebp)
				movl	-840(%ebp), %eax
				movl	%eax, -852(%ebp)
				movl	-836(%ebp), %eax
				movl	%eax, -848(%ebp)
   34   %comment   rec1 = rec2
   35   recn1 == rec2
				leal	-844(%ebp), %eax
				movl	%eax, -868(%ebp)
   36   %comment   recn1 == rec2
   37   rec1 = recn1
				movl	-868(%ebp), %eax
				movl	(%eax), %edx
				movl	%edx, -856(%ebp)
				movl	4(%eax), %edx
				movl	%edx, -852(%ebp)
				movl	8(%eax), %eax
				movl	%eax, -848(%ebp)
   38   %comment   rec1 = recn1
   39   reca1(2) = rec2
				movl	-844(%ebp), %eax
				movl	%eax, -804(%ebp)
				movl	-840(%ebp), %eax
				movl	%eax, -800(%ebp)
				movl	-836(%ebp), %eax
				movl	%eax, -796(%ebp)
   40   %comment   reca1(2) = rec2
   41   rec1 = reca1(2)
				movl	-804(%ebp), %eax
				movl	%eax, -856(%ebp)
				movl	-800(%ebp), %eax
				movl	%eax, -852(%ebp)
				movl	-796(%ebp), %eax
				movl	%eax, -848(%ebp)
   42   %comment   rec1 = reca1(2)
   43   reca3(4,2) = rec2
				movl	-844(%ebp), %eax
				movl	%eax, -744(%ebp)
				movl	-840(%ebp), %eax
				movl	%eax, -740(%ebp)
				movl	-836(%ebp), %eax
				movl	%eax, -736(%ebp)
   44   %comment   reca3(4,2) = rec2
   45   rec1 = reca3(4,2)
				movl	-744(%ebp), %eax
				movl	%eax, -856(%ebp)
				movl	-740(%ebp), %eax
				movl	%eax, -852(%ebp)
				movl	-736(%ebp), %eax
				movl	%eax, -848(%ebp)
   46   %comment   rec1 = reca3(4,2)
   47   recnan1 == recna1
				leal	-828(%ebp), %eax
				movl	%eax, -864(%ebp)
   48   %comment   recnan1 == recna1
   49   recnan1(2) == rec1
				movl	-864(%ebp), %eax
				leal	8(%eax), %edx
				leal	-856(%ebp), %eax
				movl	%eax, (%edx)
   50   %comment   recnan1(2) == rec1
   51   rec1 = recnan1(2)
				movl	-864(%ebp), %eax
				addl	$8, %eax
				movl	(%eax), %eax
				movl	(%eax), %edx
				movl	%edx, -856(%ebp)
				movl	4(%eax), %edx
				movl	%edx, -852(%ebp)
				movl	8(%eax), %eax
				movl	%eax, -848(%ebp)
   52   %comment   rec1 = recnan1(2)
   53   rec1 = rfn1
				leal	-904(%ebp), %edx
				subl	$12, %esp
				leal	-844(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	RFN1.6054
				addl	$12, %esp
				movl	-904(%ebp), %eax
				movl	%eax, -856(%ebp)
				movl	-900(%ebp), %eax
				movl	%eax, -852(%ebp)
				movl	-896(%ebp), %eax
				movl	%eax, -848(%ebp)
   54   %comment   rec1 = rfn1
   55   rmap1 = rec1
				leal	-844(%ebp), %eax
				movl	%eax, %ecx
				call	RMAP1.6057
				movl	-856(%ebp), %edx
				movl	%edx, (%eax)
				movl	-852(%ebp), %edx
				movl	%edx, 4(%eax)
				movl	-848(%ebp), %edx
				movl	%edx, 8(%eax)
   56   %comment   rmap1 = rec1
   57   rec1 = rmap1
				leal	-844(%ebp), %eax
				movl	%eax, %ecx
				call	RMAP1.6057
				movl	(%eax), %edx
				movl	%edx, -856(%ebp)
				movl	4(%eax), %edx
				movl	%edx, -852(%ebp)
				movl	8(%eax), %eax
				movl	%eax, -848(%ebp)
				movl	$0, -860(%ebp)
		.LBB4:
		.LBB5:
				subl	$12, %esp
				pushl	-860(%ebp)
				call	exit@PLT
		.LBE5:
		.LBE4:
		.LFE189:
		RMAP1.6057:
		.LFB191:
   58   %comment   rec1 = rmap1
   59
   60   %comment
   61   %comment %endofprogram
   62 %endofprogram
?RECNAN2 unused
?RECNA3 unused
?RECNA2 unused
?RECAN2 unused
?RECAN1 unused
?RECA2 unused
?RECN2 unused
   28 Statements compiled
