/* STACK QUICKSORT */
/********** Program Start **********/
	addi r6, r0, 65535	 //Initialise stack pointer
	addi r5, r0, 0		 //Initialise memory pointer
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r5, r5, 1
	addi r1, r0, 10
	store r1, r4, 1		 //store local variable length
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 1		 //local variable load: length
	store r5, r0, 0
	add r5, r5, r1
	load r1, r0, 1		 //local variable load: length
	store r5, r0, 2
	add r5, r5, r1
	addi r1, r0, 0
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
	addi r1, r0, 903
	store r1, r4, 5		 //store local variable seed
	addi r4, r0, 0		 //Clear r4 array offset
	addi r1, r0, 74916
	store r1, r4, 6		 //store local variable a
	addi r4, r0, 0		 //Clear r4 array offset
	addi r1, r0, 1021
	store r1, r4, 7		 //store local variable c
	addi r4, r0, 0		 //Clear r4 array offset
	addi r1, r0, 14983
	store r1, r4, 8		 //store local variable m
	addi r4, r0, 0		 //Clear r4 array offset
	addi r1, r0, 0
	store r1, r4, 4		 //store local variable i
	addi r4, r0, 0		 //Clear r4 array offset
L0:
	load r1, r0, 4		 //local variable load: i
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 1		 //local variable load: length
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	slt r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L1
	load r1, r0, 6		 //local variable load: a
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 5		 //local variable load: seed
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	mul r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 7		 //local variable load: c
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 8		 //local variable load: m
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	mod r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 5		 //store local variable seed
	addi r4, r0, 0		 //Clear r4 array offset
	load r4, r0, 0		 //Get array start
	load r1, r0, 4		 //local variable load: i
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 5		 //local variable load: seed
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 4		 //local variable load: i
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 4		 //store local variable i
	addi r4, r0, 0		 //Clear r4 array offset
	beq r0, r0, L0
L1:
	addi r1, r0, 0
	store r1, r4, 10	 //store local variable l
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 1		 //local variable load: length
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 11	 //store local variable r
	addi r4, r0, 0		 //Clear r4 array offset
	load r4, r0, 2		 //Get array start
	load r1, r0, 3		 //local variable load: stackPointer
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 10		 //local variable load: l
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
	load r4, r0, 2		 //Get array start
	load r1, r0, 3		 //local variable load: stackPointer
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 11		 //local variable load: r
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
L3:
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 0
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r2, r2, r1
	and r1, r2, r2
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L4
	load r1, r0, 11		 //local variable load: r
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 10		 //local variable load: l
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sle r1, r2, r1
	sle r1, r1, r0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L5
	load r1, r0, 10		 //local variable load: l
	store r1, r4, 13	 //store local variable lo
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 11		 //local variable load: r
	store r1, r4, 12	 //store local variable hi
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 13		 //local variable load: lo
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 12		 //local variable load: hi
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 2
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	div r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	load r3, r0, 0		 //Get array start (load operand)
	add r3, r3, r1		 //Add positional offset
	load r1, r3, 0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	store r1, r4, 14	 //store local variable mid
	addi r4, r0, 0		 //Clear r4 array offset
L7:
	load r1, r0, 13		 //local variable load: lo
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 12		 //local variable load: hi
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sle r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L8
L9:
	load r1, r0, 13		 //local variable load: lo
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 11		 //local variable load: r
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	slt r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 13		 //local variable load: lo
	load r3, r0, 0		 //Get array start (load operand)
	add r3, r3, r1		 //Add positional offset
	load r1, r3, 0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 14		 //local variable load: mid
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	slt r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	and r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L10
	load r1, r0, 13		 //local variable load: lo
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 13	 //store local variable lo
	addi r4, r0, 0		 //Clear r4 array offset
	beq r0, r0, L9
L10:
L11:
	load r1, r0, 12		 //local variable load: hi
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 10		 //local variable load: l
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sle r1, r2, r1
	sle r1, r1, r0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 12		 //local variable load: hi
	load r3, r0, 0		 //Get array start (load operand)
	add r3, r3, r1		 //Add positional offset
	load r1, r3, 0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 14		 //local variable load: mid
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sle r1, r2, r1
	sle r1, r1, r0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	and r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L12
	load r1, r0, 12		 //local variable load: hi
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 12	 //store local variable hi
	addi r4, r0, 0		 //Clear r4 array offset
	beq r0, r0, L11
L12:
	load r1, r0, 13		 //local variable load: lo
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 12		 //local variable load: hi
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sle r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L13
	load r1, r0, 13		 //local variable load: lo
	load r3, r0, 0		 //Get array start (load operand)
	add r3, r3, r1		 //Add positional offset
	load r1, r3, 0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	store r1, r4, 4		 //store local variable i
	addi r4, r0, 0		 //Clear r4 array offset
	load r4, r0, 0		 //Get array start
	load r1, r0, 13		 //local variable load: lo
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 12		 //local variable load: hi
	load r3, r0, 0		 //Get array start (load operand)
	add r3, r3, r1		 //Add positional offset
	load r1, r3, 0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r4, r0, 0		 //Get array start
	load r1, r0, 12		 //local variable load: hi
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 4		 //local variable load: i
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 13		 //local variable load: lo
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 13	 //store local variable lo
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 12		 //local variable load: hi
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 12	 //store local variable hi
	addi r4, r0, 0		 //Clear r4 array offset
L13:
	beq r0, r0, L7
L8:
	load r1, r0, 12		 //local variable load: hi
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 10		 //local variable load: l
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 11		 //local variable load: r
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 13		 //local variable load: lo
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r6, 1		 //pop r1
	addi r6, r6, 1		 //pop
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sle r1, r2, r1
	sle r1, r1, r0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L15
	load r4, r0, 2		 //Get array start
	load r1, r0, 3		 //local variable load: stackPointer
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 10		 //local variable load: l
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
	load r4, r0, 2		 //Get array start
	load r1, r0, 3		 //local variable load: stackPointer
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 12		 //local variable load: hi
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 13		 //local variable load: lo
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 10	 //store local variable l
	addi r4, r0, 0		 //Clear r4 array offset
	beq r0, r0, L16
L15:
	load r4, r0, 2		 //Get array start
	load r1, r0, 3		 //local variable load: stackPointer
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 13		 //local variable load: lo
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
	load r4, r0, 2		 //Get array start
	load r1, r0, 3		 //local variable load: stackPointer
	add r4, r4, r1		 //Add positional offset [x]
	load r1, r0, 11		 //local variable load: r
	store r1, r4, 0		 //store local variable ia
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 12		 //local variable load: hi
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 11	 //store local variable r
	addi r4, r0, 0		 //Clear r4 array offset
L16:
	beq r0, r0, L6
L5:
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	load r3, r0, 2		 //Get array start (load operand)
	add r3, r3, r1		 //Add positional offset
	load r1, r3, 0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	store r1, r4, 11	 //store local variable r
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	sub r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 3		 //store local variable stackPointer
	addi r4, r0, 0		 //Clear r4 array offset
	load r1, r0, 3		 //local variable load: stackPointer
	load r3, r0, 2		 //Get array start (load operand)
	add r3, r3, r1		 //Add positional offset
	load r1, r3, 0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	store r1, r4, 10	 //store local variable l
	addi r4, r0, 0		 //Clear r4 array offset
L6:
	beq r0, r0, L3
L4:
	addi r1, r0, 0
	store r1, r4, 4		 //store local variable i
	addi r4, r0, 0		 //Clear r4 array offset
L18:
	load r1, r0, 4		 //local variable load: i
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r1, r0, 1		 //local variable load: length
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	slt r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	beq r1, r0, L19
	load r1, r0, 4		 //local variable load: i
	load r3, r0, 0		 //Get array start (load operand)
	add r3, r3, r1		 //Add positional offset
	load r1, r3, 0
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	print_int r1
	addi r1, r0, 10
	print_char r1
	load r1, r0, 4		 //local variable load: i
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	addi r1, r0, 1
	load r2, r6, 1		 //pop r2
	addi r6, r6, 1		 //pop
	add r1, r2, r1
	store r1, r6, 0		 //push r1
	addi r6, r6, 0xFFFF
	addui r6, r6, 0xFFFF
	load r0, r6, 1		 //pop r0
	addi r6, r6, 1		 //pop
	store r1, r4, 4		 //store local variable i
	addi r4, r0, 0		 //Clear r4 array offset
	beq r0, r0, L18
L19:
HALTLINE:
	halt