         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
		.Ltext0:
				.align	1
				.thumb
				.thumb_func
		PRHEX.10027:
		.LFB186:
				@ Volatile: function does not return.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL23:
				push	{r3, lr}
    2 %ROUTINE PRHEX(%INTEGER VALUE, PLACES)
				@ args = 0, pretend = 0, frame = 792
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL0:
				push	{r4, r5, r6, r7, r8, lr}
				sub	sp, sp, #1304
				mov	r6, r0
				mov	r4, r1
				ldr	r7, .L14
		.LPIC0:
				add	r7, pc
				ldr	r3, .L14+4
				ldr	r3, [r7, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1300]
				bl	_imp_initialise(PLT)
		.LVL24:
    3 %CONSTBYTEINTEGERARRAY HEX(0:15)='0','1','2','3','4',
				ldr	r3, .L14+8
		.LPIC1:
				add	r3, pc
				ldm	r3, {r0, r1, r2, r3}
		.LVL1:
				addw	r5, sp, #1284
				stm	r5, {r0, r1, r2, r3}
		.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))
				lsls	r4, r4, #2
		.LVL2:
		.LBB10:
				lsr	r3, r6, r4
		.LVL7:
				and	r3, r3, #15
		.LVL8:
				add	r2, sp, #1304
				add	r3, r3, r2
		.LBB11:
		.LBB12:
				ldrb	r0, [r3, #-20]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL9:
		.LBE12:
		.LBE11:
    8       %REPEAT
				rsb	r3, r4, #4
		.LVL3:
				cmp	r3, #2147483648
				bmi	.L12
		.LVL4:
		.L2:
		.LBE10:
				ldr	r3, .L14+12
		.LVL12:
				ldr	r3, [r7, r3]
				ldr	r1, [r3]
				cbz	r1, .L3
				add	r0, sp, #772
				bl	_imp_c2istr(PLT)
		.LVL13:
		.L4:
				ldr	r3, .L14+16
				ldr	r3, [r7, r3]
				ldr	r5, [r3]
				cmp	r5, #0
				it	eq
				moveq	r5, #8
				ldr	r1, .L14+20
		.LPIC3:
				add	r1, pc
				addw	r8, sp, #1028
				mov	r0, r8
				bl	_imp_c2istr(PLT)
		.LVL14:
				movs	r3, #0
				str	r3, [sp, #508]
				movs	r3, #1
				str	r3, [sp, #504]
				movs	r3, #5
				str	r3, [sp, #500]
				mov	r2, #256
				mov	r1, r8
				add	r0, sp, #244
				bl	memcpy(PLT)
		.LVL15:
				str	r5, [sp, #240]
				movs	r2, #240
				add	r1, sp, #788
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL16:
				add	r3, sp, #772
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_event(PLT)
		.LVL17:
				b	.L2
		.L3:
		.LBB13:
				mov	r8, #256
				mov	r2, r8
				ldr	r1, .L14+24
		.LPIC2:
				add	r1, pc
				adds	r1, r1, #16
				addw	r5, sp, #1028
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL18:
				mov	r2, r8
				mov	r1, r5
				add	r5, sp, #516
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL19:
		.LBE13:
				mov	r2, r8
				mov	r1, r5
				add	r0, sp, #772
				bl	memcpy(PLT)
		.LVL20:
				b	.L4
		.LVL21:
		.L13:
		.LBE14:
    9 %END
   10 PRHEX(X'B00B',8)
				ldr	r3, .L14+4
				ldr	r3, [r7, r3]
				ldr	r2, [sp, #1300]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L13
				add	sp, sp, #1304
				@ sp needed
				pop	{r4, r5, r6, r7, r8, pc}
		.LVL11:
		.L12:
		.LBB14:
				bl	__stack_chk_fail(PLT)
		.LVL22:
		.L15:
				.align	2
		.L14:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC0+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR0-(.LPIC1+4)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC2-(.LPIC3+4)
				.word	.LANCHOR0-(.LPIC2+4)
		.LFE186:
				.align	1
				.global	main
				.thumb
				.thumb_func
		main:
		.LFB185:
				movs	r1, #8
				movw	r0, #45067
				bl	PRHEX.10027(PLT)
		.LVL25:
		.LBB15:
		.LBB16:
				movs	r0, #0
				bl	exit(PLT)
		.LVL26:
		.LBE16:
		.LBE15:
		.LFE185:
				.section	.rodata
				.align	2
				.set	.LANCHOR0,. + 0
		.LC0:
				.byte	48
				.byte	49
				.byte	50
				.byte	51
				.byte	52
				.byte	53
				.byte	54
				.byte	55
				.byte	56
				.byte	57
				.byte	65
				.byte	66
				.byte	67
				.byte	68
				.byte	69
				.byte	70
		.LC1:
				.byte	16
				.ascii	"test-new/vs4.imp\000"
				.space	238
				.section	.rodata.str1.4,"aMS",%progbits,1
				.align	2
		.LC2:
				.ascii	"Illegal cycle I = (PLACES << 2) - 4,  -4, 0\000"
		.Letext0:
   11 %ENDOFPROGRAM
				cbz	r4, .L1
		.LVL5:
		.L7:
				cmp	r4, #0
				bne	.L7
		.L6:
		.LVL10:
		.L1:
		.LBE9:
   10 Statements compiled
				subs	r4, r4, #4
		.LVL6:
