         Edinburgh IMP77 Compiler - Version 8.4
    1
		.Ltext0:
		_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	.L4
				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	.L1
		.L4:
				nop
		.L1:
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE94:
		_imp_INT2ASCII:
		.LFB164:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$292, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -284(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -12(%ebp)
				xorl	%eax, %eax
				subl	$4, %esp
				pushl	16(%ebp)
				leal	-268(%ebp), %eax
				pushl	%eax
				pushl	12(%ebp)
				call	_c_itoa@PLT
				addl	$16, %esp
				movl	-284(%ebp), %eax
				subl	$8, %esp
				leal	-268(%ebp), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	-284(%ebp), %eax
				movl	-12(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L7
				call	__stack_chk_fail_local
		.L7:
				movl	-4(%ebp), %ebx
				leave
				ret	$4
		.LFE164:
		OKREADTYPE:
		.LFB189:
    2 !    %include "impcore.types.inc"
    3     ! Curious naming strategy because we don't want to clobber
    4     ! the built-in functions and maps like "integer" or "int"
    5     ! Types extracted from general names
    6     %constinteger   integer type = 1
    7     %constinteger      real type = 2
    8     %constinteger    string type = 3
    9     %constinteger    record type = 4
   10     %constinteger      byte type = 5
   11     %constinteger     short type = 6
   12     %constinteger      long type = 7
   13     %constinteger long real type = 8
   14
   15     ! Note the size of the various types
   16     %constinteger integersize   = 4
   17     %constinteger realsize      = 4
   18     ! we don't define stringsize as it could be in range 1..255
   19     ! However, max value of stringsize = bytesize + 255*bytesize
   20     ! we don't define recordsize as it depends on the record format
   21     %constinteger bytesize      = 1
   22     %constinteger shortsize     = 2
   23     %constinteger longsize      = 4
   24     %constinteger longrealsize  = 8
   25
   26     ! Access the file primitives (written in C) via the IMP wrapper
   27     %external %integer   %fn %spec get error
   28     %external %integer   %fn %spec get stderr handle
   29     %external %integer   %fn %spec get stdin handle
   30     %external %integer   %fn %spec get stdout handle
   31     %external %integer   %fn %spec openfile( %integer mode address, %integer file name address )
   32     %external %integer   %fn %spec tell( %integer handle )
   33     %external %routine       %spec file rewind( %integer handle )
   34     %external %routine       %spec file seek( %integer handle, displacement, pos )
   35     %external %routine       %spec close( %integer handle )
   36     %external %predicate     %spec eof( %integer handle )
   37     %external %integer   %fn %spec readbytes( %integer handle, count, itemsz, %byte %name buffer )
   38     %external %integer   %fn %spec writebytes( %integer handle, count, itemsz,%byte %name buffer )
   39     %external %integer   %fn %spec get char( %integer handle )
   40     %external %routine       %spec put char( %integer handle,ch )
   41     %external %routine       %spec flush( %integer handle )
   42
   43     %external %integer       %spec rtl diagnose %alias "_imp_rtlflags"
   44
   45     %predicate ok read type( %integer type )
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
   46         %true %if (type = integer type)
				cmpl	$1, 8(%ebp)
				jne	.L34
				movl	$1, %eax
				jmp	.L11
		.L34:
				nop
		.L10:
   47         %true %if (type = real type)
				cmpl	$2, 8(%ebp)
				jne	.L35
				movl	$1, %eax
				jmp	.L11
		.L35:
				nop
		.L13:
   48         %true %if (type = string type)
				cmpl	$3, 8(%ebp)
				jne	.L36
				movl	$1, %eax
				jmp	.L11
		.L36:
				nop
		.L15:
   49         %true %if (type = record type)
				cmpl	$4, 8(%ebp)
				jne	.L37
				movl	$1, %eax
				jmp	.L11
		.L37:
				nop
		.L17:
   50         %true %if (type = byte type)
				cmpl	$5, 8(%ebp)
				jne	.L38
				movl	$1, %eax
				jmp	.L11
		.L38:
				nop
		.L19:
   51         %true %if (type = short type)
				cmpl	$6, 8(%ebp)
				jne	.L39
				movl	$1, %eax
				jmp	.L11
		.L39:
				nop
		.L21:
   52         %true %if (type = long type)
				cmpl	$7, 8(%ebp)
				jne	.L40
				movl	$1, %eax
				jmp	.L11
		.L40:
				nop
		.L23:
   53         %true %if (type = long real type)
				cmpl	$8, 8(%ebp)
				jne	.L41
				movl	$1, %eax
				jmp	.L11
		.L41:
				nop
		.L25:
   54
   55         %false
				movl	$0, %eax
		.L11:
   56     %end { of "ok read type" }
				popl	%ebp
				ret
		.LFE189:
		OKWRITETYPE:
		.LFB190:
   57
   58     %predicate ok write type( %integer type )
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
   59         %true %if (type = integer type)
				cmpl	$1, 8(%ebp)
				jne	.L68
				movl	$1, %eax
				jmp	.L45
		.L68:
				nop
		.L44:
   60         %true %if (type = real type)
				cmpl	$2, 8(%ebp)
				jne	.L69
				movl	$1, %eax
				jmp	.L45
		.L69:
				nop
		.L47:
   61         %true %if (type = string type)
				cmpl	$3, 8(%ebp)
				jne	.L70
				movl	$1, %eax
				jmp	.L45
		.L70:
				nop
		.L49:
   62         %true %if (type = record type)
				cmpl	$4, 8(%ebp)
				jne	.L71
				movl	$1, %eax
				jmp	.L45
		.L71:
				nop
		.L51:
   63         %true %if (type = byte type)
				cmpl	$5, 8(%ebp)
				jne	.L72
				movl	$1, %eax
				jmp	.L45
		.L72:
				nop
		.L53:
   64         %true %if (type = short type)
				cmpl	$6, 8(%ebp)
				jne	.L73
				movl	$1, %eax
				jmp	.L45
		.L73:
				nop
		.L55:
   65         %true %if (type = long type)
				cmpl	$7, 8(%ebp)
				jne	.L74
				movl	$1, %eax
				jmp	.L45
		.L74:
				nop
		.L57:
   66         %true %if (type = long real type)
				cmpl	$8, 8(%ebp)
				jne	.L75
				movl	$1, %eax
				jmp	.L45
		.L75:
				nop
		.L59:
   67
   68         %false
				movl	$0, %eax
		.L45:
   69     %end { of "ok write type" }
				popl	%ebp
				ret
		.LFE190:
				.comm	IN,2996,32
				.comm	OUT,3000,32
				.comm	NULLSTREAM,272,32
				.comm	ERRORSTREAM,272,32
				.comm	INITIALISEDSTATE,4,4
				.comm	_errno,4,4
				.data
				.align 4
		EOFFLAG:
				.long	1
				.globl	NEEDTOINITIALISE
		NEEDTOINITIALISE:
		.LFB191:
   70
   71     ! To ensure that the compiler can compile itself
   72     ! We need a minimum number of INPUT/OUTPUT Streams
   73     ! These minimum numbers depend on the depth of %include files
   74     ! for MAX INPUT STREAM
   75     ! The number of output files used by the takeon, pass1, pass2
   76     ! programs will affect the value of MAX OUTPUI STREAM
   77     ! Currently, the bare minimum value for MAX INPUT STREAM is 4
   78     ! Currently, the bare minimum value for MAX OUTPUT STREAM is 3
   79
   80     ! It is perfectly legal to increase the values of MAX XXX STREAM
   81     ! to be more than the minimum MAX XXX STREAM values given above
   82     %constant %integer MAX INPUT STREAM  = 10
   83     %constant %integer MAX OUTPUT STREAM = 10
   84
   85     %constant %integer IS INPUT = 0 << 0
   86     %constant %integer IS OUTPUT = 1 << 0
   87     %constant %integer IS TEXT = 0 << 1
   88     %constant %integer IS BINARY = 1 << 1
   89
   90     %constant %integer uninitialised = 0
   91     %constant %integer initialised = 1
   92
   93     %record %format impstream ( %integer empty,lookahead, flags, %string(255) file name, %integer handle )
   94     %record %format impinput ( %integer current stream,
   95                                %record(impstream) %array streams(0:MAX INPUT STREAM) )
   96     %record %format impoutput ( %integer current stream, previous stream,
   97                                 %record(impstream) %array streams(0:MAX OUTPUT STREAM) )
   98
   99     %own %record (impinput) in
  100     %own %record (impoutput) out
  101     %own %record (impstream) null stream
  102     %own %record (impstream) error stream
  103
  104     %own %integer initialised state = uninitialised
  105     %external %integer fileerror %alias "_errno"
  106
  107     %own %integer eof flag = 1
  108
  109 !------------------------------------------------------------------------------
  110 ! Initialisation routines
  111 !------------------------------------------------------------------------------
  112
  113     !--------------------------------------------------------------------------
  114     %external %predicate need to initialise
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
  115         %true %if (initialised state = uninitialised)
				movl	INITIALISEDSTATE@GOTOFF(%eax), %eax
				testl	%eax, %eax
				jne	.L81
				movl	$1, %eax
				jmp	.L79
		.L81:
				nop
		.L78:
  116         %false
				movl	$0, %eax
		.L79:
  117     %end { of "need to initialise" }
				popl	%ebp
				ret
		.LFE191:
		INITIALISESTREAM:
		.LFB192:
  118
  119     !--------------------------------------------------------------------------
  120     %routine initialise stream( %record(impstream) %name s )
				pushl	%ebp
				movl	%esp, %ebp
				subl	$16, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
  121         s_handle = 0
				movl	8(%ebp), %eax
				movl	$0, 268(%eax)
  122         length(s_file name) = 0
				movl	8(%ebp), %eax
				addl	$12, %eax
				movl	%eax, -4(%ebp)
		.LBB256:
		.LBB257:
				movl	-4(%ebp), %eax
		.LBE257:
		.LBE256:
				movb	$0, (%eax)
  123         s_flags = 0
				movl	8(%ebp), %eax
				movl	$0, 8(%eax)
  124         s_lookahead = -1
				movl	8(%ebp), %eax
				movl	$-1, 4(%eax)
  125         s_empty = 1
				movl	8(%ebp), %eax
				movl	$1, (%eax)
  126     %end { of "initialise stream" }
				nop
				leave
				ret
		.LFE192:
		FINALISESTREAM:
		.LFB193:
  127
  128     !--------------------------------------------------------------------------
  129     %routine finalise stream( %record(impstream) %name s )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
  130         %if (s_handle # 0) %then close( s_handle )
				movl	8(%ebp), %edx
				movl	268(%edx), %edx
				testl	%edx, %edx
				je	.L89
				movl	8(%ebp), %edx
				movl	268(%edx), %edx
				subl	$12, %esp
				pushl	%edx
				movl	%eax, %ebx
				call	CLOSE@PLT
				addl	$16, %esp
				jmp	.L87
		.L89:
				nop
		.L87:
  131         initialise stream( s )
				subl	$12, %esp
				pushl	8(%ebp)
				call	INITIALISESTREAM
				addl	$16, %esp
  132     %end { of "finalise stream" }
				nop
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE193:
				.section	.rodata
				.align 32
		.LC0:
				.byte	5
				.string	"stdin"
				.zero	249
		INITIALISEINPUTSYSTEM:
		.LFB194:
  133
  134     !--------------------------------------------------------------------------
  135     %routine initialise input system
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$540, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  136         %record(impstream)%name streamX
  137         %integer i
  138
  139         in_current stream = 0
				movl	$0, IN@GOTOFF(%ebx)
  140
  141         %for i = 0,1,MAX INPUT STREAM %cycle
				movl	$-1, -548(%ebp)
		.L91:
				cmpl	$10, -548(%ebp)
				je	.L97
				addl	$1, -548(%ebp)
				nop
		.L93:
  142             streamX == in_streams(i)
				movl	-548(%ebp), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -544(%ebp)
  143             initialise stream( streamX )
				pushl	-544(%ebp)
				call	INITIALISESTREAM
				addl	$4, %esp
  144         %repeat
				jmp	.L91
		.L97:
  145         in_streams(0)_handle = get std in handle
				call	GETSTDINHANDLE@PLT
				movl	%eax, 272+IN@GOTOFF(%ebx)
		.LBB258:
		.LBB259:
  146         in_streams(0)_file name = "stdin"
				leal	-540(%ebp), %eax
				leal	.LC0@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE259:
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
		.LBE258:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	16+IN@GOTOFF(%ebx), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  147     %end { of "initialise input stream" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L95
				call	__stack_chk_fail_local
		.L95:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE194:
		TERMINATEINPUTSYSTEM:
		.LFB195:
  148
  149     !--------------------------------------------------------------------------
  150     %routine terminate input system
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$20, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
  151         %record(impstream)%name streamX
  152         %integer i
  153
  154         in_current stream = -1
				movl	$-1, IN@GOTOFF(%ebx)
  155
  156         %for i = 1,1,MAX INPUT STREAM %cycle
				movl	$0, -16(%ebp)
		.L99:
				cmpl	$10, -16(%ebp)
				je	.L104
				addl	$1, -16(%ebp)
				nop
		.L101:
  157             streamX == in_streams(i)
				movl	-16(%ebp), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -12(%ebp)
  158             finalise stream( streamX )
				subl	$12, %esp
				pushl	-12(%ebp)
				call	FINALISESTREAM
				addl	$16, %esp
  159         %repeat
				jmp	.L99
		.L104:
  160     %end { of "terminate input stream" }
				nop
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE195:
				.section	.rodata
				.align 32
		.LC1:
				.byte	6
				.string	"stdout"
				.zero	248
				.align 32
		.LC2:
				.byte	6
				.string	"stderr"
				.zero	248
		INITIALISEOUTPUTSYSTEM:
		.LFB196:
  161
  162     !--------------------------------------------------------------------------
  163     %routine initialise output system
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$796, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  164         %record(impstream)%name streamX
  165
  166         %integer i
  167
  168         out_current stream = 0
				movl	$0, OUT@GOTOFF(%ebx)
  169         out_previous stream = 0
				movl	$0, 4+OUT@GOTOFF(%ebx)
  170
  171         %for i = 0,1,MAX OUTPUT STREAM %cycle
				movl	$-1, -804(%ebp)
		.L106:
				cmpl	$10, -804(%ebp)
				je	.L112
				addl	$1, -804(%ebp)
				nop
		.L108:
  172             streamX == out_streams(i)
				movl	-804(%ebp), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -800(%ebp)
  173             initialise stream( streamX )
				pushl	-800(%ebp)
				call	INITIALISESTREAM
				addl	$4, %esp
  174         %repeat
				jmp	.L106
		.L112:
  175
  176         streamX == out_streams(0)
				leal	8+OUT@GOTOFF(%ebx), %eax
				movl	%eax, -800(%ebp)
  177
  178         streamX_handle = get std out handle
				call	GETSTDOUTHANDLE@PLT
				movl	%eax, %edx
				movl	-800(%ebp), %eax
				movl	%edx, 268(%eax)
		.LBB260:
		.LBB261:
  179         streamX_file name = "stdout"
				leal	-284(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE261:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE260:
				movl	-800(%ebp), %edx
				addl	$12, %edx
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				pushl	%edx
				call	_imp_strncpy@PLT
				addl	$16, %esp
  180         streamX_flags = IS OUTPUT ! IS TEXT
				movl	-800(%ebp), %eax
				movl	$1, 8(%eax)
  181
  182         ! Don't forget to initialise the debug output stream
  183         streamX == error stream
				leal	ERRORSTREAM@GOTOFF(%ebx), %eax
				movl	%eax, -800(%ebp)
  184         initialise stream( streamX )
				subl	$12, %esp
				pushl	-800(%ebp)
				call	INITIALISESTREAM
				addl	$16, %esp
  185         streamX_handle = get std err handle
				call	GETSTDERRHANDLE@PLT
				movl	%eax, %edx
				movl	-800(%ebp), %eax
				movl	%edx, 268(%eax)
		.LBB262:
		.LBB263:
  186         streamX_file name = "stderr"
				leal	-540(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE263:
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
		.LBE262:
				movl	-800(%ebp), %edx
				addl	$12, %edx
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				pushl	%edx
				call	_imp_strncpy@PLT
				addl	$16, %esp
  187         streamX_flags = IS OUTPUT ! IS TEXT
				movl	-800(%ebp), %eax
				movl	$1, 8(%eax)
  188     %end { of "initialise output stream" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L110
				call	__stack_chk_fail_local
		.L110:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE196:
		TERMINATEOUTPUTSYSTEM:
		.LFB197:
  189
  190     !--------------------------------------------------------------------------
  191     %routine terminate output system
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$20, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
  192         %record(impstream)%name streamX
  193         %integer i
  194
  195         out_current stream = -1
				movl	$-1, OUT@GOTOFF(%ebx)
  196         out_previous stream = -1
				movl	$-1, 4+OUT@GOTOFF(%ebx)
  197
  198         %for i = 1,1,MAX OUTPUT STREAM %cycle
				movl	$0, -16(%ebp)
		.L114:
				cmpl	$10, -16(%ebp)
				je	.L119
				addl	$1, -16(%ebp)
				nop
		.L116:
  199             streamX == out_streams(i)
				movl	-16(%ebp), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -12(%ebp)
  200             finalise stream( streamX )
				subl	$12, %esp
				pushl	-12(%ebp)
				call	FINALISESTREAM
				addl	$16, %esp
  201         %repeat
				jmp	.L114
		.L119:
  202     %end { of "terminate output system" }
				nop
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE197:
				.section	.rodata
				.align 32
		.LC3:
				.byte	4
				.string	"null"
				.zero	250
				.globl	INITIALISEIOSYSTEM
		INITIALISEIOSYSTEM:
		.LFB198:
  203
  204     !--------------------------------------------------------------------------
  205     %external %routine initialise io system
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$540, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  206
  207         null stream_handle = 0
				movl	$0, 268+NULLSTREAM@GOTOFF(%ebx)
		.LBB264:
		.LBB265:
  208         null stream_file name = "null"
				leal	-540(%ebp), %eax
				leal	.LC3@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE265:
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
		.LBE264:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	12+NULLSTREAM@GOTOFF(%ebx), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  209
  210         initialise input system
				call	INITIALISEINPUTSYSTEM
  211         initialise output system
				call	INITIALISEOUTPUTSYSTEM
  212
  213         initialised state = initialised
				movl	$1, INITIALISEDSTATE@GOTOFF(%ebx)
  214     %end { of "initialise io system" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L122
				call	__stack_chk_fail_local
		.L122:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE198:
				.globl	TERMINATEIOSYSTEM
		TERMINATEIOSYSTEM:
		.LFB199:
  215
  216     !--------------------------------------------------------------------------
  217     %external %routine terminate io system
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
  218         terminate input system
				call	TERMINATEINPUTSYSTEM
  219         terminate output system
				call	TERMINATEOUTPUTSYSTEM
  220
  221         initialised state = uninitialised
				movl	$0, INITIALISEDSTATE@GOTOFF(%ebx)
  222     %end { of "terminate io system" }
				nop
				addl	$4, %esp
				popl	%ebx
				popl	%ebp
				ret
		.LFE199:
				.globl	ALLOWEOFEVENT
		ALLOWEOFEVENT:
		.LFB200:
  223
  224     !--------------------------------------------------------------------------
  225     %external %routine allow eof event
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
  226         eof flag = 1
				movl	$1, EOFFLAG@GOTOFF(%eax)
  227     %end { of "allow eof event" }
				nop
				popl	%ebp
				ret
		.LFE200:
				.globl	BLOCKEOFEVENT
		BLOCKEOFEVENT:
		.LFB201:
  228
  229     !--------------------------------------------------------------------------
  230     %external %routine block eof event
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
  231         eof flag = 0
				movl	$0, EOFFLAG@GOTOFF(%eax)
  232     %end { of "block eof event" }
				nop
				popl	%ebp
				ret
		.LFE201:
				.globl	GETMAXINPUTSTREAM
		GETMAXINPUTSTREAM:
		.LFB202:
  233
  234     !--------------------------------------------------------------------------
  235     %external %integer %function get max input stream
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
  236         %result = MAX INPUT STREAM
				movl	$10, %eax
  237     %end { of "get max input stream" }
				popl	%ebp
				ret
		.LFE202:
				.globl	GETMAXOUTPUTSTREAM
		GETMAXOUTPUTSTREAM:
		.LFB203:
  238
  239     !--------------------------------------------------------------------------
  240     %external %integer %function get max output stream
				pushl	%ebp
				movl	%esp, %ebp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
  241         %result = MAX OUTPUT STREAM
				movl	$10, %eax
  242     %end { of "get max output stream" }
				popl	%ebp
				ret
		.LFE203:
				.section	.rodata
				.align 4
		.LC24:
				.string	"Illegal cycle I = 0, 1, LEN - 1"
				.align 32
		.LC4:
				.byte	21
				.string	"test-in/imprtl-io.imp"
				.zero	233
		IMPTOCSTRING:
		.LFB204:
  243
  244     !--------------------------------------------------------------------------
  245     ! This converts an IMP string in-situ to become a C string
  246     ! We just need the address of the IMP string
  247     %routine imptocstring( %string(*) %name impstring )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$860, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -860(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				movl	-860(%ebp), %eax
				movl	%eax, -828(%ebp)
		.LBB266:
		.LBB267:
				movl	-828(%ebp), %eax
		.LBE267:
		.LBE266:
  248         %integer len,i
  249         %byte %integer %name src
  250
  251         %if addr( impstring ) # 0 %start
				testl	%eax, %eax
				je	.L153
				movl	-860(%ebp), %eax
				movl	%eax, -824(%ebp)
		.LBB268:
		.LBB269:
				movl	-824(%ebp), %eax
		.LBE269:
		.LBE268:
				nop
		.L136:
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L151
				call	__stack_chk_fail_local
		.L151:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE204:
				.data
				.align 32
		INPUTPROMPT:
				.byte	9
				.string	"prompt ->"
				.zero	21
				.zero	224
				.align 4
		TTYNEEDSAPROMPT:
				.long	1
				.globl	PROMPT
		PROMPT:
		.LFB205:
  252             ! Find the length of the IMP format string
  253             len = length( impstring )
				movzbl	(%eax), %eax
				movzbl	%al, %eax
				movl	%eax, -844(%ebp)
		.LBB270:
  254
  255             ! Convert to a C format string
  256             ! We do this in one step 0..len-1
  257             ! copying from impstring(i+1) to impstring(i)
  258             ! lastly, store 0 in impstring(len)
  259             %for i = 0,1,len - 1 %cycle
				movl	-844(%ebp), %eax
				subl	$1, %eax
				movl	%eax, -840(%ebp)
		.LBB271:
				movl	-840(%ebp), %eax
				movl	%eax, -836(%ebp)
				movl	-836(%ebp), %eax
				xorl	$1, %eax
				shrl	$31, %eax
				movzbl	%al, %eax
		.LBE271:
				testl	%eax, %eax
				je	.L138
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC24@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	.L139
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -864(%ebp)
				jmp	.L140
		.L139:
				movl	$259, -864(%ebp)
		.L140:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L141
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L142
		.L141:
		.LBB272:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE272:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L142:
				pushl	$0
				pushl	$1
				pushl	$5
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-864(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
		.L138:
				movl	$-1, -848(%ebp)
		.L143:
				movl	-848(%ebp), %eax
				cmpl	-840(%ebp), %eax
				je	.L154
				addl	$1, -848(%ebp)
				movl	-860(%ebp), %eax
				movl	%eax, -808(%ebp)
		.LBB273:
		.LBB274:
				movl	-808(%ebp), %edx
		.LBE274:
		.LBE273:
				nop
		.L145:
				movl	-860(%ebp), %eax
				movl	%eax, -804(%ebp)
				movl	-844(%ebp), %eax
				movl	%eax, -800(%ebp)
		.LBE270:
		.LBB279:
		.LBB280:
				movl	-804(%ebp), %edx
				movl	-800(%ebp), %eax
				addl	%edx, %eax
		.LBE280:
		.LBE279:
  260                 src == byteinteger( addr( impstring ) + i + 1)
				movl	-848(%ebp), %eax
				addl	%edx, %eax
				addl	$1, %eax
				movl	%eax, -812(%ebp)
		.LBB275:
		.LBB276:
				movl	-812(%ebp), %eax
		.LBE276:
		.LBE275:
				movl	%eax, -832(%ebp)
				movl	-860(%ebp), %eax
				movl	%eax, -820(%ebp)
				movl	-848(%ebp), %eax
				movl	%eax, -816(%ebp)
		.LBB277:
		.LBB278:
				movl	-820(%ebp), %edx
				movl	-816(%ebp), %eax
				addl	%eax, %edx
		.LBE278:
		.LBE277:
  261                 charno( impstring, i ) = src
				movl	-832(%ebp), %eax
				movzbl	(%eax), %eax
				movb	%al, (%edx)
  262             %repeat
				jmp	.L143
		.L154:
  263             charno( impstring, len ) = 0
				movb	$0, (%eax)
  264         %finish
  265     %end { of "imp to c string" }
				jmp	.L136
		.L153:
  266
  267     !--------------------------------------------------------------------------
  268     %own %string(31) input prompt = "prompt ->"
  269     %own %integer tty needs a prompt = 1
  270
  271     !--------------------------------------------------------------------------
  272     %external %routine prompt( %string(31) s )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$300, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ebx, -300(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB281:
  273         input prompt = s
				leal	-284(%ebp), %eax
				leal	8(%ebp), %ebx
				movl	$64, %edx
				movl	%eax, %edi
				movl	%ebx, %esi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE281:
				subl	$4, %esp
				pushl	$31
				pushl	%eax
				movl	-300(%ebp), %ebx
				leal	INPUTPROMPT@GOTOFF(%ebx), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  274     %end { of "prompt" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L157
				call	__stack_chk_fail_local
		.L157:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE205:
				.globl	CURRENTPROMPT
		CURRENTPROMPT:
		.LFB206:
  275
  276     !--------------------------------------------------------------------------
  277     %external %string(31) %function current prompt
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
  278
  279         %result = input prompt
				movl	8(%ebp), %edx
				leal	INPUTPROMPT@GOTOFF(%eax), %eax
				movl	$256, %ecx
				movl	(%eax), %ebx
				movl	%ebx, (%edx)
				movl	-4(%eax,%ecx), %ebx
				movl	%ebx, -4(%edx,%ecx)
				leal	4(%edx), %ebx
				andl	$-4, %ebx
				subl	%ebx, %edx
				subl	%edx, %eax
				addl	%edx, %ecx
				andl	$-4, %ecx
				shrl	$2, %ecx
				movl	%ecx, %edx
				movl	%ebx, %edi
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
  280     %end { of "current prompt" }
				movl	8(%ebp), %eax
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE206:
				.section	.rodata
		.LC25:
				.string	""
				.align 4
		.LC26:
				.string	"Illegal cycle I = ACTUALCOUNT - 1,  -1, 0"
				.align 32
		.LC5:
				.byte	25
				.string	"READBUFFER: address(ptr)="
				.zero	229
				.align 32
		.LC6:
				.byte	25
				.string	"READBUFFER: size of(ptr)="
				.zero	229
				.align 32
		.LC7:
				.byte	25
				.string	"READBUFFER: type of(ptr)="
				.zero	229
				.align 32
		.LC8:
				.byte	25
				.string	"READBUFFER:        count="
				.zero	229
				.globl	READBUFFER
		READBUFFER:
		.LFB207:
  281
  282 !------------------------------------------------------------------------------
  283 ! Input routines
  284 !------------------------------------------------------------------------------
  285
  286     !--------------------------------------------------------------------------
  287     %external %integer %function readbuffer( %name ptr, %integer count )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$4780, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -4508(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  288         %record(impstream)%name streamX
  289         %integer i,actualcount
  290         %integer len,adr,type
  291         %integer itemsz
  292
  293         len = size of(ptr)
				movl	$12, -4488(%ebp)
				movl	-4508(%ebp), %eax
				movl	%eax, -4448(%ebp)
		.LBB282:
		.LBB283:
				movl	-4448(%ebp), %eax
		.LBE283:
		.LBE282:
  294         adr = addr(ptr)
				movl	%eax, -4484(%ebp)
  295         type = type of(ptr)
				movl	$4, -4480(%ebp)
  296
  297 %if (rtl diagnose&128 # 0) %start
  298 select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB284:
		.LBB285:
		.LBB286:
  299 print string("READBUFFER: address(ptr)=".int2ascii(adr,16,0) );  newline
				leal	-4776(%ebp), %eax
				pushl	$0
				pushl	$16
				pushl	-4484(%ebp)
				pushl	%eax
				call	_imp_INT2ASCII
				addl	$12, %esp
				leal	-284(%ebp), %eax
				leal	-4776(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				movl	%eax, -4780(%ebp)
		.LBE286:
		.LBB287:
				leal	-284(%ebp), %eax
				leal	.LC5@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %edx
		.LBE287:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-4780(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-284(%ebp), %edx
		.LBE285:
				leal	-284(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %edx
				leal	-284(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE284:
		.LBB288:
		.LBB289:
				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
		.LBE289:
		.LBE288:
		.LBB290:
		.LBB291:
				call	_imp_newline@PLT
		.LBE291:
		.LBE290:
		.LBB292:
		.LBB293:
		.LBB294:
  300 print string("READBUFFER: size of(ptr)=".int2ascii(len,16,0) );  newline
				leal	-4776(%ebp), %eax
				pushl	$0
				pushl	$16
				pushl	-4488(%ebp)
				pushl	%eax
				call	_imp_INT2ASCII
				addl	$12, %esp
				leal	-540(%ebp), %eax
				leal	-4776(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				movl	%eax, -4780(%ebp)
		.LBE294:
		.LBB295:
				leal	-540(%ebp), %eax
				leal	.LC6@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edx
		.LBE295:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-4780(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE293:
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-540(%ebp), %edx
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE292:
		.LBB296:
		.LBB297:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE297:
		.LBE296:
		.LBB298:
		.LBB299:
				call	_imp_newline@PLT
		.LBE299:
		.LBE298:
		.LBB300:
		.LBB301:
		.LBB302:
  301 print string("READBUFFER: type of(ptr)=".int2ascii(type,16,0) ); newline
				leal	-4776(%ebp), %eax
				pushl	$0
				pushl	$16
				pushl	-4480(%ebp)
				pushl	%eax
				call	_imp_INT2ASCII
				addl	$12, %esp
				leal	-796(%ebp), %eax
				leal	-4776(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				movl	%eax, -4780(%ebp)
		.LBE302:
		.LBB303:
				leal	-796(%ebp), %eax
				leal	.LC7@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %edx
		.LBE303:
				leal	-796(%ebp), %eax
				subl	$4, %esp
				pushl	-4780(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-796(%ebp), %edx
		.LBE301:
				leal	-796(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-796(%ebp), %edx
				leal	-796(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE300:
		.LBB304:
		.LBB305:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE305:
		.LBE304:
		.LBB306:
		.LBB307:
				call	_imp_newline@PLT
				movl	12(%ebp), %eax
				movl	%eax, -4444(%ebp)
				movl	$0, -4440(%ebp)
		.LBE307:
		.LBE306:
		.LBB308:
		.LBB309:
		.LBB310:
		.LBB311:
		.LBB312:
				leal	-1052(%ebp), %eax
				subl	$4, %esp
				pushl	-4440(%ebp)
				pushl	-4444(%ebp)
				pushl	%eax
				call	_imp_itos@PLT
				addl	$12, %esp
		.LBE312:
		.LBE311:
  302 print string("READBUFFER:        count=".itos(count,0) );        newline
				leal	-1308(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				movl	%eax, -4780(%ebp)
		.LBE310:
		.LBB313:
				leal	-1308(%ebp), %eax
				leal	.LC8@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %edx
		.LBE313:
				leal	-1308(%ebp), %eax
				subl	$4, %esp
				pushl	-4780(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-1308(%ebp), %edx
		.LBE309:
				leal	-1308(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-1308(%ebp), %edx
				leal	-1308(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE308:
		.LBB314:
		.LBB315:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE315:
		.LBE314:
		.LBB316:
		.LBB317:
				call	_imp_newline@PLT
		.LBE317:
		.LBE316:
		.LBB318:
		.LBB319:
				movl	$0, %eax
		.LBE319:
		.LBE318:
  303 select output( old output stream )
				subl	$12, %esp
				pushl	%eax
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.L164:
  304 %finish
  305
  306         %signal 5,5,type %unless ok read type(type)
				subl	$12, %esp
				pushl	-4480(%ebp)
				call	OKREADTYPE
				addl	$16, %esp
				testl	%eax, %eax
				jne	.L228
				leal	-3356(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L167
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -4780(%ebp)
				jmp	.L168
		.L167:
				movl	$306, -4780(%ebp)
		.L168:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L169
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-3100(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L170
		.L169:
		.LBB320:
				leal	-1564(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-4380(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE320:
				leal	-3100(%ebp), %eax
				leal	-4380(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L170:
				pushl	-4480(%ebp)
				pushl	$5
				pushl	$5
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-3356(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-4780(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-3100(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L166
		.L228:
				nop
		.L166:
  307
  308         ! assume we are reading data into a byte array (or string)
  309 !        itemsz = get item size(ptr)
  310         itemsz = len
				movl	-4488(%ebp), %eax
				movl	%eax, -4476(%ebp)
  311
  312         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L229
				call	INITIALISEIOSYSTEM
				jmp	.L172
		.L229:
				nop
		.L172:
		.LBB321:
  313
  314         ! can't select an invalid stream id (not stdin)
  315         %signal 9, 9 %unless (0 < in_current stream <= MAX INPUT STREAM)
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -4472(%ebp)
				cmpl	$0, -4472(%ebp)
				jle	.L230
				cmpl	$10, -4472(%ebp)
				jle	.L231
		.LBE321:
				jmp	.L174
		.L230:
		.LBB322:
				nop
		.L174:
		.LBE322:
				leal	-2844(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L176
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -4780(%ebp)
				jmp	.L177
		.L176:
				movl	$315, -4780(%ebp)
		.L177:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L178
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-2588(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L179
		.L178:
		.LBB323:
				leal	-1564(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-4124(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE323:
				leal	-2588(%ebp), %eax
				leal	-4124(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L179:
				pushl	$0
				pushl	$9
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2844(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-4780(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2588(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L175
		.L231:
		.LBB324:
				nop
		.L175:
		.LBE324:
  316         ! can't select a closed file
  317         streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -4468(%ebp)
  318
  319         %signal 9, 4, in_current stream %if (streamX_handle = 0)
				movl	-4468(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L232
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -4784(%ebp)
				leal	-2332(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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, -4780(%ebp)
				jmp	.L183
		.L182:
				movl	$319, -4780(%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	-2076(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L185
		.L184:
		.LBB325:
				leal	-1564(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3868(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE325:
				leal	-2076(%ebp), %eax
				leal	-3868(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L185:
				pushl	-4784(%ebp)
				pushl	$4
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2332(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-4780(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2076(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L181
		.L232:
				nop
		.L181:
				movl	-4508(%ebp), %eax
				movl	%eax, -4432(%ebp)
		.LBB326:
		.LBB327:
				movl	-4432(%ebp), %eax
				movl	%eax, -4436(%ebp)
		.LBE327:
		.LBE326:
		.LBB328:
		.LBB329:
				movl	-4436(%ebp), %edx
		.LBE329:
		.LBE328:
  320
  321         ! We actually load the buffer as an array of bytes
  322         ! We need the stream handle, count of items space, item size, buffer address
  323         ! Where, count * itemsz = size in bytes of buffer storage
  324         actualcount = readbytes( streamX_handle, count, itemsz, byteinteger( addr(ptr) ) )
				movl	-4468(%ebp), %eax
				movl	268(%eax), %eax
				pushl	%edx
				pushl	-4476(%ebp)
				pushl	12(%ebp)
				pushl	%eax
				call	READBYTES@PLT
				addl	$16, %esp
				movl	%eax, -4464(%ebp)
  325
  326         ! Now to store the read bytes into the appropriate data type variable
  327         %if (type = integer type) %start
				cmpl	$1, -4480(%ebp)
				je	.L233
				nop
		.L189:
  328         %finish %else %if (type = real type) %start
				cmpl	$2, -4480(%ebp)
				je	.L234
				nop
		.L192:
				nop
				jmp	.L223
		.L234:
  329         %finish %else %if (type = string type) %start
				cmpl	$3, -4480(%ebp)
				jne	.L235
		.LBB330:
				nop
		.L194:
				cmpl	$4, -4480(%ebp)
				je	.L239
				nop
		.L216:
				nop
				jmp	.L223
		.L239:
  330             ! If we are storing in an IMP string then we need to convert the stored buffer
  331             ! from C string format (zero start index)  to IMP string format
  332             %if (0 <= len <= 255) %start
				movl	-4488(%ebp), %eax
				movl	%eax, -4460(%ebp)
				cmpl	$0, -4460(%ebp)
				js	.L236
				cmpl	$255, -4460(%ebp)
				jg	.L237
		.LBE330:
		.LBB331:
				nop
				jmp	.L223
		.L237:
				nop
		.L196:
		.LBE352:
				jmp	.L223
		.L235:
  333                 ! It is a string!!
  334                 ! Therefore we need to move the chars from n to n+1 location
  335                 ! Thus, we can store the IMP string length in location 0 (its expected location)
  336                 ! Use actualcount as number of chars in the string
  337                 ! JDM should check that actualcount < count else buffer overflow
  338                 %for i=actualcount-1,-1,0 %cycle
				movl	-4464(%ebp), %eax
				subl	$1, %eax
				movl	%eax, -4456(%ebp)
		.LBB332:
				movl	-4456(%ebp), %eax
				negl	%eax
				movl	%eax, -4452(%ebp)
				movl	-4452(%ebp), %eax
				notl	%eax
				shrl	$31, %eax
				movzbl	%al, %eax
		.LBE332:
				testl	%eax, %eax
				je	.L198
				leal	-1820(%ebp), %eax
				subl	$8, %esp
				leal	.LC26@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	.L199
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -4780(%ebp)
				jmp	.L200
		.L199:
				movl	$338, -4780(%ebp)
		.L200:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L201
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1564(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L202
		.L201:
		.LBB333:
				leal	-1564(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3612(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE333:
				leal	-1564(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L202:
				pushl	$0
				pushl	$1
				pushl	$5
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1820(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-4780(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1564(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
		.L198:
				movl	-4456(%ebp), %eax
				addl	$1, %eax
				movl	%eax, -4492(%ebp)
		.L203:
				cmpl	$0, -4492(%ebp)
				je	.L238
				subl	$1, -4492(%ebp)
				movl	-4508(%ebp), %eax
				movl	%eax, -4400(%ebp)
		.LBB334:
		.LBB335:
				movl	-4400(%ebp), %eax
				movl	%eax, -4404(%ebp)
		.LBE335:
		.LBE334:
		.LBB336:
		.LBB337:
				movl	-4404(%ebp), %eax
				movl	%eax, -4412(%ebp)
				movl	-4492(%ebp), %eax
				movl	%eax, -4408(%ebp)
		.LBE337:
		.LBE336:
		.LBB338:
		.LBB339:
				movl	-4412(%ebp), %edx
				movl	-4408(%ebp), %eax
				leal	(%edx,%eax), %ecx
		.LBE339:
		.LBE338:
				nop
		.L205:
				movl	-4508(%ebp), %eax
				movl	%eax, -4384(%ebp)
		.LBE331:
		.LBB346:
		.LBB347:
				movl	-4384(%ebp), %eax
				movl	%eax, -4388(%ebp)
		.LBE347:
		.LBE346:
		.LBB348:
		.LBB349:
				movl	-4388(%ebp), %eax
				movl	%eax, -4396(%ebp)
				movl	$0, -4392(%ebp)
		.LBE349:
		.LBE348:
		.LBB350:
		.LBB351:
				movl	-4396(%ebp), %edx
				movl	-4392(%ebp), %eax
				addl	%edx, %eax
		.LBE351:
		.LBE350:
  339                     charno( string(addr(ptr)), i + 1 ) = charno( string(addr(ptr)), i )
				movl	-4492(%ebp), %eax
				leal	1(%eax), %edx
				movl	-4508(%ebp), %eax
				movl	%eax, -4416(%ebp)
		.LBB340:
		.LBB341:
				movl	-4416(%ebp), %eax
				movl	%eax, -4420(%ebp)
		.LBE341:
		.LBE340:
		.LBB342:
		.LBB343:
				movl	-4420(%ebp), %eax
				movl	%eax, -4428(%ebp)
				movl	%edx, -4424(%ebp)
		.LBE343:
		.LBE342:
		.LBB344:
		.LBB345:
				movl	-4428(%ebp), %edx
				movl	-4424(%ebp), %eax
				addl	%eax, %edx
		.LBE345:
		.LBE344:
				movzbl	(%ecx), %eax
				movb	%al, (%edx)
  340                 %repeat
				jmp	.L203
		.L238:
  341                 charno( string(addr(ptr)),0 ) = actualcount
				movl	-4464(%ebp), %edx
				movb	%dl, (%eax)
  342             %finish
  343         %finish %else %if (type = record type) %start
				jmp	.L223
		.L236:
		.LBB352:
  344         %finish %else %if (type = byte type) %start
				cmpl	$5, -4480(%ebp)
				je	.L240
				nop
		.L218:
				nop
				jmp	.L223
		.L240:
  345         %finish %else %if (type = short type) %start
				cmpl	$6, -4480(%ebp)
				je	.L241
				nop
		.L220:
				nop
				jmp	.L223
		.L241:
  346         %finish %else %if (type = long type) %start
				cmpl	$7, -4480(%ebp)
				je	.L242
				nop
		.L222:
				nop
				jmp	.L223
		.L242:
  347         %finish %else %if (type = long real type) %start
				cmpl	$8, -4480(%ebp)
				nop
		.L223:
  348         %finish
				jmp	.L223
		.L190:
		.L233:
  349
  350         %result = actualcount
				movl	-4464(%ebp), %eax
  351     %end { of "read buffer" }
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L225
				call	__stack_chk_fail_local
		.L225:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE207:
				.globl	INPUTSTREAM
		INPUTSTREAM:
		.LFB208:
  352
  353     !--------------------------------------------------------------------------
  354     %external %integer %function input stream
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
  355         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L247
				call	INITIALISEIOSYSTEM
				jmp	.L245
		.L247:
				nop
		.L245:
  356
  357         %result = in_current stream
				movl	IN@GOTOFF(%ebx), %eax
  358     %end { of "input stream" }
				addl	$4, %esp
				popl	%ebx
				popl	%ebp
				ret
		.LFE208:
				.globl	RESETINPUT
		RESETINPUT:
		.LFB209:
  359
  360     !--------------------------------------------------------------------------
  361     %external %routine reset input
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  362         %record(impstream)%name streamX
  363
  364         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L266
				call	INITIALISEIOSYSTEM
				jmp	.L250
		.L266:
				nop
		.L250:
		.LBB353:
  365
  366         ! can't select an invalid stream id (not stdin)
  367         %signal 9, 9 %unless (0 < in_current stream <= MAX INPUT STREAM)
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				jle	.L267
				cmpl	$10, -1572(%ebp)
				jle	.L268
		.LBE353:
				jmp	.L252
		.L267:
		.LBB354:
				nop
		.L252:
		.LBE354:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L254
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L255
		.L254:
				movl	$367, -1580(%ebp)
		.L255:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L256
				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	.L257
		.L256:
		.LBB355:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE355:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L257:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1580(%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	.L253
		.L268:
		.LBB356:
				nop
		.L253:
		.LBE356:
  368         ! can't select a closed file
  369         streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -1568(%ebp)
  370
  371         %signal 9, 4, in_current stream %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L269
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L260
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L261
		.L260:
				movl	$371, -1580(%ebp)
		.L261:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L262
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L263
		.L262:
		.LBB357:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE357:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L263:
				pushl	-1584(%ebp)
				pushl	$4
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L259
		.L269:
				nop
		.L259:
  372
  373         file rewind( streamX_handle )
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	FILEREWIND@PLT
				addl	$16, %esp
  374     %end { of "reset input" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L265
				call	__stack_chk_fail_local
		.L265:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE209:
				.globl	SEEKINPUT
		SEEKINPUT:
		.LFB210:
  375
  376     !--------------------------------------------------------------------------
  377     %external %routine seek input( %integer displacement, pos )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  378         %record(impstream)%name streamX
  379
  380         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L291
				call	INITIALISEIOSYSTEM
				jmp	.L272
		.L291:
				nop
		.L272:
		.LBB358:
  381
  382         ! can't select an invalid stream id (not stdin)
  383         %signal 9, 9 %unless (0 < in_current stream <= MAX INPUT STREAM)
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1576(%ebp)
				cmpl	$0, -1576(%ebp)
				jle	.L292
				cmpl	$10, -1576(%ebp)
				jle	.L293
		.LBE358:
				jmp	.L274
		.L292:
		.LBB359:
				nop
		.L274:
		.LBE359:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L276
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L277
		.L276:
				movl	$383, -1580(%ebp)
		.L277:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L278
				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	.L279
		.L278:
		.LBB360:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE360:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L279:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1580(%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	.L275
		.L293:
		.LBB361:
				nop
		.L275:
		.LBE361:
  384         ! can't select a closed file
  385         streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -1572(%ebp)
  386
  387         %signal 9, 4, in_current stream %if (streamX_handle = 0)
				movl	-1572(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L294
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L282
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L283
		.L282:
				movl	$387, -1580(%ebp)
		.L283:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L284
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L285
		.L284:
		.LBB362:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE362:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L285:
				pushl	-1584(%ebp)
				pushl	$4
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L281
		.L294:
				nop
		.L281:
		.LBB363:
  388
  389         %if (0 <= pos <= 2) %then file seek( streamX_handle, displacement, pos )
				movl	12(%ebp), %eax
				movl	%eax, -1568(%ebp)
				cmpl	$0, -1568(%ebp)
				js	.L295
				cmpl	$2, -1568(%ebp)
				jg	.L296
		.LBE363:
				movl	-1572(%ebp), %eax
				movl	268(%eax), %eax
				subl	$4, %esp
				pushl	12(%ebp)
				pushl	8(%ebp)
				pushl	%eax
				call	FILESEEK@PLT
				addl	$16, %esp
				nop
				jmp	.L287
		.L296:
				nop
		.L287:
		.LBE364:
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L290
				call	__stack_chk_fail_local
		.L290:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE210:
				.globl	TELLINPUT
		TELLINPUT:
		.LFB211:
  390     %end { of "seek input" }
				jmp	.L287
		.L295:
		.LBB364:
  391
  392     !--------------------------------------------------------------------------
  393     %external %integer %function tell input
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  394         %record(impstream)%name streamX
  395
  396         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L315
				call	INITIALISEIOSYSTEM
				jmp	.L299
		.L315:
				nop
		.L299:
		.LBB365:
  397
  398         ! can't select an invalid stream id (not stdin)
  399         %signal 9, 9 %unless (0 < in_current stream <= MAX INPUT STREAM)
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				jle	.L316
				cmpl	$10, -1572(%ebp)
				jle	.L317
		.LBE365:
				jmp	.L301
		.L316:
		.LBB366:
				nop
		.L301:
		.LBE366:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L303
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L304
		.L303:
				movl	$399, -1580(%ebp)
		.L304:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L305
				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	.L306
		.L305:
		.LBB367:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE367:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L306:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1580(%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	.L302
		.L317:
		.LBB368:
				nop
		.L302:
		.LBE368:
  400         ! can't select a closed file
  401         streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -1568(%ebp)
  402
  403         %signal 9, 4, in_current stream %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L318
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L309
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L310
		.L309:
				movl	$403, -1580(%ebp)
		.L310:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L311
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L312
		.L311:
		.LBB369:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE369:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L312:
				pushl	-1584(%ebp)
				pushl	$4
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L308
		.L318:
				nop
		.L308:
  404
  405         %result = tell( streamX_handle )
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	TELL@PLT
				addl	$16, %esp
  406     %end { of "tell input" }
				movl	-28(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L314
				call	__stack_chk_fail_local
		.L314:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE211:
				.globl	INPUTNAME
		INPUTNAME:
		.LFB212:
  407
  408     !--------------------------------------------------------------------------
  409     %external %string(255) %function input name
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1836, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -1836(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  410         %record(impstream)%name streamX
  411         %string(255) name
  412
  413         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L337
				call	INITIALISEIOSYSTEM
				jmp	.L321
		.L337:
				nop
		.L321:
		.LBB370:
  414
  415         ! can't select an invalid stream id
  416         %signal 9, 9 %unless (0 <= in_current stream <= MAX INPUT STREAM)
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1828(%ebp)
				cmpl	$0, -1828(%ebp)
				js	.L338
				cmpl	$10, -1828(%ebp)
				jle	.L339
		.LBE370:
				jmp	.L323
		.L338:
		.LBB371:
				nop
		.L323:
		.LBE371:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L325
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1840(%ebp)
				jmp	.L326
		.L325:
				movl	$416, -1840(%ebp)
		.L326:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L327
				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	.L328
		.L327:
		.LBB372:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE372:
				leal	-796(%ebp), %eax
				leal	-1820(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L328:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1840(%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	.L324
		.L339:
		.LBB373:
				nop
		.L324:
		.LBE373:
  417         ! can't select a closed file
  418         streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -1824(%ebp)
  419
  420         %signal 9, 4, in_current stream %if (streamX_handle = 0)
				movl	-1824(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L340
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1844(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L331
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1840(%ebp)
				jmp	.L332
		.L331:
				movl	$420, -1840(%ebp)
		.L332:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L333
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L334
		.L333:
		.LBB374:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE374:
				leal	-284(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L334:
				pushl	-1844(%ebp)
				pushl	$4
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1840(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L330
		.L340:
				nop
		.L330:
		.LBB375:
  421
  422         name = streamX_file name
				movl	-1824(%ebp), %edx
				leal	-1308(%ebp), %eax
				addl	$12, %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
		.LBE375:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-1308(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  423
  424         %result = name
				movl	-1836(%ebp), %eax
				movl	%eax, %edx
				leal	-1308(%ebp), %eax
				movl	$256, %ecx
				movl	(%eax), %ebx
				movl	%ebx, (%edx)
				movl	-4(%eax,%ecx), %ebx
				movl	%ebx, -4(%edx,%ecx)
				leal	4(%edx), %ebx
				andl	$-4, %ebx
				subl	%ebx, %edx
				subl	%edx, %eax
				addl	%edx, %ecx
				andl	$-4, %ecx
				shrl	$2, %ecx
				movl	%ecx, %edx
				movl	%ebx, %edi
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
  425     %end { of "input name" }
				movl	-1836(%ebp), %eax
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L336
				call	__stack_chk_fail_local
		.L336:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE212:
				.globl	SELECTINPUT
		SELECTINPUT:
		.LFB213:
  426
  427     !--------------------------------------------------------------------------
  428     %external %routine select input( %integer stream id )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  429         %record(impstream)%name streamX
  430
  431         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L359
				call	INITIALISEIOSYSTEM
				jmp	.L343
		.L359:
				nop
		.L343:
		.LBB376:
  432
  433         ! can't select an invalid stream id
  434         %signal 9, 9 %unless (0 <= stream id <= MAX INPUT STREAM)
				movl	8(%ebp), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				js	.L360
				cmpl	$10, -1572(%ebp)
				jle	.L361
		.LBE376:
				jmp	.L345
		.L360:
		.LBB377:
				nop
		.L345:
		.LBE377:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L347
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L348
		.L347:
				movl	$434, -1580(%ebp)
		.L348:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L349
				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	.L350
		.L349:
		.LBB378:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE378:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L350:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1580(%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	.L346
		.L361:
		.LBB379:
				nop
		.L346:
		.LBE379:
  435         ! can't select a closed file
  436         streamX == in_streams( stream id )
				movl	8(%ebp), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -1568(%ebp)
  437
  438         %signal 9, 4, stream id %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L362
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L353
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L354
		.L353:
				movl	$438, -1580(%ebp)
		.L354:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L355
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L356
		.L355:
		.LBB380:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE380:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L356:
				pushl	8(%ebp)
				pushl	$4
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L352
		.L362:
				nop
		.L352:
  439
  440         in_current stream = stream id
				movl	8(%ebp), %eax
				movl	%eax, IN@GOTOFF(%ebx)
  441     %end { of "select input" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L358
				call	__stack_chk_fail_local
		.L358:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE213:
				.globl	CLOSEINPUT
		CLOSEINPUT:
		.LFB214:
  442
  443     !--------------------------------------------------------------------------
  444     %external %routine close input
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$20, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
  445         %record(impstream)%name streamX
  446
  447         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L372
				call	INITIALISEIOSYSTEM
				jmp	.L365
		.L372:
				nop
		.L365:
		.LBB381:
  448
  449         ! can't close terminal input
  450         ! can't close an already closed file
  451         %if (0 < in_current stream <= MAX INPUT STREAM ) %start
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -16(%ebp)
				cmpl	$0, -16(%ebp)
				jle	.L373
				cmpl	$10, -16(%ebp)
				jg	.L374
		.LBE381:
				nop
				jmp	.L370
		.L374:
				nop
				jmp	.L370
		.L375:
		.LBE382:
  452             streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -12(%ebp)
  453
  454             %if (streamX_handle # 0) %start
				movl	-12(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				je	.L375
				nop
		.L370:
				nop
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE214:
				.section	.rodata
				.align 32
		.LC9:
				.byte	1
				.string	"r"
				.zero	253
				.align 32
		.LC10:
				.byte	1
				.string	")"
				.zero	253
				.align 32
		.LC11:
				.byte	13
				.string	"' for stream("
				.zero	241
				.align 32
		.LC12:
				.byte	36
				.string	"OPENINPUT: unable to open filename='"
				.zero	218
				.globl	OPENINPUT
		OPENINPUT:
		.LFB215:
  455                 close( streamX_handle )
				movl	-12(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	CLOSE@PLT
				addl	$16, %esp
  456                 initialise stream( streamX )
				subl	$12, %esp
				pushl	-12(%ebp)
				call	INITIALISESTREAM
				addl	$16, %esp
  457             %finish
  458         %finish
  459     %end { of "close input" }
				jmp	.L370
		.L367:
		.L373:
		.LBB382:
  460
  461     !--------------------------------------------------------------------------
  462     %external %routine open input( %integer stream  id, %string(255) file name )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$3404, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  463         %record(impstream)%name streamX
  464         %integer handle
  465         %integer flags = IS INPUT ! IS TEXT
				movl	$0, -3388(%ebp)
		.LBB383:
		.LBB384:
  466         %string(4) mode = "r"
				leal	-284(%ebp), %eax
				leal	.LC9@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3100(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE384:
				leal	-284(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE383:
				subl	$4, %esp
				pushl	$4
				pushl	%eax
				leal	-3356(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  467         %string(255) xxx
  468         %string(4) yyy
  469
  470         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L400
				call	INITIALISEIOSYSTEM
				jmp	.L378
		.L400:
				nop
		.L378:
		.LBB385:
  471
  472         ! Error out if streamid not in legal range
  473         %signal 9, 9, stream id %unless (0 < stream id <= MAX INPUT STREAM )
				movl	8(%ebp), %eax
				movl	%eax, -3384(%ebp)
				cmpl	$0, -3384(%ebp)
				jle	.L401
				cmpl	$10, -3384(%ebp)
				jle	.L402
		.LBE385:
				jmp	.L380
		.L401:
		.LBB386:
				nop
		.L380:
		.LBE386:
				leal	-1564(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L382
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3404(%ebp)
				jmp	.L383
		.L382:
				movl	$473, -3404(%ebp)
		.L383:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L384
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1308(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L385
		.L384:
		.LBB387:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2332(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE387:
				leal	-1308(%ebp), %eax
				leal	-2332(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L385:
				pushl	8(%ebp)
				pushl	$9
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1564(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3404(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L381
		.L402:
		.LBB388:
				nop
		.L381:
		.LBE388:
  474
  475         ! If file not open
  476         streamX == in_streams( stream id )
				movl	8(%ebp), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -3380(%ebp)
  477
  478         %if (streamX_handle = 0) %start
				movl	-3380(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L403
		.LBB389:
				nop
		.L387:
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L399
				call	__stack_chk_fail_local
		.L399:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE215:
				.section	.rodata
				.align 32
		.LC13:
				.byte	2
				.string	"rb"
				.zero	252
				.align 32
		.LC14:
				.byte	42
				.string	"OPENBINARYINPUT: unable to open filename='"
				.zero	212
				.globl	OPENBINARYINPUT
		OPENBINARYINPUT:
		.LFB216:
  479
  480             xxx = filename
				leal	-284(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE389:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-2844(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB390:
  481             yyy = mode
				leal	-284(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE390:
				subl	$4, %esp
				pushl	$4
				pushl	%eax
				leal	-2588(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  482
  483             ! Tweak xxx,yyy to be C strings
  484             ! Why? because we are sending them to a C function expecting C strings
  485             imptocstring( xxx )
				subl	$12, %esp
				leal	-2844(%ebp), %eax
				pushl	%eax
				call	IMPTOCSTRING
				addl	$16, %esp
  486             imptocstring( yyy )
				subl	$12, %esp
				leal	-2588(%ebp), %eax
				pushl	%eax
				call	IMPTOCSTRING
				addl	$16, %esp
				leal	-2844(%ebp), %eax
				movl	%eax, -3368(%ebp)
		.LBB391:
		.LBB392:
				movl	-3368(%ebp), %eax
		.LBE392:
		.LBE391:
  487
  488             handle = openfile( addr(yyy), addr(xxx) )
				movl	%eax, %edx
				leal	-2588(%ebp), %eax
				movl	%eax, -3372(%ebp)
		.LBB393:
		.LBB394:
				movl	-3372(%ebp), %eax
		.LBE394:
		.LBE393:
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	OPENFILE@PLT
				addl	$16, %esp
				movl	%eax, -3376(%ebp)
  489
  490             %if (handle = 0) %start
				cmpl	$0, -3376(%ebp)
				jne	.L404
				nop
		.L391:
  491
  492                 select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB395:
		.LBB396:
		.LBB397:
  493                 print string("OPENINPUT: unable to open filename='".filename."' for stream(".itos(stream id,0).")")
				leal	-284(%ebp), %eax
				leal	.LC10@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				movl	%eax, -3404(%ebp)
				movl	8(%ebp), %eax
				movl	%eax, -3364(%ebp)
				movl	$0, -3360(%ebp)
		.LBE397:
		.LBB398:
		.LBB399:
		.LBB400:
		.LBB401:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-3360(%ebp)
				pushl	-3364(%ebp)
				pushl	%eax
				call	_imp_itos@PLT
				addl	$12, %esp
		.LBE401:
		.LBE400:
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %esi
				movl	%esi, -3408(%ebp)
		.LBE399:
		.LBB402:
		.LBB403:
				leal	-540(%ebp), %eax
				leal	.LC11@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edi
				movl	%edi, -3412(%ebp)
		.LBE403:
		.LBB404:
		.LBB405:
				leal	-540(%ebp), %eax
				leal	.LC12@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edx
		.LBE405:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				leal	12(%ebp), %ecx
				pushl	%ecx
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE404:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3412(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE402:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3408(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE398:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3404(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE396:
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-540(%ebp), %edx
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE395:
		.LBB406:
		.LBB407:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE407:
		.LBE406:
		.LBB408:
		.LBB409:
				call	_imp_newline@PLT
		.LBE409:
		.LBE408:
		.LBB410:
		.LBB411:
				movl	$0, %eax
		.LBE411:
		.LBE410:
  494                 newline
  495                 select output( old output stream )
				subl	$12, %esp
				pushl	%eax
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
  496
  497                 %signal 9, 2, get error
				call	GETERROR@PLT
				movl	%eax, -3408(%ebp)
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L394
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3404(%ebp)
				jmp	.L395
		.L394:
				movl	$497, -3404(%ebp)
		.L395:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L396
				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	.L397
		.L396:
		.LBB412:
				leal	-796(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2076(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE412:
				leal	-796(%ebp), %eax
				leal	-2076(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L397:
				pushl	-3408(%ebp)
				pushl	$2
				pushl	$9
				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	-3404(%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	.L391
		.L404:
  498             %else
  499                 streamX == in_streams( stream id )
				movl	8(%ebp), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -3380(%ebp)
  500
  501                 streamX_handle = handle
				movl	-3380(%ebp), %eax
				movl	-3376(%ebp), %edx
				movl	%edx, 268(%eax)
		.LBB413:
  502                 streamX_file name = file name
				leal	-1820(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
		.LBE413:
				movl	-3380(%ebp), %edx
				addl	$12, %edx
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				pushl	%edx
				call	_imp_strncpy@PLT
				addl	$16, %esp
  503                 streamX_flags = flags
				movl	-3380(%ebp), %eax
				movl	-3388(%ebp), %edx
				movl	%edx, 8(%eax)
  504             %finish
  505         %finish
  506     %end { of "open input" }
				jmp	.L387
		.L403:
  507
  508     !--------------------------------------------------------------------------
  509     %external %routine open binary input( %integer stream  id, %string(255) file name )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$3404, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  510         %record(impstream)%name streamX
  511         %integer handle
  512         %integer flags = IS INPUT ! IS BINARY
				movl	$2, -3388(%ebp)
		.LBB414:
		.LBB415:
  513         %string(4) mode = "rb"
				leal	-284(%ebp), %eax
				leal	.LC13@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3100(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE415:
				leal	-284(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE414:
				subl	$4, %esp
				pushl	$4
				pushl	%eax
				leal	-3356(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  514         %string(255) xxx
  515         %string(4) yyy
  516
  517         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L429
				call	INITIALISEIOSYSTEM
				jmp	.L407
		.L429:
				nop
		.L407:
		.LBB416:
  518
  519         %signal 9, 9, stream id %unless (0 < stream id <= MAX INPUT STREAM )
				movl	8(%ebp), %eax
				movl	%eax, -3384(%ebp)
				cmpl	$0, -3384(%ebp)
				jle	.L430
				cmpl	$10, -3384(%ebp)
				jle	.L431
		.LBE416:
				jmp	.L409
		.L430:
		.LBB417:
				nop
		.L409:
		.LBE417:
				leal	-1564(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L411
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3404(%ebp)
				jmp	.L412
		.L411:
				movl	$519, -3404(%ebp)
		.L412:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L413
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1308(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L414
		.L413:
		.LBB418:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2332(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE418:
				leal	-1308(%ebp), %eax
				leal	-2332(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L414:
				pushl	8(%ebp)
				pushl	$9
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1564(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3404(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L410
		.L431:
		.LBB419:
				nop
		.L410:
		.LBE419:
  520
  521         ! If file not open
  522         streamX == in_streams( stream id )
				movl	8(%ebp), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -3380(%ebp)
  523
  524         %if (streamX_handle = 0) %start
				movl	-3380(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L432
		.LBB420:
				nop
		.L416:
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L428
				call	__stack_chk_fail_local
		.L428:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE216:
				.section	.rodata
				.align 4
		.LC27:
				.string	"Illegal cycle I = 1, 1, *_imp_LENGTH((_imp_string255 *)/*p*//*?*/&INPUTPROMPT)"
				.globl	NEXTSYMBOL
		NEXTSYMBOL:
		.LFB217:
  525
  526             xxx = filename
				leal	-284(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE420:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-2844(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB421:
  527             yyy = mode
				leal	-284(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE421:
				subl	$4, %esp
				pushl	$4
				pushl	%eax
				leal	-2588(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  528
  529             ! Tweak xxx,yyy to be C strings
  530             ! Why? because we are sending them to a C function expecting C strings
  531             imptocstring( xxx )
				subl	$12, %esp
				leal	-2844(%ebp), %eax
				pushl	%eax
				call	IMPTOCSTRING
				addl	$16, %esp
  532             imptocstring( yyy )
				subl	$12, %esp
				leal	-2588(%ebp), %eax
				pushl	%eax
				call	IMPTOCSTRING
				addl	$16, %esp
				leal	-2844(%ebp), %eax
				movl	%eax, -3368(%ebp)
		.LBB422:
		.LBB423:
				movl	-3368(%ebp), %eax
		.LBE423:
		.LBE422:
  533
  534             handle = openfile( addr(yyy), addr(xxx) )
				movl	%eax, %edx
				leal	-2588(%ebp), %eax
				movl	%eax, -3372(%ebp)
		.LBB424:
		.LBB425:
				movl	-3372(%ebp), %eax
		.LBE425:
		.LBE424:
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	OPENFILE@PLT
				addl	$16, %esp
				movl	%eax, -3376(%ebp)
  535
  536             %if (handle = 0) %start
				cmpl	$0, -3376(%ebp)
				jne	.L433
				nop
		.L420:
  537
  538                 select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB426:
		.LBB427:
		.LBB428:
  539                 print string("OPENBINARYINPUT: unable to open filename='".filename."' for stream(".itos(stream id,0).")")
				leal	-284(%ebp), %eax
				leal	.LC10@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				movl	%eax, -3404(%ebp)
				movl	8(%ebp), %eax
				movl	%eax, -3364(%ebp)
				movl	$0, -3360(%ebp)
		.LBE428:
		.LBB429:
		.LBB430:
		.LBB431:
		.LBB432:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-3360(%ebp)
				pushl	-3364(%ebp)
				pushl	%eax
				call	_imp_itos@PLT
				addl	$12, %esp
		.LBE432:
		.LBE431:
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %esi
				movl	%esi, -3408(%ebp)
		.LBE430:
		.LBB433:
		.LBB434:
				leal	-540(%ebp), %eax
				leal	.LC11@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edi
				movl	%edi, -3412(%ebp)
		.LBE434:
		.LBB435:
		.LBB436:
				leal	-540(%ebp), %eax
				leal	.LC14@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edx
		.LBE436:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				leal	12(%ebp), %ecx
				pushl	%ecx
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE435:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3412(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE433:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3408(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE429:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3404(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE427:
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-540(%ebp), %edx
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE426:
		.LBB437:
		.LBB438:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE438:
		.LBE437:
		.LBB439:
		.LBB440:
				call	_imp_newline@PLT
		.LBE440:
		.LBE439:
		.LBB441:
		.LBB442:
				movl	$0, %eax
		.LBE442:
		.LBE441:
  540                 newline
  541                 select output( old output stream )
				subl	$12, %esp
				pushl	%eax
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
  542
  543                 %signal 9, 2, get error
				call	GETERROR@PLT
				movl	%eax, -3408(%ebp)
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L423
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3404(%ebp)
				jmp	.L424
		.L423:
				movl	$543, -3404(%ebp)
		.L424:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L425
				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	.L426
		.L425:
		.LBB443:
				leal	-796(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2076(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE443:
				leal	-796(%ebp), %eax
				leal	-2076(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L426:
				pushl	-3408(%ebp)
				pushl	$2
				pushl	$9
				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	-3404(%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	.L420
		.L433:
  544             %else
  545                 streamX == in_streams( stream id )
				movl	8(%ebp), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -3380(%ebp)
  546
  547                 streamX_handle = handle
				movl	-3380(%ebp), %eax
				movl	-3376(%ebp), %edx
				movl	%edx, 268(%eax)
		.LBB444:
  548                 streamX_file name = file name
				leal	-1820(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
		.LBE444:
				movl	-3380(%ebp), %edx
				addl	$12, %edx
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				pushl	%edx
				call	_imp_strncpy@PLT
				addl	$16, %esp
  549                 streamX_flags = flags
				movl	-3380(%ebp), %eax
				movl	-3388(%ebp), %edx
				movl	%edx, 8(%eax)
  550             %finish
  551         %finish
  552     %end { of "open binary input" }
				jmp	.L416
		.L432:
  553
  554     !--------------------------------------------------------------------------
  555     %external %integer %function next symbol
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$3148, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  556         %record(impstream)%name streamX
  557         %integer i
  558
  559         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L478
				call	INITIALISEIOSYSTEM
				jmp	.L436
		.L478:
				nop
		.L436:
		.LBB445:
  560
  561         %signal 9, 9, in_current stream %unless (0 <= in_current stream <= MAX INPUT STREAM )
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -3128(%ebp)
				cmpl	$0, -3128(%ebp)
				js	.L479
				cmpl	$10, -3128(%ebp)
				jle	.L480
		.LBE445:
				jmp	.L438
		.L479:
		.LBB446:
				nop
		.L438:
		.LBE446:
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -3152(%ebp)
				leal	-2076(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L440
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3148(%ebp)
				jmp	.L441
		.L440:
				movl	$561, -3148(%ebp)
		.L441:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L442
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1820(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L443
		.L442:
		.LBB447:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3100(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE447:
				leal	-1820(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L443:
				pushl	-3152(%ebp)
				pushl	$9
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2076(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3148(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1820(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L439
		.L480:
		.LBB448:
				nop
		.L439:
		.LBE448:
  562
  563         streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -3124(%ebp)
  564
  565         %signal 9, 4, in_current stream %if (streamX_handle = 0)
				movl	-3124(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L481
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -3152(%ebp)
				leal	-1564(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L446
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3148(%ebp)
				jmp	.L447
		.L446:
				movl	$565, -3148(%ebp)
		.L447:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L448
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1308(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L449
		.L448:
		.LBB449:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2844(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE449:
				leal	-1308(%ebp), %eax
				leal	-2844(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L449:
				pushl	-3152(%ebp)
				pushl	$4
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1564(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3148(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L445
		.L481:
				nop
		.L445:
  566
  567         ! Check to see if we already have a lookahead char (actually integer)
  568         %if (streamX_empty = 1) %start
				movl	-3124(%ebp), %eax
				movl	(%eax), %eax
				cmpl	$1, %eax
				jne	.L482
				nop
				jmp	.L475
		.L488:
				nop
				jmp	.L475
		.L489:
				nop
		.L475:
  569             %if (in_current stream = 0) %start
				movl	IN@GOTOFF(%ebx), %eax
				testl	%eax, %eax
				jne	.L483
				nop
				jmp	.L465
		.L484:
  570                 %if (tty needs a prompt # 0) %start
				movl	TTYNEEDSAPROMPT@GOTOFF(%ebx), %eax
				testl	%eax, %eax
				je	.L484
				nop
				jmp	.L465
		.L485:
		.LBB457:
  571                     tty needs a prompt = 0
				movl	$0, TTYNEEDSAPROMPT@GOTOFF(%ebx)
				leal	INPUTPROMPT@GOTOFF(%ebx), %eax
				movl	%eax, -3112(%ebp)
		.LBB450:
		.LBB451:
		.LBB452:
				movl	-3112(%ebp), %eax
		.LBE452:
		.LBE451:
  572
  573                     %for i = 1,1,length( input prompt ) %cycle
				movzbl	(%eax), %eax
				movzbl	%al, %eax
				movl	%eax, -3120(%ebp)
		.LBB453:
				movl	-3120(%ebp), %eax
				subl	$1, %eax
				movl	%eax, -3116(%ebp)
				movl	-3116(%ebp), %eax
				xorl	$1, %eax
				shrl	$31, %eax
				movzbl	%al, %eax
		.LBE453:
				testl	%eax, %eax
				je	.L456
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC27@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	.L457
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3148(%ebp)
				jmp	.L458
		.L457:
				movl	$573, -3148(%ebp)
		.L458:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L459
				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	.L460
		.L459:
		.LBB454:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2588(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE454:
				leal	-796(%ebp), %eax
				leal	-2588(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L460:
				pushl	$0
				pushl	$1
				pushl	$5
				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	-3148(%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
		.L456:
				movl	$0, -3132(%ebp)
		.L461:
				movl	-3132(%ebp), %eax
				cmpl	-3120(%ebp), %eax
				je	.L485
				addl	$1, -3132(%ebp)
				leal	INPUTPROMPT@GOTOFF(%ebx), %eax
				movl	%eax, -3108(%ebp)
				movl	-3132(%ebp), %eax
				movl	%eax, -3104(%ebp)
		.LBB455:
		.LBB456:
				movl	-3108(%ebp), %edx
				movl	-3104(%ebp), %eax
				addl	%edx, %eax
		.LBE456:
		.LBE455:
				nop
		.L465:
		.LBE457:
  574                         put char( error stream_handle, charno( input prompt, i ) )
				movzbl	(%eax), %eax
				movzbl	%al, %edx
				movl	268+ERRORSTREAM@GOTOFF(%ebx), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	PUTCHAR@PLT
				addl	$16, %esp
  575                     %repeat
				jmp	.L461
		.L453:
		.L464:
		.L483:
		.LBE450:
  576
  577                 %finish
  578             %finish
  579
  580             ! remember ch for future use
  581             streamX_lookahead = get char ( streamX_handle )
				movl	-3124(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	GETCHAR@PLT
				addl	$16, %esp
				movl	%eax, %edx
				movl	-3124(%ebp), %eax
				movl	%edx, 4(%eax)
  582             streamX_empty = 0
				movl	-3124(%ebp), %eax
				movl	$0, (%eax)
  583
  584             ! Are we attempting to read after the end of file
  585             %signal 9,0, in_current stream %if (eof flag = 1) %and (streamX_lookahead < 0)
				movl	EOFFLAG@GOTOFF(%ebx), %eax
				cmpl	$1, %eax
				jne	.L486
				movl	-3124(%ebp), %eax
				movl	4(%eax), %eax
				testl	%eax, %eax
				jns	.L487
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -3152(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L469
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3148(%ebp)
				jmp	.L470
		.L469:
				movl	$585, -3148(%ebp)
		.L470:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L471
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L472
		.L471:
		.LBB458:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2332(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE458:
				leal	-284(%ebp), %eax
				leal	-2332(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L472:
				pushl	-3152(%ebp)
				pushl	$0
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3148(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L467
		.L486:
				nop
				jmp	.L467
		.L487:
				nop
		.L467:
  586
  587             ! NL => we should prompt next time
  588             %if (in_current stream = 0) %and (streamX_lookahead = nl) %then tty needs a prompt = 1
				movl	IN@GOTOFF(%ebx), %eax
				testl	%eax, %eax
				jne	.L488
				movl	-3124(%ebp), %eax
				movl	4(%eax), %eax
				cmpl	$10, %eax
				jne	.L489
				movl	$1, TTYNEEDSAPROMPT@GOTOFF(%ebx)
				jmp	.L475
		.L451:
		.L482:
  589
  590         %finish
  591
  592         streamX_empty = 0
				movl	-3124(%ebp), %eax
				movl	$0, (%eax)
  593         %result = streamX_lookahead
				movl	-3124(%ebp), %eax
				movl	4(%eax), %eax
  594     %end { of "next symbol" }
				movl	-28(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L477
				call	__stack_chk_fail_local
		.L477:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE217:
				.globl	READSYMBOL
		READSYMBOL:
		.LFB218:
  595
  596     !--------------------------------------------------------------------------
  597     %external %routine read symbol( %integer %name ch )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -1580(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  598         %record(impstream)%name streamX
  599         %integer type
  600
  601         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L519
				call	INITIALISEIOSYSTEM
				jmp	.L492
		.L519:
				nop
		.L492:
  602
  603         streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -1572(%ebp)
  604         streamX_lookahead = next symbol
				call	NEXTSYMBOL
				movl	%eax, %edx
				movl	-1572(%ebp), %eax
				movl	%edx, 4(%eax)
  605
  606         ! Are we attempting to read after the end of file
  607         %signal 9,1, in_current stream %if (eof flag = 1) %and (streamX_lookahead < 0)
				movl	EOFFLAG@GOTOFF(%ebx), %eax
				cmpl	$1, %eax
				jne	.L520
				movl	-1572(%ebp), %eax
				movl	4(%eax), %eax
				testl	%eax, %eax
				jns	.L521
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -1588(%ebp)
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L496
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1584(%ebp)
				jmp	.L497
		.L496:
				movl	$607, -1584(%ebp)
		.L497:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L498
				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	.L499
		.L498:
		.LBB459:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE459:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L499:
				pushl	-1588(%ebp)
				pushl	$1
				pushl	$9
				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	-1584(%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	.L494
		.L520:
				nop
				jmp	.L494
		.L521:
				nop
		.L494:
  608
  609         ! indicate we need to read the next char in the input stream
  610         ! on the next call to either next symbol, read symbol
  611         streamX_empty = 1
				movl	-1572(%ebp), %eax
				movl	$1, (%eax)
  612
  613         type = typeof( ch )
				movl	$1, -1568(%ebp)
  614
  615         %if (type = integer type) %start
				cmpl	$1, -1568(%ebp)
				jne	.L522
				nop
		.L501:
				cmpl	$5, -1568(%ebp)
				jne	.L523
  616             ch = streamX_lookahead
				movl	-1572(%ebp), %eax
				movl	4(%eax), %edx
				movl	-1580(%ebp), %eax
				movl	%edx, (%eax)
  617         %finish %else %if (type = byte type) %start
				jmp	.L502
		.L522:
				nop
		.L504:
				cmpl	$6, -1568(%ebp)
				jne	.L524
  618             ch = streamX_lookahead&16_ff
				movl	-1572(%ebp), %eax
				movl	4(%eax), %eax
				movzbl	%al, %edx
				movl	-1580(%ebp), %eax
				movl	%edx, (%eax)
  619         %finish %else %if (type = short type) %start
				jmp	.L502
		.L523:
				nop
		.L506:
				cmpl	$7, -1568(%ebp)
				jne	.L525
  620             ch = streamX_lookahead&16_ffff
				movl	-1572(%ebp), %eax
				movl	4(%eax), %eax
				movzwl	%ax, %edx
				movl	-1580(%ebp), %eax
				movl	%edx, (%eax)
  621         %finish %else %if (type = long type) %start
				jmp	.L502
		.L524:
				nop
		.L508:
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L509
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1584(%ebp)
				jmp	.L510
		.L509:
				movl	$623, -1584(%ebp)
		.L510:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L511
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L512
		.L511:
		.LBB460:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE460:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L512:
				pushl	$9
				pushl	$1
				pushl	$1
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1584(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
		.L502:
  622             ch = streamX_lookahead
				movl	-1572(%ebp), %eax
				movl	4(%eax), %edx
				movl	-1580(%ebp), %eax
				movl	%edx, (%eax)
  623         %finish %else %signal 1,1,9
				jmp	.L502
		.L525:
  624
  625 !        ch = streamX_lookahead
  626
  627     %end { of "read symbol" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L514
				call	__stack_chk_fail_local
		.L514:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE218:
				.globl	SKIPSYMBOL
		SKIPSYMBOL:
		.LFB219:
  628
  629     !--------------------------------------------------------------------------
  630     %external %routine skipsymbol
				pushl	%ebp
				movl	%esp, %ebp
				subl	$24, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%gs:20, %eax
				movl	%eax, -12(%ebp)
				xorl	%eax, %eax
  631         %integer trash
  632
  633         readsymbol(trash)
				subl	$12, %esp
				leal	-16(%ebp), %eax
				pushl	%eax
				call	READSYMBOL
				addl	$16, %esp
  634     %end { of "skip symbol" }
				nop
				movl	-12(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L528
				call	__stack_chk_fail_local
		.L528:
				leave
				ret
		.LFE219:
				.globl	FILEEND
		FILEEND:
		.LFB220:
  635
  636     !--------------------------------------------------------------------------
  637     %external %predicate file end
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$812, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  638         %record(impstream)%name streamX
  639
  640         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L543
				call	INITIALISEIOSYSTEM
				jmp	.L531
		.L543:
				nop
		.L531:
  641
  642         streamX == in_streams( in_current stream )
				movl	IN@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	IN@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$4, %eax
				movl	%eax, -800(%ebp)
  643
  644         ! can't select a closed file
  645         %signal 9, 5, in_current stream %if (streamX_handle = 0)
				movl	-800(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L544
				movl	IN@GOTOFF(%ebx), %eax
				movl	%eax, -816(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L534
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -812(%ebp)
				jmp	.L535
		.L534:
				movl	$645, -812(%ebp)
		.L535:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L536
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L537
		.L536:
		.LBB461:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE461:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L537:
				pushl	-816(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-812(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L533
		.L544:
				nop
		.L533:
  646
  647         %false %if eof( streamX_handle )
				movl	-800(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	EOF@PLT
				addl	$16, %esp
				testl	%eax, %eax
				je	.L545
				movl	$0, %eax
				jmp	.L540
		.L545:
				nop
		.L539:
  648         %true
				movl	$1, %eax
		.L540:
  649     %end { of "file end" }
				movl	-28(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L541
				call	__stack_chk_fail_local
		.L541:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE220:
				.section	.rodata
				.align 32
		.LC15:
				.byte	26
				.string	"WRITEBUFFER: address(ptr)="
				.zero	228
				.align 32
		.LC16:
				.byte	26
				.string	"WRITEBUFFER: size of(ptr)="
				.zero	228
				.align 32
		.LC17:
				.byte	26
				.string	"WRITEBUFFER: type of(ptr)="
				.zero	228
				.align 32
		.LC18:
				.byte	26
				.string	"WRITEBUFFER:        count="
				.zero	228
				.globl	WRITEBUFFER
		WRITEBUFFER:
		.LFB221:
  650
  651 !------------------------------------------------------------------------------
  652 ! Output routines
  653 !------------------------------------------------------------------------------
  654
  655     !--------------------------------------------------------------------------
  656     %external %integer %function writebuffer( %name ptr, %integer count )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$3932, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -3660(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  657         %record(impstream)%name streamX
  658         %integer len,adr,type
  659         %integer itemsz
  660
  661         len = size of(ptr)
				movl	$12, -3656(%ebp)
				movl	-3660(%ebp), %eax
				movl	%eax, -3632(%ebp)
		.LBB462:
		.LBB463:
				movl	-3632(%ebp), %eax
		.LBE463:
		.LBE462:
  662         adr = addr(ptr)
				movl	%eax, -3652(%ebp)
  663         type = type of(ptr)
				movl	$4, -3648(%ebp)
  664
  665 %if (rtl diagnose&128 # 0) %start
  666 select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB464:
		.LBB465:
		.LBB466:
  667 print string("WRITEBUFFER: address(ptr)=".int2ascii(adr,16,0) );  newline
				leal	-3928(%ebp), %eax
				pushl	$0
				pushl	$16
				pushl	-3652(%ebp)
				pushl	%eax
				call	_imp_INT2ASCII
				addl	$12, %esp
				leal	-284(%ebp), %eax
				leal	-3928(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				movl	%eax, -3932(%ebp)
		.LBE466:
		.LBB467:
				leal	-284(%ebp), %eax
				leal	.LC15@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %edx
		.LBE467:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-3932(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-284(%ebp), %edx
		.LBE465:
				leal	-284(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %edx
				leal	-284(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE464:
		.LBB468:
		.LBB469:
				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
		.LBE469:
		.LBE468:
		.LBB470:
		.LBB471:
				call	_imp_newline@PLT
		.LBE471:
		.LBE470:
		.LBB472:
		.LBB473:
		.LBB474:
  668 print string("WRITEBUFFER: size of(ptr)=".int2ascii(len,16,0) );  newline
				leal	-3928(%ebp), %eax
				pushl	$0
				pushl	$16
				pushl	-3656(%ebp)
				pushl	%eax
				call	_imp_INT2ASCII
				addl	$12, %esp
				leal	-540(%ebp), %eax
				leal	-3928(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				movl	%eax, -3932(%ebp)
		.LBE474:
		.LBB475:
				leal	-540(%ebp), %eax
				leal	.LC16@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edx
		.LBE475:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3932(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE473:
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-540(%ebp), %edx
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE472:
		.LBB476:
		.LBB477:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE477:
		.LBE476:
		.LBB478:
		.LBB479:
				call	_imp_newline@PLT
		.LBE479:
		.LBE478:
		.LBB480:
		.LBB481:
		.LBB482:
  669 print string("WRITEBUFFER: type of(ptr)=".int2ascii(type,16,0) ); newline
				leal	-3928(%ebp), %eax
				pushl	$0
				pushl	$16
				pushl	-3648(%ebp)
				pushl	%eax
				call	_imp_INT2ASCII
				addl	$12, %esp
				leal	-796(%ebp), %eax
				leal	-3928(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				movl	%eax, -3932(%ebp)
		.LBE482:
		.LBB483:
				leal	-796(%ebp), %eax
				leal	.LC17@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %edx
		.LBE483:
				leal	-796(%ebp), %eax
				subl	$4, %esp
				pushl	-3932(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-796(%ebp), %edx
		.LBE481:
				leal	-796(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-796(%ebp), %edx
				leal	-796(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE480:
		.LBB484:
		.LBB485:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE485:
		.LBE484:
		.LBB486:
		.LBB487:
				call	_imp_newline@PLT
				movl	12(%ebp), %eax
				movl	%eax, -3628(%ebp)
				movl	$0, -3624(%ebp)
		.LBE487:
		.LBE486:
		.LBB488:
		.LBB489:
		.LBB490:
		.LBB491:
		.LBB492:
				leal	-1052(%ebp), %eax
				subl	$4, %esp
				pushl	-3624(%ebp)
				pushl	-3628(%ebp)
				pushl	%eax
				call	_imp_itos@PLT
				addl	$12, %esp
		.LBE492:
		.LBE491:
  670 print string("WRITEBUFFER:        count=".itos(count,0) );        newline
				leal	-1308(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				movl	%eax, -3932(%ebp)
		.LBE490:
		.LBB493:
				leal	-1308(%ebp), %eax
				leal	.LC18@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %edx
		.LBE493:
				leal	-1308(%ebp), %eax
				subl	$4, %esp
				pushl	-3932(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-1308(%ebp), %edx
		.LBE489:
				leal	-1308(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-1308(%ebp), %edx
				leal	-1308(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE488:
		.LBB494:
		.LBB495:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE495:
		.LBE494:
		.LBB496:
		.LBB497:
				call	_imp_newline@PLT
		.LBE497:
		.LBE496:
		.LBB498:
		.LBB499:
				movl	$0, %eax
		.LBE499:
		.LBE498:
  671 select output( old output stream )
				subl	$12, %esp
				pushl	%eax
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.L550:
  672 %finish
  673
  674         ! check if we can write a valid data type
  675         %signal 5,5,type %unless ok write type(type) %and (len = count)
				subl	$12, %esp
				pushl	-3648(%ebp)
				call	OKWRITETYPE
				addl	$16, %esp
				testl	%eax, %eax
				je	.L577
				movl	-3656(%ebp), %eax
				cmpl	12(%ebp), %eax
				je	.L578
				jmp	.L552
		.L577:
				nop
		.L552:
				leal	-2844(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L554
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3932(%ebp)
				jmp	.L555
		.L554:
				movl	$675, -3932(%ebp)
		.L555:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L556
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-2588(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L557
		.L556:
		.LBB500:
				leal	-1564(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3612(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE500:
				leal	-2588(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L557:
				pushl	-3648(%ebp)
				pushl	$5
				pushl	$5
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2844(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3932(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2588(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L553
		.L578:
				nop
		.L553:
  676
  677         ! assume we are writing data from a byte array (or string)
  678 !        itemsz = get item size(ptr)
  679         itemsz = len
				movl	-3656(%ebp), %eax
				movl	%eax, -3644(%ebp)
  680
  681         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L579
				call	INITIALISEIOSYSTEM
				jmp	.L559
		.L579:
				nop
		.L559:
		.LBB501:
  682
  683         ! can't select an invalid stream id (not stdout)
  684         %signal 9, 9 %unless (0 < out_currentstream <= MAX OUTPUT STREAM)
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -3640(%ebp)
				cmpl	$0, -3640(%ebp)
				jle	.L580
				cmpl	$10, -3640(%ebp)
				jle	.L581
		.LBE501:
				jmp	.L561
		.L580:
		.LBB502:
				nop
		.L561:
		.LBE502:
				leal	-2332(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L563
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3932(%ebp)
				jmp	.L564
		.L563:
				movl	$684, -3932(%ebp)
		.L564:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L565
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-2076(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L566
		.L565:
		.LBB503:
				leal	-1564(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3356(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE503:
				leal	-2076(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L566:
				pushl	$0
				pushl	$9
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2332(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3932(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2076(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L562
		.L581:
		.LBB504:
				nop
		.L562:
		.LBE504:
  685         ! can't select a closed file
  686         streamX == out_streams( out_current stream )
				movl	OUT@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -3636(%ebp)
  687
  688         %signal 9, 5, out_current stream %if (streamX_handle = 0)
				movl	-3636(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L582
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -3936(%ebp)
				leal	-1820(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L569
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3932(%ebp)
				jmp	.L570
		.L569:
				movl	$688, -3932(%ebp)
		.L570:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L571
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1564(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L572
		.L571:
		.LBB505:
				leal	-1564(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3100(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE505:
				leal	-1564(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L572:
				pushl	-3936(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1820(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3932(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1564(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L568
		.L582:
				nop
		.L568:
				movl	-3660(%ebp), %eax
				movl	%eax, -3616(%ebp)
		.LBB506:
		.LBB507:
				movl	-3616(%ebp), %eax
				movl	%eax, -3620(%ebp)
		.LBE507:
		.LBE506:
		.LBB508:
		.LBB509:
				movl	-3620(%ebp), %edx
		.LBE509:
		.LBE508:
  689
  690         ! We don't need to know the variables data-type (from type of(ptr))
  691         ! We just need the variable size and its address
  692
  693         ! We can then write into the buffer as an array of bytes
  694         ! We need the stream handle, count of items space, item size, buffer address
  695         ! Where, count * itemsz = size in bytes of buffer storage
  696         %result = writebytes( streamX_handle, count, itemsz, byteinteger( addr(ptr) ) )
				movl	-3636(%ebp), %eax
				movl	268(%eax), %eax
				pushl	%edx
				pushl	-3644(%ebp)
				pushl	12(%ebp)
				pushl	%eax
				call	WRITEBYTES@PLT
				addl	$16, %esp
  697     %end { of "write buffer" }
				movl	-28(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L576
				call	__stack_chk_fail_local
		.L576:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE221:
				.globl	OUTPUTSTREAM
		OUTPUTSTREAM:
		.LFB222:
  698
  699     !--------------------------------------------------------------------------
  700     %external %integer %function output stream
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
  701         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L587
				call	INITIALISEIOSYSTEM
				jmp	.L585
		.L587:
				nop
		.L585:
  702
  703         %result = out_current stream
				movl	OUT@GOTOFF(%ebx), %eax
  704     %end { of "output stream" }
				addl	$4, %esp
				popl	%ebx
				popl	%ebp
				ret
		.LFE222:
				.globl	OLDOUTPUTSTREAM
		OLDOUTPUTSTREAM:
		.LFB223:
  705
  706     !--------------------------------------------------------------------------
  707     %external %integer %function old output stream
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
  708         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L592
				call	INITIALISEIOSYSTEM
				jmp	.L590
		.L592:
				nop
		.L590:
  709
  710         %result = out_previous stream
				movl	4+OUT@GOTOFF(%ebx), %eax
  711     %end { of "previous output stream" }
				addl	$4, %esp
				popl	%ebx
				popl	%ebp
				ret
		.LFE223:
				.globl	RESETOUTPUT
		RESETOUTPUT:
		.LFB224:
  712
  713     !--------------------------------------------------------------------------
  714     %external %routine reset output
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  715         %record(impstream)%name streamX
  716
  717         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L611
				call	INITIALISEIOSYSTEM
				jmp	.L595
		.L611:
				nop
		.L595:
		.LBB510:
  718
  719         ! can't select an invalid stream id (not stdout)
  720         %signal 9, 9 %unless (0 < out_currentstream <= MAX OUTPUT STREAM)
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				jle	.L612
				cmpl	$10, -1572(%ebp)
				jle	.L613
		.LBE510:
				jmp	.L597
		.L612:
		.LBB511:
				nop
		.L597:
		.LBE511:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L599
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L600
		.L599:
				movl	$720, -1580(%ebp)
		.L600:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L601
				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	.L602
		.L601:
		.LBB512:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE512:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L602:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1580(%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	.L598
		.L613:
		.LBB513:
				nop
		.L598:
		.LBE513:
  721         ! can't select a closed file
  722         streamX == out_streams( out_current stream )
				movl	OUT@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -1568(%ebp)
  723
  724         %signal 9, 5, out_current stream %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L614
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L605
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L606
		.L605:
				movl	$724, -1580(%ebp)
		.L606:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L607
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L608
		.L607:
		.LBB514:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE514:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L608:
				pushl	-1584(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L604
		.L614:
				nop
		.L604:
  725
  726         file rewind( streamX_handle )
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	FILEREWIND@PLT
				addl	$16, %esp
  727     %end { of "reset output" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L610
				call	__stack_chk_fail_local
		.L610:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE224:
				.globl	SEEKOUTPUT
		SEEKOUTPUT:
		.LFB225:
  728
  729     !--------------------------------------------------------------------------
  730     %external %routine seek output( %integer displacement, pos )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  731         %record(impstream)%name streamX
  732
  733         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L636
				call	INITIALISEIOSYSTEM
				jmp	.L617
		.L636:
				nop
		.L617:
		.LBB515:
  734
  735         ! can't select an invalid stream id (not stdout)
  736         %signal 9, 9 %unless (0 < out_currentstream <= MAX OUTPUT STREAM)
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1576(%ebp)
				cmpl	$0, -1576(%ebp)
				jle	.L637
				cmpl	$10, -1576(%ebp)
				jle	.L638
		.LBE515:
				jmp	.L619
		.L637:
		.LBB516:
				nop
		.L619:
		.LBE516:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L621
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L622
		.L621:
				movl	$736, -1580(%ebp)
		.L622:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L623
				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	.L624
		.L623:
		.LBB517:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE517:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L624:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1580(%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	.L620
		.L638:
		.LBB518:
				nop
		.L620:
		.LBE518:
  737         ! can't select a closed file
  738         streamX == out_streams( out_current stream )
				movl	OUT@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -1572(%ebp)
  739
  740         %signal 9, 5, out_current stream %if (streamX_handle = 0)
				movl	-1572(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L639
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L627
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L628
		.L627:
				movl	$740, -1580(%ebp)
		.L628:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L629
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L630
		.L629:
		.LBB519:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE519:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L630:
				pushl	-1584(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L626
		.L639:
				nop
		.L626:
		.LBB520:
  741
  742         %if (0 <= pos <= 2) %start
				movl	12(%ebp), %eax
				movl	%eax, -1568(%ebp)
				cmpl	$0, -1568(%ebp)
				js	.L640
				cmpl	$2, -1568(%ebp)
				jg	.L641
		.LBE520:
				nop
				jmp	.L632
		.L641:
				nop
		.L632:
		.LBE521:
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L635
				call	__stack_chk_fail_local
		.L635:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE225:
				.globl	TELLOUTPUT
		TELLOUTPUT:
		.LFB226:
  743             file seek( streamX_handle, displacement, pos )
				movl	-1572(%ebp), %eax
				movl	268(%eax), %eax
				subl	$4, %esp
				pushl	12(%ebp)
				pushl	8(%ebp)
				pushl	%eax
				call	FILESEEK@PLT
				addl	$16, %esp
  744         %finish
  745     %end { of "seek output" }
				jmp	.L632
		.L640:
		.LBB521:
  746
  747     !--------------------------------------------------------------------------
  748     %external %integer %function tell output
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  749         %record(impstream)%name streamX
  750
  751         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L660
				call	INITIALISEIOSYSTEM
				jmp	.L644
		.L660:
				nop
		.L644:
		.LBB522:
  752
  753         ! can't select an invalid stream id (not stdout)
  754         %signal 9, 9 %unless (0 < out_currentstream <= MAX OUTPUT STREAM)
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				jle	.L661
				cmpl	$10, -1572(%ebp)
				jle	.L662
		.LBE522:
				jmp	.L646
		.L661:
		.LBB523:
				nop
		.L646:
		.LBE523:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L648
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L649
		.L648:
				movl	$754, -1580(%ebp)
		.L649:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L650
				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	.L651
		.L650:
		.LBB524:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE524:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L651:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1580(%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	.L647
		.L662:
		.LBB525:
				nop
		.L647:
		.LBE525:
  755         ! can't select a closed file
  756         streamX == out_streams( out_current stream )
				movl	OUT@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -1568(%ebp)
  757
  758         %signal 9, 5, out_current stream %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L663
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L654
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L655
		.L654:
				movl	$758, -1580(%ebp)
		.L655:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L656
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L657
		.L656:
		.LBB526:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE526:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L657:
				pushl	-1584(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L653
		.L663:
				nop
		.L653:
  759
  760         %result = tell( streamX_handle )
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	TELL@PLT
				addl	$16, %esp
  761     %end { of "tell output" }
				movl	-28(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L659
				call	__stack_chk_fail_local
		.L659:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE226:
				.globl	OUTPUTNAME
		OUTPUTNAME:
		.LFB227:
  762
  763     !--------------------------------------------------------------------------
  764     %external %string(255) %function output name
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -1580(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  765         %record(impstream)%name streamX
  766
  767         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L682
				call	INITIALISEIOSYSTEM
				jmp	.L666
		.L682:
				nop
		.L666:
		.LBB527:
  768
  769         ! can't select an invalid stream id
  770         %signal 9, 9 %unless (0 <= out_current stream <= MAX OUTPUT STREAM)
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				js	.L683
				cmpl	$10, -1572(%ebp)
				jle	.L684
		.LBE527:
				jmp	.L668
		.L683:
		.LBB528:
				nop
		.L668:
		.LBE528:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L670
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1584(%ebp)
				jmp	.L671
		.L670:
				movl	$770, -1584(%ebp)
		.L671:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L672
				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	.L673
		.L672:
		.LBB529:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE529:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L673:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1584(%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	.L669
		.L684:
		.LBB530:
				nop
		.L669:
		.LBE530:
  771         ! can't select a closed file
  772         streamX == out_streams( out_current stream )
				movl	OUT@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -1568(%ebp)
  773
  774         %signal 9, 5, out_current stream %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L685
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1588(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L676
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1584(%ebp)
				jmp	.L677
		.L676:
				movl	$774, -1584(%ebp)
		.L677:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L678
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L679
		.L678:
		.LBB531:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE531:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L679:
				pushl	-1588(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1584(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L675
		.L685:
				nop
		.L675:
  775
  776         %result = streamX_file name
				movl	-1580(%ebp), %edx
				movl	-1568(%ebp), %eax
				addl	$12, %eax
				movl	$256, %ecx
				movl	(%eax), %ebx
				movl	%ebx, (%edx)
				movl	-4(%eax,%ecx), %ebx
				movl	%ebx, -4(%edx,%ecx)
				leal	4(%edx), %ebx
				andl	$-4, %ebx
				subl	%ebx, %edx
				subl	%edx, %eax
				addl	%edx, %ecx
				andl	$-4, %ecx
				shrl	$2, %ecx
				movl	%ecx, %edx
				movl	%ebx, %edi
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
  777     %end { of "output name" }
				movl	-1580(%ebp), %eax
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L681
				call	__stack_chk_fail_local
		.L681:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE227:
				.globl	SELECTOUTPUT
		SELECTOUTPUT:
		.LFB228:
  778
  779     !--------------------------------------------------------------------------
  780     %external %routine select output( %integer stream id )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  781         %record(impstream)%name streamX
  782
  783         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L704
				call	INITIALISEIOSYSTEM
				jmp	.L688
		.L704:
				nop
		.L688:
		.LBB532:
  784
  785         ! can't select an invalid stream id
  786         %signal 9, 9 %unless (0 <= stream id <= MAX OUTPUT STREAM)
				movl	8(%ebp), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				js	.L705
				cmpl	$10, -1572(%ebp)
				jle	.L706
		.LBE532:
				jmp	.L690
		.L705:
		.LBB533:
				nop
		.L690:
		.LBE533:
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L692
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L693
		.L692:
				movl	$786, -1580(%ebp)
		.L693:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L694
				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	.L695
		.L694:
		.LBB534:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE534:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L695:
				pushl	$0
				pushl	$9
				pushl	$9
				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	-1580(%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	.L691
		.L706:
		.LBB535:
				nop
		.L691:
		.LBE535:
  787
  788         ! can't select a closed file
  789         streamX == out_streams( stream id )
				movl	8(%ebp), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -1568(%ebp)
  790
  791         %signal 9, 5, stream id %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L707
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L698
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L699
		.L698:
				movl	$791, -1580(%ebp)
		.L699:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L700
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L701
		.L700:
		.LBB536:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE536:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L701:
				pushl	8(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L697
		.L707:
				nop
		.L697:
  792
  793         out_previous stream = out_current stream
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, 4+OUT@GOTOFF(%ebx)
  794         out_current stream = stream id
				movl	8(%ebp), %eax
				movl	%eax, OUT@GOTOFF(%ebx)
  795     %end { of "select output" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L703
				call	__stack_chk_fail_local
		.L703:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE228:
				.globl	CLOSEOUTPUT
		CLOSEOUTPUT:
		.LFB229:
  796
  797     !--------------------------------------------------------------------------
  798     %external %routine close output
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$20, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
  799         %record(impstream)%name streamX
  800
  801         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L717
				call	INITIALISEIOSYSTEM
				jmp	.L710
		.L717:
				nop
		.L710:
		.LBB537:
  802
  803         ! can't close terminal output
  804         ! can't close an already closed file
  805         %if (0 < out_current stream <= MAX OUTPUT STREAM ) %start
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -16(%ebp)
				cmpl	$0, -16(%ebp)
				jle	.L718
				cmpl	$10, -16(%ebp)
				jg	.L719
		.LBE537:
				nop
				jmp	.L715
		.L719:
				nop
				jmp	.L715
		.L720:
		.LBE538:
  806             streamX == out_streams( out_current stream )
				movl	OUT@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -12(%ebp)
  807
  808             %if (streamX_handle # 0) %start
				movl	-12(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				je	.L720
				nop
		.L715:
				nop
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE229:
				.section	.rodata
				.align 32
		.LC19:
				.byte	1
				.string	"w"
				.zero	253
				.align 32
		.LC20:
				.byte	32
				.string	"' was unable to open for stream("
				.zero	222
				.align 32
		.LC21:
				.byte	22
				.string	"OPENOUTPUT: filename='"
				.zero	232
				.globl	OPENOUTPUT
		OPENOUTPUT:
		.LFB230:
  809                 close( streamX_handle )
				movl	-12(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	CLOSE@PLT
				addl	$16, %esp
  810                 initialise stream( streamX )
				subl	$12, %esp
				pushl	-12(%ebp)
				call	INITIALISESTREAM
				addl	$16, %esp
  811             %finish
  812         %finish
  813     %end { of "close output" }
				jmp	.L715
		.L712:
		.L718:
		.LBB538:
  814
  815     !--------------------------------------------------------------------------
  816     %external %routine open output( %integer stream  id, %string(255) file name )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$3404, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  817         %record(impstream)%name streamX
  818         %integer handle
  819         %integer flags = IS OUTPUT ! IS TEXT
				movl	$1, -3388(%ebp)
		.LBB539:
		.LBB540:
  820         %string(4) mode = "w"
				leal	-284(%ebp), %eax
				leal	.LC19@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3100(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE540:
				leal	-284(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE539:
				subl	$4, %esp
				pushl	$4
				pushl	%eax
				leal	-3356(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  821         %string(255) xxx
  822         %string(4) yyy
  823
  824         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L745
				call	INITIALISEIOSYSTEM
				jmp	.L723
		.L745:
				nop
		.L723:
		.LBB541:
  825
  826         ! Error out if streamid not in legal range
  827         %signal 9, 9, stream id %unless (0 < stream id <= MAX OUTPUT STREAM )
				movl	8(%ebp), %eax
				movl	%eax, -3384(%ebp)
				cmpl	$0, -3384(%ebp)
				jle	.L746
				cmpl	$10, -3384(%ebp)
				jle	.L747
		.LBE541:
				jmp	.L725
		.L746:
		.LBB542:
				nop
		.L725:
		.LBE542:
				leal	-1564(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L727
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3404(%ebp)
				jmp	.L728
		.L727:
				movl	$827, -3404(%ebp)
		.L728:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L729
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1308(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L730
		.L729:
		.LBB543:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2332(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE543:
				leal	-1308(%ebp), %eax
				leal	-2332(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L730:
				pushl	8(%ebp)
				pushl	$9
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1564(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3404(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L726
		.L747:
		.LBB544:
				nop
		.L726:
		.LBE544:
  828
  829         ! If file not open
  830         streamX == out_streams( stream id )
				movl	8(%ebp), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -3380(%ebp)
  831
  832         %if (streamX_handle = 0) %start
				movl	-3380(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L748
		.LBB545:
				nop
		.L732:
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L744
				call	__stack_chk_fail_local
		.L744:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE230:
				.section	.rodata
				.align 32
		.LC22:
				.byte	2
				.string	"wb"
				.zero	252
				.align 32
		.LC23:
				.byte	28
				.string	"OPENBINARYOUTPUT: filename='"
				.zero	226
				.globl	OPENBINARYOUTPUT
		OPENBINARYOUTPUT:
		.LFB231:
  833             xxx = filename
				leal	-284(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE545:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-2844(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB546:
  834             yyy = mode
				leal	-284(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE546:
				subl	$4, %esp
				pushl	$4
				pushl	%eax
				leal	-2588(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  835
  836             ! Tweak xxx,yyy to be C strings
  837             ! Why? because we are sending them to a C function expecting C strings
  838             imptocstring( xxx )
				subl	$12, %esp
				leal	-2844(%ebp), %eax
				pushl	%eax
				call	IMPTOCSTRING
				addl	$16, %esp
  839             imptocstring( yyy )
				subl	$12, %esp
				leal	-2588(%ebp), %eax
				pushl	%eax
				call	IMPTOCSTRING
				addl	$16, %esp
				leal	-2844(%ebp), %eax
				movl	%eax, -3368(%ebp)
		.LBB547:
		.LBB548:
				movl	-3368(%ebp), %eax
		.LBE548:
		.LBE547:
  840
  841             handle = openfile( addr(yyy), addr(xxx) )
				movl	%eax, %edx
				leal	-2588(%ebp), %eax
				movl	%eax, -3372(%ebp)
		.LBB549:
		.LBB550:
				movl	-3372(%ebp), %eax
		.LBE550:
		.LBE549:
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	OPENFILE@PLT
				addl	$16, %esp
				movl	%eax, -3376(%ebp)
  842
  843             %if (handle = 0) %start
				cmpl	$0, -3376(%ebp)
				jne	.L749
				nop
		.L736:
  844
  845 %if (rtl diagnose&128 # 0) %start
  846 select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	SELECTOUTPUT
				addl	$16, %esp
		.LBB551:
		.LBB552:
		.LBB553:
  847 print string("OPENOUTPUT: filename='".filename."' was unable to open for stream(".itos(stream id,0).")")
				leal	-284(%ebp), %eax
				leal	.LC10@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				movl	%eax, -3404(%ebp)
				movl	8(%ebp), %eax
				movl	%eax, -3364(%ebp)
				movl	$0, -3360(%ebp)
		.LBE553:
		.LBB554:
		.LBB555:
		.LBB556:
		.LBB557:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-3360(%ebp)
				pushl	-3364(%ebp)
				pushl	%eax
				call	_imp_itos@PLT
				addl	$12, %esp
		.LBE557:
		.LBE556:
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %esi
				movl	%esi, -3408(%ebp)
		.LBE555:
		.LBB558:
		.LBB559:
				leal	-540(%ebp), %eax
				leal	.LC20@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edi
				movl	%edi, -3412(%ebp)
		.LBE559:
		.LBB560:
		.LBB561:
				leal	-540(%ebp), %eax
				leal	.LC21@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edx
		.LBE561:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				leal	12(%ebp), %ecx
				pushl	%ecx
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE560:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3412(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE558:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3408(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE554:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3404(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE552:
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-540(%ebp), %edx
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE551:
		.LBB562:
		.LBB563:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE563:
		.LBE562:
		.LBB564:
		.LBB565:
				call	_imp_newline@PLT
		.LBE565:
		.LBE564:
  848 newline
  849 select output( old output stream )
				call	OLDOUTPUTSTREAM
				subl	$12, %esp
				pushl	%eax
				call	SELECTOUTPUT
				addl	$16, %esp
		.L738:
  850 %finish
  851                 %signal 9, 2, get error
				call	GETERROR@PLT
				movl	%eax, -3408(%ebp)
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L739
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3404(%ebp)
				jmp	.L740
		.L739:
				movl	$851, -3404(%ebp)
		.L740:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L741
				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	.L742
		.L741:
		.LBB566:
				leal	-796(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2076(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE566:
				leal	-796(%ebp), %eax
				leal	-2076(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L742:
				pushl	-3408(%ebp)
				pushl	$2
				pushl	$9
				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	-3404(%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	.L736
		.L749:
  852             %else
  853                 streamX_handle = handle
				movl	-3380(%ebp), %eax
				movl	-3376(%ebp), %edx
				movl	%edx, 268(%eax)
		.LBB567:
  854                 streamX_file name = file name
				leal	-1820(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
		.LBE567:
				movl	-3380(%ebp), %edx
				addl	$12, %edx
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				pushl	%edx
				call	_imp_strncpy@PLT
				addl	$16, %esp
  855                 streamX_flags = flags
				movl	-3380(%ebp), %eax
				movl	-3388(%ebp), %edx
				movl	%edx, 8(%eax)
  856             %finish
  857         %finish
  858     %end { of "open output" }
				jmp	.L732
		.L748:
  859
  860     !--------------------------------------------------------------------------
  861     %external %routine open binary output( %integer stream  id, %string(255) file name )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$3404, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  862         %record(impstream)%name streamX
  863         %integer handle
  864         %integer flags = IS OUTPUT ! IS BINARY
				movl	$3, -3388(%ebp)
		.LBB568:
		.LBB569:
  865         %string(4) mode = "wb"
				leal	-284(%ebp), %eax
				leal	.LC22@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3100(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE569:
				leal	-284(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE568:
				subl	$4, %esp
				pushl	$4
				pushl	%eax
				leal	-3356(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  866         %string(255) xxx
  867         %string(4) yyy
  868
  869         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L774
				call	INITIALISEIOSYSTEM
				jmp	.L752
		.L774:
				nop
		.L752:
		.LBB570:
  870
  871         %signal 9, 9, stream id %unless (0 < stream id <= MAX OUTPUT STREAM )
				movl	8(%ebp), %eax
				movl	%eax, -3384(%ebp)
				cmpl	$0, -3384(%ebp)
				jle	.L775
				cmpl	$10, -3384(%ebp)
				jle	.L776
		.LBE570:
				jmp	.L754
		.L775:
		.LBB571:
				nop
		.L754:
		.LBE571:
				leal	-1564(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L756
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3404(%ebp)
				jmp	.L757
		.L756:
				movl	$871, -3404(%ebp)
		.L757:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L758
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1308(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L759
		.L758:
		.LBB572:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2332(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE572:
				leal	-1308(%ebp), %eax
				leal	-2332(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L759:
				pushl	8(%ebp)
				pushl	$9
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1564(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-3404(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1308(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
				jmp	.L755
		.L776:
		.LBB573:
				nop
		.L755:
		.LBE573:
  872
  873         ! If file not open
  874         streamX == out_streams( stream id )
				movl	8(%ebp), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -3380(%ebp)
  875
  876         %if (streamX_handle = 0) %start
				movl	-3380(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L777
		.LBB574:
				nop
		.L761:
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L773
				call	__stack_chk_fail_local
		.L773:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE231:
				.globl	FLUSHOUTPUT
		FLUSHOUTPUT:
		.LFB232:
  877             xxx = filename
				leal	-284(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE574:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-2844(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB575:
  878             yyy = mode
				leal	-284(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE575:
				subl	$4, %esp
				pushl	$4
				pushl	%eax
				leal	-2588(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
  879
  880             ! Tweak xxx,yyy to be C strings
  881             ! Why? because we are sending them to a C function expecting C strings
  882             imptocstring( xxx )
				subl	$12, %esp
				leal	-2844(%ebp), %eax
				pushl	%eax
				call	IMPTOCSTRING
				addl	$16, %esp
  883             imptocstring( yyy )
				subl	$12, %esp
				leal	-2588(%ebp), %eax
				pushl	%eax
				call	IMPTOCSTRING
				addl	$16, %esp
				leal	-2844(%ebp), %eax
				movl	%eax, -3368(%ebp)
		.LBB576:
		.LBB577:
				movl	-3368(%ebp), %eax
		.LBE577:
		.LBE576:
  884
  885             handle = openfile( addr(yyy), addr(xxx) )
				movl	%eax, %edx
				leal	-2588(%ebp), %eax
				movl	%eax, -3372(%ebp)
		.LBB578:
		.LBB579:
				movl	-3372(%ebp), %eax
		.LBE579:
		.LBE578:
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	OPENFILE@PLT
				addl	$16, %esp
				movl	%eax, -3376(%ebp)
  886
  887             %if (handle = 0) %start
				cmpl	$0, -3376(%ebp)
				jne	.L778
				nop
		.L765:
  888
  889 %if (rtl diagnose&128 # 0) %start
  890 select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	SELECTOUTPUT
				addl	$16, %esp
		.LBB580:
		.LBB581:
		.LBB582:
  891 print string("OPENBINARYOUTPUT: filename='".filename."' was unable to open for stream(".itos(stream id,0).")")
				leal	-284(%ebp), %eax
				leal	.LC10@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				movl	%eax, -3404(%ebp)
				movl	8(%ebp), %eax
				movl	%eax, -3364(%ebp)
				movl	$0, -3360(%ebp)
		.LBE582:
		.LBB583:
		.LBB584:
		.LBB585:
		.LBB586:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-3360(%ebp)
				pushl	-3364(%ebp)
				pushl	%eax
				call	_imp_itos@PLT
				addl	$12, %esp
		.LBE586:
		.LBE585:
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %esi
				movl	%esi, -3408(%ebp)
		.LBE584:
		.LBB587:
		.LBB588:
				leal	-540(%ebp), %eax
				leal	.LC20@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edi
				movl	%edi, -3412(%ebp)
		.LBE588:
		.LBB589:
		.LBB590:
				leal	-540(%ebp), %eax
				leal	.LC23@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edx
		.LBE590:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				leal	12(%ebp), %ecx
				pushl	%ecx
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE589:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3412(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE587:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3408(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE583:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	-3404(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE581:
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-540(%ebp), %edx
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE580:
		.LBB591:
		.LBB592:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE592:
		.LBE591:
		.LBB593:
		.LBB594:
				call	_imp_newline@PLT
		.LBE594:
		.LBE593:
  892 newline
  893 select output( old output stream )
				call	OLDOUTPUTSTREAM
				subl	$12, %esp
				pushl	%eax
				call	SELECTOUTPUT
				addl	$16, %esp
		.L767:
  894 %finish
  895                 %signal 9, 2, get error
				call	GETERROR@PLT
				movl	%eax, -3408(%ebp)
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L768
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -3404(%ebp)
				jmp	.L769
		.L768:
				movl	$895, -3404(%ebp)
		.L769:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L770
				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	.L771
		.L770:
		.LBB595:
				leal	-796(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2076(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE595:
				leal	-796(%ebp), %eax
				leal	-2076(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L771:
				pushl	-3408(%ebp)
				pushl	$2
				pushl	$9
				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	-3404(%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	.L765
		.L778:
  896             %else
  897                 streamX_handle = handle
				movl	-3380(%ebp), %eax
				movl	-3376(%ebp), %edx
				movl	%edx, 268(%eax)
		.LBB596:
  898                 streamX_file name = file name
				leal	-1820(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
		.LBE596:
				movl	-3380(%ebp), %edx
				addl	$12, %edx
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				pushl	%edx
				call	_imp_strncpy@PLT
				addl	$16, %esp
  899                 streamX_flags = flags
				movl	-3380(%ebp), %eax
				movl	-3388(%ebp), %edx
				movl	%edx, 8(%eax)
  900             %finish
  901         %finish
  902     %end { of "open binary output" }
				jmp	.L761
		.L777:
  903
  904     !--------------------------------------------------------------------------
  905     %external %routine flush output
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  906         %record(impstream)%name streamX
  907
  908         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L797
				call	INITIALISEIOSYSTEM
				jmp	.L781
		.L797:
				nop
		.L781:
		.LBB597:
  909
  910         ! only interrogate actual opened files (including stdout)
  911         %signal 9, 9, out_current stream %unless (0 <= out_current stream <= MAX OUTPUT STREAM )
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				js	.L798
				cmpl	$10, -1572(%ebp)
				jle	.L799
		.LBE597:
				jmp	.L783
		.L798:
		.LBB598:
				nop
		.L783:
		.LBE598:
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L785
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L786
		.L785:
				movl	$911, -1580(%ebp)
		.L786:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L787
				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	.L788
		.L787:
		.LBB599:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE599:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L788:
				pushl	-1584(%ebp)
				pushl	$9
				pushl	$9
				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	-1580(%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	.L784
		.L799:
		.LBB600:
				nop
		.L784:
		.LBE600:
  912
  913         streamX == out_streams( out_current stream )
				movl	OUT@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -1568(%ebp)
  914
  915         %signal 9, 5, out_current stream %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L800
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L791
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L792
		.L791:
				movl	$915, -1580(%ebp)
		.L792:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L793
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L794
		.L793:
		.LBB601:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE601:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L794:
				pushl	-1584(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L790
		.L800:
				nop
		.L790:
  916
  917         flush( streamX_handle )
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				call	FLUSH@PLT
				addl	$16, %esp
  918     %end { of "flush output" }
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L796
				call	__stack_chk_fail_local
		.L796:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE232:
				.globl	PRINTSYMBOL
		PRINTSYMBOL:
		.LFB233:
  919
  920     !--------------------------------------------------------------------------
  921     %external %routine print symbol( %integer c )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1580, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  922         %record(impstream)%name streamX
  923
  924         %if need to initialise %then initialise io system
				call	NEEDTOINITIALISE
				testl	%eax, %eax
				je	.L823
				call	INITIALISEIOSYSTEM
				jmp	.L803
		.L823:
				nop
		.L803:
		.LBB602:
  925
  926         %signal 9, 9, out_current stream %unless (0 <= out_current stream <= MAX OUTPUT STREAM )
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1572(%ebp)
				cmpl	$0, -1572(%ebp)
				js	.L824
				cmpl	$10, -1572(%ebp)
				jle	.L825
		.LBE602:
				jmp	.L805
		.L824:
		.LBB603:
				nop
		.L805:
		.LBE603:
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-1052(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L807
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L808
		.L807:
				movl	$926, -1580(%ebp)
		.L808:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L809
				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	.L810
		.L809:
		.LBB604:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE604:
				leal	-796(%ebp), %eax
				leal	-1564(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L810:
				pushl	-1584(%ebp)
				pushl	$9
				pushl	$9
				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	-1580(%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	.L806
		.L825:
		.LBB605:
				nop
		.L806:
		.LBE605:
  927
  928         streamX == out_streams( out_current stream )
				movl	OUT@GOTOFF(%ebx), %eax
				imull	$272, %eax, %edx
				leal	OUT@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				addl	$8, %eax
				movl	%eax, -1568(%ebp)
  929
  930         %signal 9, 5, out_current stream %if (streamX_handle = 0)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				jne	.L826
				movl	OUT@GOTOFF(%ebx), %eax
				movl	%eax, -1584(%ebp)
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@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	.L813
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1580(%ebp)
				jmp	.L814
		.L813:
				movl	$930, -1580(%ebp)
		.L814:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L815
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-284(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L816
		.L815:
		.LBB606:
				leal	-284(%ebp), %eax
				leal	.LC4@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
		.LBE606:
				leal	-284(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L816:
				pushl	-1584(%ebp)
				pushl	$5
				pushl	$9
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-1580(%ebp)
				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	_signal_event@PLT
				addl	$528, %esp
				jmp	.L812
		.L826:
				nop
		.L812:
  931
  932         ! Not sure what the official IMP behaviour is for output on a closed file.
  933         ! We choose to silently ignore it...
  934         ! check file open before writing?
  935         %if (streamX_handle # 0) %start
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				testl	%eax, %eax
				je	.L827
				nop
				jmp	.L820
		.L828:
  936             put char( streamX_handle, c)
				movl	-1568(%ebp), %eax
				movl	268(%eax), %eax
				subl	$8, %esp
				pushl	8(%ebp)
				pushl	%eax
				call	PUTCHAR@PLT
				addl	$16, %esp
  937             %if (c = nl) %then flush output
				cmpl	$10, 8(%ebp)
				jne	.L828
				call	FLUSHOUTPUT
				nop
		.L820:
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L822
				call	__stack_chk_fail_local
		.L822:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE233:
				.section	.rodata
				.align 4
		__PRETTY_FUNCTION__.5625:
				.string	"_imp_SELECTOUTPUT"
				.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:
		.LFB234:
				movl	(%esp), %eax
				ret
		.LFE234:
				.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:
		.LFB235:
				movl	(%esp), %ebx
				ret
		.LFE235:
		.Letext0:
  938         %finish
  939     %end { of "print symbol" }
				jmp	.L820
		.L818:
		.L827:
  940
  941 %endoffile
  565 Statements compiled
