         Edinburgh IMP77 Compiler - Version 8.4
    1 !* Program Name : JUMP
		.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:
				.section	.rodata
				.align 32
		.LC12:
				.byte	4
				.string	"Pass"
				.zero	250
		PASS.6057:
		.LFB190:
    2
    3 !*   Title      :  X  The IMP Control Transfer Statements.
    4 !*   Version    :  II
    5 !*   Date       :  24 August 1985
    6 !*   Description:  Testing of the  ->,  %SWITCH and %LABEL Statements.
    7
    8 %Begin
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				pushl	%ecx
				subl	$4440, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -4444(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				leal	8(%ebp), %edx
				movl	%edx, -4436(%ebp)
				subl	$8, %esp
				pushl	-4444(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
		.LBB62:
		.LBB63:
		.LBB64:
				leal	-2076(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_cliparam@PLT
				addl	$12, %esp
		.LBE64:
		.LBE63:
    9
   10     %string(255) param    { Used to get input from CLI}
   11
   12     %Integer  J
   13     %Integer  K
   14
   15     %Integer  Error
   16     %Integer  Up
   17     %Integer  Down
   18
   19
   20     %Switch  SW (100 : 355)    { Non-zero base switch with lot of switches.
   21
   22     %Label   Alpha
   23     %Label   Beta
   24     %Label   Gamma
   25     %Label   Delta
   26     %Label   Out
   27     %Label   Cont
   28
   29
   30 %owninteger failures=0
   31
   32 %routine pass
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$556, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -556(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB57:
   33   printstring("Pass")
				leal	-284(%ebp), %eax
				leal	.LC12@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %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
		.LBE57:
		.LBB58:
		.LBB59:
				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
		.LBE59:
		.LBE58:
		.LBB60:
		.LBB61:
				call	_imp_newline@PLT
		.LBE61:
		.LBE60:
   34   New Line
   35 %end
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L7
				call	__stack_chk_fail_local
		.L7:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE190:
				.section	.rodata
		.LC13:
				.string	"test-in/jump.imp"
				.align 4
		.LC14:
				.string	"->SW(%d) out of bounds at %s line %d"
				.align 32
		.LC0:
				.byte	1
				.string	"s"
				.zero	253
				.align 32
		.LC1:
				.byte	1
				.string	"S"
				.zero	253
				.align 32
		.LC2:
				.byte	1
				.string	"j"
				.zero	253
				.align 32
		.LC3:
				.byte	1
				.string	"J"
				.zero	253
				.align 32
		.LC4:
				.byte	7
				.string	"journal"
				.zero	247
				.align 32
		.LC5:
				.byte	27
				.string	"Control Transfer Statements"
				.zero	227
				.align 32
		.LC6:
				.byte	27
				.string	"==========================="
				.zero	227
				.align 32
		.LC7:
				.byte	33
				.string	"Test the -> Statement and %Switch"
				.zero	221
				.align 32
		.LC8:
				.byte	33
				.string	"---------------------------------"
				.zero	221
				.align 32
		.LC9:
				.byte	11
				.string	" failure(s)"
				.zero	243
				.align 32
		.LC10:
				.byte	16
				.string	"test-in/jump.imp"
				.zero	238
				.globl	main
		main:
		.LFB189:
   36 %routine fail
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$556, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -556(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB108:
   37   printstring("FAIL")
				leal	-284(%ebp), %eax
				leal	.LC11@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %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
		.LBE108:
		.LBB109:
		.LBB110:
				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
		.LBE110:
		.LBE109:
		.LBB111:
		.LBB112:
				call	_imp_newline@PLT
		.LBE112:
		.LBE111:
   38   New Line
   39   failures = failures+1
				movl	FAILURES.6055@GOTOFF(%ebx), %eax
				addl	$1, %eax
				movl	%eax, FAILURES.6055@GOTOFF(%ebx)
   40 %end
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L177
				call	__stack_chk_fail_local
		.L177:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE191:
				.comm	FAILURES.6055,4,4
				.section	.data.rel.local,"aw",@progbits
				.align 32
		SW.6030:
				.long	.L91
				.long	.L73
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L40
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L92
				.long	.L91
				.long	.L52
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L58
				.long	.L70
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L32
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L98
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L67
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L101
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L46
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L55
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L85
				.long	.L61
				.long	.L76
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L37
				.long	.L95
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L64
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L79
				.long	.L91
				.long	.L91
				.long	.L43
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L88
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L91
				.long	.L49
				.long	.L82
				.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:
		.LFB192:
				movl	(%esp), %eax
				ret
		.LFE192:
				.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:
		.LFB193:
				movl	(%esp), %ebx
				ret
		.LFE193:
		.Letext0:
   41
   42
   43
   44    ! Code to find out where the output is to be sent
   45    ! -----------------------------------------------
   46    ! Where the output goes to depends on the parameter after the
   47    ! name used to run the program.
   48    !                       Parameter   |   Result
   49    !                       ------------|-------------
   50    !                     No parameter  |  No output
   51    !                          "s"      |  The screen
   52    !                          "j"      |  "journal"
   53    !                     anything else |  file name entered
   54
   55    ! NOTE THAT THIS CODE USES STRING COMPARISONS, WHICH MAY NOT HAVE BEEN
   56    ! TESTED YET. IF THE PROGRAM FAILS CHECK IT WAS NOT IN THIS PART.
   57
   58    param=cliparam
				leal	-284(%ebp), %eax
				leal	-2076(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE62:
				subl	$4, %esp
				pushl	$255
				pushl	%eax
				leal	-4380(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB65:
   59    %if param = "" %then select output (2) %c
				movb	$0, -284(%ebp)
				movl	$0, -283(%ebp)
				leal	-279(%ebp), %edx
				movl	$0, %eax
				movb	%al, (%edx)
				addl	$1, %edx
				movw	%ax, (%edx)
				addl	$2, %edx
				movl	$62, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-284(%ebp), %eax
		.LBE65:
				subl	$8, %esp
				pushl	%eax
				leal	-4380(%ebp), %eax
				pushl	%eax
				call	_imp_strcmp@PLT
				addl	$16, %esp
				testl	%eax, %eax
				jne	.L142
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				jmp	.L12
		.L142:
				nop
		.L11:
		.LBB66:
				leal	-284(%ebp), %eax
				leal	.LC0@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE66:
				subl	$8, %esp
				pushl	%eax
				leal	-4380(%ebp), %eax
				pushl	%eax
				call	_imp_strcmp@PLT
				addl	$16, %esp
				testl	%eax, %eax
				je	.L143
		.LBB67:
				leal	-284(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE67:
				subl	$8, %esp
				pushl	%eax
				leal	-4380(%ebp), %eax
				pushl	%eax
				call	_imp_strcmp@PLT
				addl	$16, %esp
				testl	%eax, %eax
				jne	.L144
				jmp	.L14
		.L143:
				nop
		.L14:
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				jmp	.L12
		.L144:
				nop
		.L15:
		.LBB68:
				leal	-284(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE68:
				subl	$8, %esp
				pushl	%eax
				leal	-4380(%ebp), %eax
				pushl	%eax
				call	_imp_strcmp@PLT
				addl	$16, %esp
				testl	%eax, %eax
				je	.L145
		.LBB69:
				leal	-284(%ebp), %eax
				leal	.LC3@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE69:
				subl	$8, %esp
				pushl	%eax
				leal	-4380(%ebp), %eax
				pushl	%eax
				call	_imp_strcmp@PLT
				addl	$16, %esp
				testl	%eax, %eax
				jne	.L146
				jmp	.L17
		.L145:
				nop
		.L17:
		.LBB70:
				leal	-284(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-4124(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				movl	$2, -4400(%ebp)
				leal	-1820(%ebp), %eax
				leal	-4124(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE70:
		.LBB71:
		.LBB72:
				subl	$12, %esp
				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	-4400(%ebp)
				call	_imp_openoutput@PLT
				addl	$272, %esp
		.LBE72:
		.LBE71:
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				jmp	.L12
		.L146:
				nop
		.L18:
		.LBB73:
				leal	-284(%ebp), %eax
				leal	-4380(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %edx
				movl	$2, -4396(%ebp)
				leal	-1564(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE73:
		.LBB74:
		.LBB75:
				subl	$12, %esp
				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	-4396(%ebp)
				call	_imp_openoutput@PLT
				addl	$272, %esp
		.LBE75:
		.LBE74:
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.L12:
				movl	$2, -4388(%ebp)
		.LBB76:
		.LBB77:
				subl	$12, %esp
				pushl	-4388(%ebp)
				call	_imp_newlines@PLT
				addl	$16, %esp
		.LBE77:
		.LBE76:
		.LBB78:
   60    %else %if param="s" %or param="S" %then select output (0) %c
   61    %else %if param="j" %or param="J" %then  %c
   62       open output(2,"journal") %and select output (2) %c
   63    %else open output(2,param) %and select output (2)
   64
   65
   66
   67    New Lines(2)
   68    Print String ("Control Transfer Statements");   New Line
				leal	-284(%ebp), %eax
				leal	.LC5@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3868(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-3868(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE78:
		.LBB79:
		.LBB80:
				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
		.LBE80:
		.LBE79:
		.LBB81:
		.LBB82:
				call	_imp_newline@PLT
		.LBE82:
		.LBE81:
		.LBB83:
   69    Print String ("===========================");   New Lines (3)
				leal	-284(%ebp), %eax
				leal	.LC6@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3612(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE83:
		.LBB84:
		.LBB85:
				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
				movl	$3, -4392(%ebp)
		.LBE85:
		.LBE84:
		.LBB86:
		.LBB87:
				subl	$12, %esp
				pushl	-4392(%ebp)
				call	_imp_newlines@PLT
				addl	$16, %esp
		.LBE87:
		.LBE86:
		.LBB88:
   70
   71
   72     Print String ("Test the -> Statement and %Switch");   New Line
				leal	-284(%ebp), %eax
				leal	.LC7@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-3356(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE88:
		.LBB89:
		.LBB90:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1052(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE90:
		.LBE89:
		.LBB91:
		.LBB92:
				call	_imp_newline@PLT
		.LBE92:
		.LBE91:
		.LBB93:
   73     Print String ("---------------------------------");   New Line
				leal	-284(%ebp), %eax
				leal	.LC8@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
				leal	-1308(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE93:
		.LBB94:
		.LBB95:
				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
		.LBE95:
		.LBE94:
		.LBB96:
		.LBB97:
				call	_imp_newline@PLT
		.LBE97:
		.LBE96:
   74
   75     Up = 0
				movl	$0, -4424(%ebp)
   76     Down = 0
				movl	$0, -4420(%ebp)
   77
   78     -> Delta
				nop
		.L19:
   79
   80     Alpha:  Up   = Up   + 1;  -> Gamma
				addl	$1, -4424(%ebp)
				nop
		.L21:
   81     Beta:   Down = Down + 1;  -> Out
				addl	$1, -4420(%ebp)
				nop
		.L23:
		.LBB98:
   82     Gamma:  Up   = Up   + 1;  -> Beta
				addl	$1, -4424(%ebp)
				nop
		.L22:
   83     Delta:  Down = Down + 1;  -> Alpha
				addl	$1, -4420(%ebp)
				nop
		.L20:
   84     Out:
   85          %If Up = Down = 2 %then pass %else fail
				movl	-4420(%ebp), %eax
				movl	%eax, -4416(%ebp)
				movl	-4416(%ebp), %eax
				cmpl	-4424(%ebp), %eax
				jne	.L147
				cmpl	$2, -4416(%ebp)
				jne	.L148
		.LBE98:
				leal	-4436(%ebp), %eax
				movl	%eax, %ecx
				call	PASS.6057
				jmp	.L27
		.L147:
		.LBB99:
				nop
				jmp	.L25
		.L148:
				nop
		.L25:
		.LBE99:
				leal	-4436(%ebp), %eax
				movl	%eax, %ecx
				call	FAIL.6062
		.L27:
   86 !            Forward and Backward simple jumps.
   87
   88
   89
   90     Up    = 100
				movl	$100, -4424(%ebp)
   91     Error = 0
				movl	$0, -4428(%ebp)
   92
   93     %For J = 990, 10, 3540 %cycle
				movl	$980, -4432(%ebp)
		.L28:
				cmpl	$3540, -4432(%ebp)
				je	.L149
				addl	$10, -4432(%ebp)
				nop
		.L30:
   94
   95         -> SW (J // 10 + 1)   { Introduces an integer expression in the switch
				movl	$95, -4412(%ebp)
				leal	.LC13@GOTOFF(%ebx), %eax
				movl	%eax, -4408(%ebp)
				movl	-4432(%ebp), %ecx
				movl	$1717986919, %edx
				movl	%ecx, %eax
				imull	%edx
				sarl	$2, %edx
				movl	%ecx, %eax
				sarl	$31, %eax
				subl	%eax, %edx
				movl	%edx, %eax
				addl	$1, %eax
				movl	%eax, -4404(%ebp)
				nop
		.L31:
   96
   97
   98         SW(140):   Error = Error + 1 %unless Up = 140
				cmpl	$140, -4424(%ebp)
				je	.L150
				addl	$1, -4428(%ebp)
				nop
		.L35:
   99                    -> Cont
				jmp	.L103
		.L150:
				jmp	.L103
		.L37:
  100
  101         SW(255):   Error = Error + 1 %unless Up = 255
				cmpl	$255, -4424(%ebp)
				je	.L151
				addl	$1, -4428(%ebp)
				nop
		.L39:
  102                    -> Cont
				jmp	.L103
		.L151:
				jmp	.L103
		.L40:
  103
  104         SW(105):   Error = Error + 1 %unless Up = 105
				cmpl	$105, -4424(%ebp)
				je	.L152
				addl	$1, -4428(%ebp)
				nop
		.L42:
  105                    -> Cont
				jmp	.L103
		.L152:
				jmp	.L103
		.L43:
  106
  107         SW(304):   Error = Error + 1 %unless Up = 304
				cmpl	$304, -4424(%ebp)
				je	.L153
				addl	$1, -4428(%ebp)
				nop
		.L45:
  108                    -> Cont
				jmp	.L103
		.L153:
				jmp	.L103
		.L46:
  109
  110         SW(182):   Error = Error + 1 %unless Up = 182
				cmpl	$182, -4424(%ebp)
				je	.L154
				addl	$1, -4428(%ebp)
				nop
		.L48:
  111                    -> Cont
				jmp	.L103
		.L154:
				jmp	.L103
		.L49:
  112
  113         SW(354):   Error = Error + 1 %unless Up = 354
				cmpl	$354, -4424(%ebp)
				je	.L155
				addl	$1, -4428(%ebp)
				nop
		.L51:
  114                    -> Cont
				jmp	.L103
		.L155:
				jmp	.L103
		.L52:
  115
  116         SW(111):   Error = Error + 1 %unless Up = 111
				cmpl	$111, -4424(%ebp)
				je	.L156
				addl	$1, -4428(%ebp)
				nop
		.L54:
  117                    -> Cont
				jmp	.L103
		.L156:
				jmp	.L103
		.L55:
  118
  119         SW(193):   Error = Error + 1 %unless Up = 193
				cmpl	$193, -4424(%ebp)
				je	.L157
				addl	$1, -4428(%ebp)
				nop
		.L57:
  120                    -> Cont
				jmp	.L103
		.L157:
				jmp	.L103
		.L58:
  121
  122         SW(121):   Error = Error + 1 %unless Up = 121
				cmpl	$121, -4424(%ebp)
				je	.L158
				addl	$1, -4428(%ebp)
				nop
		.L60:
  123                    -> Cont
				jmp	.L103
		.L158:
				jmp	.L103
		.L61:
  124
  125         SW(201):   Error = Error + 1 %unless Up = 201
				cmpl	$201, -4424(%ebp)
				je	.L159
				addl	$1, -4428(%ebp)
				nop
		.L63:
  126                    -> Cont
				jmp	.L103
		.L159:
				jmp	.L103
		.L64:
  127
  128         SW(296):   Error = Error + 1 %unless Up = 296
				cmpl	$296, -4424(%ebp)
				je	.L160
				addl	$1, -4428(%ebp)
				nop
		.L66:
  129                    -> Cont
				jmp	.L103
		.L160:
				jmp	.L103
		.L67:
  130
  131         SW(160):   Error = Error + 1 %unless Up = 160
				cmpl	$160, -4424(%ebp)
				je	.L161
				addl	$1, -4428(%ebp)
				nop
		.L69:
  132                    -> Cont
				jmp	.L103
		.L161:
				jmp	.L103
		.L70:
  133
  134         SW(122):   Error = Error + 1 %unless Up = 122
				cmpl	$122, -4424(%ebp)
				je	.L162
				addl	$1, -4428(%ebp)
				nop
		.L72:
  135                    -> Cont
				jmp	.L103
		.L162:
				jmp	.L103
		.L73:
  136
  137         SW(101):   Error = Error + 1 %unless Up = 101
				cmpl	$101, -4424(%ebp)
				je	.L163
				addl	$1, -4428(%ebp)
				nop
		.L75:
  138                    -> Cont
				jmp	.L103
		.L163:
				jmp	.L103
		.L76:
  139
  140         SW(202):   Error = Error + 1 %unless Up = 202
				cmpl	$202, -4424(%ebp)
				je	.L164
				addl	$1, -4428(%ebp)
				nop
		.L78:
  141                    -> Cont
				jmp	.L103
		.L164:
				jmp	.L103
		.L79:
  142
  143         SW(301):   Error = Error + 1 %unless Up = 301
				cmpl	$301, -4424(%ebp)
				je	.L165
				addl	$1, -4428(%ebp)
				nop
		.L81:
  144                    -> Cont
				jmp	.L103
		.L165:
				jmp	.L103
		.L82:
  145
  146         SW(355):   Error = Error + 1 %unless Up = 355
				cmpl	$355, -4424(%ebp)
				je	.L166
				addl	$1, -4428(%ebp)
				nop
		.L84:
  147                    -> Cont
				jmp	.L103
		.L166:
				jmp	.L103
		.L85:
  148
  149         SW(200):   Error = Error + 1 %unless Up = 200
				cmpl	$200, -4424(%ebp)
				je	.L167
				addl	$1, -4428(%ebp)
				nop
		.L87:
  150                    -> Cont
				jmp	.L103
		.L167:
				jmp	.L103
		.L88:
  151
  152         SW(324):   Error = Error + 1 %unless Up = 324
				cmpl	$324, -4424(%ebp)
				je	.L168
				addl	$1, -4428(%ebp)
				nop
		.L90:
  153                    -> Cont
				jmp	.L103
		.L168:
				jmp	.L103
		.L91:
  154
  155         SW(*):     -> Cont
				jmp	.L103
		.L92:
  156
  157         SW(109):   Error = Error + 1 %unless Up = 109
				cmpl	$109, -4424(%ebp)
				je	.L169
				addl	$1, -4428(%ebp)
				nop
		.L94:
  158                    -> Cont
				jmp	.L103
		.L169:
				jmp	.L103
		.L95:
  159
  160         SW(256):   Error = Error + 1 %unless Up = 256
				cmpl	$256, -4424(%ebp)
				je	.L170
				addl	$1, -4428(%ebp)
				nop
		.L97:
  161                    -> Cont
				jmp	.L103
		.L170:
				jmp	.L103
		.L98:
  162
  163         SW(145):   Error = Error + 1 %unless Up = 145
				cmpl	$145, -4424(%ebp)
				je	.L171
				addl	$1, -4428(%ebp)
				nop
		.L100:
  164                    -> Cont
				jmp	.L103
		.L171:
				jmp	.L103
		.L101:
  165
  166         SW(165):   Error = Error + 1 %unless Up = 165
				cmpl	$165, -4424(%ebp)
				je	.L172
				addl	$1, -4428(%ebp)
				jmp	.L103
		.L36:
		.L172:
				nop
		.L103:
  167
  168
  169         Cont:      Up = Up + 1
				addl	$1, -4424(%ebp)
  170
  171     %Repeat
				jmp	.L28
		.L149:
  172     %If Error = 0 %and Up = 356 %then pass %else fail
				cmpl	$0, -4428(%ebp)
				jne	.L173
				cmpl	$356, -4424(%ebp)
				jne	.L174
				leal	-4436(%ebp), %eax
				movl	%eax, %ecx
				call	PASS.6057
				jmp	.L107
		.L173:
				nop
				jmp	.L105
		.L174:
				nop
		.L105:
				leal	-4436(%ebp), %eax
				movl	%eax, %ecx
				call	FAIL.6062
		.L107:
  173 !       %Switch operation.
  174
  175
  176
  177 select output(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
  178 write(failures,1);  printstring(" failure(s)");  newline
				movl	FAILURES.6055@GOTOFF(%ebx), %eax
				subl	$8, %esp
				pushl	$1
				pushl	%eax
				call	_imp_writeint@PLT
				addl	$16, %esp
		.LBB100:
				leal	-284(%ebp), %eax
				leal	.LC9@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
				leal	-284(%ebp), %eax
				leal	-2844(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE100:
		.LBB101:
		.LBB102:
				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
		.LBE102:
		.LBE101:
		.LBB103:
		.LBB104:
				call	_imp_newline@PLT
				movl	$0, -4384(%ebp)
		.LBE104:
		.LBE103:
		.LBB105:
		.LBB106:
				subl	$12, %esp
				pushl	-4384(%ebp)
				call	exit@PLT
		.L120:
		.LBE106:
		.LBE105:
				cmpl	$355, -4404(%ebp)
				jle	.L109
		.L108:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L110
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -4448(%ebp)
				jmp	.L111
		.L110:
				movl	$180, -4448(%ebp)
		.L111:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L112
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-2332(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L113
		.L112:
		.LBB107:
				leal	-284(%ebp), %eax
				leal	.LC10@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
		.LBE107:
				leal	-2332(%ebp), %eax
				leal	-2588(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L113:
				pushl	-4412(%ebp)
				pushl	-4408(%ebp)
				pushl	-4404(%ebp)
				leal	.LC14@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-4404(%ebp)
				pushl	$3
				pushl	$6
				pushl	-4448(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-2332(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_eventf@PLT
				addl	$288, %esp
		.L109:
				movl	-4404(%ebp), %eax
				subl	$100, %eax
				movl	SW.6030@GOTOFF(%ebx,%eax,4), %eax
				nop
				jmp	*%eax
		.LFE189:
				.section	.rodata
				.align 32
		.LC11:
				.byte	4
				.string	"FAIL"
				.zero	250
		FAIL.6062:
		.LFB191:
  179
  180 %End %of %Program
				cmpl	$99, -4404(%ebp)
				jle	.L108
				jmp	.L120
		.L32:
?K unused
  105 Statements compiled
