         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.globl	main
		main:
		.LFB189:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				pushl	%ecx
				subl	$1384, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -1388(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				subl	$8, %esp
				pushl	-1388(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2   %byteinteger bi1
    3   %shortinteger si1
    4   %integer i1
    5   %longinteger li1
    6   %real r1
    7   %longreal lr1
    8   %string (15) s15 1
    9   %string (255) s255 1
   10
   11   %byteinteger bi
   12   %shortinteger si
   13   %integer i
   14   %longinteger li
   15   %real r
   16   %longreal lr
   17   %string (15) s15
   18   %string (255) s255
   19
   20   %byteinteger bi2
   21   %shortinteger si2
   22   %integer i2
   23   %longinteger li2
   24   %real r2
   25   %longreal lr2
   26   %string (15) s15 2
   27   %string (255) s255 2
   28
   29   bi <- bi1
				movzbl	-1370(%ebp), %eax
				movb	%al, -1369(%ebp)
   30   bi <- si1
				movzwl	-1368(%ebp), %eax
				movb	%al, -1369(%ebp)
   31   bi <- i1
				movl	-1364(%ebp), %eax
				movb	%al, -1369(%ebp)
   32   bi <- li1
				movl	-1360(%ebp), %eax
				movb	%al, -1369(%ebp)
   33
   34   si <- bi1
				movzbl	-1370(%ebp), %eax
				movw	%ax, -1366(%ebp)
   35   si <- si1
				movzwl	-1368(%ebp), %eax
				movw	%ax, -1366(%ebp)
   36   si <- i1
				movl	-1364(%ebp), %eax
				movw	%ax, -1366(%ebp)
   37   si <- li1
				movl	-1360(%ebp), %eax
				movw	%ax, -1366(%ebp)
   38
   39   i <- bi1
				movzbl	-1370(%ebp), %eax
				movl	%eax, -1356(%ebp)
   40   i <- si1
				movswl	-1368(%ebp), %eax
				movl	%eax, -1356(%ebp)
   41   i <- i1
				movl	-1364(%ebp), %eax
				movl	%eax, -1356(%ebp)
   42   i <- li1
				movl	-1360(%ebp), %eax
				movl	%eax, -1356(%ebp)
   43
   44   li <- bi1
				movzbl	-1370(%ebp), %eax
				movl	%eax, -1352(%ebp)
   45   li <- si1
				movswl	-1368(%ebp), %eax
				movl	%eax, -1352(%ebp)
   46   li <- i1
				movl	-1364(%ebp), %eax
				movl	%eax, -1352(%ebp)
   47   li <- li1
				movl	-1360(%ebp), %eax
				movl	%eax, -1352(%ebp)
   48
   49   r <- bi1
				movzbl	-1370(%ebp), %eax
				movw	%ax, -1394(%ebp)
				filds	-1394(%ebp)
				fstps	-1348(%ebp)
   50   r <- si1
				filds	-1368(%ebp)
				fstps	-1348(%ebp)
   51   r <- i1
				fildl	-1364(%ebp)
				fstps	-1348(%ebp)
   52   r <- li1
				fildl	-1360(%ebp)
				fstps	-1348(%ebp)
   53   r <- r1
				flds	-1344(%ebp)
				fstps	-1348(%ebp)
   54   r <- lr1
				fldl	-1328(%ebp)
				fstps	-1348(%ebp)
   55
   56   lr <- bi1
				movzbl	-1370(%ebp), %eax
				movw	%ax, -1394(%ebp)
				filds	-1394(%ebp)
				fstpl	-1320(%ebp)
   57   lr <- si1
				filds	-1368(%ebp)
				fstpl	-1320(%ebp)
   58   lr <- i1
				fildl	-1364(%ebp)
				fstpl	-1320(%ebp)
   59   lr <- li1
				fildl	-1360(%ebp)
				fstpl	-1320(%ebp)
   60   lr <- r1
				flds	-1344(%ebp)
				fstpl	-1320(%ebp)
   61   lr <- lr1
				fldl	-1328(%ebp)
				fstpl	-1320(%ebp)
		.LBB12:
   62
   63   s15 <- s15 2
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE12:
				subl	$4, %esp
				pushl	$15
				pushl	%eax
				leal	-1308(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB13:
   64   s15 <- s255 2
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE13:
				subl	$4, %esp
				pushl	$15
				pushl	%eax
				leal	-1308(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
				leal	-1308(%ebp), %eax
				movl	%eax, -1340(%ebp)
		.LBB14:
		.LBB15:
				movl	-1340(%ebp), %eax
		.LBE15:
		.LBE14:
				movzbl	(%eax), %eax
				cmpb	$15, %al
				jbe	.L3
				leal	-1308(%ebp), %eax
				movl	%eax, -1336(%ebp)
		.LBB16:
		.LBB17:
				movl	-1336(%ebp), %eax
		.LBE17:
		.LBE16:
				movb	$15, (%eax)
		.L3:
		.LBB18:
   65   s255 <- s15 2
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE18:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-1052(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB19:
   66   s255 <- s255 2
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE19:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-1052(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
				movl	$0, -1332(%ebp)
		.LBB20:
		.LBB21:
				subl	$12, %esp
				pushl	-1332(%ebp)
				call	exit@PLT
		.LBE21:
		.LBE20:
		.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:
   67
   68 %endofprogram
?LR2 unused
?R2 unused
?LI2 unused
?I2 unused
?SI2 unused
?BI2 unused
    0 unused
    0 nused
   58 Statements compiled
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				pushl	%ecx
				subl	$1384, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -1388(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				subl	$8, %esp
				pushl	-1388(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
				movzbl	-1370(%ebp), %eax
				movb	%al, -1369(%ebp)
				movzwl	-1368(%ebp), %eax
				movb	%al, -1369(%ebp)
				movl	-1364(%ebp), %eax
				movb	%al, -1369(%ebp)
				movl	-1360(%ebp), %eax
				movb	%al, -1369(%ebp)
				movzbl	-1370(%ebp), %eax
				movw	%ax, -1366(%ebp)
				movzwl	-1368(%ebp), %eax
				movw	%ax, -1366(%ebp)
				movl	-1364(%ebp), %eax
				movw	%ax, -1366(%ebp)
				movl	-1360(%ebp), %eax
				movw	%ax, -1366(%ebp)
				movzbl	-1370(%ebp), %eax
				movl	%eax, -1356(%ebp)
				movswl	-1368(%ebp), %eax
				movl	%eax, -1356(%ebp)
				movl	-1364(%ebp), %eax
				movl	%eax, -1356(%ebp)
				movl	-1360(%ebp), %eax
				movl	%eax, -1356(%ebp)
				movzbl	-1370(%ebp), %eax
				movl	%eax, -1352(%ebp)
				movswl	-1368(%ebp), %eax
				movl	%eax, -1352(%ebp)
				movl	-1364(%ebp), %eax
				movl	%eax, -1352(%ebp)
				movl	-1360(%ebp), %eax
				movl	%eax, -1352(%ebp)
				movzbl	-1370(%ebp), %eax
				movw	%ax, -1394(%ebp)
				filds	-1394(%ebp)
				fstps	-1348(%ebp)
				filds	-1368(%ebp)
				fstps	-1348(%ebp)
				fildl	-1364(%ebp)
				fstps	-1348(%ebp)
				fildl	-1360(%ebp)
				fstps	-1348(%ebp)
				flds	-1344(%ebp)
				fstps	-1348(%ebp)
				fldl	-1328(%ebp)
				fstps	-1348(%ebp)
				movzbl	-1370(%ebp), %eax
				movw	%ax, -1394(%ebp)
				filds	-1394(%ebp)
				fstpl	-1320(%ebp)
				filds	-1368(%ebp)
				fstpl	-1320(%ebp)
				fildl	-1364(%ebp)
				fstpl	-1320(%ebp)
				fildl	-1360(%ebp)
				fstpl	-1320(%ebp)
				flds	-1344(%ebp)
				fstpl	-1320(%ebp)
				fldl	-1328(%ebp)
				fstpl	-1320(%ebp)
		.LBB12:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE12:
				subl	$4, %esp
				pushl	$15
				pushl	%eax
				leal	-1308(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB13:
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE13:
				subl	$4, %esp
				pushl	$15
				pushl	%eax
				leal	-1308(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
				leal	-1308(%ebp), %eax
				movl	%eax, -1340(%ebp)
		.LBB14:
		.LBB15:
				movl	-1340(%ebp), %eax
		.LBE15:
		.LBE14:
				movzbl	(%eax), %eax
				cmpb	$15, %al
				jbe	.L3
				leal	-1308(%ebp), %eax
				movl	%eax, -1336(%ebp)
		.LBB16:
		.LBB17:
				movl	-1336(%ebp), %eax
		.LBE17:
		.LBE16:
				movb	$15, (%eax)
		.L3:
		.LBB18:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE18:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-1052(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB19:
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE19:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-1052(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
				movl	$0, -1332(%ebp)
		.LBB20:
		.LBB21:
				subl	$12, %esp
				pushl	-1332(%ebp)
				call	exit@PLT
		.LBE21:
		.LBE20:
		.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:
