         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
		.Ltext0:
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align 8
		.LC0:
				.string	"Illegal cycle I = (PLACES << 2) - 4,  -4, 0"
		PRHEX.6389:
		.LFB186:
		.LVL20:
				subq	$8, %rsp
    2 %ROUTINE PRHEX(%INTEGER VALUE, PLACES)
		.LVL0:
				pushq	%r12
				pushq	%rbp
				pushq	%rbx
				subq	$800, %rsp
				movl	%edi, %ebp
				movq	%fs:40, %rax
				movq	%rax, 792(%rsp)
				xorl	%eax, %eax
				call	_imp_initialise@PLT
		.LVL21:
    3 %CONSTBYTEINTEGERARRAY HEX(0:15)='0','1','2','3','4',
				movb	$48, 768(%rsp)
				movb	$49, 769(%rsp)
				movb	$50, 770(%rsp)
				movb	$51, 771(%rsp)
				movb	$52, 772(%rsp)
				movb	$53, 773(%rsp)
				movb	$54, 774(%rsp)
				movb	$55, 775(%rsp)
				movb	$56, 776(%rsp)
				movb	$57, 777(%rsp)
				movb	$65, 778(%rsp)
				movb	$66, 779(%rsp)
				movb	$67, 780(%rsp)
				movb	$68, 781(%rsp)
				movb	$69, 782(%rsp)
				movb	$70, 783(%rsp)
		.LBB9:
    4                '5','6','7','8','9','A','B','C','D','E','F'
    5 %INTEGER I
    6       %CYCLE I=PLACES<<2-4, -4, 0
    7          PRINT SYMBOL(HEX(VALUE>>I&15))
				leal	0(,%rsi,4), %ebx
		.LVL1:
		.LBB10:
				movl	%ebp, %eax
				movl	%ebx, %ecx
				shrl	%cl, %eax
				andl	$15, %eax
				movsbl	768(%rsp,%rax), %edi
		.LBB11:
		.LBB12:
				call	_imp_printsymbol@PLT
		.LVL7:
		.LBE12:
		.LBE11:
    8       %REPEAT
				movl	$4, %eax
				subl	%ebx, %eax
		.LVL2:
				addl	$-2147483648, %eax
		.LVL3:
				js	.L12
		.LVL4:
		.L2:
		.LBE10:
				leaq	256(%rsp), %rdi
		.LVL11:
				leaq	.LC0(%rip), %rsi
		.LVL12:
				call	_imp_c2istr@PLT
		.LVL13:
				movl	_imp_current_line(%rip), %r12d
				testl	%r12d, %r12d
				jne	.L3
				movl	$8, %r12d
		.L3:
				movq	_imp_current_file(%rip), %rsi
				testq	%rsi, %rsi
				je	.L4
				leaq	512(%rsp), %rdi
				call	_imp_c2istr@PLT
		.LVL14:
		.L5:
				subq	$256, %rsp
				leaq	512(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				subq	$256, %rsp
				leaq	1024(%rsp), %rsi
				movl	$32, %ecx
				movq	%rsp, %rdi
				rep movsq
				movl	$1, %edx
				movl	$5, %esi
				movl	%r12d, %edi
				call	_signal_event@PLT
		.LVL15:
				addq	$512, %rsp
				jmp	.L2
		.L4:
		.LVL16:
		.LBB13:
				movabsq	$8603403804667503988, %rax
				movabsq	$8101246951878784559, %rdx
				movq	%rax, 513(%rsp)
				movq	%rdx, 521(%rsp)
				movq	$0, 529(%rsp)
				movq	$0, 537(%rsp)
				leaq	545(%rsp), %rdi
				movl	$223, %ecx
				movl	$0, %eax
				rep stosb
				movb	$16, 512(%rsp)
				movq	%rsp, %rdi
				leaq	512(%rsp), %rsi
				movl	$32, %ecx
				rep movsq
		.LVL17:
		.LBE13:
				movb	$16, (%rsp)
				leaq	512(%rsp), %rdi
				movq	%rsp, %rsi
				movl	$32, %ecx
				rep movsq
				jmp	.L5
		.LVL18:
		.L13:
		.LBE14:
    9 %END
   10 PRHEX(X'B00B',8)
				movq	792(%rsp), %rax
				xorq	%fs:40, %rax
				jne	.L13
				addq	$800, %rsp
				popq	%rbx
		.LVL8:
				popq	%rbp
		.LVL9:
				popq	%r12
				ret
		.LVL10:
		.L12:
		.LBB14:
				call	__stack_chk_fail@PLT
		.LVL19:
		.LFE186:
				.globl	main
		main:
		.LFB185:
				movl	$8, %esi
				movl	$45067, %edi
				call	PRHEX.6389
		.LVL22:
		.LBB15:
		.LBB16:
				movl	$0, %edi
				call	exit@PLT
		.LVL23:
		.LBE16:
		.LBE15:
		.LFE185:
		.Letext0:
   11 %ENDOFPROGRAM
				testl	%ebx, %ebx
				je	.L1
		.LVL5:
		.L7:
				testl	%ebx, %ebx
				jne	.L7
		.L6:
		.L1:
		.LBE9:
   10 Statements compiled
				subl	$4, %ebx
		.LVL6:
