         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
		.Ltext0:
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align 8
		.LC0:
				.string	"Illegal cycle I = 1, 1, LABELNO"
		LABEL.6398:
		.LFB186:
		.LVL26:
				pushq	%rbx
				subq	$3600, %rsp
				movq	%fs:40, %rax
				movq	%rax, 3592(%rsp)
				xorl	%eax, %eax
    2 %OWNINTEGER LABELNO=0
				call	_imp_initialise@PLT
		.LVL27:
		.LBB61:
    3 %CONSTINTEGER MAXLABELS=10
    4 %RECORDFORMAT F(%BYTE B,%STRING(255)LAB)
    5 %OWNSTRING(15)%ARRAY LBLNAME(0:MAXLABELS)
    6 %OWNRECORD(F)%ARRAY LBL(0:MAXLABELS)
    7
    8 %RECORD(F)%MAP LABEL(%STRING(15) L)
    9 %INTEGER I
				pushq	%r14
				pushq	%r13
				pushq	%r12
				pushq	%rbp
				pushq	%rbx
				subq	$2064, %rsp
				movq	%fs:40, %rax
				movq	%rax, 2056(%rsp)
				xorl	%eax, %eax
   10  %IF LABELNO>0 %THENSTART
				movl	LABELNO.6387(%rip), %r12d
				testl	%r12d, %r12d
				jle	.L10
		.LVL0:
		.LBB46:
   11   %FOR I=1,1,LABELNO %CYCLE
   12    %RESULT==LBL(I) %IF LBLNAME(I)=L
   13   %REPEAT
				movl	%r12d, %eax
				subl	$1, %eax
				js	.L18
		.L3:
		.LVL1:
				leaq	256+LBLNAME.6395(%rip), %rbp
				movl	$0, %ebx
		.LVL2:
		.L7:
				leaq	1024(%rsp), %rdi
				leaq	.LC0(%rip), %rsi
				call	_imp_c2istr@PLT
		.LVL15:
				movl	_imp_current_line(%rip), %ebx
				testl	%ebx, %ebx
				jne	.L4
				movl	$13, %ebx
		.L4:
				movq	_imp_current_file(%rip), %rsi
				testq	%rsi, %rsi
				je	.L5
				leaq	1280(%rsp), %rdi
				call	_imp_c2istr@PLT
		.LVL16:
		.L6:
				subq	$256, %rsp
				leaq	1280(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				subq	$256, %rsp
				leaq	1792(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				movl	$1, %edx
				movl	$5, %esi
				movl	%ebx, %edi
				call	_signal_event@PLT
		.LVL17:
				addq	$512, %rsp
				jmp	.L3
		.L5:
		.LVL18:
		.LBB47:
				movabsq	$8603403804667503988, %rax
				movabsq	$7883883428720177711, %rdx
				movq	%rax, 1793(%rsp)
				movq	%rdx, 1801(%rsp)
				movq	$112, 1809(%rsp)
				movq	$0, 1817(%rsp)
				leaq	1825(%rsp), %rdi
				movl	$223, %ecx
				movl	$0, %eax
				rep stosb
				movb	$17, 1792(%rsp)
				movq	%rsp, %rdi
				leaq	1792(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL19:
		.LBE47:
				movb	$17, (%rsp)
				leaq	1280(%rsp), %rdi
				movq	%rsp, %rsi
				movl	$32, %ecx
				rep movsq
				jmp	.L6
		.LVL20:
		.L19:
   14  %FINISH
				leaq	2112(%rsp), %rsi
				movq	%rbp, %rdi
				call	_imp_strcmp@PLT
		.LVL4:
				testl	%eax, %eax
				je	.L19
				addq	$256, %rbp
   15 !  INSERT NEW LABEL-NAME.
   16  LABELNO=LABELNO+1
				cmpl	%ebx, %r12d
				jne	.L7
		.L2:
		.LVL5:
		.L10:
		.LBE46:
				movl	LABELNO.6387(%rip), %eax
				addl	$1, %eax
				movl	%eax, LABELNO.6387(%rip)
				cmpl	$10, %eax
				jle	.L11
		.LBB48:
		.LBB49:
   17  %IF LABELNO>MAXLABELS %THENSTART
				addl	$1, %ebx
		.LVL3:
				movslq	%ebx, %rax
				imulq	$257, %rax, %rax
				leaq	LBL.6396(%rip), %rbx
		.LVL21:
				addq	%rbx, %rax
				jmp	.L1
		.LVL22:
		.L11:
		.LBE60:
   18   PRINT STRING(L." MAKES TOO MANY LABELS."); NEWLINE
   19   %FOR I=1,1,MAXLABELS %CYCLE
   20    PRINT STRING(LBLNAME(I))
				leaq	1792(%rsp), %rdi
				leaq	512(%rsp), %rdx
				leaq	2112(%rsp), %rsi
				call	_imp_join@PLT
		.LVL6:
				leaq	1536(%rsp), %rdi
				leaq	256(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LBE49:
		.LBE48:
		.LBB50:
		.LBB51:
				subq	$256, %rsp
				leaq	1792(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				call	_imp_printstring@PLT
		.LVL7:
		.LBE51:
		.LBE50:
		.LBB52:
		.LBB53:
				addq	$256, %rsp
				call	_imp_newline@PLT
		.LVL8:
				movl	$10, %ebp
		.LVL9:
		.L12:
				movdqa	768(%rsp), %xmm0
				movaps	%xmm0, 1792(%rsp)
				movdqa	784(%rsp), %xmm1
				movaps	%xmm1, 1808(%rsp)
				movdqa	800(%rsp), %xmm2
				movaps	%xmm2, 1824(%rsp)
				movdqa	816(%rsp), %xmm3
				movaps	%xmm3, 1840(%rsp)
				movdqa	832(%rsp), %xmm4
				movaps	%xmm4, 1856(%rsp)
				movdqa	848(%rsp), %xmm5
				movaps	%xmm5, 1872(%rsp)
				movdqa	864(%rsp), %xmm6
				movaps	%xmm6, 1888(%rsp)
				movdqa	880(%rsp), %xmm7
				movaps	%xmm7, 1904(%rsp)
				movdqa	896(%rsp), %xmm0
				movaps	%xmm0, 1920(%rsp)
				movdqa	912(%rsp), %xmm1
				movaps	%xmm1, 1936(%rsp)
				movq	928(%rsp), %r13
				movq	936(%rsp), %r14
				movq	%r13, 1952(%rsp)
				movq	%r14, 1960(%rsp)
				movq	944(%rsp), %rax
				movq	952(%rsp), %rdx
				movq	%rax, 1968(%rsp)
				movq	%rdx, 1976(%rsp)
				movq	960(%rsp), %rcx
				movq	968(%rsp), %rbx
				movq	%rcx, 1984(%rsp)
				movq	%rbx, 1992(%rsp)
				movq	976(%rsp), %rsi
				movq	984(%rsp), %rdi
				movq	%rsi, 2000(%rsp)
				movq	%rdi, 2008(%rsp)
				movq	992(%rsp), %r9
				movq	1000(%rsp), %r10
				movq	%r9, 2016(%rsp)
				movq	%r10, 2024(%rsp)
				movq	1008(%rsp), %r11
				movq	1016(%rsp), %r12
				movq	%r11, 2032(%rsp)
				movq	%r12, 2040(%rsp)
		.LBE53:
		.LBE52:
		.LBB54:
		.LBB55:
				pushq	%r12
				pushq	%r11
				pushq	%r10
				pushq	%r9
				pushq	%rdi
				pushq	%rsi
				pushq	%rbx
				pushq	%rcx
				pushq	%rdx
				pushq	%rax
				pushq	%r14
				pushq	%r13
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				pushq	1016(%rsp)
				call	_imp_printstring@PLT
		.LVL10:
		.LBE55:
		.LBE54:
		.LBB56:
		.LBB57:
				addq	$256, %rsp
				call	_imp_newline@PLT
		.LVL11:
		.LDL1:
		.LBE57:
		.LBE56:
   21    NEWLINE
   22   %REPEAT
				subl	$1, %ebp
		.LVL12:
				jne	.L12
		.L13:
		.LVL13:
		.LBB58:
		.LBB59:
				movl	$0, %edi
				call	exit@PLT
		.LVL14:
		.L18:
		.LBE59:
		.LBE58:
		.LBB60:
   23   %MONITOR
   24   %STOP
   25  %FINISH    ;!  DEALING WITH TOO MANY LABELS.
   26  LBLNAME(LABELNO)=L
   27  LBL(LABELNO)_LAB=""
   28  %RESULT==LBL(LABELNO)
				leaq	1536(%rsp), %rsi
				movslq	%eax, %rdi
				movq	%rdi, %rax
				salq	$8, %rax
				leaq	LBLNAME.6395(%rip), %rdi
				addq	%rax, %rdi
				movl	$15, %edx
				call	_imp_strncpy@PLT
		.LVL23:
				movslq	LABELNO.6387(%rip), %rax
				imulq	$257, %rax, %rax
				addq	%rbx, %rax
		.L1:
				movq	2056(%rsp), %rdx
				xorq	%fs:40, %rdx
				jne	.L20
				addq	$2064, %rsp
				popq	%rbx
				popq	%rbp
				popq	%r12
				popq	%r13
				popq	%r14
				ret
		.L20:
				call	__stack_chk_fail@PLT
		.LVL25:
		.LFE186:
				.globl	main
		main:
		.LFB185:
   29 %END
				leaq	1792(%rsp), %rsi
				movslq	LABELNO.6387(%rip), %rax
				imulq	$257, %rax, %rax
				leaq	LBL.6396(%rip), %rbx
				leaq	1(%rbx,%rax), %rdi
				movl	$255, %edx
				call	_imp_strncpy@PLT
		.LVL24:
   30
   31
   32
   33   LABEL("T")_LAB="TESTING USE OF LABEL"
   34   PRINT STRING(LABEL("T")_LAB); NEWLINE
   35   LABEL("T")_LAB="THIS SHOULD MODIFY ".LABEL("T")_LAB." AS I TRIED TO DO YESTERDAY"
				movq	$84, 3329(%rsp)
				movl	$0, 3337(%rsp)
				movw	$0, 3341(%rsp)
				movb	$0, 3343(%rsp)
				movb	$1, 3328(%rsp)
		.LVL28:
		.LBE61:
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	3576(%rsp)
				pushq	3576(%rsp)
				call	LABEL.6398
		.LVL29:
				addq	$256, %rsp
				leaq	256(%rsp), %rsi
				leaq	1(%rax), %rdi
				movl	$255, %edx
				call	_imp_strncpy@PLT
		.LVL30:
		.LBB62:
		.LBB63:
   36   PRINT STRING(LABEL("T")_LAB); NEWLINE
				movq	$84, 3329(%rsp)
				movl	$0, 3337(%rsp)
				movw	$0, 3341(%rsp)
				movb	$0, 3343(%rsp)
				movb	$1, 3328(%rsp)
		.LVL31:
		.LBE63:
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	3576(%rsp)
				pushq	3576(%rsp)
				call	LABEL.6398
		.LVL32:
		.LBE62:
		.LBB64:
		.LBB65:
				addq	$256, %rsp
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				pushq	760(%rsp)
				call	_imp_printstring@PLT
		.LVL33:
		.LBE65:
		.LBE64:
		.LBB66:
		.LBB67:
				addq	$256, %rsp
				call	_imp_newline@PLT
		.LVL34:
		.LBE67:
		.LBE66:
		.LBB68:
		.LBB69:
		.LBB70:
		.LBB71:
   37 %ENDOFPROGRAM
				movq	$84, 3073(%rsp)
				movl	$0, 3081(%rsp)
				movw	$0, 3085(%rsp)
				movb	$0, 3087(%rsp)
				movb	$1, 3072(%rsp)
		.LVL35:
		.LBE71:
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	3320(%rsp)
				pushq	3320(%rsp)
				call	LABEL.6398
		.LVL36:
				leaq	1792(%rsp), %rbx
				addq	$256, %rsp
				leaq	1(%rax), %rdx
				leaq	1792(%rsp), %rsi
				movq	%rbx, %rdi
				call	_imp_join@PLT
		.LVL37:
		.LBE70:
				leaq	3072(%rsp), %rdi
				leaq	2304(%rsp), %rdx
				movq	%rbx, %rsi
				call	_imp_join@PLT
		.LVL38:
		.LBE69:
		.LBE68:
		.LBB72:
				movq	$84, 3073(%rsp)
				movl	$0, 3081(%rsp)
				movw	$0, 3085(%rsp)
				movb	$0, 3087(%rsp)
				movb	$1, 3072(%rsp)
		.LVL39:
		.LBE72:
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	3320(%rsp)
				pushq	3320(%rsp)
				call	LABEL.6398
		.LVL40:
				addq	$256, %rsp
				leaq	1280(%rsp), %rsi
				leaq	1(%rax), %rdi
				movl	$255, %edx
				call	_imp_strncpy@PLT
		.LVL41:
		.LBB73:
		.LBB74:
   35 Statements compiled
				movq	$84, 3073(%rsp)
				movl	$0, 3081(%rsp)
				movw	$0, 3085(%rsp)
				movb	$0, 3087(%rsp)
				movb	$1, 3072(%rsp)
		.LVL42:
		.LBE74:
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	$0
				pushq	3320(%rsp)
				pushq	3320(%rsp)
				call	LABEL.6398
		.LVL43:
		.LBE73:
		.LBB75:
		.LBB76:
				addq	$256, %rsp
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				pushq	2808(%rsp)
				call	_imp_printstring@PLT
		.LVL44:
		.LBE76:
		.LBE75:
		.LBB77:
		.LBB78:
				addq	$256, %rsp
				call	_imp_newline@PLT
		.LVL45:
		.LBE78:
		.LBE77:
		.LBB79:
		.LBB80:
				movl	$0, %edi
				call	exit@PLT
		.LVL46:
		.LBE80:
		.LBE79:
		.LFE185:
				.comm	LABELNO.6387,4,4
				.comm	LBLNAME.6395,2816,32
				.comm	LBL.6396,2827,32
		.Letext0:
