         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
		_imp_EVENT:
		.LFB0:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	8(%ebp), %edx
				movl	_imp_event@GOT(%eax), %eax
				movl	%eax, %ebx
				movl	$173, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				movl	8(%ebp), %eax
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE0:
		_imp_REXP:
		.LFB61:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$20, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	8(%ebp), %edx
				movl	%edx, -16(%ebp)
				movl	12(%ebp), %edx
				movl	%edx, -12(%ebp)
				movl	16(%ebp), %edx
				movl	%edx, -24(%ebp)
				movl	20(%ebp), %edx
				movl	%edx, -20(%ebp)
				fldl	-24(%ebp)
				fldl	.LC7@GOTOFF(%eax)
				fucomip	%st(1), %st
				fstp	%st(0)
				jp	.L4
				fldl	-24(%ebp)
				fldl	.LC7@GOTOFF(%eax)
				fucomip	%st(1), %st
				fstp	%st(0)
				jne	.L4
				fldl	-16(%ebp)
				fmull	-16(%ebp)
				jmp	.L7
		.L4:
				pushl	-20(%ebp)
				pushl	-24(%ebp)
				pushl	-12(%ebp)
				pushl	-16(%ebp)
				movl	%eax, %ebx
				call	pow@PLT
				addl	$16, %esp
		.L7:
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE61:
		_imp_PROMPT:
		.LFB69:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$12, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				subl	$12, %esp
				leal	__PRETTY_FUNCTION__.5536@GOTOFF(%ebx), %eax
				pushl	%eax
				call	check_instream@PLT
				addl	$16, %esp
				leal	8(%ebp), %edx
				movl	_imp_promptstr@GOT(%ebx), %eax
				movl	%edx, %ebx
				movl	$256, %edx
				movl	(%ebx), %ecx
				movl	%ecx, (%eax)
				movl	-4(%ebx,%edx), %ecx
				movl	%ecx, -4(%eax,%edx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %ebx
				addl	%eax, %edx
				andl	$-4, %edx
				movl	%edx, %eax
				shrl	$2, %eax
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				nop
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE69:
		_imp_SELECTINPUT:
		.LFB93:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				cmpl	$0, 8(%ebp)
				js	.L13
				movl	_imp_InStream@GOT(%eax), %edx
				movl	8(%ebp), %ecx
				movl	%ecx, (%edx)
				movl	_imp_infile@GOT(%eax), %ecx
				movl	8(%ebp), %edx
				imull	$276, %edx, %edx
				addl	%ecx, %edx
				addl	$4, %edx
				movl	(%edx), %ecx
				movl	_imp_InFile@GOT(%eax), %edx
				movl	%ecx, (%edx)
				subl	$12, %esp
				leal	__PRETTY_FUNCTION__.5621@GOTOFF(%eax), %edx
				pushl	%edx
				movl	%eax, %ebx
				call	check_instream@PLT
				addl	$16, %esp
				jmp	.L10
		.L13:
				nop
		.L10:
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE93:
		_imp_SELECTOUTPUT:
		.LFB94:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				cmpl	$0, 8(%ebp)
				js	.L17
				movl	_imp_OutStream@GOT(%eax), %edx
				movl	8(%ebp), %ecx
				movl	%ecx, (%edx)
				movl	_imp_outfile@GOT(%eax), %ecx
				movl	8(%ebp), %edx
				imull	$276, %edx, %edx
				addl	%ecx, %edx
				addl	$4, %edx
				movl	(%edx), %ecx
				movl	_imp_OutFile@GOT(%eax), %edx
				movl	%ecx, (%edx)
				subl	$12, %esp
				leal	__PRETTY_FUNCTION__.5625@GOTOFF(%eax), %edx
				pushl	%edx
				movl	%eax, %ebx
				call	check_outstream@PLT
				addl	$16, %esp
				jmp	.L14
		.L17:
				nop
		.L14:
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE94:
		PUSHOPD.6025:
		.LFB191:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				pushl	%ecx
				subl	$1816, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ebx, %esi
				movl	%esi, -1816(%ebp)
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -1804(%ebp)
				movl	%gs:20, %ebx
				movl	%ebx, -28(%ebp)
				xorl	%ebx, %ebx
				leal	8(%ebp), %edx
				movl	%edx, -1796(%ebp)
				subl	$8, %esp
				pushl	-1804(%ebp)
				pushl	(%eax)
				movl	%esi, %ebx
				call	_imp_initialise@PLT
				addl	$16, %esp
    2 %realfn eval    {evaluate sub-expression}
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$2012, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	%ecx, -2012(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				leal	8(%ebp), %edx
				movl	%edx, -1908(%ebp)
				movl	%eax, -1956(%ebp)
    3 %routinespec pushopd(%real val)
    4 %routinespec pushop(%integer op)
    5 %realfnspec popopd
    6 %integerfnspec popop
    7 %realfnspec nextopd
    8 %integerfnspec nextop
    9 %routinespec operate
   10 %constinteger plus=1,minus=2,times=3,divide=4,exp=5,assign=6,end=7,space=' '
   11 %constintegerarray prec(plus:assign)=1,1,2,2,3,0
				movl	$1, -1980(%ebp)
				movl	$1, -1976(%ebp)
				movl	$2, -1972(%ebp)
				movl	$2, -1968(%ebp)
				movl	$3, -1964(%ebp)
				movl	$0, -1960(%ebp)
				leal	-1904(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-1980(%ebp), %eax
				movl	%eax, -1904(%ebp)
				movl	$4, -1900(%ebp)
   12 %realarray opds(0:4)    {operand stack}
				leal	-1836(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-1956(%ebp), %eax
				addl	$24, %eax
				movl	%eax, -1836(%ebp)
				movl	$4, -1832(%ebp)
   13 %integerarray ops(0:3)    {operator stack}
				leal	-1768(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-1956(%ebp), %eax
				addl	$4, %eax
				movl	%eax, -1768(%ebp)
				movl	$4, -1764(%ebp)
   14 %ownrealarray vars('a':'z')=0(*)
				leal	-1700(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	VARS.6044@GOTOFF(%ebx), %eax
				movl	%eax, -1700(%ebp)
				movl	$4, -1696(%ebp)
   15 %ownintegerarray vara('a':'z')=0(*)
				leal	-1632(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	VARA.6046@GOTOFF(%ebx), %eax
				movl	%eax, -1632(%ebp)
				movl	$4, -1628(%ebp)
   16 %integer op,opdsp,opsp,var
   17   opdsp=0 ; opsp=0    {init stack pointers}
				movl	$0, %eax
				movl	%eax, -1912(%ebp)
				movl	$0, %eax
				movl	%eax, -1936(%ebp)
   18   pushopd(nextopd)    {first operand}
				leal	-1956(%ebp), %eax
				movl	%eax, %ecx
				call	NEXTOPD.6033
				fstps	-2016(%ebp)
				movl	-2016(%ebp), %edx
				subl	$12, %esp
				leal	-1956(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	PUSHOPD.6025
				addl	$16, %esp
		.L22:
   19   %cycle    {for each operator}
   20     op=nextop
				leal	-1956(%ebp), %eax
				movl	%eax, %ecx
				call	NEXTOP.6035
				movl	%eax, -2000(%ebp)
   21     %if op=end %then %exit
				cmpl	$7, -2000(%ebp)
				je	.L25
		.L24:
		.L26:
   22     operate %while opsp>0 %and prec(ops(opsp))>=prec(op)
				movl	-1936(%ebp), %eax
				testl	%eax, %eax
				jle	.L55
				movl	-1936(%ebp), %eax
				movl	-1952(%ebp,%eax,4), %eax
				subl	$1, %eax
				movl	-1980(%ebp,%eax,4), %edx
				movl	-2000(%ebp), %eax
				subl	$1, %eax
				movl	-1980(%ebp,%eax,4), %eax
				cmpl	%eax, %edx
				jl	.L56
				leal	-1956(%ebp), %eax
				movl	%eax, %ecx
				call	OPERATE.6037
				jmp	.L24
		.L55:
				nop
				jmp	.L28
		.L56:
				nop
		.L28:
   23     %if op=assign %then %start
				cmpl	$6, -2000(%ebp)
				jne	.L57
				leal	-2004(%ebp), %eax
				movl	%eax, -1984(%ebp)
		.LBB98:
		.LBB99:
				subl	$12, %esp
				pushl	-1984(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE99:
		.LBE98:
		.LBB100:
				nop
		.L31:
   24       read symbol(var)
   25       %unless 'a'<=var<='z' %or 'A'<=var<='Z' %then print symbol(var) %c
				movl	-2004(%ebp), %eax
				movl	%eax, -1996(%ebp)
				cmpl	$96, -1996(%ebp)
				jle	.L58
				cmpl	$122, -1996(%ebp)
				jle	.L59
		.LBE100:
				jmp	.L33
		.L58:
		.LBB101:
				nop
		.L33:
		.LBE101:
		.LBB102:
				movl	-2004(%ebp), %eax
				movl	%eax, -1992(%ebp)
				cmpl	$64, -1992(%ebp)
				jle	.L60
				cmpl	$90, -1992(%ebp)
				jle	.L61
		.LBE102:
				jmp	.L36
		.L60:
		.LBB103:
				nop
		.L36:
		.LBE103:
				movl	-2004(%ebp), %eax
				movsbl	%al, %eax
				movb	%al, -2005(%ebp)
		.LBB104:
		.LBB105:
				movsbl	-2005(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE105:
		.LBE104:
		.LBB106:
				leal	-1308(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE106:
		.LBB107:
		.LBB108:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE108:
		.LBE107:
				leal	-796(%ebp), %eax
				subl	$8, %esp
				leal	.LC8@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L37
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -2016(%ebp)
				jmp	.L38
		.L37:
				movl	$25, -2016(%ebp)
		.L38:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L39
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L40
		.L39:
		.LBB109:
				leal	-1308(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE109:
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L40:
				pushl	$0
				pushl	$0
				pushl	$15
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-796(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-2016(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L34
		.L59:
		.LBB110:
				nop
				jmp	.L34
		.L61:
		.LBE110:
		.LBB111:
				nop
		.L34:
		.LBE111:
		.LBB112:
   26         %and print string(" variable") %and %signal 15
   27       %if 'A'<=var<='Z' %then var=var-'A'+'a'
				movl	-2004(%ebp), %eax
				movl	%eax, -1988(%ebp)
				cmpl	$64, -1988(%ebp)
				jle	.L62
				cmpl	$90, -1988(%ebp)
				jg	.L63
		.LBE112:
				movl	-2004(%ebp), %eax
				addl	$32, %eax
				movl	%eax, -2004(%ebp)
				jmp	.L42
		.L62:
		.LBB113:
				nop
				jmp	.L42
		.L63:
				nop
		.L42:
		.LBE113:
   28       vars(var)=opds(opdsp)
				movl	-2004(%ebp), %eax
				subl	$97, %eax
				movl	-1912(%ebp), %edx
				addl	$4, %edx
				flds	-1948(%ebp,%edx,4)
				fstps	VARS.6044@GOTOFF(%ebx,%eax,4)
   29       vara(var)=1    {assigned}
				movl	-2004(%ebp), %eax
				subl	$97, %eax
				movl	$1, VARA.6046@GOTOFF(%ebx,%eax,4)
   30       %continue
				jmp	.L44
		.L57:
   31     %finish
   32     pushop(op)
				subl	$12, %esp
				leal	-1956(%ebp), %eax
				pushl	-2000(%ebp)
				movl	%eax, %ecx
				call	PUSHOP.6027
				addl	$16, %esp
   33     pushopd(nextopd)
				leal	-1956(%ebp), %eax
				movl	%eax, %ecx
				call	NEXTOPD.6033
				fstps	-2016(%ebp)
				movl	-2016(%ebp), %edx
				subl	$12, %esp
				leal	-1956(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	PUSHOPD.6025
				addl	$16, %esp
		.L44:
   34   %repeat
				jmp	.L22
		.L25:
		.L45:
   35   operate %while opsp>0
				movl	-1936(%ebp), %eax
				testl	%eax, %eax
				jle	.L64
				leal	-1956(%ebp), %eax
				movl	%eax, %ecx
				call	OPERATE.6037
				jmp	.L25
		.L64:
				nop
		.L47:
   36   %result=popopd
				leal	-1956(%ebp), %eax
				movl	%eax, %ecx
				call	POPOPD.6029
				fstps	-2016(%ebp)
				movl	-2016(%ebp), %eax
				movl	$0, %edx
				cmpl	$1, %edx
				jne	.L54
				movl	%eax, -2016(%ebp)
				flds	-2016(%ebp)
		.L21:
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L50
				fstp	%st(0)
				call	__stack_chk_fail_local
		.L50:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE190:
				.section	.rodata
				.align 32
		.LC0:
				.byte	2
				.string	"?\n"
				.zero	252
				.globl	main
		main:
		.LFB189:
   37 !
   38 %routine pushopd(%real val)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %eax
				movl	%ecx, -28(%ebp)
				movl	%gs:20, %ecx
				movl	%ecx, -12(%ebp)
				xorl	%ecx, %ecx
   39   opdsp=opdsp+1
				movl	44(%eax), %edx
				addl	$1, %edx
				movl	%edx, 44(%eax)
   40   opds(opdsp)=val
				movl	44(%eax), %edx
				addl	$4, %edx
				flds	8(%ebp)
				fstps	8(%eax,%edx,4)
   41 %end
				nop
				movl	-12(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L20
				call	__stack_chk_fail_local
		.L20:
				leave
				ret
		.LFE191:
				.section	.rodata
		.LC8:
				.string	""
				.align 32
		.LC1:
				.byte	9
				.string	" variable"
				.zero	245
				.align 32
		.LC2:
				.byte	29
				.string	"test-in/precedence-rainer.imp"
				.zero	225
		EVAL.6022:
		.LFB190:
   42 !
   43 %routine pushop(%integer op)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %eax
				movl	%ecx, -28(%ebp)
				movl	%gs:20, %ecx
				movl	%ecx, -12(%ebp)
				xorl	%ecx, %ecx
   44   opsp=opsp+1
				movl	20(%eax), %edx
				addl	$1, %edx
				movl	%edx, 20(%eax)
   45   ops(opsp)=op
				movl	20(%eax), %edx
				movl	8(%ebp), %ecx
				movl	%ecx, 4(%eax,%edx,4)
   46 %end
				nop
				movl	-12(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L91
				call	__stack_chk_fail_local
		.L91:
				leave
				ret
		.LFE192:
		POPOPD.6029:
		.LFB193:
   47 !
   48 %realfn popopd
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %eax
				movl	%ecx, -28(%ebp)
				movl	%gs:20, %ecx
				movl	%ecx, -12(%ebp)
				xorl	%ecx, %ecx
   49 %real val
   50   val=opds(opdsp)
				movl	44(%eax), %edx
				addl	$4, %edx
				flds	8(%eax,%edx,4)
				fstps	-16(%ebp)
   51   opdsp=opdsp-1
				movl	44(%eax), %edx
				subl	$1, %edx
				movl	%edx, 44(%eax)
   52   %result=val
				flds	-16(%ebp)
   53 %end
				movl	-12(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L94
				fstp	%st(0)
				call	__stack_chk_fail_local
		.L94:
				leave
				ret
		.LFE193:
		POPOP.6031:
		.LFB194:
   54 !
   55 %integerfn popop
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %eax
				movl	%ecx, -28(%ebp)
				movl	%gs:20, %ecx
				movl	%ecx, -12(%ebp)
				xorl	%ecx, %ecx
   56 %integer op
   57   op=ops(opsp)
				movl	20(%eax), %edx
				movl	4(%eax,%edx,4), %edx
				movl	%edx, -16(%ebp)
   58   opsp=opsp-1
				movl	20(%eax), %edx
				subl	$1, %edx
				movl	%edx, 20(%eax)
   59   %result=op
				movl	-16(%ebp), %eax
   60 %end
				movl	-12(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L97
				call	__stack_chk_fail_local
		.L97:
				leave
				ret
		.LFE194:
				.section	.rodata
		.LC10:
				.string	"result missing"
				.align 32
		.LC5:
				.byte	11
				.string	" unassigned"
				.zero	243
				.align 32
		.LC6:
				.byte	8
				.string	" operand"
				.zero	246
		NEXTOPD.6033:
		.LFB195:
   61 !
   62 %realfn nextopd
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$2124, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %esi
				movl	%ecx, -2124(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.L99:
		.LBB132:
		.LBB133:
				call	_imp_nextsymbol@PLT
		.LBE133:
		.LBE132:
   63 %integer var
   64 %real opd
   65   skip symbol %while next symbol=space %or next symbol=nl
				cmpl	$32, %eax
				je	.L147
		.LBB134:
		.LBB135:
				call	_imp_nextsymbol@PLT
		.LBE135:
		.LBE134:
				cmpl	$10, %eax
				jne	.L148
				jmp	.L102
		.L147:
				nop
		.L102:
		.LBB136:
		.LBB137:
				call	_imp_skipsymbol@PLT
		.LBE137:
		.LBE136:
				jmp	.L99
		.L148:
				nop
		.L104:
		.LBB138:
		.LBB139:
		.LBB140:
				call	_imp_nextsymbol@PLT
		.LBE140:
		.LBE139:
   66   %if '0'<=next symbol<='9' %or next symbol='-' %or next symbol='.' %c
				movl	%eax, -2100(%ebp)
				cmpl	$47, -2100(%ebp)
				jle	.L149
				cmpl	$57, -2100(%ebp)
				jle	.L150
		.LBE138:
				jmp	.L107
		.L149:
		.LBB141:
				nop
		.L107:
		.LBE141:
		.LBB142:
		.LBB143:
				call	_imp_nextsymbol@PLT
		.LBE143:
		.LBE142:
				cmpl	$45, %eax
				je	.L151
		.LBB144:
		.LBB145:
				call	_imp_nextsymbol@PLT
		.LBE145:
		.LBE144:
				cmpl	$46, %eax
				jne	.L152
				jmp	.L143
		.L108:
		.L150:
		.LBB146:
				nop
				jmp	.L143
		.L151:
		.LBE146:
				nop
		.L143:
				subl	$12, %esp
				leal	-2104(%ebp), %eax
				pushl	%eax
				call	_imp_readfloat@PLT
				addl	$16, %esp
				movl	-2104(%ebp), %eax
				jmp	.L141
		.L152:
				nop
		.L112:
		.LBB147:
		.LBB148:
				call	_imp_nextsymbol@PLT
		.LBE148:
		.LBE147:
   67      %then read(opd) %and %result=opd
   68   %if next symbol='(' %then skip symbol %and %result=eval
				cmpl	$40, %eax
				jne	.L153
		.LBB149:
		.LBB150:
				call	_imp_skipsymbol@PLT
		.LBE150:
		.LBE149:
				movl	(%esi), %eax
				movl	%eax, %ecx
				call	EVAL.6022
				fstps	-2128(%ebp)
				movl	-2128(%ebp), %eax
				jmp	.L141
		.L153:
				nop
		.L116:
		.LBB151:
		.LBB152:
		.LBB153:
				call	_imp_nextsymbol@PLT
		.LBE153:
		.LBE152:
   69   %if 'a'<=next symbol<='z' %or 'A'<=next symbol<='Z' %then %start
				movl	%eax, -2096(%ebp)
				cmpl	$96, -2096(%ebp)
				jle	.L154
				cmpl	$122, -2096(%ebp)
				jle	.L155
		.LBE151:
				jmp	.L119
		.L154:
		.LBB154:
				nop
		.L119:
		.LBE154:
		.LBB155:
		.LBB156:
		.LBB157:
				call	_imp_nextsymbol@PLT
		.LBE157:
		.LBE156:
				movl	%eax, -2092(%ebp)
				cmpl	$64, -2092(%ebp)
				jle	.L156
				cmpl	$90, -2092(%ebp)
				jg	.L157
		.LBE155:
				jmp	.L120
		.L155:
		.LBB158:
				nop
		.L120:
				leal	-2104(%ebp), %eax
				movl	%eax, -2084(%ebp)
		.LBE158:
		.LBB159:
		.LBB160:
				subl	$12, %esp
				pushl	-2084(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE160:
		.LBE159:
		.LBB161:
				nop
				jmp	.L123
		.L157:
				nop
		.L123:
				leal	-2104(%ebp), %eax
				movl	%eax, -2080(%ebp)
		.LBE169:
		.LBB170:
		.LBB171:
				subl	$12, %esp
				pushl	-2080(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE171:
		.LBE170:
   70     read symbol(var)
   71     %if 'A'<=var<='Z' %then var=var-'A'+'a'
				movl	-2104(%ebp), %eax
				movl	%eax, -2088(%ebp)
				cmpl	$64, -2088(%ebp)
				jle	.L158
				cmpl	$90, -2088(%ebp)
				jg	.L159
		.LBE161:
				movl	-2104(%ebp), %eax
				addl	$32, %eax
				movl	%eax, -2104(%ebp)
				jmp	.L125
		.L158:
		.LBB162:
				nop
				jmp	.L125
		.L159:
				nop
		.L125:
		.LBE162:
   72     %if vara(var)=0 %then print symbol(var) %and %c
				movl	-2104(%ebp), %eax
				subl	$97, %eax
				movl	VARA.6046@GOTOFF(%ebx,%eax,4), %eax
				testl	%eax, %eax
				jne	.L160
				movl	-2104(%ebp), %eax
				movsbl	%al, %eax
				movb	%al, -2106(%ebp)
		.LBB163:
		.LBB164:
				movsbl	-2106(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE164:
		.LBE163:
		.LBB165:
				leal	-284(%ebp), %eax
				leal	.LC5@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE165:
		.LBB166:
		.LBB167:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE167:
		.LBE166:
				leal	-796(%ebp), %eax
				subl	$8, %esp
				leal	.LC8@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L129
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -2128(%ebp)
				jmp	.L130
		.L129:
				movl	$72, -2128(%ebp)
		.L130:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L131
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L132
		.L131:
		.LBB168:
				leal	-540(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE168:
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L132:
				pushl	$0
				pushl	$0
				pushl	$15
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-796(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-2128(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L128
		.L160:
				nop
		.L128:
   73       print string(" unassigned") %and %signal 15
   74     %result=vars(var)
				movl	-2104(%ebp), %eax
				subl	$97, %eax
				movl	VARS.6044@GOTOFF(%ebx,%eax,4), %eax
				jmp	.L141
		.L156:
		.LBB169:
   75   %finish
   76   read symbol(var)
   77   print symbol(var)
				movl	-2104(%ebp), %eax
				movsbl	%al, %eax
				movb	%al, -2105(%ebp)
		.LBB172:
		.LBB173:
				movsbl	-2105(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE173:
		.LBE172:
		.LBB174:
   78   print string(" operand")
				leal	-284(%ebp), %eax
				leal	.LC6@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2076(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-2076(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE174:
		.LBB175:
		.LBB176:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE176:
		.LBE175:
   79   %signal 15
				leal	-1308(%ebp), %eax
				subl	$8, %esp
				leal	.LC8@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L133
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -2128(%ebp)
				jmp	.L134
		.L133:
				movl	$79, -2128(%ebp)
		.L134:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L135
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L136
		.L135:
		.LBB177:
				leal	-540(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE177:
				leal	-1052(%ebp), %eax
				leal	-1820(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L136:
				pushl	$0
				pushl	$0
				pushl	$15
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-2128(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1052(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
   80 %end
				leal	-796(%ebp), %eax
				subl	$8, %esp
				leal	.LC10@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L137
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -2128(%ebp)
				jmp	.L138
		.L137:
				movl	$80, -2128(%ebp)
		.L138:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L139
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L140
		.L139:
		.LBB178:
				leal	-540(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE178:
				leal	-540(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L140:
				pushl	$0
				pushl	$4
				pushl	$8
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-796(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-2128(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				fldz
				fstp	%st(0)
				fldz
				jmp	.L98
		.L141:
				movl	%eax, -2128(%ebp)
				flds	-2128(%ebp)
		.L98:
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L142
				fstp	%st(0)
				call	__stack_chk_fail_local
		.L142:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE195:
				.section	.rodata
				.align 32
		.LC4:
				.byte	9
				.string	" operator"
				.zero	245
		NEXTOP.6035:
		.LFB196:
   81 !
   82 %integerfn nextop
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$2092, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -2092(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.L162:
		.LBB179:
		.LBB180:
				call	_imp_nextsymbol@PLT
		.LBE180:
		.LBE179:
   83 %integer sym
   84   skip symbol %while next symbol=space
				cmpl	$32, %eax
				jne	.L200
		.LBB181:
		.LBB182:
				call	_imp_skipsymbol@PLT
		.LBE182:
		.LBE181:
				jmp	.L162
		.L200:
				nop
		.L165:
				leal	-2084(%ebp), %eax
				movl	%eax, -2080(%ebp)
		.LBB183:
		.LBB184:
				subl	$12, %esp
				pushl	-2080(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE184:
		.LBE183:
   85   read symbol(sym)
   86   %if sym='+' %then %result=plus
				movl	-2084(%ebp), %eax
				cmpl	$43, %eax
				jne	.L201
				movl	$1, %eax
				jmp	.L161
		.L201:
				nop
		.L167:
   87   %if sym='-' %then %result=minus
				movl	-2084(%ebp), %eax
				cmpl	$45, %eax
				jne	.L202
				movl	$2, %eax
				jmp	.L161
		.L202:
				nop
		.L170:
   88   %if sym='*' %then %result=times
				movl	-2084(%ebp), %eax
				cmpl	$42, %eax
				jne	.L203
				movl	$3, %eax
				jmp	.L161
		.L203:
				nop
		.L172:
   89   %if sym='/' %then %result=divide
				movl	-2084(%ebp), %eax
				cmpl	$47, %eax
				jne	.L204
				movl	$4, %eax
				jmp	.L161
		.L204:
				nop
		.L174:
   90   %if sym='^' %then %result=exp
				movl	-2084(%ebp), %eax
				cmpl	$94, %eax
				jne	.L205
				movl	$5, %eax
				jmp	.L161
		.L205:
				nop
		.L176:
   91   %if sym=':' %then %result=assign
				movl	-2084(%ebp), %eax
				cmpl	$58, %eax
				jne	.L206
				movl	$6, %eax
				jmp	.L161
		.L206:
				nop
		.L178:
   92   %if sym=')' %or sym=nl %then %result=end
				movl	-2084(%ebp), %eax
				cmpl	$41, %eax
				je	.L207
				movl	-2084(%ebp), %eax
				cmpl	$10, %eax
				jne	.L208
				jmp	.L180
		.L207:
				nop
		.L180:
				movl	$7, %eax
				jmp	.L161
		.L208:
				nop
		.L181:
   93   print symbol(sym)
				movl	-2084(%ebp), %eax
				movsbl	%al, %eax
				movb	%al, -2085(%ebp)
		.LBB185:
		.LBB186:
				movsbl	-2085(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE186:
		.LBE185:
		.LBB187:
   94   print string(" operator")
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2076(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-2076(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE187:
		.LBB188:
		.LBB189:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE189:
		.LBE188:
   95   %signal 15
				leal	-1308(%ebp), %eax
				subl	$8, %esp
				leal	.LC8@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L182
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -2096(%ebp)
				jmp	.L183
		.L182:
				movl	$95, -2096(%ebp)
		.L183:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L184
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L185
		.L184:
		.LBB190:
				leal	-540(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE190:
				leal	-1052(%ebp), %eax
				leal	-1820(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L185:
				pushl	$0
				pushl	$0
				pushl	$15
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-2096(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1052(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
   96 %end
				leal	-796(%ebp), %eax
				subl	$8, %esp
				leal	.LC10@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L186
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -2096(%ebp)
				jmp	.L187
		.L186:
				movl	$96, -2096(%ebp)
		.L187:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L188
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L189
		.L188:
		.LBB191:
				leal	-540(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE191:
				leal	-540(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L189:
				pushl	$0
				pushl	$4
				pushl	$8
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-796(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-2096(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
		.L161:
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L191
				call	__stack_chk_fail_local
		.L191:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE196:
				.section	.rodata
		.LC11:
				.string	"test-in/precedence-rainer.imp"
				.align 4
		.LC13:
				.string	"->OPN(%d) out of bounds at %s line %d"
				.align 32
		.LC3:
				.byte	14
				.string	"divide by zero"
				.zero	240
		OPERATE.6037:
		.LFB197:
   97 !
   98 %routine operate
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1884, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %esi
				movl	%esi, -1884(%ebp)
				movl	%ecx, -1868(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
   99 %real opd1,opd2
  100 %switch opn(plus:exp)
  101   opd2=popopd
				movl	%esi, %ecx
				call	POPOPD.6029
				fstps	-1888(%ebp)
				movl	-1888(%ebp), %eax
				movl	%eax, -1860(%ebp)
  102   opd1=popopd
				movl	%esi, %ecx
				call	POPOPD.6029
				fstps	-1888(%ebp)
				movl	-1888(%ebp), %eax
				movl	%eax, -1856(%ebp)
  103   ->opn(popop)
				movl	$103, -1852(%ebp)
				leal	.LC11@GOTOFF(%ebx), %eax
				movl	%eax, -1848(%ebp)
				movl	%esi, %ecx
				call	POPOP.6031
				movl	%eax, -1844(%ebp)
				nop
		.L210:
  104 opn(plus):pushopd(opd1+opd2) ; %return
				flds	-1856(%ebp)
				fadds	-1860(%ebp)
				subl	$12, %esp
				leal	-4(%esp), %esp
				fstps	(%esp)
				movl	-1884(%ebp), %ecx
				call	PUSHOPD.6025
				addl	$16, %esp
				jmp	.L209
		.L213:
  105 opn(minus):pushopd(opd1-opd2) ; %return
				flds	-1856(%ebp)
				fsubs	-1860(%ebp)
				subl	$12, %esp
				leal	-4(%esp), %esp
				fstps	(%esp)
				movl	-1884(%ebp), %ecx
				call	PUSHOPD.6025
				addl	$16, %esp
				jmp	.L209
		.L214:
  106 opn(times):pushopd(opd1*opd2) ; %return
				flds	-1856(%ebp)
				fmuls	-1860(%ebp)
				subl	$12, %esp
				leal	-4(%esp), %esp
				fstps	(%esp)
				movl	-1884(%ebp), %ecx
				call	PUSHOPD.6025
				addl	$16, %esp
				jmp	.L209
		.L215:
  107 opn(divide):%if opd2=0 %then print string("divide by zero") %and %signal 15
				flds	-1860(%ebp)
				fldz
				fucomip	%st(1), %st
				fstp	%st(0)
				jp	.L235
				flds	-1860(%ebp)
				fldz
				fucomip	%st(1), %st
				fstp	%st(0)
				jne	.L235
		.LBB192:
				leal	-284(%ebp), %eax
				leal	.LC3@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-1820(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE192:
		.LBB193:
		.LBB194:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE194:
		.LBE193:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC8@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L219
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1888(%ebp)
				jmp	.L220
		.L219:
				movl	$107, -1888(%ebp)
		.L220:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L221
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-796(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L222
		.L221:
		.LBB195:
				leal	-796(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE195:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L222:
				pushl	$0
				pushl	$0
				pushl	$15
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1052(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1888(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-796(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L218
		.L235:
				nop
		.L218:
  108             pushopd(opd1/opd2) ; %return
				flds	-1856(%ebp)
				fdivs	-1860(%ebp)
				subl	$12, %esp
				leal	-4(%esp), %esp
				fstps	(%esp)
				movl	-1884(%ebp), %ecx
				call	PUSHOPD.6025
				addl	$16, %esp
				jmp	.L209
		.L223:
  109 opn(exp):pushopd(opd1^int(opd2))
				flds	-1860(%ebp)
				fstpl	-1840(%ebp)
		.LBB196:
		.LBB197:
				fldl	-1840(%ebp)
				fldl	.LC9@GOTOFF(%ebx)
				faddp	%st, %st(1)
				fstpl	-1832(%ebp)
		.LBB198:
		.LBB199:
				subl	$8, %esp
				pushl	-1828(%ebp)
				pushl	-1832(%ebp)
				call	floor@PLT
				addl	$16, %esp
				fnstcw	-1874(%ebp)
				movzwl	-1874(%ebp), %eax
				orb	$12, %ah
				movw	%ax, -1876(%ebp)
				fldcw	-1876(%ebp)
				fistpl	-1888(%ebp)
				fldcw	-1874(%ebp)
		.LBE199:
		.LBE198:
		.LBE197:
		.LBE196:
				fildl	-1888(%ebp)
				flds	-1856(%ebp)
				fxch	%st(1)
				leal	-8(%esp), %esp
				fstpl	(%esp)
				leal	-8(%esp), %esp
				fstpl	(%esp)
				call	_imp_REXP
				addl	$16, %esp
				fstps	-1872(%ebp)
				flds	-1872(%ebp)
				subl	$12, %esp
				leal	-4(%esp), %esp
				fstps	(%esp)
				movl	-1884(%ebp), %ecx
				call	PUSHOPD.6025
				addl	$16, %esp
  110 %end
				cmpl	$0, -1844(%ebp)
				jle	.L226
				jmp	.L234
		.L211:
				jmp	.L209
		.L234:
				cmpl	$5, -1844(%ebp)
				jle	.L227
		.L226:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L228
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1888(%ebp)
				jmp	.L229
		.L228:
				movl	$110, -1888(%ebp)
		.L229:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L230
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L231
		.L230:
		.LBB200:
				leal	-284(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE200:
				leal	-540(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L231:
				pushl	-1852(%ebp)
				pushl	-1848(%ebp)
				pushl	-1844(%ebp)
				leal	.LC13@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1844(%ebp)
				pushl	$3
				pushl	$6
				pushl	-1888(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_eventf@PLT
				addl	$288, %esp
		.L227:
				movl	-1844(%ebp), %eax
				subl	$1, %eax
				movl	OPN.6147@GOTOFF(%ebx,%eax,4), %eax
				nop
				jmp	*%eax
		.L209:
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L236
				call	__stack_chk_fail_local
		.L236:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE197:
				.section	.rodata
				.align 4
		__PRETTY_FUNCTION__.5621:
				.string	"_imp_SELECTINPUT"
				.align 4
		__PRETTY_FUNCTION__.5625:
				.string	"_imp_SELECTOUTPUT"
				.align 4
		__PRETTY_FUNCTION__.5536:
				.string	"_imp_PROMPT"
				.comm	VARS.6044,104,32
				.comm	VARA.6046,104,32
				.section	.data.rel.local,"aw",@progbits
				.align 4
		OPN.6147:
				.long	.L211
				.long	.L213
				.long	.L214
				.long	.L215
				.long	.L223
				.section	.rodata
				.align 8
		.LC7:
				.long	0
				.long	1073741824
				.align 8
		.LC9:
				.long	0
				.long	1071644672
				.section	.text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
				.globl	__x86.get_pc_thunk.ax
				.hidden	__x86.get_pc_thunk.ax
		__x86.get_pc_thunk.ax:
		.LFB198:
				movl	(%esp), %eax
				ret
		.LFE198:
				.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
				.globl	__x86.get_pc_thunk.bx
				.hidden	__x86.get_pc_thunk.bx
		__x86.get_pc_thunk.bx:
		.LFB199:
				movl	(%esp), %ebx
				ret
		.LFE199:
		.Letext0:
  111 !
  112 %end  {of eval}
				fldz
				fstp	%st(0)
				fldz
				jmp	.L21
		.L54:
  113 %real val
  114
  115   %on %event 9,15 %start    {to trap everything}
				subl	$8, %esp
				pushl	$1
				movl	%esi, %ebx
				movl	_imp_event@GOT(%ebx), %eax
				leal	532(%eax), %eax
				pushl	%eax
				movl	%esi, %ebx
				call	__sigsetjmp@PLT
				addl	$16, %esp
				testl	%eax, %eax
				jne	.L67
		.LBB114:
				movl	$9, -1488(%ebp)
				movl	$15, -1484(%ebp)
				movl	$0, -1792(%ebp)
		.LBB115:
				movl	$0, -1788(%ebp)
				jmp	.L68
		.L69:
				movl	-1788(%ebp), %eax
				movl	-1488(%ebp,%eax,4), %eax
				movl	$1, %edx
				movl	%eax, %ecx
				sall	%cl, %edx
				movl	%edx, %eax
				orl	%eax, -1792(%ebp)
				addl	$1, -1788(%ebp)
		.L68:
				cmpl	$1, -1788(%ebp)
				jbe	.L69
		.LBE115:
				movl	-1792(%ebp), %eax
		.LBE114:
				subl	$8, %esp
				pushl	%eax
				movl	-1816(%ebp), %ebx
				movl	_imp_event@GOT(%ebx), %eax
				pushl	%eax
				call	_imp_on_event_enter@PLT
				addl	$16, %esp
				testl	%eax, %eax
				jne	.L85
		.L67:
				nop
		.L70:
  116 {*} %stop %if Event_Event = 9
				leal	-720(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_EVENT
				addl	$12, %esp
				movl	-720(%ebp), %eax
				cmpl	$9, %eax
				jne	.L86
				movl	$0, -1780(%ebp)
		.LBB116:
		.LBB117:
				subl	$12, %esp
				pushl	-1780(%ebp)
				movl	-1816(%ebp), %ebx
				call	exit@PLT
		.L86:
		.LBE117:
		.LBE116:
				nop
		.L72:
		.LBB118:
  117     print string("?
				leal	-1488(%ebp), %eax
				movl	-1816(%ebp), %ebx
				leal	.LC0@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1744(%ebp), %eax
				leal	-1488(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-976(%ebp), %eax
				leal	-1744(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE118:
		.LBB119:
		.LBB120:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-976(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE120:
		.LBE119:
  118 ")
  119    ->again ; %finish
				jmp	.L81
		.L85:
  120
  121 select input(0); select output(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTINPUT
				addl	$16, %esp
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB121:
  122       prompt("eval:")
				leal	-1488(%ebp), %edx
				movl	$0, %eax
				movl	$64, %ecx
				movl	%edx, %edi
				rep stosl
				movb	$5, -1488(%ebp)
				movl	$1818326629, -1487(%ebp)
				movl	$58, -1483(%ebp)
				movl	$0, -1479(%ebp)
				movw	$0, -1475(%ebp)
				movb	$0, -1473(%ebp)
				leal	-1232(%ebp), %eax
				leal	-1488(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE121:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1232(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_PROMPT
				addl	$256, %esp
		.L73:
		.L81:
  123 again:val=eval
				leal	-1796(%ebp), %eax
				movl	%eax, %ecx
				call	EVAL.6022
				fstps	-1824(%ebp)
				movl	-1824(%ebp), %eax
				movl	%eax, -1784(%ebp)
  124       %if val=int(val) %then write(int(val),0) { imp77 perms missing} {%else print(val,0,4)}
				flds	-1784(%ebp)
				fstpl	-1776(%ebp)
		.LBB122:
		.LBB123:
				fldl	-1776(%ebp)
				movl	-1816(%ebp), %ebx
				fldl	.LC9@GOTOFF(%ebx)
				faddp	%st, %st(1)
				fstpl	-1768(%ebp)
		.LBB124:
		.LBB125:
				subl	$8, %esp
				pushl	-1764(%ebp)
				pushl	-1768(%ebp)
				call	floor@PLT
				addl	$16, %esp
				fnstcw	-1806(%ebp)
				movzwl	-1806(%ebp), %eax
				orb	$12, %ah
				movw	%ax, -1808(%ebp)
				fldcw	-1808(%ebp)
				fistpl	-1820(%ebp)
				fldcw	-1806(%ebp)
		.LBE125:
		.LBE124:
		.LBE123:
		.LBE122:
				fildl	-1820(%ebp)
				flds	-1784(%ebp)
				fucomip	%st(1), %st
				jp	.L88
				flds	-1784(%ebp)
				fucomip	%st(1), %st
				fstp	%st(0)
				jne	.L87
				flds	-1784(%ebp)
				fstpl	-1760(%ebp)
		.LBB126:
		.LBB127:
				fldl	-1760(%ebp)
				movl	-1816(%ebp), %edi
				movl	%edi, %eax
				fldl	.LC9@GOTOFF(%eax)
				faddp	%st, %st(1)
				fstpl	-1752(%ebp)
		.LBB128:
		.LBB129:
				subl	$8, %esp
				pushl	-1748(%ebp)
				pushl	-1752(%ebp)
				movl	%edi, %ebx
				call	floor@PLT
				addl	$16, %esp
				fnstcw	-1806(%ebp)
				movzwl	-1806(%ebp), %eax
				orb	$12, %ah
				movw	%ax, -1808(%ebp)
				fldcw	-1808(%ebp)
				fistpl	-1812(%ebp)
				fldcw	-1806(%ebp)
				movl	-1812(%ebp), %eax
		.LBE129:
		.LBE128:
		.LBE127:
		.LBE126:
				subl	$8, %esp
				pushl	$0
				pushl	%eax
				movl	%edi, %ebx
				call	_imp_writeint@PLT
				addl	$16, %esp
				jmp	.L78
		.L88:
				fstp	%st(0)
		.L87:
				nop
		.L78:
		.LBB130:
		.LBB131:
				movl	-1816(%ebp), %ebx
				call	_imp_newline@PLT
		.LBE131:
		.LBE130:
  125       newline
  126       ->again
				jmp	.L81
		.LFE189:
		PUSHOP.6027:
		.LFB192:
  127
  128 %endofprogram
  120 Statements compiled
