         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin; ! LC (Low-level compiler) for 8086
		.Ltext0:
				.align	1
				.thumb
				.thumb_func
		NEXTATOM.10206:
		.LFB190:
				@ args = 0, pretend = 0, frame = 16920
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL590:
				push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
				sub	sp, sp, #17152
				sub	sp, sp, #20
				ldr	r4, .L580
		.LPIC60:
				add	r4, pc
				ldr	r3, .L580+4
				ldr	r3, [r4, r3]
				ldr	r3, [r3]
				add	r2, sp, #17152
				adds	r2, r2, #12
				str	r3, [r2]
				add	r2, sp, #17152
				adds	r2, r2, #8
				add	r3, sp, #17152
				adds	r3, r3, #56
				str	r3, [r2]
    2
				bl	_imp_initialise(PLT)
		.LVL591:
    3 ! Statement -> CONST {tag = cexpr}+
    4 !              {WORD, BYTE} {tag { (cexpr:cexpr) }? {= {data}+ }? }*
    5 !              SPEC tag string
    6 !              PROC tag {string}? {tag}*
    7 !              END
    8 !              tag :
    9 !              {instruction, ELSE}? {IF expr comp expr}?
   10 !              CYCLE
   11 !              FINISH
   12 ! Instruction -> MOVE {string opd, cexpr opd opd}
   13 !                JUMP tag
   14 !                REPEAT
   15 !                RETURN {expr}?
   16 !                opd = expr
   17 !                tag {expr}*
   18 ! Data -> {string, cexpr { (cexpr) }? }
   19 ! Cexpr -> const {op const}*
   20 ! Expr -> {opd, const} {op {opd, const} }*
   21 ! Opd -> tag { ( {opd, const} ) }?
   22 ! Op -> + - & ! \ * / % << >>
   23 ! Comp -> = # < > <= >= [ ] [= ]=
   24 ! Comments are enclosed between { and } or | and NL.
   25
   26 ! Calling convention: Push parms, then XCALL or Push CS, CALL.
   27 !Entry: Push DS, Push BP, Mov BP,SP, {Sub SP,framesize}?,
   28 !        {Mov AX,Glaseg, Mov DS,AX}? Xor AX,AX, Push AX
   29 !Return: Mov SP,BP, Pop BP, Pop DS, Xret parmsize.
   30
   31 %constinteger source=1,diag=0,object=1,list=2;  !Streams
   32
   33 %constinteger linemax=80,atommax=50,tagmax=200,textmax=20
   34 %constinteger codemax=3499,glamax=499
   35 %byteintegerarray line(1:linemax)
   36 %byteintegerarray code(0:codemax)
   37 %byteintegerarray gla(0:glamax)
   38 %integerarray atomtype,atomval(1:atommax)
   39 %integerarray tag1,tag2,tagtype,tagval(1:tagmax)
   40 %integerarray texttype,textval(1:textmax)
   41 %integer type,val,t,v,atompos,ifpos,floc,parms
   42 %integer oldapos,oldcpos,oldtpos,access,textlevel
   43 %integer lineno=0,cloc=0,gloc=0,level=0,gpos=0,cpos=0,tagpos=1
   44 %string(31)program
				movs	r2, #0
				add	r3, sp, #8960
				adds	r3, r3, #32
				str	r2, [r3, #3828]
   45
   46 !Atom types
				str	r2, [r3, #3420]
   47 %constinteger unknown=0,constant=1,string=2,label=3
   48 %constinteger var=4, wordbit=1, glabit=2, varmask=16_fc
				str	r2, [r3, #3416]
   49 %constinteger proc=8,xproc=9,spec=10
   50 %constinteger op=11,comp=12,colon=13,sep=14,bracket=15,bx=16!wordbit
				str	r2, [r3, #16]
   51
   52 ! Keyword types
				str	r2, [r3, #196]
   53 %constinteger kconst=17,kword=18,kbyte=19,kspec=20,kproc=21
   54 %constinteger kend=22,kmove=23,kjump=24,kreturn=25,kprogram=26
				str	r2, [r3, #192]
   55 %constinteger kelse=27,kfinish=28,kcycle=29,krepeat=30
   56
				movs	r1, #1
				str	r1, [r3, #3408]
   57 !Operator codes
   58 %constinteger load=1,add=2,sub=3,and=4,or=5,xor=6,cmp=7,
   59               mul=8,div=9,rem=10,left=11,right=12,store=13,lea=14
   60
   61 !Keyword tag codes (1:36 = A:Z,0:9) 1st {*37 + 2nd {*37 + 3rd}? }?
   62 %constinteger if=339
   63 %ownintegerarray n1(kconst:krepeat)=
   64   4676, 32060, 3683, 26608, 22585, 7367, 18374, 14480, 24847, 22585,
   65   7308,  8561, 5035, 24843
   66 %ownintegerarray n2(kconst:krepeat)=
   67    723,     4,    5,     3,     3,    0,     5,    16, 29429, 10250,
   68      5, 13032,  449,  6902
   69
   70 !Fault numbers
   71 %constinteger complex=1,atom=2,consterr=3,bfull=4,form=5,ambig=6,
   72      nested=7,declate=8,far=9,labund=10,level0=11,varund=12,dfull=13,
   73      repexp=14,finexp=15,context=16,maxfault=16
   74
   75 %routine fault(%integer n)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 2312
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL91:
				push	{r4, r5, r6, r7, r8, r9, lr}
				subw	sp, sp, #2828
				mov	r7, ip
				ldr	r6, .L103
		.LPIC25:
				add	r6, pc
				ldr	r3, .L103+4
				ldr	r3, [r6, r3]
				ldr	r3, [r3]
				str	r3, [sp, #2820]
		.LVL92:
		.LBB258:
		.LBB259:
				ldr	r3, .L103+8
				ldr	r3, [r6, r3]
				movs	r2, #0
				str	r2, [r3]
				ldr	r3, .L103+12
				ldr	r3, [r6, r3]
				ldr	r2, .L103+16
				ldr	r2, [r6, r2]
				ldr	r2, [r2, #4]
				str	r2, [r3]
				ldr	r0, .L103+20
		.LVL93:
		.LPIC26:
				add	r0, pc
				add	r0, r0, #256
				bl	check_outstream(PLT)
		.LVL94:
		.LBE259:
		.LBE258:
   76 %ownstring(15)%array s(1:maxfault)=
   77 "Complex",
   78 "Atom",
   79 "Not constant",
   80 "Buffer full",
   81 "Form",
   82 "Ambiguous",
   83 "Nesting",
   84 "Too late",
   85 "Too far",
   86 "Label missing",
   87 "Code misplaced",
   88 "Name",
   89 "Dict full",
   90 "Repeat expected",
   91 "Finish expected",
   92 "Context"
   93 %integer i,sym
   94    selectoutput(diag); write(lineno,1); space
   95    i=1
				movs	r1, #1
				ldr	r0, [r7, #3828]
				bl	_imp_writeint(PLT)
		.LVL95:
		.LBB260:
		.LBB261:
				bl	_imp_space(PLT)
		.LVL96:
				add	r5, r7, #8064
				adds	r5, r5, #23
		.LVL97:
		.L93:
		.LBE261:
		.LBE260:
   96    %cycle
   97       sym=line(i); printsymbol(sym); i=i+1
				ldrb	r4, [r5, #1]!	@ zero_extendqisi2
		.LVL98:
		.LBB262:
		.LBB263:
				mov	r0, r4
				bl	_imp_printsymbol(PLT)
		.LVL99:
		.LBE263:
		.LBE262:
   98    %repeatuntil sym=nl
				cmp	r4, #10
				bne	.L93
		.L94:
				mov	r5, #256
				mov	r2, r5
				add	r1, sp, #516
				addw	r4, sp, #2564
		.LVL100:
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL101:
		.LBB264:
		.LBB265:
				mov	r9, #240
				mov	r2, r9
				addw	r1, sp, #2580
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL102:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL103:
		.LBE265:
		.LBE264:
   99    printstring(s(n)); write(atompos-1,1); newline
  100    selectoutput(list)
  101    printstring("** "); printstring(s(n))
				mov	r2, r5
				add	r1, r4, #276
				addw	r4, sp, #2308
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL107:
				mov	r2, r5
				mov	r1, r4
				add	r8, sp, #772
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL108:
				mov	r2, r5
				mov	r1, r8
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL109:
		.LBE270:
		.LBB271:
		.LBB272:
				mov	r2, r9
				addw	r1, sp, #2324
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL110:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL111:
				mov	r2, r5
				addw	r1, sp, #1028
				addw	r4, sp, #2052
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL112:
		.LBE272:
		.LBE271:
		.LBB273:
		.LBB274:
				mov	r2, r9
				addw	r1, sp, #2068
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL113:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL114:
		.LBE274:
		.LBE273:
  102    write(atompos-1,1); newline
				ldr	r0, [r7, #3824]
				movs	r1, #1
				subs	r0, r0, #1
				bl	_imp_writeint(PLT)
		.LVL115:
		.LBB275:
		.LBB276:
				bl	_imp_newline(PLT)
		.LVL116:
		.LBE276:
		.LBE275:
  103    %signalevent 15
				ldr	r3, .L103+28
				ldr	r3, [r6, r3]
				ldr	r1, [r3]
				cmp	r1, #0
				beq	.L95
				addw	r0, sp, #1540
				bl	_imp_c2istr(PLT)
		.LVL117:
		.L96:
				ldr	r3, .L103+32
				ldr	r3, [r6, r3]
				ldr	r4, [r3]
				cmp	r4, #0
				it	eq
				moveq	r4, #103
				ldr	r1, .L103+36
		.LPIC30:
				add	r1, pc
				addw	r5, sp, #1796
				mov	r0, r5
				bl	_imp_c2istr(PLT)
		.LVL118:
				movs	r3, #0
				str	r3, [sp, #508]
				str	r3, [sp, #504]
				movs	r3, #15
				str	r3, [sp, #500]
				mov	r2, #256
				mov	r1, r5
				add	r0, sp, #244
				bl	memcpy(PLT)
		.LVL119:
				str	r4, [sp, #240]
				movs	r2, #240
				addw	r1, sp, #1556
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL120:
				addw	r3, sp, #1540
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_event(PLT)
		.LVL121:
				mov	r5, #256
				mov	r2, r5
				ldr	r1, .L103+40
		.LPIC29:
				add	r1, pc
				addw	r4, sp, #1796
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL122:
				mov	r2, r5
				mov	r1, r4
				addw	r4, sp, #1284
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL123:
		.LBE277:
				mov	r2, r5
				mov	r1, r4
				addw	r0, sp, #1540
				bl	memcpy(PLT)
		.LVL124:
				b	.L96
		.L102:
  104 %end
				ldr	r0, [r7, #3824]
				movs	r1, #1
				subs	r0, r0, #1
				bl	_imp_writeint(PLT)
		.LVL104:
		.LBB266:
		.LBB267:
				bl	_imp_newline(PLT)
		.LVL105:
		.LBE267:
		.LBE266:
		.LBB268:
		.LBB269:
				ldr	r3, .L103+8
				ldr	r3, [r6, r3]
				movs	r2, #2
				str	r2, [r3]
				ldr	r3, .L103+12
				ldr	r3, [r6, r3]
				ldr	r2, .L103+16
				ldr	r2, [r6, r2]
				ldr	r2, [r2, #556]
				str	r2, [r3]
				ldr	r4, .L103+24
		.LPIC27:
				add	r4, pc
				adds	r0, r4, r5
				bl	check_outstream(PLT)
		.LVL106:
		.LBE269:
		.LBE268:
		.LBB270:
  105
				ldr	r3, .L103+4
				ldr	r3, [r6, r3]
				ldr	r2, [sp, #2820]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L102
				addw	sp, sp, #2828
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, pc}
		.L95:
		.LBB277:
				bl	__stack_chk_fail(PLT)
		.LVL125:
		.L104:
				.align	2
		.L103:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC25+4)
				.word	__stack_chk_guard(GOT)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR0-(.LPIC26+4)
				.word	.LANCHOR0-(.LPIC27+4)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC14-(.LPIC30+4)
				.word	.LANCHOR0-(.LPIC29+4)
		.LFE186:
				.align	1
				.thumb
				.thumb_func
		PUTATOM.10097:
		.LFB189:
  106 %routine readline
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 2080
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
				subw	sp, sp, #2596
				mov	r6, ip
				ldr	r2, .L235
		.LPIC39:
				add	r2, pc
				str	r2, [sp, #524]
				ldr	r3, .L235+4
				ldr	r3, [r2, r3]
				ldr	r3, [r3]
				str	r3, [sp, #2588]
				addw	r1, sp, #2632
				str	r1, [sp, #536]
				str	ip, [sp, #532]
		.LVL131:
		.LBB278:
		.LBB279:
				ldr	r3, .L235+8
				mov	r1, r2
				ldr	r3, [r2, r3]
				movs	r2, #2
				str	r2, [r3]
				ldr	r3, .L235+12
				ldr	r3, [r1, r3]
				ldr	r2, .L235+16
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #556]
				str	r2, [r3]
				ldr	r0, .L235+20
		.LPIC40:
				add	r0, pc
				add	r0, r0, #256
				bl	check_outstream(PLT)
		.LVL132:
		.LBE279:
		.LBE278:
  107 %owninteger semi=0
  108 %OWNINTEGER QUOTE=0
  109 %integer sym,n1,n2,radix,i,quoted,lpos
  110
  111   %routine phex(%integer x)
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL35:
				push	{r3, r4, r5, lr}
				mov	r5, r0
		.LVL36:
  112   %integer k,i
  113     %for i=12,-4,0 %cycle
  114       k=x>>i&15; k=k+7 %if k>9
				movs	r4, #16
		.LVL37:
		.L52:
				lsr	r0, r5, r4
				and	r0, r0, #15
		.LVL39:
  115       printsymbol(k+'0')
				cmp	r0, #9
  116     %repeat
				it	gt
				addgt	r0, r0, #7
		.LVL40:
		.L51:
		.LBB226:
		.LBB227:
				adds	r0, r0, #48
		.LVL41:
				bl	_imp_printsymbol(PLT)
		.LVL42:
		.LDL4:
		.LBE227:
		.LBE226:
				cmp	r4, #0
				bne	.L52
  117   %end
				subs	r4, r4, #4
		.LVL38:
  118
				pop	{r3, r4, r5, pc}
		.L53:
		.LFE188:
				.align	1
				.thumb
				.thumb_func
		GFLUSH.10274:
		.LFB198:
  119   %routine putatom(%integer t,v)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL126:
				push	{r4, r5, r6, lr}
				mov	r6, r0
				mov	r5, r1
				mov	r4, ip
  120     fault(complex) %if atompos>atommax
				ldr	r3, [ip]
				ldr	r2, [r3, #3824]
				cmp	r2, #50
				bgt	.L108
		.LVL127:
		.L106:
  121     atomtype(atompos)=t; atomval(atompos)=v
				ldr	r2, [r4]
				ldr	r3, [r2, #3824]
				addw	r3, r3, #905
				str	r6, [r2, r3, lsl #2]
				mov	ip, r3
				movs	r0, #1
		.LVL129:
				bl	FAULT.10060(PLT)
		.LVL130:
				b	.L106
		.LFE189:
				.align	1
				.thumb
				.thumb_func
		READLINE.10076:
		.LFB187:
  122     atompos=atompos+1
				ldr	r2, [r4]
				ldr	r3, [r2, #3824]
				addw	r3, r3, #855
				str	r5, [r2, r3, lsl #2]
				ldr	r2, [r4]
				ldr	r3, [r2, #3824]
				adds	r3, r3, #1
				str	r3, [r2, #3824]
  123   %end
  124
				pop	{r4, r5, r6, pc}
		.LVL128:
		.L108:
  125    selectoutput(list)
  126    %cycle
  127       %if semi=0 %start
				ldr	r10, .L235+24
		.LPIC41:
				add	r10, pc
		.LBB280:
				ldr	r3, [r10]
				cmp	r3, #0
				beq	.L214
		.L111:
  128         write(lineno+1,4)
				ldr	r0, [r6, #3828]
				movs	r1, #4
				adds	r0, r0, #1
				bl	_imp_writeint(PLT)
		.LVL133:
		.LBB281:
  129         printstring(" C"); phex(cloc); printstring(" D"); phex(gloc)
				ldr	r3, .L235+28
		.LPIC42:
				add	r3, pc
				str	r3, [sp, #516]
				add	r3, r3, #532
				str	r3, [sp, #520]
		.LBE280:
				mov	r5, #256
				mov	r2, r5
				ldr	r1, [sp, #520]
				addw	r7, sp, #1820
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL134:
				mov	r2, r5
				mov	r1, r7
				add	r4, sp, #540
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL135:
				mov	r2, r5
				mov	r1, r4
				addw	r4, sp, #2332
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL136:
		.LBE281:
		.LBB282:
		.LBB283:
				mov	fp, #240
				mov	r2, fp
				addw	r1, sp, #2348
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL137:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL138:
		.LBE283:
		.LBE282:
  130         space
				ldr	r0, [r6, #3420]
				bl	PHEX.10088(PLT)
		.LVL139:
		.LBB284:
  131       %finish
				mov	r2, r5
				ldr	r3, [sp, #516]
				add	r1, r3, #788
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL140:
				mov	r2, r5
				mov	r1, r7
				add	r4, sp, #796
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL141:
				mov	r2, r5
				mov	r1, r4
				addw	r4, sp, #2076
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL142:
		.LBE284:
		.LBB285:
		.LBB286:
				mov	r2, fp
				addw	r1, sp, #2092
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL143:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL144:
		.LBE286:
		.LBE285:
  132       lpos=1; quoted=0
				ldr	r0, [r6, #3416]
				bl	PHEX.10088(PLT)
		.LVL145:
		.LBB287:
		.LBB288:
				bl	_imp_space(PLT)
		.LVL146:
				b	.L111
		.LVL147:
		.L212:
		.LBE288:
		.LBE287:
  133       %cycle
  134 next:    %if lpos+quoted=linemax %start; ! line nearly too long: force end
  135             %if quoted=0 %then sym=nl %else sym=quote
				adds	r3, r5, r4
				cmp	r3, #80
				bne	.L113
				cmp	r5, #0
				bne	.L114
  136          %else
				movs	r0, #10
				str	r0, [sp, #528]
		.LVL155:
		.LBB293:
		.LBB291:
				bl	_imp_printsymbol(PLT)
		.LVL156:
		.L115:
		.LBE291:
		.LBE293:
  137             readsymbol(sym)
  138          %finish
  139          printsymbol(sym)
				ldr	r3, .L235+40
		.LPIC44:
				add	r3, pc
				ldr	r0, [r3, #4]
				str	r0, [sp, #528]
		.LVL149:
		.LBB289:
		.LBB290:
				uxtb	r0, r0
				bl	_imp_printsymbol(PLT)
		.LVL150:
		.L116:
		.LBE290:
		.LBE289:
  140          %if quoted=0 %start
				cmp	r5, #0
				bne	.L116
				b	.L115
		.LVL162:
		.L117:
  141            quoted=1 %if sym='''' %or sym='"'
				ldr	r3, [sp, #528]
  142            quote=sym %if quoted#0
				cmp	r3, #34
				it	ne
				cmpne	r3, #39
				bne	.L117
		.L118:
		.LVL157:
  143          %else
				ldr	r2, .L235+44
		.LPIC45:
				add	r2, pc
				str	r3, [r2, #4]
				b	.L119
		.LVL158:
		.L113:
		.LBB294:
		.LBB295:
				add	fp, sp, #528
		.LVL159:
				mov	r0, fp
				bl	_imp_readsymbol(PLT)
		.LVL160:
		.LDL5:
		.LDL6:
		.LBE295:
		.LBE294:
		.LBB296:
		.LBB292:
				ldrb	r0, [fp]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL161:
		.LBE292:
		.LBE296:
  144            quoted=0 %if sym=quote
				ldr	r2, [sp, #528]
				ldr	r3, [r7, #4]
				cmp	r2, r3
				beq	.L117
		.LVL151:
		.L119:
				ldr	r7, .L235+48
		.LPIC46:
				add	r7, pc
				b	.L112
		.LVL183:
		.L213:
		.L134:
  145          %finish
  146          %if quoted=0 %start
  147             %if sym='{' %start; ! Comment
				ldr	r3, [sp, #528]
				cmp	r3, #123
				beq	.L209
		.L120:
		.LVL163:
		.LBB297:
  148                %cycle
  149                   readsymbol(sym)
  150                   printsymbol(sym)
  151                   %if sym=nl %start
				ldr	r3, [r5]
				cmp	r3, #10
				bne	.L122
  152                      lineno=lineno+1; spaces(18)
				ldr	r3, [r6, #3828]
				adds	r3, r3, #1
				str	r3, [r6, #3828]
		.LVL172:
		.LBB307:
		.LBB303:
				mov	r0, fp
				bl	_imp_spaces(PLT)
		.LVL173:
				b	.L122
		.LVL174:
		.L210:
		.LBE303:
		.LBE307:
  153                   %finish
  154                %repeatuntil sym='}'
				ldr	r3, [r5]
				cmp	r3, #125
				beq	.L212
		.L121:
		.LVL169:
		.LBB304:
		.LBB300:
				mov	r0, r5
				bl	_imp_readsymbol(PLT)
		.LVL170:
		.LBE300:
		.LBE304:
		.LBB305:
		.LBB306:
				ldrb	r0, [r5]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL171:
		.LBE306:
		.LBE305:
  155                ->next
  156             %finish
				movs	r5, #0
				b	.L112
		.LVL148:
		.L114:
				movs	r5, #1
		.LVL152:
		.L127:
		.L130:
		.L131:
				movs	r4, #1
				movs	r5, #0
  157             sym=sym-32 %if 'a'<=sym<='z'; semi=0
  158             %if sym=';' %start
				ldr	r3, [sp, #528]
				cmp	r3, #59
				beq	.L210
		.L125:
  159               sym=nl; lineno=lineno-1; semi=1
				movs	r2, #10
				str	r2, [sp, #528]
  160             %finish
				ldr	r3, [r6, #3828]
				subs	r3, r3, #1
				str	r3, [r6, #3828]
  161             %if sym='|' %start
				ldr	r9, .L235+36
		.LPIC48:
				add	r9, pc
				b	.L110
		.L214:
				cmp	r3, #124
				beq	.L211
				movs	r3, #1
				str	r3, [r9]
				movs	r5, #0
		.LVL175:
		.L126:
  162               readsymbol(sym) %and printsymbol(sym) %until sym=nl
				sub	r2, r3, #97
				cmp	r2, #25
		.LBE297:
  163             %finish
  164          %finish
				ittt	ls
				subls	r3, r3, #32
		.LVL164:
				addls	r2, sp, #528
				strls	r3, [sp, #528]
		.LVL165:
		.L124:
  165          lineno=lineno+1 %if sym=nl
				ldr	r3, [sp, #528]
				cmp	r3, #10
				beq	.L126
		.L112:
		.LVL154:
				ldr	r3, [r5]
				cmp	r3, #10
				bne	.L128
  166          line(lpos)=sym; lpos=lpos+1
				ldr	r8, .L235+32
		.LPIC47:
				add	r8, pc
				itttt	ne
				addne	r1, r6, r4
				movwne	r2, #8087
				strbne	r3, [r1, r2]
				movs	r3, #0
				str	r3, [r8]
				ldr	r3, [r6, #3828]
				adds	r3, r3, #1
				str	r3, [r6, #3828]
		.LDL7:
				adds	r2, r6, r4
				movw	r3, #8087
				movs	r1, #10
				strb	r1, [r2, r3]
				ldr	r3, [r6, #3828]
				adds	r3, r3, #1
				str	r3, [r6, #3828]
				adds	r2, r6, r4
				movw	r3, #8087
				movs	r1, #10
				strb	r1, [r2, r3]
  167       %repeatuntil sym=nl %and quoted=0
				addne	r4, r4, #1
		.LVL153:
				movs	r5, #0
		.LVL166:
				b	.L127
		.LVL167:
		.L209:
		.LBB298:
		.LBB299:
				add	r5, sp, #528
		.LVL168:
		.LBE299:
		.LBE298:
		.LBB301:
		.LBB302:
				mov	fp, #18
				b	.L121
		.L122:
		.LBE302:
		.LBE301:
				adds	r4, r4, #1
		.LVL176:
				adds	r4, r4, #1
		.LVL181:
		.L133:
  168    %repeatuntil lpos>2; ! non-empty line
				cmp	r5, #0
				bne	.L112
				cmp	r4, #2
				bgt	.L213
		.LVL182:
		.L110:
  169
  170 ! Now decompose line into atoms
  171
				b	.L133
		.LVL177:
		.L211:
		.LBB308:
		.LBB309:
				add	r5, sp, #528
		.LVL178:
		.L128:
				mov	r0, r5
				bl	_imp_readsymbol(PLT)
		.LVL179:
		.LBE309:
		.LBE308:
		.LBB310:
		.LBB311:
				ldrb	r0, [r5]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL180:
		.LBE311:
		.LBE310:
  172    atompos=1; ifpos=0; lpos=1
				movs	r4, #1
		.LVL184:
				str	r4, [r6, #3824]
  173 nextatom:
				movs	r3, #0
				str	r3, [r6, #3412]
		.LVL185:
  174    %cycle
  175       sym=line(lpos); lpos=lpos+1
				adds	r3, r6, r4
				movw	r2, #8087
				ldrb	r1, [r3, r2]	@ zero_extendqisi2
				mov	r3, r1
				str	r1, [sp, #528]
  176       ->tag %if 'A'<=sym<='Z'
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				mov	r4, r7
				it	eq
				moveq	r4, r7
				mov	r4, r7
				b	.L135
		.LVL240:
		.L220:
				cbz	r5, .L174
				str	r3, [sp, #528]
		.LVL241:
				b	.L174
		.LVL242:
		.L176:
				adds	r7, r4, #1
		.LVL254:
		.LBB318:
  177       ->num %if '0'<=sym<='9'
  178       %if sym=nl %start
				cmp	r1, #10
				beq	.L222
		.L140:
  179         putatom(sep,0); atompos=1; %return
				add	ip, sp, #532
				movs	r1, #0
		.LVL189:
				movs	r0, #14
				bl	PUTATOM.10097(PLT)
		.LVL190:
  180       %finish
				movs	r3, #1
				str	r3, [r6, #3824]
  181       %if sym=':' %start
				sub	r2, r1, #65
				cmp	r2, #25
				bls	.L136
		.L137:
		.LVL255:
		.LBE318:
		.LBB319:
				cmp	r1, #58
				beq	.L223
		.L141:
  182          putatom(colon,0)
				movs	r5, #0
		.LBE315:
				add	ip, sp, #532
				movs	r1, #0
		.LVL192:
				movs	r0, #13
				bl	PUTATOM.10097(PLT)
		.LVL193:
				sub	r2, r1, #48
				cmp	r2, #9
				bls	.L221
		.L138:
		.LBE319:
  183       %finishelseif sym='+' %start
				b	.L135
		.LVL194:
		.L224:
  184         putatom(op,add)
				add	ip, sp, #532
				movs	r1, #2
		.LVL195:
				movs	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL196:
  185       %finishelseif sym='-' %start
				b	.L135
		.LVL197:
		.L225:
				cmp	r1, #43
				beq	.L224
		.L143:
  186         putatom(op,sub)
				add	ip, sp, #532
				movs	r1, #3
		.LVL198:
				movs	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL199:
  187       %finishelseif sym='&' %start
				b	.L135
		.LVL200:
		.L226:
				cmp	r1, #45
				beq	.L225
		.L144:
  188         putatom(op,and)
				add	ip, sp, #532
				movs	r1, #4
		.LVL201:
				movs	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL202:
  189       %finishelseif sym='!' %start
				b	.L135
		.LVL203:
		.L227:
				cmp	r1, #38
				beq	.L226
		.L145:
  190         putatom(op,or)
				add	ip, sp, #532
				movs	r1, #5
		.LVL204:
				movs	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL205:
  191       %finishelseif sym='\' %start
				b	.L135
		.LVL206:
		.L228:
				cmp	r1, #33
				beq	.L227
		.L146:
  192         putatom(op,xor)
				add	ip, sp, #532
				movs	r1, #6
		.LVL207:
				movs	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL208:
  193       %finishelseif sym='*' %start
				b	.L135
		.LVL209:
		.L229:
				cmp	r1, #92
				beq	.L228
		.L147:
  194         putatom(op,mul)
				add	ip, sp, #532
				movs	r1, #8
		.LVL210:
				movs	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL211:
  195       %finishelseif sym='%' %start
				b	.L135
		.LVL212:
		.L230:
				cmp	r1, #42
				beq	.L229
		.L148:
  196         putatom(op,rem)
				add	ip, sp, #532
				movs	r1, #10
		.LVL213:
				movs	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL214:
  197       %finishelseif sym='/' %start
				b	.L135
		.LVL215:
		.L231:
				cmp	r1, #37
				beq	.L230
		.L149:
  198         putatom(op,div)
				add	ip, sp, #532
				movs	r1, #9
		.LVL216:
				movs	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL217:
  199       %finishelseif sym='<' %or sym='>' %start
				b	.L135
		.LVL218:
		.L232:
				cmp	r1, #47
				beq	.L231
		.L150:
  200          %if line(lpos)=sym %start; ! '<<', '>>'
				adds	r3, r6, r4
				movw	r2, #8088
				ldrb	r3, [r3, r2]	@ zero_extendqisi2
				cmp	r1, r3
				beq	.L232
		.L153:
		.L155:
		.L156:
  201             lpos=lpos+1
				adds	r4, r4, #2
		.LVL219:
  202             %if sym='<' %then putatom(op,left) %else putatom(op,right)
				cmp	r1, #60
				and	r3, r1, #253
				cmp	r3, #60
				bne	.L151
		.L152:
  203          %else; ! '<', '>', '<=', '>='
				add	ip, sp, #532
				ittee	eq
				moveq	r1, #11
		.LVL220:
				moveq	r0, r1
		.L154:
  204 square:         !+'[', ']', '[=', ']='
  205             %if line(lpos)='=' %start
				adds	r3, r6, r4
				movw	r2, #8088
				ldrb	r3, [r3, r2]	@ zero_extendqisi2
				cmp	r3, #61
  206                lpos=lpos+1; sym=sym+128
				movne	r1, #12
				movne	r0, #11
				bl	PUTATOM.10097(PLT)
		.LVL221:
				b	.L135
		.LVL222:
		.L151:
				ittt	eq
				addeq	r7, r4, #2
		.LVL256:
  207             %finish
				addeq	r1, r1, #128
		.LVL257:
				streq	r1, [sp, #528]
		.LVL258:
		.L157:
  208             putatom(comp,sym)
				add	ip, sp, #532
				ldr	r1, [sp, #528]
				movs	r0, #12
				bl	PUTATOM.10097(PLT)
		.LVL259:
				mov	r4, r7
				b	.L135
		.LVL260:
		.L200:
				mov	r0, r1
		.LVL261:
  209          %finish
  210       %finishelseif sym='(' %or sym=')' %start
  211         putatom(bracket,sym)
				add	ip, sp, #532
				movs	r0, #15
				bl	PUTATOM.10097(PLT)
		.LVL228:
  212       %finishelseif sym='[' %or sym=']' %start
				b	.L135
		.LVL229:
		.L217:
		.L162:
  213          ->square
				sub	r3, r1, #40
				cmp	r3, #1
				bls	.L216
		.L158:
  214       %finishelseif sym='=' %or sym='#' %start
				sub	r3, r1, #91
  215          putatom(comp,sym)
				tst	r3, #253
				beq	.L156
		.L160:
				add	ip, sp, #532
				movs	r0, #12
				bl	PUTATOM.10097(PLT)
		.LVL230:
  216       %finishelseif sym='"' %start
				cmp	r1, #35
				it	ne
				cmpne	r1, #61
				beq	.L217
		.L161:
				b	.L135
		.LVL231:
		.L218:
  217          putatom(string,lpos)
				add	ip, sp, #532
				mov	r1, r7
		.LVL232:
				movs	r0, #2
				bl	PUTATOM.10097(PLT)
		.LVL233:
  218          lpos=lpos+1 %while line(lpos)#'"'; ! we know it's there
				cmp	r1, #34
				beq	.L218
		.L163:
  219          lpos=lpos+1
				adds	r3, r6, r4
				movw	r2, #8088
				ldrb	r3, [r3, r2]	@ zero_extendqisi2
				cmp	r3, #34
				beq	.L164
				add	r4, r4, #8064
				adds	r4, r4, #25
				add	r4, r4, r6
		.L165:
				ldrb	r3, [r4], #1	@ zero_extendqisi2
				cmp	r3, #34
				bne	.L165
		.L164:
				adds	r4, r7, #1
		.LVL235:
  220       %finishelseif sym='''' %start
				adds	r7, r7, #1
		.LVL234:
		.LDL8:
				b	.L135
		.LVL236:
		.L219:
  221          sym=line(lpos); lpos=lpos+1 %if sym=''''
				adds	r3, r6, r4
				movw	r2, #8088
				ldrb	r3, [r3, r2]	@ zero_extendqisi2
				str	r3, [sp, #528]
  222          fault(atom) %if line(lpos+1)#''''
				cmp	r1, #39
				bne	.L166
				cmp	r3, #39
				adds	r3, r6, r7
				movw	r2, #8088
				ldrb	r3, [r3, r2]	@ zero_extendqisi2
				cmp	r3, #39
				bne	.L219
		.LVL224:
		.L168:
  223          putatom(constant,sym); lpos=lpos+2
				it	eq
				addeq	r7, r4, #2
		.LVL223:
		.L167:
				add	ip, sp, #532
				ldr	r1, [sp, #528]
				movs	r0, #1
				bl	PUTATOM.10097(PLT)
		.LVL225:
				mov	ip, r6
				movs	r0, #2
				bl	FAULT.10060(PLT)
		.LVL237:
				b	.L168
		.LVL238:
		.L166:
  224       %else
				adds	r4, r7, #2
		.LVL226:
				b	.L135
		.LVL227:
		.L216:
		.L159:
  225          fault(atom) %unless sym=' '
				cmp	r1, #32
				beq	.L135
  226       %finish
				mov	ip, r6
				movs	r0, #2
				bl	FAULT.10060(PLT)
		.LVL239:
  227    %repeat
  228 num: i=0; radix=10; ! I accumulates number, default radix is ten
  229    %cycle
				mov	r1, r5
		.LVL187:
  230       %if sym='_' %start; ! change radix
				movs	r0, #10
				cmp	r3, #95
				beq	.L200
		.L171:
		.LVL246:
		.LBB316:
  231          radix=i; i=0
  232       %finishelseif '9'<sym<'A' %start
				mov	lr, r5
				mov	ip, #1
				b	.L139
		.LVL188:
		.L222:
				mov	r1, lr
		.LVL262:
				b	.L170
		.LVL263:
		.L136:
  233 endconst: putatom(constant,i); lpos=lpos-1; ->nextatom
  234       %else
				add	ip, sp, #532
				movs	r0, #1
		.LVL251:
				bl	PUTATOM.10097(PLT)
		.LVL252:
  235          sym=sym-7 %if sym>'9'; sym=sym-'0'
				cmp	r3, #57
				subs	r4, r7, #1
		.LVL253:
		.L135:
  236          ->endconst %unless 0<=sym<radix
				it	gt
				subgt	r3, r3, #7
		.LVL247:
		.L175:
  237          i=i*radix+sym
				mla	r1, r1, r0, r3
		.LVL243:
		.L170:
  238       %finish
				subs	r3, r3, #48
		.LVL248:
		.LBB317:
  239       sym=line(lpos); lpos=lpos+1
				ldrb	r3, [r2], #1	@ zero_extendqisi2
				mov	r5, ip
		.LVL245:
		.L139:
		.L169:
				sub	r4, r3, #58
				cmp	r4, #6
				bls	.L220
		.L172:
		.LBE316:
  240    %repeat
				adds	r7, r7, #1
		.LVL244:
  241 tag: n1=sym-'A'+1; n2=0; i=1; ! I counts name length
				mvns	r4, r3
		.LVL249:
				lsrs	r4, r4, #31
				cmp	r3, r0
				it	ge
				movge	r4, #0
				cmp	r4, #0
				bne	.L176
				str	r3, [sp, #528]
		.LVL250:
		.L173:
		.L174:
		.LBE317:
  242    %cycle
				sub	r5, r1, #64
		.LVL264:
				mov	r7, r4
		.LVL265:
				add	r1, r4, #8064
		.LVL266:
				adds	r1, r1, #24
				add	r1, r1, r6
  243       sym=line(lpos)
				mov	r8, #0
				b	.L177
		.LVL267:
		.L180:
		.LDL9:
				str	ip, [sp, #528]
		.LVL268:
				ldrb	r3, [r1], #1	@ zero_extendqisi2
				mov	ip, r3
		.LVL304:
		.LBB321:
  244       %if 'A'<=sym<='Z' %start
				movs	r2, #1
  245          sym=sym-'A'+1
				it	ls
				subls	r3, r3, #64
		.LVL305:
		.LBB322:
  246       %finishelseif '0'<=sym<='9' %start
  247          sym=sym-'0'+27
				subs	r3, r3, #21
		.LVL307:
		.L179:
  248       %else
  249          %if n1=if %start
				movw	r3, #339
		.LVL269:
				cmp	r5, r3
				bne	.L181
				sub	r0, r3, #65
				cmp	r0, #25
		.LBE321:
				bls	.L179
		.L178:
		.LVL306:
		.LBE322:
		.LBB323:
  250             fault(form) %unless ifpos=0
				ldr	r3, [r6, #3412]
				cbnz	r3, .L233
		.LVL270:
		.L182:
  251             ifpos=atompos; putatom(sep,0)
				ldr	r3, [r6, #3824]
				str	r3, [r6, #3412]
				mov	ip, r6
		.LVL273:
				movs	r0, #5
		.LVL274:
				bl	FAULT.10060(PLT)
		.LVL275:
				b	.L182
		.LVL276:
		.L181:
		.LBB320:
  252          %else; ! Look up in dictionary
				add	ip, sp, #532
				movs	r1, #0
				movs	r0, #14
				bl	PUTATOM.10097(PLT)
		.LVL271:
				b	.L135
		.LVL272:
		.L233:
  253             %for i=tagpos-1,-1,1 %cycle
				sub	r0, r3, #48
				cmp	r0, #9
				bhi	.L180
		.LBE323:
  254                %if tag1(i)=n1 %and tag2(i)=n2 %start
				ldr	r7, [r6, #3408]
		.LVL277:
		.LBB313:
				ldr	r2, [r3, #-4]!
				cmp	r5, r2
				bne	.L202
  255                   n1=tagtype(i); n2=tagval(i)
				ldr	fp, .L235+52
		.LPIC50:
				add	fp, pc
				b	.L135
		.LVL186:
		.L221:
				add	r2, r4, #8064
				adds	r2, r2, #24
				add	r2, r2, r6
		.LBE312:
		.LBB315:
				rsb	r3, r7, #2
		.LVL278:
		.LBE313:
				cmp	r3, #0
				blt	.L183
				ldr	r3, .L235+56
		.LVL279:
				ldr	r2, [sp, #524]
		.LVL280:
				ldr	r3, [r2, r3]
				ldr	r1, [r3]
				cbz	r1, .L184
				addw	r0, sp, #1564
		.LVL281:
				bl	_imp_c2istr(PLT)
		.LVL282:
		.L185:
				ldr	r3, .L235+60
				ldr	r2, [sp, #524]
				ldr	r3, [r2, r3]
				ldr	r10, [r3]
				cmp	r10, #0
				it	eq
				moveq	r10, #255
				mov	r1, fp
				addw	r3, sp, #1820
				str	r3, [sp, #516]
				mov	r0, r3
				bl	_imp_c2istr(PLT)
		.LVL283:
				movs	r3, #0
				str	r3, [sp, #508]
				movs	r3, #1
				str	r3, [sp, #504]
				movs	r3, #5
				str	r3, [sp, #500]
				mov	r2, #256
				ldr	r1, [sp, #516]
				add	r0, sp, #244
				bl	memcpy(PLT)
		.LVL284:
				str	r10, [sp, #240]
				movs	r2, #240
				addw	r1, sp, #1580
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL285:
				addw	r3, sp, #1564
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_event(PLT)
		.LVL286:
		.L183:
				mov	r10, #256
				mov	r2, r10
				ldr	r1, .L235+64
		.LPIC49:
				add	r1, pc
				addw	r3, sp, #1052
				str	r3, [sp, #516]
				mov	r0, r3
		.LVL288:
				bl	memcpy(PLT)
		.LVL289:
				mov	r2, r10
				ldr	r1, [sp, #516]
				addw	r3, sp, #1308
				str	r3, [sp, #516]
				mov	r0, r3
				bl	memcpy(PLT)
		.LVL290:
		.LBE314:
				mov	r2, r10
				ldr	r1, [sp, #516]
				addw	r0, sp, #1564
				bl	memcpy(PLT)
		.LVL291:
				b	.L185
		.L189:
		.LVL292:
		.L202:
		.L190:
				sub	r2, r3, #800
				ldr	r2, [r2]
				cmp	r2, r8
				bne	.L202
				add	r1, r6, r1, lsl #2
				ldr	r0, [r1, #1008]
		.LVL294:
  256                   n2=i %if n1=unknown
				ldr	r1, [r1, #208]
		.L191:
		.LVL295:
  257                   putatom(n1,n2)
				add	ip, sp, #532
				cmp	r0, #0
				it	eq
				moveq	r1, r7
		.LVL296:
				bl	PUTATOM.10097(PLT)
		.LVL297:
  258                   ->nextatom
				cmp	r7, #1
				beq	.L187
				add	r3, r6, r7, lsl #2
				addw	r3, r3, #2604
				b	.L188
		.LVL287:
		.L184:
		.LBB314:
				cmp	r7, #1
				beq	.L187
		.L188:
				b	.L135
		.LVL298:
		.L187:
		.LBE320:
  259                %finish
				subs	r7, r7, #1
		.LVL293:
				subs	r1, r7, #1
  260             %repeat
  261 ! Not found: enter name and details
  262             tag1(tagpos)=n1; tag2(tagpos)=n2
				ldr	r1, [r6, #3408]
				add	r3, r6, r1, lsl #2
				str	r5, [r3, #2604]
  263             tagtype(tagpos)=unknown; tagval(tagpos)=0
				str	r8, [r3, #1804]
				movs	r0, #0
				str	r0, [r3, #1004]
  264             putatom(unknown,tagpos)
				str	r0, [r3, #204]
				add	ip, sp, #532
				bl	PUTATOM.10097(PLT)
		.LVL299:
  265             %if tagpos>tagmax %then fault(dfull) %else tagpos=tagpos+1
				ldr	r3, [r6, #3408]
				cmp	r3, #200
				bgt	.L234
		.L192:
  266          %finish
				mov	ip, r6
				movs	r0, #13
				bl	FAULT.10060(PLT)
		.LVL300:
				b	.L192
		.L194:
		.LVL301:
		.L195:
  267          ->nextatom
  268       %finish
				ldr	r3, [r6, #3408]
				adds	r3, r3, #1
				str	r3, [r6, #3408]
				b	.L135
		.L234:
  269       %if i<3 %start
				cmp	r2, #2
				ble	.L195
		.L193:
  270          n1=n1*37+sym
				it	le
				mlale	r5, r9, r5, r3
		.LVL308:
  271       %finishelseif i<6 %start
  272          n2=n2*37+sym
				mov	r9, #37
		.LBB312:
				it	le
				mlale	r8, r9, r8, r3
		.LVL309:
				b	.L195
		.LVL310:
		.L215:
  273       %finish
				cmp	r2, #5
  274       i=i+1; lpos=lpos+1
				adds	r2, r2, #1
		.LVL302:
		.L177:
				adds	r4, r2, r7
		.LVL303:
  275    %repeat
  276 %end
				ldr	r3, .L235+4
				ldr	r2, [sp, #524]
				ldr	r3, [r2, r3]
				ldr	r2, [sp, #2588]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L215
				addw	sp, sp, #2596
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
		.LVL191:
		.L223:
				bl	__stack_chk_fail(PLT)
		.LVL311:
		.L236:
				.align	2
		.L235:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC39+4)
				.word	__stack_chk_guard(GOT)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR0-(.LPIC40+4)
				.word	.LANCHOR2-(.LPIC41+4)
				.word	.LANCHOR0-(.LPIC42+4)
				.word	.LANCHOR2-(.LPIC47+4)
				.word	.LANCHOR2-(.LPIC48+4)
				.word	.LANCHOR2-(.LPIC44+4)
				.word	.LANCHOR2-(.LPIC45+4)
				.word	.LANCHOR2-(.LPIC46+4)
				.word	.LC15-(.LPIC50+4)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LANCHOR0-(.LPIC49+4)
		.LFE187:
				.align	1
				.thumb
				.thumb_func
		CEXPR.10227:
		.LFB194:
  277
  278 %routine nextatom
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				@ link register save eliminated.
  279    type=atomtype(atompos); val=atomval(atompos)
				ldr	r3, [ip, #3824]
				add	r1, ip, r3, lsl #2
				ldr	r2, [r1, #3620]
				str	r2, [ip, #204]
  280    atompos=atompos+1 %unless type=sep
				ldr	r1, [r1, #3420]
				str	r1, [ip, #200]
				cmp	r2, #14
  281 %end
				itt	ne
				addne	r3, r3, #1
				strne	r3, [ip, #3824]
		.L2:
  282
				bx	lr
		.LFE190:
				.align	1
				.thumb
				.thumb_func
		OPENBRACKET.10210:
		.LFB191:
  283 %predicate open bracket
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				@ link register save eliminated.
  284   %falseunless atomtype(atompos)=bracket %and atomval(atompos)='('
				ldr	r3, [ip, #3824]
				add	r2, ip, r3, lsl #2
				ldr	r1, [r2, #3620]
				cmp	r1, #15
				beq	.L8
  285   atompos=atompos+1; %true
				ldr	r2, [r2, #3420]
				cmp	r2, #40
				beq	.L9
				movs	r0, #0
		.L4:
				adds	r3, r3, #1
				str	r3, [ip, #3824]
  286 %end
				bx	lr
		.L9:
		.L5:
				movs	r0, #1
				bx	lr
		.LFE191:
				.align	1
				.thumb
				.thumb_func
		EQUALSIGN.10220:
		.LFB193:
  287
				movs	r0, #0
				bx	lr
		.L8:
  288 %routine close bracket
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, lr}
				mov	r4, ip
				ldr	r3, [ip, #3824]
				add	r3, ip, r3, lsl #2
  289   fault(form) %unless atomtype(atompos)=bracket %and atomval(atompos)=')'
				ldr	r2, [r3, #3620]
				cmp	r2, #15
				bne	.L275
  290   atompos=atompos+1
				ldr	r3, [r3, #3420]
				cmp	r3, #41
				beq	.L276
		.L275:
				ldr	r3, [r4, #3824]
				adds	r3, r3, #1
				str	r3, [r4, #3824]
  291 %end
  292
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL344:
		.L276:
				pop	{r4, pc}
		.LFE192:
				.align	1
				.thumb
				.thumb_func
		GBYTE.10267:
		.LFB196:
  293 %predicate equal sign
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				@ link register save eliminated.
  294   %falseunless atomtype(atompos)=comp %and atomval(atompos)='='
				ldr	r3, [ip, #3824]
				add	r2, ip, r3, lsl #2
				ldr	r1, [r2, #3620]
				cmp	r1, #12
				beq	.L15
  295   atompos=atompos+1; %true
				ldr	r2, [r2, #3420]
				cmp	r2, #61
				beq	.L16
				movs	r0, #0
		.L11:
				adds	r3, r3, #1
				str	r3, [ip, #3824]
  296 %end
				bx	lr
		.L16:
		.L12:
				movs	r0, #1
				bx	lr
		.LFE193:
				.align	1
				.thumb
				.thumb_func
		SATREFS.10311:
		.LFB202:
  297
				movs	r0, #0
				bx	lr
		.L15:
  298 %routinespec unary
  299
  300 %integerfn cexpr(%integer must)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 1032
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL312:
				push	{r4, r5, r6, r7, r8, lr}
				sub	sp, sp, #1304
				mov	r7, r0
				mov	r4, ip
				ldr	r5, .L261
		.LPIC51:
				add	r5, pc
				ldr	r3, .L261+4
				ldr	r3, [r5, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1300]
  301 %integer value,oper
  302 %switch s(add:right)
  303    nextatom; unary
				bl	NEXTATOM.10206(PLT)
		.LVL313:
  304    value=val; fault(consterr) %unless type=constant
				mov	ip, r4
				bl	UNARY.10225(PLT)
		.LVL314:
				ldr	r6, [r4, #200]
		.LVL315:
  305    %cycle
				ldr	r3, [r4, #204]
				cmp	r3, #1
				bne	.L257
		.L238:
		.L239:
  306       %result=value %unless atomtype(atompos)=op
				ldr	r3, [r4, #3824]
				add	r2, r4, r3, lsl #2
				ldr	r1, [r2, #3620]
				cmp	r1, #11
				beq	.L258
		.LVL316:
		.L237:
				mov	ip, r4
				movs	r0, #3
				bl	FAULT.10060(PLT)
		.LVL318:
				b	.L239
		.L258:
		.L241:
  307       %if must=0 %start
				cbnz	r7, .L243
  308          %result=value %unless atomtype(atompos+1)=constant
				ldr	r1, [r2, #3624]
				cmp	r1, #1
				bne	.L237
		.L242:
		.L243:
  309       %finish
  310       oper=atomval(atompos); atompos=atompos+1
				ldr	r6, [r2, #3420]
		.LVL319:
  311       nextatom; fault(consterr) %unless type=constant
				adds	r3, r3, #1
				str	r3, [r4, #3824]
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL320:
  312       ->s(oper)
				ldr	r3, [r4, #204]
				cmp	r3, #1
				bne	.L260
		.L244:
		.LVL321:
		.LDL10:
  313 s(add):  value=value+val; %continue
				mov	ip, r4
				movs	r0, #3
				bl	FAULT.10060(PLT)
		.LVL330:
				b	.L244
		.LVL331:
		.L246:
		.LBB324:
  314 s(sub):  value=value-val; %continue
  315 s(and):  value=value&val; %continue
  316 s(or):   value=value!val; %continue
  317 s(xor):  value=value!!val; %continue
  318 s(rem):  value=value-value//val*val; %continue
  319 s(div):  value=value//val; %continue
  320 s(mul):  value=value*val; %continue
  321 s(left): value=value<<val; %continue
  322 s(right):value=value>>val
  323    %repeat
  324 %end
  325
  326 %routine unary
				subs	r3, r6, #2
				cmp	r3, #10
				bls	.L245
				ldr	r3, .L261+8
				ldr	r3, [r5, r3]
				ldr	r1, [r3]
				cmp	r1, #0
				beq	.L246
				add	r0, sp, #788
				bl	_imp_c2istr(PLT)
		.LVL322:
		.L247:
				ldr	r3, .L261+12
				ldr	r3, [r5, r3]
				ldr	r3, [r3]
				cmp	r3, #0
				it	eq
				moveq	r3, #326
				mov	r2, #312
				str	r2, [sp, #268]
				ldr	r2, .L261+16
		.LPIC53:
				add	r2, pc
				str	r2, [sp, #264]
				str	r6, [sp, #260]
				ldr	r2, .L261+20
		.LPIC54:
				add	r2, pc
				str	r2, [sp, #256]
				str	r6, [sp, #252]
				movs	r2, #3
				str	r2, [sp, #248]
				movs	r2, #6
				str	r2, [sp, #244]
				str	r3, [sp, #240]
				movs	r2, #240
				add	r1, sp, #804
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL323:
				add	r3, sp, #788
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_eventf(PLT)
		.LVL324:
		.L245:
		.L249:
				mov	r7, #256
		.LVL332:
				mov	r2, r7
				ldr	r1, .L261+32
		.LPIC52:
				add	r1, pc
				addw	r4, sp, #1044
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL333:
				mov	r2, r7
				mov	r1, r4
				add	r4, sp, #276
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL334:
		.LBE324:
				mov	r2, r7
				mov	r1, r4
				add	r0, sp, #788
				bl	memcpy(PLT)
		.LVL335:
				b	.L247
		.L250:
		.LBB325:
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, lr}
		.L266:
		.LVL341:
  327 %integername v
  328   %returnunless type=op %and atomtype(atompos)=constant
				ldr	r3, [ip, #204]
				cmp	r3, #11
				beq	.L273
		.L270:
				bx	lr
		.L273:
				ldr	r3, [ip, #3824]
				add	r3, ip, r3, lsl #2
  329   %returnunless val=sub %or val=xor
				ldr	r3, .L261+8
				ldr	r3, [r5, r3]
				ldr	r1, [r3]
				cmp	r1, #0
				beq	.L250
				addw	r0, sp, #1044
				bl	_imp_c2istr(PLT)
		.LVL325:
		.L251:
				ldr	r3, .L261+12
				ldr	r3, [r5, r3]
				ldr	r3, [r3]
				movw	r2, #329
				cmp	r3, #0
				it	eq
				moveq	r3, r2
				mov	r2, #312
				str	r2, [sp, #268]
				ldr	r2, .L261+24
		.LPIC57:
				add	r2, pc
				str	r2, [sp, #264]
				str	r6, [sp, #260]
				ldr	r2, .L261+28
		.LPIC58:
				add	r2, pc
				str	r2, [sp, #256]
				str	r6, [sp, #252]
				movs	r2, #2
				str	r2, [sp, #248]
				movs	r2, #8
				str	r2, [sp, #244]
				str	r3, [sp, #240]
				movs	r2, #240
				addw	r1, sp, #1060
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL326:
				addw	r3, sp, #1044
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_eventf(PLT)
		.LVL327:
		.LVL328:
				mov	r8, #256
				mov	r2, r8
				ldr	r1, .L261+36
		.LPIC56:
				add	r1, pc
				addw	r4, sp, #1044
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL336:
				mov	r2, r8
				mov	r1, r4
				add	r7, sp, #532
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL337:
		.LBE325:
				mov	r2, r8
				mov	r1, r7
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL338:
				b	.L251
		.LVL339:
		.L259:
				ldr	r2, [r3, #3620]
				cmp	r2, #1
				bne	.L270
		.L265:
				ldr	r2, [ip, #200]
  330   v==atomval(atompos)
				mov	r0, r6
				ldr	r3, .L261+4
				ldr	r3, [r5, r3]
				ldr	r2, [sp, #1300]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L259
				add	sp, sp, #1304
				@ sp needed
				pop	{r4, r5, r6, r7, r8, pc}
		.LVL317:
		.L257:
				b	.L237
		.LVL329:
		.L260:
				bl	__stack_chk_fail(PLT)
		.LVL340:
		.L262:
				.align	2
		.L261:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC51+4)
				.word	__stack_chk_guard(GOT)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC9-(.LPIC53+4)
				.word	.LC10-(.LPIC54+4)
				.word	.LC9-(.LPIC57+4)
				.word	.LC11-(.LPIC58+4)
				.word	.LANCHOR0-(.LPIC52+4)
				.word	.LANCHOR0-(.LPIC56+4)
		.LFE194:
				.align	1
				.thumb
				.thumb_func
		UNARY.10225:
		.LFB195:
				cmp	r2, #3
				it	ne
				cmpne	r2, #6
				bne	.L270
  331   v=\v; v=v+1 %if val=sub
				ldr	r1, [r3, #3420]
				ite	ne
				mvnne	r1, r1
  332   val=cexpr(0); type=constant
				cmp	r2, #3
				movs	r0, #0
				bl	CEXPR.10227(PLT)
		.LVL343:
				str	r0, [r4, #200]
  333 %end
				rsbeq	r1, r1, #0
				str	r1, [r3, #3420]
		.LVL342:
		.L268:
				mov	r4, ip
				movs	r3, #1
				str	r3, [r4, #204]
		.L264:
  334
				pop	{r4, pc}
		.LFE195:
				.align	1
				.thumb
				.thumb_func
		CLOSEBRACKET.10215:
		.LFB192:
  335 %routine gbyte(%integer b)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL345:
				push	{r3, r4, r5, lr}
				mov	r5, r0
				mov	r4, ip
  336   fault(bfull) %if gpos>glamax
				ldr	r3, [ip, #196]
				cmp	r3, #500
				bge	.L281
		.LVL346:
		.L279:
  337   gla(gpos)=b&255; gpos=gpos+1; gloc=gloc+1
				ldr	r3, [r4, #196]
				adds	r1, r4, r3
				movw	r2, #7588
				strb	r5, [r1, r2]
				movs	r0, #4
		.LVL348:
				bl	FAULT.10060(PLT)
		.LVL349:
				b	.L279
		.LFE196:
				.align	1
				.thumb
				.thumb_func
		DUMPSTRING.10286:
		.LFB199:
  338 %end
				adds	r3, r3, #1
				str	r3, [r4, #196]
  339
				ldr	r3, [r4, #3416]
				adds	r3, r3, #1
				str	r3, [r4, #3416]
				pop	{r3, r4, r5, pc}
		.LVL347:
		.L281:
  340 %routine gword(%integer x)
  341   gbyte(x); gbyte(x>>8)
				mov	ip, r4
				mov	r0, r7
				bl	GBYTE.10267(PLT)
		.LVL685:
  342 %end
				lsr	r9, r7, #8
				b	.L479
		.LVL680:
		.L566:
		.LBE461:
		.LBE460:
				mov	ip, r4
				mov	r0, r9
				bl	GBYTE.10267(PLT)
		.LVL686:
		.L481:
		.LBE462:
		.LBE463:
  343
  344 %routine gflush
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 776
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, r8, r9, lr}
				subw	sp, sp, #1292
				ldr	r5, .L72
		.LPIC17:
				add	r5, pc
				ldr	r3, .L72+4
				ldr	r3, [r5, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1284]
  345 %integer i
  346   %returnif gpos=0
				ldr	r3, [ip, #196]
				cbnz	r3, .L69
		.L56:
  347   selectoutput(object); printsymbol(2); printsymbol(4)
  348   printsymbol(gpos&255); printsymbol(gpos>>8&255)
  349   printsymbol(gla(i)) %for i=0,1,gpos-1
  350   gpos=0
				ldr	r6, [r7, #196]
		.LVL49:
				movs	r3, #0
				str	r3, [r7, #196]
  351 %end
				subs	r4, r6, #1
		.LVL50:
				bmi	.L71
		.L59:
		.LVL51:
				b	.L56
		.LVL56:
		.L71:
		.LBB242:
				ldr	r3, .L72+24
				ldr	r3, [r5, r3]
				ldr	r1, [r3]
				cbz	r1, .L60
				add	r0, sp, #772
				bl	_imp_c2istr(PLT)
		.LVL57:
		.L61:
				ldr	r3, .L72+28
				ldr	r3, [r5, r3]
				ldr	r8, [r3]
				movw	r3, #351
				cmp	r8, #0
				it	eq
				moveq	r8, r3
				ldr	r1, .L72+32
		.LPIC20:
				add	r1, pc
				addw	r9, sp, #1028
				mov	r0, r9
				bl	_imp_c2istr(PLT)
		.LVL58:
				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, r9
				add	r0, sp, #244
				bl	memcpy(PLT)
		.LVL59:
				str	r8, [sp, #240]
				movs	r2, #240
				add	r1, sp, #788
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL60:
				add	r3, sp, #772
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_event(PLT)
		.LVL61:
				b	.L59
		.L60:
		.LBB241:
				mov	r9, #256
				mov	r2, r9
				ldr	r1, .L72+36
		.LPIC19:
				add	r1, pc
				addw	r8, sp, #1028
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL62:
				mov	r2, r9
				mov	r1, r8
				add	r8, sp, #516
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL63:
		.LBE241:
				mov	r2, r9
				mov	r1, r8
				add	r0, sp, #772
				bl	memcpy(PLT)
		.LVL64:
				b	.L61
		.LVL65:
		.L70:
		.LBE242:
  352
				ldr	r3, .L72+4
				ldr	r3, [r5, r3]
				ldr	r2, [sp, #1284]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L70
				addw	sp, sp, #1292
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, pc}
		.L69:
				mov	r7, ip
		.L58:
		.LVL43:
		.LBB228:
		.LBB229:
				ldr	r3, .L72+8
				ldr	r3, [r5, r3]
				movs	r2, #1
				str	r2, [r3]
				ldr	r3, .L72+12
				ldr	r3, [r5, r3]
				ldr	r2, .L72+16
				ldr	r2, [r5, r2]
				ldr	r2, [r2, #280]
				str	r2, [r3]
				ldr	r0, .L72+20
		.LPIC18:
				add	r0, pc
				add	r0, r0, #256
				bl	check_outstream(PLT)
		.LVL44:
		.LBE229:
		.LBE228:
		.LBB230:
		.LBB231:
				movs	r0, #2
				bl	_imp_printsymbol(PLT)
		.LVL45:
		.LBE231:
		.LBE230:
		.LBB232:
		.LBB233:
				movs	r0, #4
				bl	_imp_printsymbol(PLT)
		.LVL46:
		.LBE233:
		.LBE232:
		.LBB234:
		.LBB235:
				ldrb	r0, [r7, #196]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL47:
		.LBE235:
		.LBE234:
		.LBB236:
		.LBB237:
				ldrb	r0, [r7, #197]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL48:
		.LBE237:
		.LBE236:
		.LBB238:
				bl	__stack_chk_fail(PLT)
		.LVL66:
		.L73:
				.align	2
		.L72:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC17+4)
				.word	__stack_chk_guard(GOT)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR0-(.LPIC18+4)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC12-(.LPIC20+4)
				.word	.LANCHOR0-(.LPIC19+4)
		.LFE198:
				.align	1
				.thumb
				.thumb_func
		FLUSH.10298:
		.LFB201:
  353 %routine dumpstring(%integer p)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL350:
				push	{r3, r4, r5, r6, r7, lr}
				mov	r6, ip
		.LVL351:
  354 %integer l
				cmp	r4, #-1
				beq	.L63
				add	r4, r7, #7584
		.LVL52:
				adds	r4, r4, #3
				add	r6, r6, r4
		.LVL53:
		.L64:
		.LBB239:
		.LBB240:
				ldrb	r0, [r4, #1]!	@ zero_extendqisi2
		.LVL54:
				bl	_imp_printsymbol(PLT)
		.LVL55:
		.LBE240:
		.LBE239:
				cmp	r4, r6
				bne	.L64
		.L63:
		.LBE238:
  355   l=0
				movs	r4, #0
		.LVL353:
		.L284:
  356   l=l+1 %and p=p+1 %while line(p)#'"'
  357   gbyte(l); p=p-l
				adds	r2, r6, r0
				movw	r3, #8087
				ldrb	r3, [r2, r3]	@ zero_extendqisi2
				cmp	r3, #34
				beq	.L283
				mov	r2, r0
				add	r0, r0, #8064
		.LVL352:
				adds	r0, r0, #24
				add	r0, r0, ip
				ldrb	r3, [r0], #1	@ zero_extendqisi2
				cmp	r3, #34
				bne	.L284
		.L285:
				mov	ip, r6
				mov	r0, r4
				bl	GBYTE.10267(PLT)
		.LVL356:
				movs	r0, #0
		.LVL365:
				bl	GBYTE.10267(PLT)
		.LVL366:
				b	.L282
		.LFE199:
				.align	1
				.thumb
				.thumb_func
		POPTEXT.10332:
		.LFB205:
  358   gbyte(line(p)) %and p=p+1 %and l=l-1 %while l>0
				adds	r4, r4, #1
		.LVL354:
				mov	r7, r4
				adds	r5, r2, r4
		.LDL11:
		.LVL355:
				subs	r2, r5, r4
		.LVL357:
  359 %end
				cmp	r4, #0
				ble	.L282
				movw	r3, #8087
				adds	r4, r2, r3
		.LVL358:
				add	r4, r4, r6
				adds	r5, r6, r3
		.LVL359:
				add	r5, r5, r7
				add	r5, r5, r2
		.LVL360:
		.L287:
				cmp	r4, r5
				bne	.L287
		.LVL363:
		.L282:
  360
				mov	ip, r6
				ldrb	r0, [r4], #1	@ zero_extendqisi2
		.LVL361:
				bl	GBYTE.10267(PLT)
		.LVL362:
		.LDL12:
				pop	{r3, r4, r5, r6, r7, pc}
		.L286:
		.LVL364:
		.L283:
  361 %routine dump(%integer byte)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL371:
				push	{r3, r4, r5, lr}
				mov	r5, r0
				mov	r4, ip
  362    fault(bfull) %if cpos>codemax
				ldr	r2, [ip, #192]
				movw	r3, #3499
				cmp	r2, r3
				bgt	.L300
		.LVL372:
		.L298:
  363    code(cpos)=byte&255; cpos=cpos+1; cloc=cloc+1
				ldr	r3, [r4, #192]
				adds	r2, r4, r3
				strb	r5, [r2, #4088]
				movs	r0, #4
		.LVL374:
				bl	FAULT.10060(PLT)
		.LVL375:
				b	.L298
		.LFE200:
				.align	1
				.thumb
				.thumb_func
		RETURN.10446:
		.LFB211:
  364 %end
				adds	r3, r3, #1
				str	r3, [r4, #192]
  365
				ldr	r3, [r4, #3420]
				adds	r3, r3, #1
				str	r3, [r4, #3420]
				pop	{r3, r4, r5, pc}
		.LVL373:
		.L300:
  366 %routine flush
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 776
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, r8, r9, lr}
				subw	sp, sp, #1292
				ldr	r5, .L90
		.LPIC21:
				add	r5, pc
				ldr	r3, .L90+4
				ldr	r3, [r5, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1284]
  367 %integer i
  368    %returnif cpos=0
				ldr	r3, [ip, #192]
				cbnz	r3, .L87
		.L74:
  369    selectoutput(object); printsymbol(1); printsymbol(4)
  370    printsymbol(cpos&255); printsymbol(cpos>>8&255)
  371    printsymbol(code(i)) %for i=0,1,cpos-1
  372    cpos=0
				ldr	r6, [r7, #192]
		.LVL73:
				movs	r3, #0
				str	r3, [r7, #192]
  373 %end
				subs	r4, r6, #1
		.LVL74:
				bmi	.L89
		.L77:
		.LVL75:
				b	.L74
		.LVL80:
		.L89:
		.LBB257:
				ldr	r3, .L90+24
				ldr	r3, [r5, r3]
				ldr	r1, [r3]
				cbz	r1, .L78
				add	r0, sp, #772
				bl	_imp_c2istr(PLT)
		.LVL81:
		.L79:
				ldr	r3, .L90+28
				ldr	r3, [r5, r3]
				ldr	r8, [r3]
				movw	r3, #373
				cmp	r8, #0
				it	eq
				moveq	r8, r3
				ldr	r1, .L90+32
		.LPIC24:
				add	r1, pc
				addw	r9, sp, #1028
				mov	r0, r9
				bl	_imp_c2istr(PLT)
		.LVL82:
				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, r9
				add	r0, sp, #244
				bl	memcpy(PLT)
		.LVL83:
				str	r8, [sp, #240]
				movs	r2, #240
				add	r1, sp, #788
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL84:
				add	r3, sp, #772
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_event(PLT)
		.LVL85:
				b	.L77
		.L78:
		.LBB256:
				mov	r9, #256
				mov	r2, r9
				ldr	r1, .L90+36
		.LPIC23:
				add	r1, pc
				addw	r8, sp, #1028
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL86:
				mov	r2, r9
				mov	r1, r8
				add	r8, sp, #516
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL87:
		.LBE256:
				mov	r2, r9
				mov	r1, r8
				add	r0, sp, #772
				bl	memcpy(PLT)
		.LVL88:
				b	.L79
		.LVL89:
		.L88:
		.LBE257:
  374
				ldr	r3, .L90+4
				ldr	r3, [r5, r3]
				ldr	r2, [sp, #1284]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L88
				addw	sp, sp, #1292
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, pc}
		.L87:
				mov	r7, ip
		.L76:
		.LVL67:
		.LBB243:
		.LBB244:
				ldr	r3, .L90+8
				ldr	r3, [r5, r3]
				movs	r4, #1
				str	r4, [r3]
				ldr	r3, .L90+12
				ldr	r3, [r5, r3]
				ldr	r2, .L90+16
				ldr	r2, [r5, r2]
				ldr	r2, [r2, #280]
				str	r2, [r3]
				ldr	r0, .L90+20
		.LPIC22:
				add	r0, pc
				add	r0, r0, #256
				bl	check_outstream(PLT)
		.LVL68:
		.LBE244:
		.LBE243:
		.LBB245:
		.LBB246:
				mov	r0, r4
				bl	_imp_printsymbol(PLT)
		.LVL69:
		.LBE246:
		.LBE245:
		.LBB247:
		.LBB248:
				movs	r0, #4
				bl	_imp_printsymbol(PLT)
		.LVL70:
		.LBE248:
		.LBE247:
		.LBB249:
		.LBB250:
				ldrb	r0, [r7, #192]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL71:
		.LBE250:
		.LBE249:
		.LBB251:
		.LBB252:
				ldrb	r0, [r7, #193]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL72:
		.LBE252:
		.LBE251:
		.LBB253:
				bl	__stack_chk_fail(PLT)
		.LVL90:
		.L91:
				.align	2
		.L90:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC21+4)
				.word	__stack_chk_guard(GOT)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR0-(.LPIC22+4)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC13-(.LPIC24+4)
				.word	.LANCHOR0-(.LPIC23+4)
		.LFE201:
				.align	1
				.thumb
				.thumb_func
		FAULT.10060:
		.LFB186:
  375 %routine satrefs(%integer ref,val)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				@ link register save eliminated.
		.LVL0:
				push	{r4, r5, r6, r7}
				mov	r3, r0
  376 %integer abs,rel,disp
				cmp	r4, #-1
				beq	.L81
				addw	r4, r7, #4087
		.LVL76:
				add	r6, r6, r4
		.LVL77:
		.L82:
		.LBB254:
		.LBB255:
				ldrb	r0, [r4, #1]!	@ zero_extendqisi2
		.LVL78:
				bl	_imp_printsymbol(PLT)
		.LVL79:
		.LBE255:
		.LBE254:
				cmp	r4, r6
				bne	.L82
		.L81:
		.LBE253:
  377    %while ref#0 %cycle
  378      rel=ref; abs=rel-cloc+cpos; disp=val-rel-2
				cbz	r0, .L22
				adds	r3, r3, r7, lsl #8
		.LVL8:
				bne	.L19
		.L18:
  379      ref=code(abs+1)<<8+code(abs)
				ldr	r6, [ip, #3420]
				ldr	r5, [ip, #192]
		.LVL1:
		.L19:
				subs	r0, r3, r6
				add	r0, r0, r5
		.LVL2:
				adds	r4, r0, #1
				add	r4, r4, ip
				ldrb	r7, [r4, #4088]	@ zero_extendqisi2
				add	r0, r0, ip
		.LVL5:
				ldrb	r3, [r0, #4088]	@ zero_extendqisi2
		.LVL6:
				strb	r2, [r0, #4088]
  380      code(abs)=disp&255; code(abs+1)=disp>>8&255
				subs	r3, r1, r3
		.LVL3:
				subs	r2, r3, #2
		.LVL4:
  381    %repeat
				lsrs	r2, r2, #8
		.LVL7:
				strb	r2, [r4, #4088]
		.LDL1:
  382 %end
  383
				pop	{r4, r5, r6, r7}
				bx	lr
		.LVL9:
		.L22:
				bx	lr
		.LFE202:
				.align	1
				.thumb
				.thumb_func
		GETSTRING.10507:
		.LFB216:
  384 %routine labelref(%integer type,val)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL388:
				push	{r4, r5, r6, lr}
				mov	r5, r1
				mov	r4, ip
  385 %integer tvv
  386    %if type=label %start
				cmp	r0, #3
				beq	.L319
		.L315:
  387       val=val-(cloc+2)
				ldr	r3, [ip, #3420]
				adds	r3, r3, #2
				subs	r5, r1, r3
		.LVL396:
  388       dump(val); dump(val>>8)
				mov	r0, r5
		.LVL397:
				bl	DUMP.10294(PLT)
		.LVL398:
  389    %else
				mov	ip, r4
				lsrs	r0, r5, #8
				bl	DUMP.10294(PLT)
		.LVL399:
				b	.L314
		.LVL400:
		.L320:
  390       fault(form) %unless type=unknown
				cbnz	r0, .L320
		.LVL389:
		.L317:
				add	r5, r4, r5, lsl #2
		.LVL390:
  391       tvv=tagval(val)
				ldr	r6, [r5, #204]
		.LVL391:
				movs	r0, #5
		.LVL401:
				bl	FAULT.10060(PLT)
		.LVL402:
				b	.L317
		.LFE203:
				.align	1
				.thumb
				.thumb_func
		DIRECT.10387:
		.LFB208:
  392       dump(tvv); dump(tvv>>8)
				mov	ip, r4
				mov	r0, r6
				bl	DUMP.10294(PLT)
		.LVL392:
  393       tagval(val)=cloc-2
				mov	ip, r4
				lsrs	r0, r6, #8
				bl	DUMP.10294(PLT)
		.LVL393:
				ldr	r3, [r4, #3420]
				subs	r3, r3, #2
				str	r3, [r5, #204]
		.L316:
		.LVL394:
		.L314:
  394    %finish
  395 %end
  396
				pop	{r4, r5, r6, pc}
		.LVL395:
		.L319:
  397 %routine pushtext(%integer t,v)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL368:
				push	{r4, r5, r6, lr}
				mov	r6, r0
				mov	r5, r1
				mov	r4, ip
  398   textlevel=textlevel+1
				ldr	r3, [ip, #188]
				adds	r3, r3, #1
				str	r3, [ip, #188]
  399   fault(complex) %if textlevel>textmax
				cmp	r3, #20
				ble	.L295
  400   texttype(textlevel)=t; textval(textlevel)=v
				movs	r0, #1
		.LVL369:
				bl	FAULT.10060(PLT)
		.LVL370:
		.L295:
				ldr	r3, [r4, #188]
				add	r4, r4, r3, lsl #2
				str	r6, [r4, #104]
  401 %end
				str	r5, [r4, #24]
  402
				pop	{r4, r5, r6, pc}
		.LFE204:
				.align	1
				.thumb
				.thumb_func
		DUMP.10294:
		.LFB200:
  403 %routine poptext
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, lr}
				mov	r4, ip
  404   fault(context) %if textlevel=0
				ldr	r3, [ip, #188]
				cbnz	r3, .L292
  405   type=texttype(textlevel); val=textval(textlevel)
				movs	r0, #16
				bl	FAULT.10060(PLT)
		.LVL367:
		.L292:
				ldr	r3, [r4, #188]
				add	r2, r4, r3, lsl #2
				ldr	r1, [r2, #104]
				str	r1, [r4, #204]
				subs	r3, r3, #1
  406   textlevel=textlevel-1
				ldr	r2, [r2, #24]
				str	r2, [r4, #200]
				str	r3, [r4, #188]
  407 %end
  408
				pop	{r4, pc}
		.LFE205:
				.align	1
				.thumb
				.thumb_func
		PUSHTEXT.10328:
		.LFB204:
  409 %routinespec expr
  410
  411 %constinteger pushax=16_50,popax=16_58
  412
  413 %routine call(%integer t,v)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL485:
				push	{r3, r4, r5, r6, r7, lr}
				mov	r7, r0
				mov	r6, r1
				mov	r4, ip
  414   type=atomtype(atompos)
				ldr	r3, [ip, #3824]
				addw	r3, r3, #905
				ldr	r3, [ip, r3, lsl #2]
				str	r3, [ip, #204]
  415   %if type#op %start
				sub	r2, r3, #11
				cmp	r2, #1
				bls	.L383
  416     %cycle
  417       %exitif type=sep %or type=comp
  418       expr; dump(pushax); type=atomtype(atompos)
				cmp	r3, #14
				beq	.L383
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL487:
				bic	r3, r3, #2
				cmp	r3, #12
				bne	.L381
		.L380:
		.L382:
		.L383:
  419     %repeat
				movs	r5, #80
		.LVL486:
		.L381:
				mov	ip, r4
				mov	r0, r5
				bl	DUMP.10294(PLT)
		.LVL488:
  420   %finish
				ldr	r3, [r4, #3824]
				addw	r3, r3, #905
				ldr	r3, [r4, r3, lsl #2]
				str	r3, [r4, #204]
		.LDL17:
  421   %if t=spec %start
				cmp	r7, #10
				beq	.L388
		.L384:
  422     dump(16_FF); dump(16_1e); dump(v); dump(v>>8);  !Xcall
				mov	ip, r4
				movs	r0, #255
				bl	DUMP.10294(PLT)
		.LVL493:
  423   %else
				mov	ip, r4
				movs	r0, #30
				bl	DUMP.10294(PLT)
		.LVL494:
				b	.L379
		.LFE206:
				.align	1
				.thumb
				.thumb_func
		COND.10581:
		.LFB218:
  424     dump(16_0e); dump(16_e8); labelref(label,v);    !PushCs, Call
				mov	ip, r4
				movs	r0, #14
				bl	DUMP.10294(PLT)
		.LVL489:
				mov	ip, r4
				mov	r0, r6
				bl	DUMP.10294(PLT)
		.LVL495:
  425   %finish
				mov	ip, r4
				movs	r0, #232
				bl	DUMP.10294(PLT)
		.LVL490:
				mov	ip, r4
				lsrs	r0, r6, #8
				bl	DUMP.10294(PLT)
		.LVL496:
  426 %end
				mov	ip, r4
				mov	r1, r6
				movs	r0, #3
				bl	LABELREF.10320(PLT)
		.LVL491:
		.L385:
		.L379:
  427
				pop	{r3, r4, r5, r6, r7, pc}
		.LVL492:
		.L388:
  428 %routine immediate(%integer op,val)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 1032
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL16:
				push	{r4, r5, r6, r7, r8, lr}
				sub	sp, sp, #1304
				mov	r5, r0
				ldr	r4, .L48
		.LPIC1:
				add	r4, pc
				ldr	r3, .L48+4
				ldr	r3, [r4, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1300]
		.LVL17:
		.LDL3:
  429 %switch s(load:right)
  430   ->s(op)
  431 s(load): dump(16_b8); ->imm
  432 s(add):  dump(16_05); ->imm
  433 s(sub):  dump(16_2d); ->imm
  434 s(and):  dump(16_25); ->imm
  435 s(or):   dump(16_0d); ->imm
  436 s(xor):  dump(16_35); ->imm
  437 s(cmp):  dump(16_3d)
  438 imm: dump(val); dump(val>>8); %return
  439 s(left):
  440 s(right):
  441   %if val=1 %start
  442     val=16_d1
  443   %else
  444     dump(16_b1); dump(val&15);  !Mov CL,nn
  445     val=16_d3
  446   %finish
  447   dump(val)
  448   %if op=left %then dump(16_e0) %else dump(16_e8)
  449   %return
  450 s(mul):s(div):s(rem):
  451   dump(16_b9); dump(val); dump(val>>8);  !Mov CX,nn
  452   dump(16_99) %unless op=mul;            !Cwd
  453   dump(16_f7)
  454   %if op=mul %then dump(16_e9) %else dump(16_f9)
  455   %returnunless op=rem
  456   dump(16_8b); dump(16_c2);  !Mov ax,dx
  457 %end
  458
  459 %routine direct(%integer op,type,val,index)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL403:
				push	{r3, r4, r5, r6, r7, r8, r9, lr}
				mov	r5, r0
				mov	r7, r2
				mov	r4, ip
  460 %ownintegerarray code(load:lea)=
				subs	r3, r0, #1
				cmp	r3, #11
				bls	.L35
				ldr	r3, .L48+8
				ldr	r3, [r4, r3]
				ldr	r1, [r3]
		.LVL18:
				cmp	r1, #0
				beq	.L36
				add	r0, sp, #788
		.LVL19:
				bl	_imp_c2istr(PLT)
		.LVL20:
		.L37:
				ldr	r3, .L48+12
				ldr	r3, [r4, r3]
				ldr	r3, [r3]
				cmp	r3, #0
				it	eq
				moveq	r3, #460
				mov	r2, #430
				str	r2, [sp, #268]
				ldr	r2, .L48+16
		.LPIC3:
				add	r2, pc
				str	r2, [sp, #264]
				str	r5, [sp, #260]
				ldr	r2, .L48+20
		.LPIC4:
				add	r2, pc
				str	r2, [sp, #256]
				str	r5, [sp, #252]
				movs	r2, #3
				str	r2, [sp, #248]
				movs	r2, #6
				str	r2, [sp, #244]
				str	r3, [sp, #240]
				movs	r2, #240
				add	r1, sp, #804
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL21:
				add	r3, sp, #788
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_eventf(PLT)
		.LVL22:
		.L35:
		.L39:
				mov	r7, #256
				mov	r2, r7
				ldr	r1, .L48+32
		.LPIC2:
				add	r1, pc
				addw	r6, sp, #1044
				mov	r0, r6
		.LVL27:
				bl	memcpy(PLT)
		.LVL28:
				mov	r2, r7
				mov	r1, r6
				add	r6, sp, #276
				mov	r0, r6
				bl	memcpy(PLT)
		.LVL29:
		.LBE224:
				mov	r2, r7
				mov	r1, r6
				add	r0, sp, #788
				bl	memcpy(PLT)
		.LVL30:
				b	.L37
		.L40:
		.LBB225:
  461   16_8a, 16_02, 16_2a, 16_22, 16_0a,
  462   16_32, 16_3a, 16_28, 16_38, 16_30,
  463   16_e0, 16_e8, 16_88, 16_8d
				ldr	r3, .L48+8
				ldr	r3, [r4, r3]
				ldr	r1, [r3]
				cmp	r1, #0
				beq	.L40
				addw	r0, sp, #1044
				bl	_imp_c2istr(PLT)
		.LVL23:
		.L41:
				ldr	r3, .L48+12
				ldr	r3, [r4, r3]
				ldr	r3, [r3]
				movw	r2, #463
				cmp	r3, #0
				it	eq
				moveq	r3, r2
				mov	r2, #430
				str	r2, [sp, #268]
				ldr	r2, .L48+24
		.LPIC7:
				add	r2, pc
				str	r2, [sp, #264]
				str	r5, [sp, #260]
				ldr	r2, .L48+28
		.LPIC8:
				add	r2, pc
				str	r2, [sp, #256]
				str	r5, [sp, #252]
				movs	r2, #2
				str	r2, [sp, #248]
				movs	r2, #8
				str	r2, [sp, #244]
				str	r3, [sp, #240]
				movs	r2, #240
				addw	r1, sp, #1060
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL24:
				addw	r3, sp, #1044
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_eventf(PLT)
		.LVL25:
				mov	r8, #256
				mov	r2, r8
				ldr	r1, .L48+36
		.LPIC6:
				add	r1, pc
				addw	r6, sp, #1044
				mov	r0, r6
				bl	memcpy(PLT)
		.LVL31:
				mov	r2, r8
				mov	r1, r6
				add	r7, sp, #532
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL32:
		.LBE225:
				mov	r2, r8
				mov	r1, r7
				mov	r0, r6
				bl	memcpy(PLT)
		.LVL33:
				b	.L41
		.L47:
  464 %integer oper,extra
				ldr	r3, .L48+4
				ldr	r3, [r4, r3]
				ldr	r2, [sp, #1300]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L47
				add	sp, sp, #1304
				@ sp needed
				pop	{r4, r5, r6, r7, r8, pc}
		.LVL26:
		.L36:
		.LBB224:
				bl	__stack_chk_fail(PLT)
		.LVL34:
		.L49:
				.align	2
		.L48:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC1+4)
				.word	__stack_chk_guard(GOT)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC9-(.LPIC3+4)
				.word	.LC10-(.LPIC4+4)
				.word	.LC9-(.LPIC7+4)
				.word	.LC11-(.LPIC8+4)
				.word	.LANCHOR0-(.LPIC2+4)
				.word	.LANCHOR0-(.LPIC6+4)
		.LFE207:
				.align	1
				.thumb
				.thumb_func
		PHEX.10088:
		.LFB188:
  465   immediate(op,val) %andreturnif type=constant
				cmp	r1, #1
				beq	.L351
		.L322:
				mov	r6, r1
				mov	r9, r3
  466   oper=code(op)
				ldr	r3, .L354
		.LVL404:
		.LPIC59:
				add	r3, pc
				add	r3, r3, r0, lsl #2
				ldr	r8, [r3, #1040]
		.LVL405:
				mov	r1, r2
		.LVL421:
				bl	IMMEDIATE.10350(PLT)
		.LVL422:
				mov	r0, r8
  467   ->shift %if op=left %or op=right
				b	.L321
		.LVL423:
		.L346:
  468   extra=0; extra=oper %and oper=16_f6 %if op=mul
				sub	r3, r0, #11
				cmp	r3, #1
				bls	.L341
		.L325:
		.LVL406:
				mov	r8, #0
		.LVL424:
				b	.L326
		.LVL425:
		.L352:
  469   %if op=div %or op=rem %start
				cmp	r0, #8
				beq	.L326
		.L327:
  470     %if type&wordbit#0 %then dump(16_99) %else dump(16_98)
				sub	r3, r5, #9
				cmp	r3, #1
				bhi	.L346
		.L328:
  471     extra=oper; oper=16_f6
				it	eq
				moveq	r0, #246
		.LVL407:
				movs	r0, #153
				bl	DUMP.10294(PLT)
		.LVL408:
		.LDL13:
  472   %finish
				movs	r0, #246
		.LVL409:
		.L326:
		.LDL14:
  473   oper=oper+1 %if type&wordbit#0
  474   dump(oper)
				mov	ip, r4
				adds	r0, r0, #1
		.LVL410:
				bl	DUMP.10294(PLT)
		.LVL411:
  475   %if type=bx %then dump(16_c3+extra) %andreturn
				cmp	r6, #17
				beq	.L352
		.L329:
  476   %if type=unknown %start
				cbz	r6, .L353
		.L330:
				mov	ip, r4
				add	r0, r8, #195
				bl	DUMP.10294(PLT)
		.LVL426:
  477     tagtype(val)=var+wordbit
				b	.L321
		.L353:
				add	r3, r4, r7, lsl #2
				movs	r6, #5
		.LVL427:
				str	r6, [r3, #1004]
  478     tagval(val)=-2
				mvn	r2, #1
				str	r2, [r3, #204]
  479     fault(varund)
				mov	ip, r4
				movs	r0, #12
				bl	FAULT.10060(PLT)
		.LVL428:
  480   %finish
  481   fault(form) %unless type&varmask=var
  482   %if type&glabit=0 %start
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL412:
		.LDL15:
				tst	r6, #1
				beq	.L331
		.L332:
				mov	ip, r4
				mov	r0, r6
				bl	FAULT.10060(PLT)
		.LVL429:
		.L331:
		.LBB327:
  483     %if -128<=val<=127 %then oper=16_42 %else oper=16_82
  484     oper=oper+4 %if index=0
				cmp	r9, #0
				bne	.L339
		.L333:
  485   %else
				adds	r0, r0, #4
		.LVL431:
		.L335:
		.L338:
		.L339:
  486     %if index=0 %start
				cmp	r9, #0
				beq	.L348
		.L337:
		.LVL413:
		.LBB326:
  487       oper=6
				movs	r0, #6
				b	.L336
		.L355:
				.align	2
		.L354:
				.word	.LANCHOR0-(.LPIC59+4)
		.LFE208:
				.align	1
				.thumb
				.thumb_func
		EXPR.10336:
		.LFB210:
  488     %finishelseif -128<=val<=127 %start
				add	r3, r7, #128
		.LBE327:
  489       oper=16_44
  490     %else
  491       oper=16_84
				cmp	r3, #256
				ite	cc
				movcc	r0, #68
				movcs	r0, #132
		.LVL414:
		.L336:
  492     %finish
  493   %finish
				cmp	r3, #256
				ite	cc
				movcc	r0, #66
				movcs	r0, #130
		.L334:
		.LVL430:
  494   dump(oper+extra); dump(val)
				mov	ip, r4
				add	r0, r0, r8
		.LVL415:
				bl	DUMP.10294(PLT)
		.LVL416:
				mov	ip, r4
				add	r0, r0, r8
		.LVL432:
				bl	DUMP.10294(PLT)
		.LVL433:
  495   dump(val>>8) %if oper&16_40=0
				add	r3, r7, #128
		.LBE326:
				mov	ip, r4
				mov	r0, r7
				bl	DUMP.10294(PLT)
		.LVL417:
				mov	ip, r4
				mov	r0, r7
				bl	DUMP.10294(PLT)
		.LVL434:
  496   dump(16_8B) %and dump(16_C2) %if op=rem
				mov	ip, r4
				lsrs	r0, r7, #8
				bl	DUMP.10294(PLT)
		.LVL418:
				cmp	r5, #10
				beq	.L344
		.LVL419:
		.L321:
				mov	ip, r4
				lsrs	r0, r7, #8
				bl	DUMP.10294(PLT)
		.LVL435:
		.LDL16:
				cmp	r5, #10
				beq	.L344
		.L340:
  497   %if type&wordbit=0 %and op=load %then dump(16_32) %and dump(16_e4)
				mov	ip, r4
				movs	r0, #139
				bl	DUMP.10294(PLT)
		.LVL439:
  498   %return
				cmp	r5, #1
				bne	.L321
				mov	ip, r4
				movs	r0, #194
				bl	DUMP.10294(PLT)
		.LVL440:
				b	.L321
		.L324:
		.LVL441:
		.L341:
  499 shift: dump(pushax)
				mov	ip, r4
				movs	r0, #50
				bl	DUMP.10294(PLT)
		.LVL436:
  500   direct(load,type,val,index); dump(16_89); dump(16_c1); !Mov Cx,Ax
				mov	ip, r4
				movs	r0, #228
				bl	DUMP.10294(PLT)
		.LVL437:
				b	.L321
		.LVL438:
		.L344:
				movs	r0, #80
		.LVL442:
				bl	DUMP.10294(PLT)
		.LVL443:
				mov	ip, r4
				mov	r3, r9
				mov	r2, r7
				mov	r1, r6
				movs	r0, #1
				bl	DIRECT.10387(PLT)
		.LVL444:
  501   dump(popax)
				mov	ip, r4
				movs	r0, #137
				bl	DUMP.10294(PLT)
		.LVL445:
				mov	ip, r4
				movs	r0, #88
				bl	DUMP.10294(PLT)
		.LVL447:
  502   %if type&wordbit=0 %then dump(16_d2) %else dump(16_d3)
				mov	ip, r4
				movs	r0, #193
				bl	DUMP.10294(PLT)
		.LVL446:
				tst	r6, #1
  503   dump(oper)
				mov	ip, r4
				ite	eq
				moveq	r0, #210
		.L342:
				mov	ip, r4
				mov	r0, r8
				bl	DUMP.10294(PLT)
		.LVL449:
		.L323:
  504 %end
				b	.L321
		.LVL450:
		.L348:
  505
				pop	{r3, r4, r5, r6, r7, r8, r9, pc}
		.LVL420:
		.L351:
  506 %routine double(%integer t); ! index for word arrays
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL384:
				push	{r4, lr}
				mov	r4, ip
		.L308:
				movne	r0, #211
				bl	DUMP.10294(PLT)
		.LVL448:
		.L343:
  507   %returnif t&wordbit=0
				tst	r0, #1
				bne	.L313
				bx	lr
		.L313:
  508   dump(16_03); dump(16_c0); !Add ax,ax
				movs	r0, #3
		.LVL385:
				bl	DUMP.10294(PLT)
		.LVL386:
  509 %end
				mov	ip, r4
				movs	r0, #192
				bl	DUMP.10294(PLT)
		.LVL387:
  510
				pop	{r4, pc}
		.LFE209:
				.align	1
				.thumb
				.thumb_func
		LABELREF.10320:
		.LFB203:
  511 %routine expr
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, r8, r9, r10, lr}
				mov	r4, ip
		.LVL451:
  512 %integer oper,t,v,index
  513   oper=load
				movs	r6, #1
  514   %cycle
  515     nextatom; unary
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL456:
  516     %if type=constant %start
				mov	ip, r4
				bl	UNARY.10225(PLT)
		.LVL457:
				ldr	r5, [r4, #204]
				cmp	r5, #1
				beq	.L374
		.L358:
  517       atompos=atompos-1 %and val=cexpr(0) %if oper=load
				cmp	r6, #1
				beq	.L373
		.L359:
  518       immediate(oper,val)
				mov	ip, r4
				ldr	r1, [r4, #200]
				mov	r0, r6
				bl	IMMEDIATE.10350(PLT)
		.LVL453:
		.L360:
		.L369:
				ldr	r3, [r4, #3824]
				subs	r3, r3, #1
				str	r3, [r4, #3824]
  519     %finishelseif type&varmask=var %start
				mov	ip, r4
				movs	r0, #0
				bl	CEXPR.10227(PLT)
		.LVL464:
				str	r0, [r4, #200]
				b	.L359
		.L375:
		.LVL465:
  520       t=type; v=val
  521       %if open bracket %start
				tst	r5, #1
				beq	.L375
		.L361:
				ldr	r10, [r4, #200]
		.LVL466:
				mov	ip, r4
				bl	OPENBRACKET.10210(PLT)
		.LVL467:
				mov	r3, r0
				cbnz	r0, .L377
		.L362:
		.L365:
		.LVL468:
  522         dump(pushax) %unless oper=load
				cmp	r6, #1
				bne	.L378
  523         expr; double(t)
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL470:
				mov	ip, r4
				mov	r0, r8
				bl	DUMP.10294(PLT)
		.LVL476:
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL477:
  524         dump(16_8b); dump(16_f0);  !Mov si,ax
				mov	ip, r4
				mov	r0, r5
				bl	DOUBLE.10421(PLT)
		.LVL471:
				mov	ip, r4
				mov	r0, r7
				bl	DUMP.10294(PLT)
		.LVL472:
				mov	ip, r4
				mov	r0, r5
				bl	DOUBLE.10421(PLT)
		.LVL478:
				mov	ip, r4
				mov	r0, r7
				bl	DUMP.10294(PLT)
		.LVL479:
  525         dump(popax) %unless oper=load
				mov	ip, r4
				movs	r0, #240
				bl	DUMP.10294(PLT)
		.LVL473:
		.L364:
				mov	ip, r4
				movs	r0, #240
				bl	DUMP.10294(PLT)
		.LVL480:
  526         close bracket
				mov	ip, r4
				bl	CLOSEBRACKET.10215(PLT)
		.LVL474:
				mov	ip, r4
				movs	r0, #88
				bl	DUMP.10294(PLT)
		.LVL481:
				b	.L364
		.LVL482:
		.L376:
  527         index=1
				movs	r3, #1
  528       %finishelse index=0
				b	.L365
		.LVL475:
		.L378:
  529       direct(oper,t,v,index)
				mov	ip, r4
				mov	r2, r10
				mov	r1, r5
				mov	r0, r6
				bl	DIRECT.10387(PLT)
		.LVL469:
  530     %finishelseif type=proc %or type=xproc %or type=spec %start
				b	.L369
		.L377:
  531       %if oper=load %start
				cmp	r6, #1
				beq	.L376
		.L368:
  532         call(type,val)
				mov	ip, r4
				ldr	r1, [r4, #200]
				mov	r0, r5
				bl	CALL.10339(PLT)
		.LVL483:
  533       %else
				sub	r3, r5, #8
				b	.L369
		.L366:
  534         dump(pushax); call(type,val); dump(16_8b); dump(16_d8);!mov bx,ax
				mov	r8, #80
				cmp	r3, #2
				bhi	.L366
		.L367:
				mov	ip, r4
				mov	r0, r8
				bl	DUMP.10294(PLT)
		.LVL458:
  535         dump(popax); direct(oper,bx,0,0)
				mov	ip, r4
				ldr	r1, [r4, #200]
				ldr	r0, [r4, #204]
				bl	CALL.10339(PLT)
		.LVL459:
				mov	ip, r4
				movs	r0, #88
				bl	DUMP.10294(PLT)
		.LVL462:
  536       %finish
				movs	r7, #139
				b	.L357
		.LVL452:
		.L374:
				mov	ip, r4
				mov	r0, r7
				bl	DUMP.10294(PLT)
		.LVL460:
				mov	ip, r4
				movs	r3, #0
				mov	r2, r3
				movs	r1, #17
				mov	r0, r6
				bl	DIRECT.10387(PLT)
		.LVL463:
				b	.L369
		.L373:
  537     %else
				mov	ip, r4
				movs	r0, #216
				bl	DUMP.10294(PLT)
		.LVL461:
  538       fault(form)
				mov	r9, #5
				mov	ip, r4
				mov	r0, r9
				bl	FAULT.10060(PLT)
		.LVL484:
				b	.L369
		.L356:
  539     %finish
  540     %returnunless atomtype(atompos)=op
				ldr	r3, [r4, #3824]
				addw	r3, r3, #905
				ldr	r3, [r4, r3, lsl #2]
				cmp	r3, #11
				bne	.L356
		.L371:
  541     nextatom
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL454:
  542     oper=val
				ldr	r6, [r4, #200]
		.LVL455:
		.L357:
  543   %repeat
  544 %end
				pop	{r4, r5, r6, r7, r8, r9, r10, pc}
		.LFE210:
				.align	1
				.thumb
				.thumb_func
		CALL.10339:
		.LFB206:
  545
  546 %routine return
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, lr}
				mov	r4, ip
  547   dump(16_8b); dump(16_e5); !Mov sp,bp
				movs	r0, #139
				bl	DUMP.10294(PLT)
		.LVL376:
  548   dump(16_5d); dump(16_1f); !Pop bp, pop ds
				mov	ip, r4
				movs	r0, #229
				bl	DUMP.10294(PLT)
		.LVL377:
				mov	ip, r4
				movs	r0, #93
				bl	DUMP.10294(PLT)
		.LVL378:
  549   %if parms=0 %then dump(16_cb) %elsestart
				mov	ip, r4
				movs	r0, #31
				bl	DUMP.10294(PLT)
		.LVL379:
				ldr	r3, [r4, #24]
				cbz	r3, .L305
		.L302:
  550     dump(16_ca)
				mov	ip, r4
				movs	r0, #202
				bl	DUMP.10294(PLT)
		.LVL380:
				mov	ip, r4
				movs	r0, #203
				bl	DUMP.10294(PLT)
		.LVL383:
  551     dump(parms); dump(parms>>8)
				mov	ip, r4
				ldr	r0, [r4, #24]
				bl	DUMP.10294(PLT)
		.LVL381:
				b	.L303
		.LFE211:
				.align	1
				.thumb
				.thumb_func
		DOUBLE.10421:
		.LFB209:
  552   %finish
				ldr	r0, [r4, #24]
				mov	ip, r4
				lsrs	r0, r0, #8
				bl	DUMP.10294(PLT)
		.LVL382:
		.L303:
  553   access=0
				movs	r3, #0
				str	r3, [r4, #20]
  554 %end
  555
				pop	{r4, pc}
		.L305:
  556 %routine terminate declarations
  557 %integer i
  558   fault(level0) %if level=0
				ldr	r3, [r4, #16]
				cmp	r3, #0
				beq	.L557
		.L525:
  559   %if level=1 %start
				ldr	r3, [r4, #16]
				cmp	r3, #1
				beq	.L558
		.L526:
		.LBE492:
		.LBE491:
				mov	ip, r4
				movs	r0, #11
				bl	FAULT.10060(PLT)
		.LVL801:
				b	.L525
		.L558:
  560     level=2; i=-floc
				movs	r3, #2
				str	r3, [r4, #16]
  561     %if i>127 %start
				ldr	r5, [r4, #12]
				negs	r5, r5
		.LVL802:
				cmp	r5, #127
				ble	.L527
  562       dump(16_81); dump(16_ec); dump(i); dump(i>>8); !Sub sp,nn
				mov	ip, r4
				movs	r0, #129
				bl	DUMP.10294(PLT)
		.LVL803:
  563     %finishelseunless i=0 %start
				mov	ip, r4
				movs	r0, #236
				bl	DUMP.10294(PLT)
		.LVL804:
  564       dump(16_83); dump(16_ec); dump(i); !sub sp,n
				mov	ip, r4
				mov	r0, r5
				bl	DUMP.10294(PLT)
		.LVL805:
				mov	ip, r4
				movs	r0, #131
				bl	DUMP.10294(PLT)
		.LVL807:
  565     %finish
				mov	ip, r4
				lsrs	r0, r5, #8
				bl	DUMP.10294(PLT)
		.LVL806:
		.L528:
		.L529:
				cmp	r5, #0
				beq	.L529
				mov	ip, r4
				movs	r0, #236
				bl	DUMP.10294(PLT)
		.LVL808:
  566     floc=floc-2
				ldr	r3, [r4, #12]
				subs	r3, r3, #2
				str	r3, [r4, #12]
				b	.L526
		.L527:
				mov	ip, r4
				mov	r0, r5
				bl	DUMP.10294(PLT)
		.LVL809:
				b	.L529
		.LVL810:
		.L559:
		.LBE493:
		.LBE544:
  567   %finish
  568 %end
  569
  570 %routine constdef
  571 %integer c
  572   %cycle
  573     nextatom; %returnif type=sep
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL638:
  574     fault(ambig) %unless type=unknown; c=val
				ldr	r3, [r4, #204]
				cmp	r3, #14
				beq	.L535
		.L456:
				cmp	r3, #0
				bne	.L560
		.L457:
  575     fault(form) %unless equal sign
				mov	r8, #6
				mov	ip, r4
				mov	r0, r8
				bl	FAULT.10060(PLT)
		.LVL633:
				b	.L457
		.LVL634:
		.L458:
				mov	ip, r4
				bl	EQUALSIGN.10220(PLT)
		.LVL640:
				cmp	r0, #0
				bne	.L458
  576     tagtype(c)=constant; tagval(c)=cexpr(1)
				movs	r7, #5
				b	.L454
		.L560:
				subs	r6, r5, #1
				adds	r5, r5, #251
		.LVL635:
				movs	r0, #1
				str	r0, [r4, r5, lsl #2]
				mov	ip, r4
				mov	r0, r7
				bl	FAULT.10060(PLT)
		.LVL641:
				b	.L458
		.LVL642:
		.L448:
		.LBE495:
		.LBE494:
  577   %repeat
				mov	ip, r4
				bl	CEXPR.10227(PLT)
		.LVL636:
				adds	r6, r6, #52
				str	r0, [r4, r6, lsl #2]
		.LVL637:
		.L454:
				ldr	r5, [r4, #200]
		.LVL639:
  578 %end
  579
  580 %routine vardef(%integer key)
  581 %integer t,lb,ub,c,r
  582 %integername v
  583   %cycle
  584     nextatom
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL643:
				b	.L461
		.L562:
  585 next: %returnif type=sep
  586     fault(ambig) %unless type=unknown
				ldr	r3, [r4, #204]
				cmp	r3, #14
				beq	.L535
		.L462:
				cmp	r3, #0
				bne	.L562
		.L463:
		.LDL22:
		.LVL656:
  587     t=var
				mov	ip, r4
				movs	r0, #6
				bl	FAULT.10060(PLT)
		.LVL644:
				b	.L463
		.LVL645:
		.L563:
  588     t=t+wordbit %if key=kword
  589     t=t+glabit %if level=0
				ldr	r3, [r4, #16]
  590     tagtype(val)=t; v==tagval(val)
				add	r10, fp, #2
		.L460:
				cmp	r3, #0
				ite	ne
				movne	r2, fp
				moveq	r2, r10
		.L464:
		.LVL657:
				ldr	r3, [r4, #200]
				subs	r7, r3, #1
				adds	r3, r3, #251
				str	r2, [r4, r3, lsl #2]
		.LVL658:
  591     %if open bracket %start
				mov	ip, r4
				bl	OPENBRACKET.10210(PLT)
		.LVL659:
				mov	r5, r0
				cmp	r0, #0
				bne	.L563
  592       lb=cexpr(1); nextatom; fault(form) %unless type=colon
				mov	ip, r4
				movs	r0, #1
				bl	CEXPR.10227(PLT)
		.LVL646:
				mov	r5, r0
		.LVL647:
  593       ub=cexpr(1)+1; close bracket
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL648:
				mov	ip, r4
				movs	r0, #1
				bl	CEXPR.10227(PLT)
		.LVL649:
				add	r8, r0, #1
		.LVL650:
  594     %finishelse lb=0 %and ub=1
				ldr	r3, [r4, #204]
				cmp	r3, #13
				bne	.L561
		.L466:
				mov	ip, r4
				bl	CLOSEBRACKET.10215(PLT)
		.LVL651:
				b	.L467
		.LVL652:
		.L561:
  595     lb=lb+lb %and ub=ub+ub %if key=kword
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL653:
				b	.L466
		.LVL654:
		.L564:
				cmp	r6, #18
  596     %if level=0 %start
				itt	eq
				lsleq	r5, r5, #1
		.LVL661:
				ldr	r3, [r4, #16]
				cmp	r3, #0
				bne	.L469
  597       v=gloc-lb; t=v+ub
				mov	r8, #1
		.L465:
		.L467:
		.LVL660:
				lsleq	r8, r8, #1
		.LVL662:
		.L468:
				ldr	r0, [r4, #3416]
				subs	r0, r0, r5
				adds	r7, r7, #52
		.LVL663:
				str	r0, [r4, r7, lsl #2]
  598       %if equal sign %start
				add	r8, r8, r0
		.LVL664:
				mov	ip, r4
				bl	EQUALSIGN.10220(PLT)
		.LVL665:
				cbnz	r0, .L471
		.L470:
		.LVL666:
		.LBB451:
		.LBB450:
				ldr	r3, .L580+20
				ldr	r1, [sp, #252]
				ldr	r3, [r1, r3]
				movs	r2, #1
				str	r2, [r3]
				ldr	r3, .L580+24
				ldr	r3, [r1, r3]
				ldr	r2, .L580+28
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #280]
				str	r2, [r3]
				ldr	r0, [sp, #264]
				bl	check_outstream(PLT)
		.LVL667:
		.LBE450:
		.LBE451:
		.LBB452:
		.LBB453:
				movs	r0, #2
				bl	_imp_printsymbol(PLT)
		.LVL668:
		.LBE453:
		.LBE452:
		.LBB454:
		.LBB455:
				movs	r0, #3
				bl	_imp_printsymbol(PLT)
		.LVL669:
		.LBE455:
		.LBE454:
		.LBB456:
		.LBB457:
				uxtb	r0, r8
				bl	_imp_printsymbol(PLT)
		.LVL670:
		.LBE457:
		.LBE456:
		.LBB458:
		.LBB459:
				ubfx	r0, r8, #8, #8
				bl	_imp_printsymbol(PLT)
		.LVL671:
		.LBE459:
		.LBE458:
  599         %cycle
  600           nextatom
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL674:
  601           %if gloc>=t %start
				ldr	r3, [r4, #3416]
				cmp	r8, r3
				ble	.L564
		.L472:
  602             gflush; ->next
				mov	ip, r4
				bl	GFLUSH.10274(PLT)
		.LVL655:
		.L461:
  603           %finish
  604           %if type=string %start
				ldr	r3, [r4, #204]
				cmp	r3, #2
				beq	.L565
		.L473:
  605             dumpstring(val)
				mov	ip, r4
				ldr	r0, [r4, #200]
				bl	DUMPSTRING.10286(PLT)
		.LVL673:
		.L471:
  606           %finishelseif type=sep %start
  607             readline
				mov	ip, r4
				bl	READLINE.10076(PLT)
		.LVL675:
				b	.L471
		.L475:
  608           %finishelsestart
				cmp	r3, #14
				bne	.L475
  609             atompos=atompos-1; c=Cexpr(1); r=1
				ldr	r3, [r4, #3824]
				subs	r3, r3, #1
				str	r3, [r4, #3824]
  610             %if open bracket %start
				mov	ip, r4
				movs	r0, #1
				bl	CEXPR.10227(PLT)
		.LVL676:
				mov	r7, r0
		.LVL677:
				mov	ip, r4
				bl	OPENBRACKET.10210(PLT)
		.LVL678:
				cbnz	r0, .L566
  611               r=cexpr(1); close bracket
				movs	r5, #1
		.LVL679:
		.L476:
		.LBB460:
		.LBB461:
				mov	ip, r4
				movs	r0, #1
				bl	CEXPR.10227(PLT)
		.LVL681:
				mov	r5, r0
		.LVL682:
  612             %finish
				mov	ip, r4
				bl	CLOSEBRACKET.10215(PLT)
		.LVL683:
  613             %while r>0 %cycle
  614               r=r-1; %if key=kword %then gword(c) %else gbyte(c)
				cmp	r5, #0
				bgt	.L476
				b	.L471
		.L567:
		.LVL684:
		.LBB463:
		.LBB462:
				cmp	r5, #0
				ble	.L471
		.LVL687:
		.L479:
				subs	r5, r5, #1
		.LVL688:
  615             %repeat
				cmp	r6, #18
				beq	.L567
		.L480:
  616           %finish
  617         %repeat
  618       %else
  619         selectoutput(object); printsymbol(2); printsymbol(3)
				mov	ip, r4
				mov	r0, r7
				bl	GBYTE.10267(PLT)
		.LVL689:
				b	.L481
		.LVL690:
		.L469:
  620         printsymbol(t&255); printsymbol(t>>8&255); gloc=t
  621       %finish
  622     %else
				str	r8, [r4, #3416]
				b	.L460
		.LVL672:
		.L565:
  623       fault(declate) %if level=2
				cmp	r3, #2
				beq	.L568
		.L483:
  624       floc=floc-ub+lb; v=floc-lb
				ldr	r3, [r4, #12]
				sub	r3, r3, r8
				add	r5, r5, r3
		.LVL691:
				str	r5, [r4, #12]
				mov	ip, r4
				movs	r0, #8
				bl	FAULT.10060(PLT)
		.LVL694:
				b	.L483
		.LVL695:
		.L551:
		.L485:
		.LBE464:
		.LBE496:
		.LBB497:
		.LBB498:
  625     %finish
				adds	r7, r7, #52
		.LVL692:
				str	r3, [r4, r7, lsl #2]
				b	.L460
		.LVL693:
		.L568:
  626   %repeat
  627 %end
  628
  629 %routine procdef(%integer key)
				add	r3, sp, #8704
				adds	r3, r3, #20
				add	r2, sp, #17152
				adds	r2, r2, #56
				str	r2, [r3, #264]
				str	r4, [r3, #4]
  630 %integer p,sym
  631 %string(31)s
  632
  633   %routine getstring
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 1032
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, r8, r9, lr}
				subw	sp, sp, #1036
				mov	r4, ip
				ldr	r9, .L32
		.LPIC0:
				add	r9, pc
				ldr	r3, .L32+4
				ldr	r3, [r9, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1028]
  634     s=""
  635     %cycle
  636       sym=line(val); %returnif sym='"'; val=val+1; s=s.tostring(sym)
				add	r5, ip, #8
		.LVL10:
				movs	r2, #31
				add	r1, sp, #4
				mov	r0, r5
				bl	_imp_strncpy(PLT)
		.LVL11:
				ldr	r3, [r4, #4]
				ldr	r2, [r3, #200]
				add	r2, r2, r3
				movw	r1, #8087
				ldrb	r2, [r2, r1]	@ zero_extendqisi2
				str	r2, [r4]
				ldr	r3, [r4, #4]
				ldr	r2, [r3, #200]
				add	r2, r2, r3
				movw	r1, #8087
				ldrb	r2, [r2, r1]	@ zero_extendqisi2
				str	r2, [r4]
  637     %repeat
				cmp	r2, #34
				beq	.L25
		.LBB220:
		.LBB221:
				cmp	r2, #34
				bne	.L27
		.L25:
  638   %end
				ldr	r3, .L32+4
				ldr	r3, [r9, r3]
				ldr	r2, [sp, #1028]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L31
				addw	sp, sp, #1036
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, pc}
		.L31:
				bl	__stack_chk_fail(PLT)
		.LVL15:
		.L33:
				.align	2
		.L32:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC0+4)
				.word	__stack_chk_guard(GOT)
		.LFE216:
				.align	1
				.thumb
				.thumb_func
		IMMEDIATE.10350:
		.LFB207:
  639
  640   nextatom; fault(ambig) %unless type=unknown
				ldr	r2, [r3, #200]
				adds	r2, r2, #1
				str	r2, [r3, #200]
		.LVL12:
		.LBB223:
		.LBB222:
				mov	r2, r7
				mov	r1, r5
				mov	r0, r8
				bl	_imp_join(PLT)
		.LVL13:
		.LBE222:
		.LBE223:
				movs	r2, #31
				mov	r1, r6
				mov	r0, r5
				bl	_imp_strncpy(PLT)
		.LVL14:
		.LDL2:
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL696:
  641   %if key=kspec %start
				ldr	r3, [r4, #204]
				cmp	r3, #0
				bne	.L569
		.L486:
				cmp	r6, #20
				beq	.L570
		.L487:
  642     tagtype(val)=spec; tagval(val)=gloc
				mov	ip, r4
				movs	r0, #6
				bl	FAULT.10060(PLT)
		.LVL707:
				b	.L486
		.L570:
				ldr	r3, [r4, #200]
				add	r2, r3, #251
				movs	r1, #10
				str	r1, [r4, r2, lsl #2]
  643     nextatom; fault(form) %unless type=string
				add	r8, sp, #516
				add	r7, sp, #772
		.LBE221:
		.LBE220:
				add	r6, sp, #260
		.L27:
				adds	r3, r3, #51
				ldr	r2, [r4, #3416]
				str	r2, [r4, r3, lsl #2]
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL708:
  644     getstring; p=length(s)
				ldr	r3, [r4, #204]
				cmp	r3, #2
				beq	.L488
				add	r5, sp, #8704
				adds	r5, r5, #20
				mov	ip, r5
				bl	GETSTRING.10507(PLT)
		.LVL710:
  645     selectoutput(object); printsymbol(2)
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL709:
		.L488:
				ldrb	r5, [r5, #8]	@ zero_extendqisi2
		.LVL711:
		.LBB499:
		.LBB500:
				ldr	r3, .L580+20
				ldr	r1, [sp, #252]
				ldr	r3, [r1, r3]
				movs	r2, #1
				str	r2, [r3]
				ldr	r3, .L580+24
				ldr	r3, [r1, r3]
				ldr	r2, .L580+28
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #280]
				str	r2, [r3]
				ldr	r0, .L580+52
		.LPIC67:
				add	r0, pc
				add	r0, r0, #256
				bl	check_outstream(PLT)
		.LVL712:
		.LBE500:
		.LBE499:
		.LBB501:
		.LBB502:
				movs	r0, #2
				bl	_imp_printsymbol(PLT)
		.LVL713:
		.LBE502:
		.LBE501:
		.LBB503:
		.LBB504:
				movs	r0, #8
				bl	_imp_printsymbol(PLT)
		.LVL714:
		.LBE504:
		.LBE503:
		.LBB505:
		.LBB506:
				mov	r0, r5
				bl	_imp_printsymbol(PLT)
		.LVL715:
				add	r6, sp, #7488
		.LVL716:
				adds	r6, r6, #16
				sub	r5, r6, #60
		.LVL717:
				mov	r2, #256
				add	r1, sp, #7680
				adds	r1, r1, #20
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL718:
		.LBE506:
		.LBE505:
		.LBB507:
		.LBB508:
				movs	r2, #240
				sub	r1, r6, #44
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL719:
				ldm	r5, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL720:
		.LBE508:
		.LBE507:
		.LBB509:
		.LBB510:
				movs	r0, #7
				bl	_imp_printsymbol(PLT)
		.LVL721:
		.LBE510:
		.LBE509:
		.LBB511:
		.LBB512:
				movs	r0, #0
				bl	_imp_printsymbol(PLT)
		.LVL722:
		.LBE512:
		.LBE511:
  646     printsymbol(8); printsymbol(p); printstring(s)
  647     printsymbol(7); printsymbol(0)
  648     gloc=gloc+4; %return
				ldr	r3, [r4, #3416]
				adds	r3, r3, #4
				str	r3, [r4, #3416]
				b	.L535
		.LVL723:
		.L571:
  649   %finish
  650   fault(nested) %unless level=0; level=1; access=1; textlevel=0
				ldr	r3, [r4, #16]
				cmp	r3, #0
				bne	.L571
		.L489:
  651   v=val; t=proc; nextatom
				ldr	r3, [r4, #200]
				str	r3, [r4, #8]
				mov	ip, r4
				movs	r0, #7
				bl	FAULT.10060(PLT)
		.LVL724:
				b	.L489
		.L572:
  652   %if type=string %start
				movs	r3, #8
				str	r3, [r4, #4]
				ldr	r3, [r4, #204]
				cmp	r3, #2
				beq	.L572
		.LVL698:
		.L490:
  653     getstring
				movs	r3, #1
				str	r3, [r4, #16]
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL697:
				add	r5, sp, #8704
				adds	r5, r5, #20
				mov	ip, r5
				bl	GETSTRING.10507(PLT)
		.LVL725:
		.LBB513:
		.LBB514:
				ldr	r3, .L580+20
				ldr	r2, [sp, #252]
				mov	r1, r2
				ldr	r3, [r2, r3]
				movs	r6, #1
		.LVL726:
				str	r6, [r3]
				ldr	r3, .L580+24
				ldr	r3, [r2, r3]
				ldr	r2, .L580+28
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #280]
				str	r2, [r3]
				ldr	r0, .L580+56
		.LPIC68:
				add	r0, pc
				add	r0, r0, #256
				bl	check_outstream(PLT)
		.LVL727:
		.LBE514:
		.LBE513:
		.LBB515:
		.LBB516:
				mov	r0, r6
				bl	_imp_printsymbol(PLT)
		.LVL728:
		.LBE516:
		.LBE515:
		.LBB517:
		.LBB518:
				movs	r0, #6
				bl	_imp_printsymbol(PLT)
		.LVL729:
		.LBE518:
		.LBE517:
		.LBB519:
		.LBB520:
				ldrb	r0, [r5, #8]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL730:
				add	r6, sp, #7232
				adds	r6, r6, #16
				sub	r5, r6, #60
				mov	r2, #256
				add	r1, sp, #7936
				adds	r1, r1, #20
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL731:
		.LBE520:
		.LBE519:
		.LBB521:
		.LBB522:
				movs	r2, #240
				sub	r1, r6, #44
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL732:
				ldm	r5, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL733:
		.LBE522:
		.LBE521:
  654     selectoutput(object); printsymbol(1); printsymbol(6)
				str	r3, [r4, #20]
  655     printsymbol(length(s)); printstring(s)
				movs	r3, #0
				str	r3, [r4, #188]
  656     t=xproc; nextatom
				movs	r3, #9
				str	r3, [r4, #4]
  657   %finish
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL734:
				b	.L490
		.L573:
  658   tagtype(v)=t; tagval(v)=cloc
				ldr	r3, [r4, #8]
				add	r2, r3, #251
				ldr	r1, [r4, #4]
				str	r1, [r4, r2, lsl #2]
  659   dump(16_1e); dump(16_55); !Push ds, push bp
				adds	r3, r3, #51
				ldr	r2, [r4, #3420]
				str	r2, [r4, r3, lsl #2]
				mov	ip, r4
				movs	r0, #30
				bl	DUMP.10294(PLT)
		.LVL699:
  660   dump(16_8b); dump(16_ec); !Mov BP,SP
				mov	ip, r4
				movs	r0, #85
				bl	DUMP.10294(PLT)
		.LVL700:
				mov	ip, r4
				movs	r0, #139
				bl	DUMP.10294(PLT)
		.LVL701:
  661   dump(16_33); dump(16_C0); !Xor AX,AX
				mov	ip, r4
				movs	r0, #236
				bl	DUMP.10294(PLT)
		.LVL702:
				mov	ip, r4
				movs	r0, #51
				bl	DUMP.10294(PLT)
		.LVL703:
  662   dump(pushax);             !For event mechanism
				mov	ip, r4
				movs	r0, #192
				bl	DUMP.10294(PLT)
		.LVL704:
				mov	ip, r4
				movs	r0, #80
				bl	DUMP.10294(PLT)
		.LVL705:
  663   %if t=xproc %start
				ldr	r3, [r4, #4]
				cmp	r3, #9
				beq	.L573
		.L491:
  664     fault(labund) %if program=""
  665     dump(16_b8); flush; !Mov ax,nn=dseg
				mov	ip, r4
				movs	r0, #184
				bl	DUMP.10294(PLT)
		.LVL736:
  666     printsymbol(7); printsymbol(length(program)); printstring(program)
				add	r1, sp, #8192
				adds	r1, r1, #20
				ldr	r3, [sp, #260]
				addw	r0, r3, #3816
				bl	_imp_strcmp(PLT)
		.LVL735:
				cbz	r0, .L574
		.L492:
				mov	ip, r4
				bl	FLUSH.10298(PLT)
		.LVL737:
		.LBB523:
		.LBB524:
				movs	r0, #7
				bl	_imp_printsymbol(PLT)
		.LVL738:
		.LBE524:
		.LBE523:
		.LBB525:
		.LBB526:
				ldrb	r0, [r4, #3832]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL739:
				add	r6, sp, #6976
				adds	r6, r6, #16
				sub	r5, r6, #60
				mov	r2, #256
				add	r1, sp, #8448
				adds	r1, r1, #20
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL740:
		.LBE526:
		.LBE525:
		.LBB527:
		.LBB528:
				movs	r2, #240
				sub	r1, r6, #44
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL741:
				ldm	r5, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL742:
		.LBE528:
		.LBE527:
  667     cloc=cloc+2; dump(16_8E); dump(16_D8); !Mov ds,ax
				ldr	r3, [r4, #3420]
				adds	r3, r3, #2
				str	r3, [r4, #3420]
  668   %finish
				mov	ip, r4
				movs	r0, #142
				bl	DUMP.10294(PLT)
		.LVL743:
  669   parms=0; oldtpos=v+1
				movs	r3, #0
				str	r3, [r4, #24]
				mov	ip, r4
				movs	r0, #216
				bl	DUMP.10294(PLT)
		.LVL744:
				b	.L491
		.L574:
				mov	ip, r4
				movs	r0, #10
				bl	FAULT.10060(PLT)
		.LVL745:
				b	.L492
		.L495:
  670   %while type#sep %cycle
				ldr	r3, [r4, #8]
				adds	r3, r3, #1
				str	r3, [r4]
  671     fault(ambig) %unless type=unknown
				ldr	r3, [r4, #204]
				cmp	r3, #14
				beq	.L494
				cmp	r3, #0
				beq	.L495
  672     tagtype(val)=var+wordbit
				movs	r6, #6
				movs	r5, #5
				b	.L493
		.LVL706:
		.L569:
				ldr	r3, [r4, #200]
				adds	r3, r3, #251
				str	r5, [r4, r3, lsl #2]
				mov	ip, r4
				mov	r0, r6
				bl	FAULT.10060(PLT)
		.LVL747:
				b	.L495
		.L494:
  673     parms=parms+1; nextatom
				ldr	r3, [r4, #24]
				adds	r3, r3, #1
				str	r3, [r4, #24]
  674   %repeat
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL746:
		.L493:
  675   p=tagpos-parms; parms=parms+parms; sym=parms+6
				ldr	r5, [r4, #3408]
				ldr	r3, [r4, #24]
				subs	r2, r5, r3
		.LVL748:
  676   %while p<tagpos %cycle
				lsls	r3, r3, #1
				str	r3, [r4, #24]
  677     tagval(p)=sym; sym=sym-2; p=p+1
				adds	r3, r3, #6
				add	r1, sp, #8768
				adds	r1, r1, #16
				str	r3, [r1, #-60]
				movs	r0, #0
				movs	r6, #1
		.L496:
				mov	r1, r3
				subs	r3, r3, #2
				cmp	r5, r2
				ble	.L497
				add	r0, r4, r2, lsl #2
				str	r1, [r0, #204]
  678   %repeat
  679   floc=0
				adds	r2, r2, #1
		.LVL749:
				mov	r0, r6
				b	.L496
		.L497:
				cbnz	r0, .L575
		.L498:
				movs	r3, #0
				str	r3, [r4, #12]
		.L455:
		.LVL750:
		.L535:
		.LBE498:
		.LBE497:
  680 %end
  681
  682 %routine instruction
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, r8, r9, r10, lr}
				mov	r4, ip
  683 %integer t,v,i,oper,st,sv,si,dt,dv
  684   nextatom
				bl	NEXTATOM.10206(PLT)
		.LVL508:
  685   %if type=kmove %start
				ldr	r5, [r4, #204]
				cmp	r5, #23
				bne	.L413
  686     nextatom; oper=16_a4; !Movb
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL509:
  687     %if type=string %start
				ldr	r3, [r4, #204]
				cmp	r3, #2
				bne	.L414
		.LVL510:
				movne	r6, #164
		.L415:
		.LVL515:
  688       st=var+glabit; sv=gloc; si=0
				movs	r5, #6
		.L416:
		.LVL518:
		.L417:
  689       dumpstring(val); val=gloc-sv; gflush
				ldr	r9, [r4, #3416]
		.LVL511:
				mov	ip, r4
				ldr	r0, [r4, #200]
				bl	DUMPSTRING.10286(PLT)
		.LVL512:
  690       %if val&1=0 %start
				ldr	r3, [r4, #3416]
				sub	r3, r3, r9
				str	r3, [r4, #200]
				ldr	r3, [r4, #200]
				tst	r3, #1
				mov	r8, #0
  691         val=val>>1; oper=16_a5; !Movw
				mov	ip, r4
				bl	GFLUSH.10274(PLT)
		.LVL513:
				ittte	eq
				lsreq	r3, r3, #1
				streq	r3, [r4, #200]
		.LVL514:
  692       %finish
				moveq	r6, #165
  693       immediate(load,val); dump(pushax)
				mov	ip, r4
				ldr	r1, [r4, #200]
				movs	r0, #1
				bl	IMMEDIATE.10350(PLT)
		.LVL516:
  694     %else
				mov	ip, r4
				movs	r0, #80
				bl	DUMP.10294(PLT)
		.LVL517:
  695       expr; dump(pushax)
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL549:
  696       nextatom; st=type; sv=val; si=0
				mov	ip, r4
				movs	r0, #80
				bl	DUMP.10294(PLT)
		.LVL550:
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL551:
  697       fault(form) %unless st&varmask=var
				ldr	r5, [r4, #204]
		.LVL552:
  698       %if openbracket %start
				ldr	r9, [r4, #200]
		.LVL553:
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL554:
		.LDL19:
				mov	ip, r4
				bl	OPENBRACKET.10210(PLT)
		.LVL555:
				mov	r8, r0
				cbz	r0, .L438
  699         expr; double(st); si=1; dump(pushax)
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL556:
  700         closebracket
				mov	ip, r4
				mov	r0, r5
				bl	DOUBLE.10421(PLT)
		.LVL557:
				mov	ip, r4
				bl	CLOSEBRACKET.10215(PLT)
		.LVL559:
  701       %finish
				mov	r8, #1
  702       oper=16_a5 %if st&wordbit#0; !Movw
				mov	ip, r4
				movs	r0, #80
				bl	DUMP.10294(PLT)
		.LVL558:
  703     %finish
				movs	r6, #165
				b	.L417
		.LVL560:
		.L438:
				movs	r6, #165
				b	.L417
		.LVL561:
		.L418:
  704     nextatom; dt=type; dv=val
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL519:
  705     fault(form) %unless dt&varmask=var
				ldr	r7, [r4, #204]
		.LVL520:
  706     %if openbracket %start
				ldr	r10, [r4, #200]
		.LVL521:
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL522:
		.LDL18:
				mov	ip, r4
				bl	OPENBRACKET.10210(PLT)
		.LVL523:
				cmp	r0, #0
				beq	.L418
  707       expr; double(dt); dump(16_8b); dump(16_f8); !Mov di,ax
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL524:
  708       direct(lea,dt,dv,0); dump(16_03); dump(16_f8); !add di,ax
				mov	ip, r4
				mov	r0, r7
				bl	DOUBLE.10421(PLT)
		.LVL525:
				mov	ip, r4
				movs	r3, #0
				mov	r2, r10
				mov	r1, r7
				movs	r0, #14
				bl	DIRECT.10387(PLT)
		.LVL528:
  709       closebracket
				mov	ip, r4
				movs	r0, #139
				bl	DUMP.10294(PLT)
		.LVL526:
				mov	ip, r4
				movs	r0, #3
				bl	DUMP.10294(PLT)
		.LVL529:
				mov	ip, r4
				bl	CLOSEBRACKET.10215(PLT)
		.LVL531:
		.L419:
  710     %else
				mov	ip, r4
				movs	r0, #248
				bl	DUMP.10294(PLT)
		.LVL527:
				mov	ip, r4
				movs	r0, #248
				bl	DUMP.10294(PLT)
		.LVL530:
  711       direct(lea,dt,dv,0); dump(16_8b); dump(16_f8); !Mov di,ax
				mov	ip, r4
				movs	r3, #0
				mov	r2, r10
				mov	r1, r7
				movs	r0, #14
				bl	DIRECT.10387(PLT)
		.LVL562:
  712     %finish
				mov	ip, r4
				movs	r0, #139
				bl	DUMP.10294(PLT)
		.LVL563:
  713     direct(lea,st,sv,0); dump(16_8b); dump(16_f0); !Mov si,ax
				mov	ip, r4
				movs	r3, #0
				mov	r2, r9
				mov	r1, r5
				movs	r0, #14
				bl	DIRECT.10387(PLT)
		.LVL532:
				mov	ip, r4
				movs	r0, #248
				bl	DUMP.10294(PLT)
		.LVL564:
				b	.L419
		.LVL565:
		.L413:
  714     %if si#0 %Start
				mov	ip, r4
				movs	r0, #139
				bl	DUMP.10294(PLT)
		.LVL533:
				cmp	r8, #0
				beq	.L420
  715       dump(popax); dump(16_03); dump(16_f0); !add,si,ax
				mov	ip, r4
				movs	r0, #240
				bl	DUMP.10294(PLT)
		.LVL534:
				mov	ip, r4
				movs	r0, #88
				bl	DUMP.10294(PLT)
		.LVL535:
  716     %finish
				mov	ip, r4
				movs	r0, #3
				bl	DUMP.10294(PLT)
		.LVL536:
  717     %if dt&glabit=0 %then dump(16_16) %else dump(16_1e); !Push SS/DS
				mov	ip, r4
				movs	r0, #240
				bl	DUMP.10294(PLT)
		.LVL537:
		.L420:
				tst	r7, #1
  718     dump(16_07);  !Pop ES
				mov	ip, r4
				ite	eq
				moveq	r0, #22
		.L421:
				mov	ip, r4
				movs	r0, #7
				bl	DUMP.10294(PLT)
		.LVL539:
  719     %if st&glabit=0 %start
				ands	r5, r5, #1
		.LVL540:
				bne	.L423
  720       dump(16_1e); dump(16_16); dump(16_1f); !Push DS,SS, Pop DS
				mov	ip, r4
				movs	r0, #30
				bl	DUMP.10294(PLT)
		.LVL541:
  721     %finish
				movne	r0, #30
				bl	DUMP.10294(PLT)
		.LVL538:
		.L422:
				mov	ip, r4
				movs	r0, #22
				bl	DUMP.10294(PLT)
		.LVL542:
  722     dump(16_59); dump(16_F2); dump(oper); !Pop cx, rep
				mov	ip, r4
				movs	r0, #31
				bl	DUMP.10294(PLT)
		.LVL543:
		.L423:
				mov	ip, r4
				movs	r0, #89
				bl	DUMP.10294(PLT)
		.LVL544:
  723     dump(16_1f) %if st&glabit=0; !Pop DS
				mov	ip, r4
				movs	r0, #242
				bl	DUMP.10294(PLT)
		.LVL545:
				cbnz	r5, .L412
  724   %finishelseif type=krepeat %start
				mov	ip, r4
				mov	r0, r6
				bl	DUMP.10294(PLT)
		.LVL546:
				mov	ip, r4
				movs	r0, #31
				bl	DUMP.10294(PLT)
		.LVL547:
		.L424:
		.L436:
		.L412:
  725     poptext; fault(type) %unless type=repexp
				mov	ip, r4
				bl	POPTEXT.10332(PLT)
		.LVL566:
  726     dump(16_E9); labelref(label,val)
				cmp	r5, #30
				bne	.L425
				ldr	r0, [r4, #204]
				cmp	r0, #14
				beq	.L426
				mov	ip, r4
				movs	r0, #233
				bl	DUMP.10294(PLT)
		.LVL568:
  727   %finishelseif type=kjump %start
				mov	ip, r4
				bl	FAULT.10060(PLT)
		.LVL567:
		.L426:
				mov	ip, r4
				ldr	r1, [r4, #200]
				movs	r0, #3
				bl	LABELREF.10320(PLT)
		.LVL569:
				b	.L412
		.L425:
  728     nextatom; dump(16_e9); labelref(type,val)
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL570:
  729   %finishelseif type=kreturn %start
				cmp	r5, #24
				bne	.L427
				mov	ip, r4
				movs	r0, #233
				bl	DUMP.10294(PLT)
		.LVL571:
				b	.L412
		.L427:
  730     expr %unless atomtype(atompos)=sep
				mov	ip, r4
				ldr	r1, [r4, #200]
				ldr	r0, [r4, #204]
				bl	LABELREF.10320(PLT)
		.LVL572:
				ldr	r3, [r4, #3824]
				addw	r3, r3, #905
				ldr	r3, [r4, r3, lsl #2]
				cmp	r3, #14
				beq	.L429
  731     return
				cmp	r5, #25
				bne	.L428
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL573:
		.L429:
				mov	ip, r4
				bl	RETURN.10446(PLT)
		.LVL574:
  732   %finishelseif type&varmask=var %start
				b	.L412
		.L428:
  733     t=type; v=val; i=0
  734     %if open bracket %start
				tst	r5, #1
				bne	.L430
		.LVL575:
				ldr	r7, [r4, #200]
		.LVL576:
				mov	ip, r4
				bl	OPENBRACKET.10210(PLT)
		.LVL577:
				mov	r6, r0
				cbz	r0, .L431
  735       expr; double(t); dump(pushax)
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL578:
  736       close bracket
				mov	ip, r4
				mov	r0, r5
				bl	DOUBLE.10421(PLT)
		.LVL579:
				mov	ip, r4
				bl	CLOSEBRACKET.10215(PLT)
		.LVL581:
  737       i=1
				mov	ip, r4
				movs	r0, #80
				bl	DUMP.10294(PLT)
		.LVL580:
				movs	r6, #1
		.LVL582:
		.L431:
  738     %finish
  739     fault(form) %unless equal sign
				mov	ip, r4
				bl	EQUALSIGN.10220(PLT)
		.LVL583:
				cbnz	r0, .L432
  740     expr; dump(16_5e) %unless i=0; !pop si
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL584:
		.L432:
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL585:
  741     direct(store,t,v,i)
				cbz	r6, .L433
				mov	ip, r4
				mov	r3, r6
				mov	r2, r7
				mov	r1, r5
				movs	r0, #13
				bl	DIRECT.10387(PLT)
		.LVL587:
  742   %finishelseif type=proc %or type=xproc %or type=spec %start
				mov	ip, r4
				movs	r0, #94
				bl	DUMP.10294(PLT)
		.LVL586:
		.L433:
				b	.L412
		.LVL588:
		.L430:
  743     call(type,val)
				mov	ip, r4
				ldr	r1, [r4, #200]
				mov	r0, r5
				bl	CALL.10339(PLT)
		.LVL589:
  744   %else
				b	.L412
		.L434:
  745     atompos=atompos-1
				sub	r3, r5, #8
				ldr	r3, [r4, #3824]
				subs	r3, r3, #1
				str	r3, [r4, #3824]
  746   %finish
				cmp	r3, #2
				bhi	.L434
		.L435:
  747 %end
				b	.L412
		.LFE217:
				.align	1
				.global	main
				.thumb
				.thumb_func
		main:
		.LFB185:
  748
				pop	{r4, r5, r6, r7, r8, r9, r10, pc}
		.LVL548:
		.L414:
  749 %integerfn cond; !Evaluate condition, return value of jump opcode
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, lr}
				mov	r4, ip
  750   expr; nextatom; fault(form) %unless type=comp
				bl	EXPR.10336(PLT)
		.LVL497:
  751   v=val; nextatom; unary
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL498:
				ldr	r3, [r4, #200]
				str	r3, [r4, #8]
  752   %if atomtype(atompos)#sep %or (type#constant %and type&varmask#var) %start
				ldr	r3, [r4, #204]
				cmp	r3, #12
				beq	.L390
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL500:
				mov	ip, r4
				bl	UNARY.10225(PLT)
		.LVL501:
				ldr	r3, [r4, #3824]
				addw	r3, r3, #905
				ldr	r3, [r4, r3, lsl #2]
				cmp	r3, #14
				bne	.L391
				ldr	r3, [r4, #204]
				cmp	r3, #1
				beq	.L392
		.L391:
				mov	ip, r4
				movs	r0, #80
				bl	DUMP.10294(PLT)
		.LVL502:
  753     dump(pushax); atompos=atompos-1; expr
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL499:
		.L390:
  754     dump(16_8B); dump(16_D8); dump(popax); !Mov bx,ax
				ldr	r3, [r4, #3824]
				subs	r3, r3, #1
				str	r3, [r4, #3824]
				mov	ip, r4
				movs	r0, #139
				bl	DUMP.10294(PLT)
		.LVL504:
				mov	ip, r4
				movs	r0, #216
				bl	DUMP.10294(PLT)
		.LVL505:
  755     type=bx
				mov	ip, r4
				bl	EXPR.10336(PLT)
		.LVL503:
				movs	r3, #17
				str	r3, [r4, #204]
		.L392:
  756   %finish
				mov	ip, r4
				movs	r0, #88
				bl	DUMP.10294(PLT)
		.LVL506:
  757   direct(cmp,type,val,0)
				mov	ip, r4
				movs	r3, #0
				ldr	r2, [r4, #200]
				ldr	r1, [r4, #204]
				movs	r0, #7
				bl	DIRECT.10387(PLT)
		.LVL507:
  758   %result=16_72 %if v=']'+128
				ldr	r3, [r4, #8]
				cmp	r3, #221
				beq	.L402
		.L394:
  759   %result=16_73 %if v='['
				cmp	r3, #91
				beq	.L403
		.L395:
				movs	r0, #114
				b	.L389
		.L403:
  760   %result=16_74 %if v='#'
				cmp	r3, #35
				beq	.L404
		.L396:
				movs	r0, #115
				b	.L389
		.L404:
  761   %result=16_75 %if v='='
				cmp	r3, #61
				beq	.L405
		.L397:
				movs	r0, #116
				b	.L389
		.L405:
  762   %result=16_76 %if v=']'
				cmp	r3, #93
				beq	.L406
		.L398:
				movs	r0, #117
				b	.L389
		.L406:
  763   %result=16_77 %if v='['+128
				cmp	r3, #219
				beq	.L407
		.L399:
				movs	r0, #118
				b	.L389
		.L407:
  764   %result=16_7c %if v='>'+128
				cmp	r3, #190
				beq	.L408
		.L400:
				movs	r0, #119
				b	.L389
		.L408:
  765   %result=16_7d %if v='<'
				cmp	r3, #60
				beq	.L409
		.L401:
				movs	r0, #124
				b	.L389
		.L409:
  766   %result=16_7e %if v='>'
				cmp	r3, #62
				movs	r0, #125
				b	.L389
		.LFE218:
				.align	1
				.thumb
				.thumb_func
		INSTRUCTION.10542:
		.LFB217:
  767   %result=16_7f; ! %if v='<'+128
				ite	eq
				moveq	r0, #126
				movne	r0, #127
		.L393:
		.L389:
  768 %end
				pop	{r4, pc}
		.L402:
  769
  770 ! Main Program
  771
  772 %onevent 15 %start
				ldr	r3, .L580+8
				str	r4, [sp, #252]
				ldr	r0, [r4, r3]
				add	r0, r0, #536
				bl	__sigsetjmp(PLT)
		.LVL592:
				cbnz	r0, .L442
		.LVL593:
				ldr	r3, .L580+8
				ldr	r2, [sp, #252]
				ldr	r3, [r2, r3]
				str	r3, [sp, #256]
				mov	r1, #32768
				mov	r0, r3
				bl	_imp_on_event_enter(PLT)
		.LVL594:
		.L442:
  773 %finish
  774
  775 %if tagpos=1 %start; ! (not via event: first time)
				add	r3, sp, #8960
				adds	r3, r3, #32
				ldr	r3, [r3, #3408]
				cmp	r3, #1
				beq	.L550
		.L443:
  776 program = cliparam
  777 openinput(source,program.".lc")
  778 openoutput(object,program.".iob")
				add	r4, sp, #8960
				adds	r4, r4, #48
				sub	r5, r4, #16
				addw	r4, r4, #3816
				movs	r2, #31
				add	r1, sp, #276
				mov	r0, r4
				bl	_imp_strncpy(PLT)
		.LVL599:
		.LBB468:
		.LBB469:
  779 openoutput(list,program.".lis")
				addw	r2, sp, #1044
				mov	r1, r4
				add	r0, sp, #788
				bl	_imp_join(PLT)
		.LVL600:
				add	r9, sp, #5696
				add	r9, r9, #16
				sub	r7, r9, #60
				mov	r6, #256
				mov	r2, r6
				add	r1, sp, #532
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL601:
		.LBE469:
		.LBE468:
		.LBB470:
		.LBB471:
				mov	r8, #244
				mov	r2, r8
				sub	r1, r9, #48
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL602:
				ldm	r7, {r1, r2, r3}
				movs	r0, #1
				bl	_imp_openinput(PLT)
		.LVL603:
		.LBE471:
		.LBE470:
		.LBB472:
		.LBB473:
  780 selectoutput(list)
				addw	r2, sp, #1812
				mov	r1, r4
				addw	r0, sp, #1556
				bl	_imp_join(PLT)
		.LVL604:
				add	r9, sp, #5952
				add	r9, r9, #16
				sub	r7, r9, #60
				mov	r2, r6
				addw	r1, sp, #1300
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL605:
		.LBE473:
		.LBE472:
		.LBB474:
		.LBB475:
				mov	r2, r8
				sub	r1, r9, #48
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL606:
				ldm	r7, {r1, r2, r3}
				movs	r0, #1
				bl	_imp_openoutput(PLT)
		.LVL607:
		.LBE475:
		.LBE474:
		.LBB476:
		.LBB477:
  781 printstring("                  LC Cross-compiler  06/01/81"); newline; newline
				addw	r2, sp, #2324
				mov	r1, r4
				addw	r7, sp, #2580
				mov	r0, r7
				bl	_imp_join(PLT)
		.LVL608:
				add	r9, sp, #6208
				add	r9, r9, #16
				sub	r4, r9, #60
				mov	r2, r6
				addw	r1, sp, #2068
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL609:
		.LBE477:
		.LBE476:
		.LBB478:
		.LBB479:
				mov	r2, r8
				sub	r1, r9, #48
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL610:
				ldm	r4, {r1, r2, r3}
				movs	r0, #2
				bl	_imp_openoutput(PLT)
		.LVL611:
		.LBE479:
		.LBE478:
		.LBB480:
		.LBB481:
				ldr	r3, .L580+20
				ldr	r1, [sp, #252]
				ldr	r3, [r1, r3]
				movs	r2, #2
				str	r2, [r3]
				ldr	r3, .L580+24
				ldr	r3, [r1, r3]
				ldr	r2, .L580+28
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #556]
				str	r2, [r3]
				ldr	r4, .L580+32
		.LPIC61:
				add	r4, pc
				adds	r0, r4, r6
				bl	check_outstream(PLT)
		.LVL612:
		.LBE481:
		.LBE480:
		.LBB482:
				mov	r2, r6
				addw	r1, r4, #1100
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL613:
				mov	r2, r6
				mov	r1, r7
				addw	r8, sp, #2836
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL614:
				add	r9, sp, #6464
				add	r9, r9, #16
				sub	r7, r9, #60
				mov	r2, r6
				mov	r1, r8
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL615:
		.LBE482:
		.LBB483:
		.LBB484:
				movs	r2, #240
				sub	r1, r9, #44
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL616:
				ldm	r7, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL617:
		.LBE484:
		.LBE483:
		.LBB485:
		.LBB486:
				bl	_imp_newline(PLT)
		.LVL618:
		.LBE486:
		.LBE485:
		.LBB487:
		.LBB488:
				bl	_imp_newline(PLT)
		.LVL619:
				add	r0, r4, #1352
				ldr	r2, [r5, #3408]
				add	r3, r5, r2, lsl #2
				adds	r3, r3, #200
				add	r4, r4, #1408
				movs	r1, #17
		.LBE488:
		.LBE487:
  782   %for type=kconst,1,krepeat %cycle
  783     tag1(tagpos)=n1(type); tag2(tagpos)=n2(type)
				ldr	r6, [r0, #4]!
				str	r6, [r3, #2404]
  784     tagtype(tagpos)=type; tagval(tagpos)=-1
				ldr	r6, [r4, #4]!
				str	r6, [r3, #1604]
				str	r1, [r3, #804]
  785     tagpos=tagpos+1
				mov	r5, #-1
		.L444:
				str	r5, [r3, #4]!
		.LDL20:
				adds	r1, r1, #1
				cmp	r1, #31
				bne	.L444
		.LDL21:
				add	r4, sp, #8960
				adds	r4, r4, #48
				adds	r2, r2, #14
				str	r2, [r4, #3392]
				movs	r2, #30
				str	r2, [r4, #188]
		.LVL620:
		.LBB489:
		.LBB490:
				ldr	r3, .L580+36
				ldr	r1, [sp, #252]
				ldr	r3, [r1, r3]
				movs	r2, #1
				str	r2, [r3]
				ldr	r3, .L580+40
				ldr	r3, [r1, r3]
				ldr	r2, .L580+44
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #280]
				str	r2, [r3]
				ldr	r0, .L580+48
		.LPIC65:
				add	r0, pc
				addw	r0, r0, #1468
				bl	check_instream(PLT)
		.LVL621:
		.LBE490:
		.LBE489:
  786   %repeat
  787   selectinput(source); program=""
  788 %finish
  789
  790 %cycle
				movs	r2, #31
				addw	r1, sp, #3092
				addw	r0, r4, #3816
				bl	_imp_strncpy(PLT)
		.LVL622:
				b	.L443
		.L447:
		.L450:
  791    readline
				add	r3, sp, #8960
				adds	r3, r3, #48
				str	r3, [sp, #260]
				sub	r4, r3, #16
		.LBB443:
		.LBB444:
				ldr	r3, .L580+12
		.LPIC69:
				add	r3, pc
				add	r3, r3, #256
				str	r3, [sp, #268]
		.LBE444:
		.LBE443:
		.LBB446:
		.LBB447:
		.LBB448:
		.LBB449:
				ldr	r3, .L580+16
		.LPIC66:
				add	r3, pc
				add	r3, r3, #256
				str	r3, [sp, #264]
		.L445:
		.LBE449:
		.LBE448:
		.LBE447:
		.LBE446:
				mov	ip, r4
				bl	READLINE.10076(PLT)
		.LVL595:
  792    %cycle;  !Deal with labels
  793       nextatom
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL596:
  794       %exitunless type=unknown %and atomtype(atompos)=colon
				ldr	r6, [r4, #204]
				cmp	r6, #0
				bne	.L450
  795       tagtype(val)=label; satrefs(tagval(val),cloc)
				movs	r7, #3
				ldr	r3, [r4, #3824]
				addw	r3, r3, #905
				ldr	r3, [r4, r3, lsl #2]
				cmp	r3, #13
				bne	.L448
		.L449:
				ldr	r3, [r4, #200]
				add	r2, r3, #251
				str	r7, [r4, r2, lsl #2]
  796       tagval(val)=cloc; atompos=atompos+1
				adds	r3, r3, #51
				mov	ip, r4
				ldr	r1, [r4, #3420]
				ldr	r0, [r4, r3, lsl #2]
				bl	SATREFS.10311(PLT)
		.LVL597:
				ldr	r3, [r4, #200]
				adds	r3, r3, #51
				ldr	r2, [r4, #3420]
				str	r2, [r4, r3, lsl #2]
				ldr	r3, [r4, #3824]
				adds	r3, r3, #1
				str	r3, [r4, #3824]
				str	r5, [r4, #20]
  797       access=1
				movs	r5, #1
		.L446:
  798    %repeat
				b	.L446
		.L550:
		.LBB465:
		.LBB466:
		.LBB467:
				add	r0, sp, #5376
				adds	r0, r0, #20
				bl	_imp_cliparam(PLT)
		.LVL598:
		.LBE467:
		.LBE466:
		.LBE465:
  799    %continueif type=sep %and ifpos=0
				cmp	r6, #14
				bne	.L451
  800    %if type=kconst %start
				ldr	r3, [r4, #3412]
				cmp	r3, #0
				beq	.L445
				cmp	r6, #17
				bne	.L448
		.LBB494:
		.LBB495:
  801       constdef
  802    %finishelseif type=kbyte %or type=kword %start
  803       vardef(type)
  804    %finishelseif type=kspec %or type=kproc %start
  805       procdef(type)
				mov	r3, r6
		.L459:
				mov	r3, r6
				sub	r2, r6, #18
				cmp	r2, #1
				bhi	.L459
				cmp	r6, #18
				ite	ne
				movne	fp, #4
				moveq	fp, #5
		.LBB496:
		.LBB464:
  806    %finishelseif type=kend %start
  807       %exitif level=0; level=0
				subs	r3, r3, #20
				cmp	r3, #1
				bls	.L551
		.L484:
				ldr	r3, [r4, #16]
				cmp	r3, #0
				beq	.L500
		.L501:
  808       return %unless access=0; flush
				cmp	r6, #22
				beq	.L552
		.L499:
				ldr	r3, [r4, #20]
				cbz	r3, .L502
  809       val=oldtpos; oldtpos=tagpos; tagpos=val; ! Reset tagpos before moaning
				mov	ip, r4
				bl	RETURN.10446(PLT)
		.LVL755:
		.L502:
				ldr	r3, [r4]
				str	r3, [r4, #200]
  810       %while oldtpos>tagpos %cycle
				movs	r3, #0
				str	r3, [r4, #16]
				ldr	r2, [r4, #3408]
				str	r2, [r4]
  811          oldtpos=oldtpos-1; fault(labund) %if tagtype(oldtpos)=unknown
				mov	ip, r4
				bl	FLUSH.10298(PLT)
		.LVL756:
				str	r3, [r4, #3408]
				movs	r6, #0
				movs	r5, #1
		.L503:
		.L504:
				ldr	r3, [r4]
				ldr	r7, [r4, #3408]
				add	r2, r4, r3, lsl #2
				add	r2, r2, #1004
				mov	r0, r6
		.L506:
				cmp	r7, r3
				bge	.L505
				subs	r3, r3, #1
				mov	r0, r5
  812       %repeat
				ldr	r1, [r2, #-4]!
				cmp	r1, #0
				bne	.L506
				str	r3, [r4]
  813       %unless textlevel=0 %start
				mov	ip, r4
				movs	r0, #10
				bl	FAULT.10060(PLT)
		.LVL757:
				b	.L503
		.L505:
				cbnz	r0, .L576
		.L507:
				ldr	r3, [r4, #188]
				cmp	r3, #0
				beq	.L535
  814          poptext; textlevel=0; fault(type)
				mov	ip, r4
				bl	POPTEXT.10332(PLT)
		.LVL758:
  815       %finish
				movs	r3, #0
				str	r3, [r4, #188]
  816    %finishelseif type=kprogram %start
				mov	ip, r4
				ldr	r0, [r4, #204]
				bl	FAULT.10060(PLT)
		.LVL759:
				b	.L535
		.L576:
				str	r3, [r4]
				b	.L507
		.L553:
  817       fault(ambig) %unless program=""
  818       nextatom; fault(form) %unless type=string
				cmp	r6, #26
				beq	.L553
		.L508:
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL762:
  819       fault(form) %if val='"'; !Null name not allowed
				addw	r1, sp, #3348
				ldr	r3, [sp, #260]
				addw	r0, r3, #3816
				bl	_imp_strcmp(PLT)
		.LVL760:
				cbz	r0, .L509
				ldr	r3, [r4, #204]
				cmp	r3, #2
				bne	.L577
		.L510:
				ldr	r3, [r4, #200]
				cmp	r3, #34
				beq	.L578
		.L511:
  820       v=line(val)
				ldr	r3, [r4, #200]
				add	r3, r3, r4
				movw	r2, #8087
				ldrb	r3, [r3, r2]	@ zero_extendqisi2
				str	r3, [r4, #8]
		.LBB529:
		.LBB530:
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL775:
				b	.L510
		.L578:
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL776:
				b	.L511
		.L554:
  821       %cycle
  822          val=val+1; program=program.tostring(v); v=line(val)
				mov	ip, r4
				movs	r0, #6
				bl	FAULT.10060(PLT)
		.LVL761:
		.L509:
				ldr	r3, [r4, #200]
				adds	r3, r3, #1
				str	r3, [r4, #200]
		.LVL763:
		.LBB532:
		.LBB531:
  823       %repeatuntil v='"'
				cmp	r3, #34
				bne	.L512
		.L513:
  824       program=program."_" %unless charno(program,length(program))='_'
				ldrb	r3, [r4, #3832]	@ zero_extendqisi2
				add	r3, r3, r4
				ldrb	r3, [r3, #3832]	@ zero_extendqisi2
				cmp	r3, #95
				beq	.L514
		.LBB533:
		.LBB534:
  825       selectoutput(object); printsymbol(2); printsymbol(6)
				addw	r6, sp, #3860
				ldr	r3, [sp, #260]
				addw	r5, r3, #3816
		.L512:
		.LBE530:
		.LBE529:
				add	r2, sp, #4096
				adds	r2, r2, #20
				mov	r1, r5
				mov	r0, r6
				bl	_imp_join(PLT)
		.LVL764:
		.LBE531:
		.LBE532:
				movs	r2, #31
				addw	r1, sp, #3604
				mov	r0, r5
				bl	_imp_strncpy(PLT)
		.LVL765:
  826       printsymbol(length(program)); printstring(program)
  827    %finishelseif type=kcycle %start
				ldr	r3, [sp, #260]
				addw	r5, r3, #3816
				add	r2, sp, #4864
				adds	r2, r2, #20
				mov	r1, r5
				add	r0, sp, #4608
				adds	r0, r0, #20
				bl	_imp_join(PLT)
		.LVL766:
		.LBE534:
		.LBE533:
				movs	r2, #31
				add	r1, sp, #4352
				adds	r1, r1, #20
				mov	r0, r5
				bl	_imp_strncpy(PLT)
		.LVL767:
		.L514:
		.LBB535:
		.LBB445:
				ldr	r3, .L580+20
				ldr	r1, [sp, #252]
				ldr	r3, [r1, r3]
				movs	r2, #1
				str	r2, [r3]
				ldr	r3, .L580+24
				ldr	r3, [r1, r3]
				ldr	r2, .L580+28
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #280]
				str	r2, [r3]
				ldr	r0, [sp, #268]
				bl	check_outstream(PLT)
		.LVL768:
		.LBE445:
		.LBE535:
		.LBB536:
		.LBB537:
				movs	r0, #2
				bl	_imp_printsymbol(PLT)
		.LVL769:
		.LBE537:
		.LBE536:
		.LBB538:
		.LBB539:
				movs	r0, #6
				bl	_imp_printsymbol(PLT)
		.LVL770:
		.LBE539:
		.LBE538:
		.LBB540:
		.LBB541:
				ldrb	r0, [r4, #3832]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL771:
				add	r6, sp, #6720
				adds	r6, r6, #16
				sub	r5, r6, #60
				mov	r2, #256
				add	r1, sp, #5120
				adds	r1, r1, #20
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL772:
		.LBE541:
		.LBE540:
		.LBB542:
		.LBB543:
				movs	r2, #240
				sub	r1, r6, #44
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL773:
				ldm	r5, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL774:
				b	.L535
		.L577:
		.LBE543:
		.LBE542:
  828       pushtext(repexp,cloc)
				ldr	r3, [r4, #200]
				add	r3, r3, r4
				movw	r2, #8087
				ldrb	r3, [r3, r2]	@ zero_extendqisi2
				str	r3, [r4, #8]
				mov	ip, r4
				ldr	r1, [r4, #3420]
				movs	r0, #14
				bl	PUSHTEXT.10328(PLT)
		.LVL777:
				b	.L535
		.L555:
  829    %finishelseif type=kelse %start
				cmp	r6, #29
				beq	.L554
		.L515:
  830       poptext; fault(type) %unless type=finexp
				mov	ip, r4
				bl	POPTEXT.10332(PLT)
		.LVL778:
  831       satrefs(val,cloc+3)
				cmp	r6, #27
				beq	.L555
		.L516:
				ldr	r0, [r4, #204]
				cmp	r0, #15
				beq	.L517
				ldr	r1, [r4, #3420]
				mov	ip, r4
				adds	r1, r1, #3
				ldr	r0, [r4, #200]
				bl	SATREFS.10311(PLT)
		.LVL780:
  832       poptext;  fault(type) %unless type=finexp
				mov	ip, r4
				bl	FAULT.10060(PLT)
		.LVL779:
		.L517:
				mov	ip, r4
				bl	POPTEXT.10332(PLT)
		.LVL781:
  833       dump(16_e9); dump(val); dump(val>>8)
				ldr	r0, [r4, #204]
				cmp	r0, #15
				beq	.L518
				mov	ip, r4
				movs	r0, #233
				bl	DUMP.10294(PLT)
		.LVL783:
  834       %if ifpos=0 %start
				mov	ip, r4
				bl	FAULT.10060(PLT)
		.LVL782:
		.L518:
				mov	ip, r4
				ldr	r0, [r4, #200]
				bl	DUMP.10294(PLT)
		.LVL784:
				ldr	r3, [r4, #3412]
				cbnz	r3, .L519
  835         pushtext(context,0)
				ldr	r0, [r4, #200]
				mov	ip, r4
				lsrs	r0, r0, #8
				bl	DUMP.10294(PLT)
		.LVL785:
				mov	ip, r4
				movs	r1, #0
				movs	r0, #16
				bl	PUSHTEXT.10328(PLT)
		.LVL786:
		.L520:
  836       %else
  837         pushtext(finexp,cloc-2)
				ldr	r1, [r4, #3420]
				mov	ip, r4
				subs	r1, r1, #2
				movs	r0, #15
				bl	PUSHTEXT.10328(PLT)
		.LVL788:
  838         atompos=ifpos+1; dump(cond!!1); dump(3)
				ldr	r3, [r4, #3412]
				adds	r3, r3, #1
				str	r3, [r4, #3824]
  839         dump(16_E9); dump(0); dump(0)
				mov	ip, r4
				bl	COND.10581(PLT)
		.LVL789:
				mov	ip, r4
				eor	r0, r0, #1
				bl	DUMP.10294(PLT)
		.LVL790:
				mov	ip, r4
				movs	r0, #233
				bl	DUMP.10294(PLT)
		.LVL792:
  840         atompos=ifpos %and fault(form) %unless ifpos=2
				mov	ip, r4
				movs	r0, #3
				bl	DUMP.10294(PLT)
		.LVL791:
				mov	ip, r4
				movs	r0, #0
				bl	DUMP.10294(PLT)
		.LVL793:
				ldr	r3, [r4, #3412]
				cmp	r3, #2
				bne	.L579
		.L521:
  841         IFPOS=0
				mov	ip, r4
				movs	r0, #0
				bl	DUMP.10294(PLT)
		.LVL794:
				movs	r3, #0
				str	r3, [r4, #3412]
				b	.L520
		.L579:
				str	r3, [r4, #3824]
  842       %finish
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL795:
				b	.L521
		.L556:
  843       pushtext(finexp,cloc-2)
				ldr	r1, [r4, #3420]
				mov	ip, r4
				subs	r1, r1, #2
				movs	r0, #15
				bl	PUSHTEXT.10328(PLT)
		.LVL787:
				b	.L535
		.L519:
  844    %finishelseif type=kfinish %start
  845       poptext; fault(type) %unless type=finexp %or type=context
				mov	ip, r4
				bl	POPTEXT.10332(PLT)
		.LVL796:
  846       satrefs(val,cloc)
				cmp	r6, #28
				beq	.L556
		.L522:
				ldr	r0, [r4, #204]
				mov	ip, r4
				ldr	r1, [r4, #3420]
				ldr	r0, [r4, #200]
				bl	SATREFS.10311(PLT)
		.LVL798:
  847       poptext; satrefs(val,cloc); access=1
				sub	r3, r0, #15
				cmp	r3, #1
				bls	.L523
				mov	ip, r4
				bl	POPTEXT.10332(PLT)
		.LVL799:
  848    %else
				mov	ip, r4
				bl	FAULT.10060(PLT)
		.LVL797:
		.L523:
				mov	ip, r4
				ldr	r1, [r4, #3420]
				ldr	r0, [r4, #200]
				bl	SATREFS.10311(PLT)
		.LVL800:
				b	.L535
		.L557:
		.LBB544:
		.LBB493:
  849       fault(varund) %if type=unknown
				cbnz	r6, .L524
				movs	r3, #1
				str	r3, [r4, #20]
  850       terminate declarations
				mov	ip, r4
				movs	r0, #12
				bl	FAULT.10060(PLT)
		.LVL623:
		.L524:
		.LBB491:
		.LBB492:
  851       %if ifpos=0 %start;  !  Statement
				ldr	r3, [r4, #3412]
				cmp	r3, #0
				beq	.L559
		.L530:
  852          atompos=atompos-1; instruction
				ldr	r3, [r4, #3824]
				subs	r3, r3, #1
				str	r3, [r4, #3824]
  853       %finishelseif type=sep %start;  ! IF condition
				mov	ip, r4
				bl	INSTRUCTION.10542(PLT)
		.LVL811:
		.L531:
  854          fault(form) %unless ifpos=atompos
				ldr	r2, [r4, #3824]
				cmp	r3, r2
				beq	.L533
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL624:
		.L533:
				ldr	r3, [r4, #3412]
				adds	r3, r3, #1
				str	r3, [r4, #3824]
  855          atompos=ifpos+1
				ldr	r2, [r4, #204]
				cmp	r2, #14
				bne	.L532
  856          dump(cond!!1); dump(3); dump(16_E9); dump(0); dump(0)
				mov	ip, r4
				bl	COND.10581(PLT)
		.LVL625:
				mov	ip, r4
				eor	r0, r0, #1
				bl	DUMP.10294(PLT)
		.LVL626:
  857          pushtext(finexp,0); pushtext(finexp,cloc-2)
				mov	ip, r4
				movs	r0, #3
				bl	DUMP.10294(PLT)
		.LVL627:
				mov	ip, r4
				movs	r1, #0
				movs	r0, #15
				bl	PUSHTEXT.10328(PLT)
		.LVL631:
  858       %else;   ! Statement IF condition
				mov	ip, r4
				movs	r0, #233
				bl	DUMP.10294(PLT)
		.LVL628:
				ldr	r1, [r4, #3420]
				mov	ip, r4
				subs	r1, r1, #2
				movs	r0, #15
				bl	PUSHTEXT.10328(PLT)
		.LVL632:
				b	.L531
		.L451:
  859          oldapos=atompos-1; atompos=ifpos+1
				mov	ip, r4
				movs	r0, #0
				bl	DUMP.10294(PLT)
		.LVL629:
				ldr	r6, [r4, #3824]
				subs	r6, r6, #1
		.LVL812:
  860          dump(cond)
				mov	ip, r4
				movs	r0, #0
				bl	DUMP.10294(PLT)
		.LVL630:
				adds	r3, r3, #1
				str	r3, [r4, #3824]
				mov	ip, r4
				bl	COND.10581(PLT)
		.LVL813:
				mov	ip, r4
				bl	DUMP.10294(PLT)
		.LVL814:
  861          oldcpos=cpos; dump(0)
				ldr	r5, [r4, #192]
		.LVL815:
  862          atompos=oldapos; instruction
				mov	ip, r4
				movs	r0, #0
				bl	DUMP.10294(PLT)
		.LVL816:
				str	r6, [r4, #3824]
  863          v=cpos-oldcpos-1; fault(far) %if v>127
				mov	ip, r4
				bl	INSTRUCTION.10542(PLT)
		.LVL817:
				ldr	r3, [r4, #192]
				subs	r3, r3, r5
				subs	r3, r3, #1
				str	r3, [r4, #8]
  864          code(oldcpos)=v
				cmp	r3, #127
				ble	.L534
				add	r5, r5, r4
		.LVL819:
				ldr	r3, [r4, #8]
				strb	r3, [r5, #4088]
  865          access=1
				mov	ip, r4
				movs	r0, #9
				bl	FAULT.10060(PLT)
		.LVL818:
		.L534:
				movs	r3, #1
				str	r3, [r4, #20]
				b	.L531
		.LVL820:
		.L500:
		.LBB545:
		.LBB546:
				ldr	r3, .L580+20
				ldr	r2, [sp, #252]
				ldr	r7, [r2, r3]
				movs	r3, #1
				str	r3, [r7]
				ldr	r3, .L580+24
				ldr	r5, [r2, r3]
				ldr	r3, .L580+28
				ldr	r6, [r2, r3]
				ldr	r3, [r6, #280]
				str	r3, [r5]
				ldr	r4, .L580+60
		.LPIC70:
				add	r4, pc
				add	r4, r4, #256
				mov	r0, r4
				bl	check_outstream(PLT)
		.LVL821:
		.LBE546:
		.LBE545:
		.LBB547:
		.LBB548:
				movs	r0, #10
				bl	_imp_printsymbol(PLT)
		.LVL822:
		.LBE548:
		.LBE547:
		.LBB549:
		.LBB550:
				movs	r3, #2
				str	r3, [r7]
				ldr	r3, [r6, #556]
				str	r3, [r5]
				mov	r0, r4
				bl	check_outstream(PLT)
		.LVL823:
		.LBE550:
		.LBE549:
		.LBB551:
		.LBB552:
				bl	_imp_newline(PLT)
		.LVL824:
		.LBE552:
		.LBE551:
		.LBB553:
		.LBB554:
				movs	r0, #0
				bl	exit(PLT)
		.LVL825:
		.L581:
				.align	2
		.L580:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC60+4)
				.word	__stack_chk_guard(GOT)
				.word	_imp_event(GOT)
				.word	.LANCHOR0-(.LPIC69+4)
				.word	.LANCHOR0-(.LPIC66+4)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR0-(.LPIC61+4)
				.word	_imp_InStream(GOT)
				.word	_imp_InFile(GOT)
				.word	_imp_infile(GOT)
				.word	.LANCHOR0-(.LPIC65+4)
				.word	.LANCHOR0-(.LPIC67+4)
				.word	.LANCHOR0-(.LPIC68+4)
				.word	.LANCHOR0-(.LPIC70+4)
		.LBE554:
		.LBE553:
		.LFE185:
				.section	.rodata
				.align	2
				.set	.LANCHOR0,. + 0
		.LC5:
				.byte	15
				.ascii	"test-new/lc.imp\000"
				.space	239
		__PRETTY_FUNCTION__.9629:
				.ascii	"_imp_SELECTOUTPUT\000"
				.space	2
		.LC8:
				.byte	3
				.ascii	"** \000"
				.space	251
		.LC6:
				.byte	2
				.ascii	" C\000"
				.space	252
		.LC7:
				.byte	2
				.ascii	" D\000"
				.space	252
		CODE.10389:
				.word	138
				.word	2
				.word	42
				.word	34
				.word	10
				.word	50
				.word	58
				.word	40
				.word	56
				.word	48
				.word	224
				.word	232
				.word	136
				.word	141
		.LC3:
				.byte	45
				.ascii	"                  LC Cross-compiler  06/01/81\000"
				.space	209
		N1.10057:
				.word	4676
				.word	32060
				.word	3683
				.word	26608
				.word	22585
				.word	7367
				.word	18374
				.word	14480
				.word	24847
				.word	22585
				.word	7308
				.word	8561
				.word	5035
				.word	24843
		N2.10058:
				.word	723
				.word	4
				.word	5
				.word	3
				.word	3
				.word	0
				.word	5
				.word	16
				.word	29429
				.word	10250
				.word	5
				.word	13032
				.word	449
				.word	6902
		__PRETTY_FUNCTION__.9625:
				.ascii	"_imp_SELECTINPUT\000"
				.bss
				.align	2
				.set	.LANCHOR2,. + 0
		SEMI.10078:
				.space	4
		QUOTE.10079:
				.space	4
				.section	.data.rel.ro.local,"aw",%progbits
				.align	2
				.set	.LANCHOR1,. + 0
		S.10355:
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
				.word	.L39
		S.10234:
				.word	.L249
				.word	.L249
				.word	.L249
				.word	.L249
				.word	.L249
				.word	.L249
				.word	.L249
				.word	.L249
				.word	.L249
				.word	.L249
				.word	.L249
				.section	.rodata.str1.4,"aMS",%progbits,1
				.align	2
		.LC9:
				.ascii	"test-new/lc.imp\000"
		.LC10:
				.ascii	"->S(%d) out of bounds at %s line %d\000"
		.LC11:
				.ascii	"switch jump to undefined label S(%d): at %s line %d"
				.ascii	"\000"
		.LC12:
				.ascii	"Illegal cycle I = 0, 1, GPOS - 1\000"
				.space	3
		.LC13:
				.ascii	"Illegal cycle I = 0, 1, CPOS - 1\000"
				.space	3
		.LC14:
				.ascii	"\000"
				.space	3
		.LC15:
				.ascii	"Illegal cycle I = TAGPOS - 1,  -1, 1\000"
		.Letext0:
  866       %finish
  867       ifpos=0
				movs	r3, #0
				str	r3, [r4, #3412]
				b	.L535
		.L532:
  868    %finish
  869   nextatom; fault(form) %unless type=sep %and ifpos=0
				mov	ip, r4
				bl	NEXTATOM.10206(PLT)
		.LVL751:
  870 %repeat
				ldr	r3, [r4, #204]
				cmp	r3, #14
				bne	.L536
  871 selectoutput(object); printsymbol(10)
				ldr	r3, [r4, #3412]
				cmp	r3, #0
				beq	.L445
		.L536:
  872 selectoutput(list); newline
  873 %endofprogram
				mov	ip, r4
				movs	r0, #5
				bl	FAULT.10060(PLT)
		.LVL752:
				b	.L445
		.LVL753:
		.L575:
				add	r3, sp, #8768
				adds	r3, r3, #16
				str	r1, [r3, #-60]
				b	.L498
		.LVL754:
		.L552:
 1020 Statements compiled
