         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.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:
		MAX.6025:
		.LFB190:
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				pushl	%ecx
				subl	$1080, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -812(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				leal	8(%ebp), %edx
				movl	%edx, -808(%ebp)
				subl	$8, %esp
				pushl	-812(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
		.LBB109:
    2     %constant %byte maximising player = 0
    3     %constant %byte maximising symbol = 'O'
    4
    5     %constant %byte minimising player = 1
    6     %constant %byte minimising symbol = 'X'
    7
    8     %constant %byte unused symbol     = '-'
    9
   10     %constant %byte machine           = maximising player
   11     %constant %byte machine symbol    = maximising symbol
   12     %constant %byte human             = minimising player
   13     %constant %byte human symbol      = minimising symbol
   14
   15     ! Values to indicate game board layout
   16     %constant %byte top left      = 1
   17     %constant %byte top centre    = 2
   18     %constant %byte top right     = 3
   19     %constant %byte middle left   = 4
   20     %constant %byte centre        = 5
   21     %constant %byte middle right  = 6
   22     %constant %byte bottom left   = 7
   23     %constant %byte bottom centre = 8
   24     %constant %byte bottom right  = 9
   25
   26     ! Assuming 32-bit integers are used
   27     %constant %integer minus infinity = 16_80000000
   28     %constant %integer plus infinity  = 16_7fffffff
   29
   30     %integer game
   31     %string(9) game state
   32
   33     %integer %function max( %integer a, b)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, -4(%ebp)
   34         %result = b %if (b > a)
				movl	12(%ebp), %eax
				cmpl	8(%ebp), %eax
				jle	.L10
				movl	12(%ebp), %eax
				jmp	.L8
		.L10:
				nop
		.L7:
   35         %result = a
				movl	8(%ebp), %eax
		.L8:
   36     %end
				leave
				ret
		.LFE190:
				.globl	main
		main:
		.LFB189:
   37
   38     %integer %function min( %integer a, b)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, -4(%ebp)
   39         %result = b %if (b < a)
				movl	12(%ebp), %eax
				cmpl	8(%ebp), %eax
				jge	.L18
				movl	12(%ebp), %eax
				jmp	.L16
		.L18:
				nop
		.L15:
   40         %result = a
				movl	8(%ebp), %eax
		.L16:
   41     %end
				leave
				ret
		.LFE191:
		RESETGAME.6034:
		.LFB192:
   42
   43     %string(9) %function reset game
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1084, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -1084(%ebp)
				movl	%ecx, -1088(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB116:
		.LBB117:
   44         %integer i
   45         %string(9) initial state
   46
   47         ! clear the game state
   48         initial state = ""
				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	-796(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE117:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE116:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-1052(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
   49         ! completely populate the game state with the unused symbol
   50         %for i = 1,1,9 %cycle
				movl	$0, -1072(%ebp)
		.L20:
				cmpl	$9, -1072(%ebp)
				je	.L29
				addl	$1, -1072(%ebp)
				movl	$45, -1068(%ebp)
				leal	-540(%ebp), %eax
				movl	%eax, -1064(%ebp)
		.LBB118:
		.LBB119:
		.LBB120:
		.LBB121:
		.LBB122:
		.LBB123:
		.LBB124:
				movl	-1064(%ebp), %eax
		.LBE124:
		.LBE123:
				movb	$1, (%eax)
				leal	-540(%ebp), %eax
				movl	%eax, -1060(%ebp)
				movl	$1, -1056(%ebp)
		.LBB125:
		.LBB126:
				movl	-1060(%ebp), %edx
				movl	-1056(%ebp), %eax
				addl	%edx, %eax
		.LBE126:
		.LBE125:
				movl	-1068(%ebp), %edx
				movb	%dl, (%eax)
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE122:
		.LBE121:
				nop
		.L22:
   51             initial state = initial state.to string( unused symbol )
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edx
		.LBE120:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	%edx
				leal	-1052(%ebp), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE119:
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-540(%ebp), %eax
		.LBE118:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-1052(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
   52         %repeat
				jmp	.L20
		.L29:
   53
   54         %result = initial state
				movl	-1084(%ebp), %eax
				movl	%eax, %edx
				leal	-1052(%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
   55     %end
				movl	-1084(%ebp), %eax
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L27
				call	__stack_chk_fail_local
		.L27:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE192:
				.section	.rodata
		.LC19:
				.string	"test-in/tictactoe.imp"
				.align 4
		.LC20:
				.string	"->SW(%d) out of bounds at %s line %d"
				.align 4
		.LC21:
				.string	"switch jump to undefined label SW(%d): at %s line %d"
				.align 32
		.LC8:
				.byte	21
				.string	"test-in/tictactoe.imp"
				.zero	233
		SLOT2NAME.6051:
		.LFB193:
   56
   57     %string(32) %function slot2name( %byte slot )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1068, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	12(%ebp), %edx
				movl	8(%ebp), %eax
				movl	%eax, -1068(%ebp)
				movl	%edx, %eax
				movb	%al, -1072(%ebp)
				movl	%ecx, -1076(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
   58         %string(32) name
   59         %switch sw(0:255)
   60
   61         -> sw( slot )
				movl	$61, -1064(%ebp)
				leal	.LC19@GOTOFF(%ebx), %eax
				movl	%eax, -1060(%ebp)
				movzbl	-1072(%ebp), %eax
				movl	%eax, -1056(%ebp)
				nop
		.L31:
   62         sw(top left):      name = "top left";          -> esac
   63         sw(top centre):    name = "top centre";        -> esac
   64         sw(top right):     name = "top right";         -> esac
   65         sw(middle left):   name = "middle left";       -> esac
   66         sw(centre):        name = "centre";            -> esac
   67         sw(middle right):  name = "middle right";      -> esac
   68         sw(bottom left):   name = "bottom left";       -> esac
   69         sw(bottom centre): name = "bottom centre";     -> esac
   70         sw(bottom right):  name = "bottom right";      -> esac
   71         sw(*):             name = "an illegal square"; -> esac
   72         esac:
   73
   74         %result = name
   75     %end
				cmpl	$0, -1056(%ebp)
				js	.L32
				cmpl	$255, -1056(%ebp)
				jle	.L33
		.L32:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L34
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1080(%ebp)
				jmp	.L35
		.L34:
				movl	$75, -1080(%ebp)
		.L35:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L36
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L37
		.L36:
		.LBB127:
				leal	-284(%ebp), %eax
				leal	.LC8@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE127:
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L37:
				pushl	-1064(%ebp)
				pushl	-1060(%ebp)
				pushl	-1056(%ebp)
				leal	.LC20@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1056(%ebp)
				pushl	$3
				pushl	$6
				pushl	-1080(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_eventf@PLT
				addl	$288, %esp
		.L33:
				nop
		.L39:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L46
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1080(%ebp)
				jmp	.L42
		.L46:
				movl	$75, -1080(%ebp)
		.L42:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L43
				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	.L44
		.L43:
		.LBB128:
				leal	-284(%ebp), %eax
				leal	.LC8@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
		.LBE128:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L44:
				pushl	-1064(%ebp)
				pushl	-1060(%ebp)
				pushl	-1056(%ebp)
				leal	.LC21@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1056(%ebp)
				pushl	$2
				pushl	$8
				pushl	-1080(%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_eventf@PLT
				addl	$288, %esp
				nop
				movl	-1068(%ebp), %eax
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L45
				call	__stack_chk_fail_local
		.L45:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE193:
		SHOWSTATE.6116:
		.LFB194:
   76
   77     %routine show state( %string(9) state )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1340, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -1340(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
   78         %integer i, j
   79         %byte symbol
   80         %switch sw(1:9)
   81
   82         select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB129:
   83         print string( state )
				leal	-284(%ebp), %eax
				leal	8(%ebp), %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
		.LBE129:
		.LBB130:
		.LBB131:
				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
		.LBE131:
		.LBE130:
		.LBB132:
		.LBB133:
				call	_imp_newline@PLT
		.LBE133:
		.LBE132:
		.LBB134:
		.LBB135:
				call	_imp_newline@PLT
		.LBE135:
		.LBE134:
   84         newline
   85         newline
   86         %for i = 1,1,9 %cycle
				movl	$0, -1332(%ebp)
		.L48:
				cmpl	$9, -1332(%ebp)
				je	.L73
				addl	$1, -1332(%ebp)
				leal	8(%ebp), %eax
				movl	%eax, -1316(%ebp)
				movl	-1332(%ebp), %eax
				movl	%eax, -1312(%ebp)
		.LBB136:
		.LBB137:
				movl	-1316(%ebp), %edx
				movl	-1312(%ebp), %eax
				addl	%edx, %eax
		.LBE137:
		.LBE136:
				nop
		.L50:
		.LBB138:
		.LBB139:
				call	_imp_newline@PLT
		.LBE139:
		.LBE138:
   87             symbol = charno( state, i )
				movzbl	(%eax), %eax
				movb	%al, -1333(%ebp)
   88             %if (symbol = unused symbol) %then symbol = ' '
				cmpb	$45, -1333(%ebp)
				jne	.L74
				movb	$32, -1333(%ebp)
				jmp	.L53
		.L74:
				nop
		.L53:
   89
   90             -> sw(i)
				movl	$90, -1328(%ebp)
				leal	.LC19@GOTOFF(%ebx), %eax
				movl	%eax, -1324(%ebp)
				movl	-1332(%ebp), %eax
				movl	%eax, -1320(%ebp)
				nop
		.L54:
   91         sw(1): print symbol( symbol ); print symbol( '|' ); -> esac
   92         sw(2): print symbol( symbol ); print symbol( '|' ); -> esac
   93         sw(3): print symbol( symbol ); newline
   94                print string( "-+-+-" ); newline;            -> esac
   95         sw(4): print symbol( symbol ); print symbol( '|' ); -> esac
   96         sw(5): print symbol( symbol ); print symbol( '|' ); -> esac
   97         sw(6): print symbol( symbol ); newline
   98                print string( "-+-+-" ); newline;            -> esac
   99         sw(7): print symbol( symbol ); print symbol( '|' ); -> esac
  100         sw(8): print symbol( symbol ); print symbol( '|' ); -> esac
  101         sw(9): print symbol( symbol ); newline;             -> esac
  102
  103         esac:
  104         %repeat
  105
  106         newline
  107
  108     %end
				cmpl	$0, -1320(%ebp)
				jle	.L56
				jmp	.L71
		.L73:
				jmp	.L47
		.L71:
				cmpl	$9, -1320(%ebp)
				jle	.L57
		.L56:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L58
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1344(%ebp)
				jmp	.L59
		.L58:
				movl	$108, -1344(%ebp)
		.L59:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L60
				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	.L61
		.L60:
		.LBB140:
				leal	-540(%ebp), %eax
				leal	.LC8@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE140:
				leal	-796(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L61:
				pushl	-1328(%ebp)
				pushl	-1324(%ebp)
				pushl	-1320(%ebp)
				leal	.LC20@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1320(%ebp)
				pushl	$3
				pushl	$6
				pushl	-1344(%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_eventf@PLT
				addl	$288, %esp
		.L57:
				nop
		.L63:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L72
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1344(%ebp)
				jmp	.L66
		.L72:
				movl	$108, -1344(%ebp)
		.L66:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L67
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L68
		.L67:
		.LBB141:
				leal	-540(%ebp), %eax
				leal	.LC8@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE141:
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L68:
				pushl	-1328(%ebp)
				pushl	-1324(%ebp)
				pushl	-1320(%ebp)
				leal	.LC21@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1320(%ebp)
				pushl	$2
				pushl	$8
				pushl	-1344(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_eventf@PLT
				addl	$288, %esp
		.L47:
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L69
				call	__stack_chk_fail_local
		.L69:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE194:
		UNUSEDSLOT.6152:
		.LFB195:
?J unused
  109
  110     %predicate unused slot( %string(9) state, %byte square )
				pushl	%ebp
				movl	%esp, %ebp
				subl	$24, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	264(%ebp), %eax
				movb	%al, -20(%ebp)
				movl	%ecx, -24(%ebp)
  111         %true %if (charno( state , square ) = unused symbol)
				movzbl	-20(%ebp), %eax
				leal	8(%ebp), %ecx
				movl	%ecx, -8(%ebp)
				movl	%eax, -4(%ebp)
		.LBB142:
		.LBB143:
				movl	-8(%ebp), %edx
				movl	-4(%ebp), %eax
				addl	%edx, %eax
		.LBE143:
		.LBE142:
				movzbl	(%eax), %eax
				cmpb	$45, %al
				jne	.L81
				movl	$1, %eax
				jmp	.L79
		.L81:
				nop
		.L78:
  112         %false
				movl	$0, %eax
		.L79:
  113     %end
				leave
				ret
		.LFE195:
				.section	.rodata
				.align 32
		.LC0:
				.byte	26
				.string	"Cheating detected! Player "
				.zero	228
				.align 32
		.LC1:
				.byte	27
				.string	" tried to overwrite player "
				.zero	227
				.align 32
		.LC2:
				.byte	1
				.string	"'"
				.zero	253
				.align 32
		.LC3:
				.byte	12
				.string	" at square '"
				.zero	242
				.align 32
		.LC4:
				.byte	27
				.string	"Cheating detected! Player '"
				.zero	227
				.align 32
		.LC5:
				.byte	20
				.string	"' tried to move to '"
				.zero	234
				.align 32
		.LC6:
				.byte	29
				.string	" Only squares 1..9 are valid!"
				.zero	225
		MAKEMOVE.6158:
		.LFB196:
  114
  115     ! Make a game move by storing player's symbol at given slot
  116     %string(9) %function make move( %string(9) state, %byte slot, symbol )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$4172, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	268(%ebp), %esi
				movl	272(%ebp), %edx
				movl	8(%ebp), %eax
				movl	%eax, -3900(%ebp)
				movl	%esi, %eax
				movb	%al, -3904(%ebp)
				movl	%edx, %eax
				movb	%al, -3908(%ebp)
				movl	%ecx, -4172(%ebp)
				movl	%ecx, -3912(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB144:
  117         %string(9) next state
  118
  119         next state = state
				leal	-284(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE144:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-3868(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB145:
  120         %if (top left <= slot <= bottom right) %start
				movzbl	-3904(%ebp), %eax
				movb	%al, -3892(%ebp)
				cmpb	$0, -3892(%ebp)
				je	.L95
				cmpb	$9, -3892(%ebp)
				ja	.L96
		.LBE145:
				nop
				jmp	.L84
		.L96:
				nop
		.L84:
		.LBE179:
  121             %if unused slot( state , slot ) %start
				movzbl	-3904(%ebp), %eax
				movl	%eax, -4176(%ebp)
		.LBB146:
				leal	-284(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE146:
				subl	$12, %esp
				pushl	-4176(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	-4172(%ebp), %ecx
				call	UNUSEDSLOT.6152
				addl	$272, %esp
				testl	%eax, %eax
				je	.L97
				nop
		.L87:
  122                 charno( next state, slot ) = symbol
				movzbl	-3904(%ebp), %eax
				leal	-3868(%ebp), %edx
				movl	%edx, -3884(%ebp)
				movl	%eax, -3880(%ebp)
		.LBB147:
		.LBB148:
				movl	-3884(%ebp), %edx
				movl	-3880(%ebp), %eax
				addl	%eax, %edx
		.LBE148:
		.LBE147:
				movzbl	-3908(%ebp), %eax
				movb	%al, (%edx)
  123             %finish %else %start
				nop
		.L89:
  124                 select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB149:
  125                 print string( "Cheating detected! Player " )
				leal	-284(%ebp), %eax
				leal	.LC0@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	-1564(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE149:
		.LBB150:
		.LBB151:
				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	_imp_printstring@PLT
				addl	$256, %esp
				movb	$34, -3886(%ebp)
		.LBE151:
		.LBE150:
		.LBB152:
		.LBB153:
				movsbl	-3886(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE153:
		.LBE152:
  126                 print symbol( '"' )
  127                 print symbol( symbol )
				movzbl	-3908(%ebp), %eax
				movsbl	%al, %eax
				movb	%al, -3887(%ebp)
		.LBB154:
		.LBB155:
				movsbl	-3887(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
				movb	$34, -3888(%ebp)
		.LBE155:
		.LBE154:
		.LBB156:
		.LBB157:
				movsbl	-3888(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE157:
		.LBE156:
		.LBB158:
  128                 print symbol( '"' )
  129                 print string( " tried to overwrite player ")
				leal	-284(%ebp), %eax
				leal	.LC1@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	-1820(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE158:
		.LBB159:
		.LBB160:
				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	_imp_printstring@PLT
				addl	$256, %esp
				movb	$34, -3889(%ebp)
		.LBE160:
		.LBE159:
		.LBB161:
		.LBB162:
				movsbl	-3889(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE162:
		.LBE161:
  130                 print symbol( '"' )
  131                 print symbol( charno( state, slot ) )
				movzbl	-3904(%ebp), %eax
				leal	12(%ebp), %edx
				movl	%edx, -3876(%ebp)
				movl	%eax, -3872(%ebp)
		.LBB163:
		.LBB164:
				movl	-3876(%ebp), %edx
				movl	-3872(%ebp), %eax
				addl	%edx, %eax
		.LBE164:
		.LBE163:
				movzbl	(%eax), %eax
				movsbl	%al, %eax
				movb	%al, -3890(%ebp)
		.LBB165:
		.LBB166:
				movsbl	-3890(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
				movb	$34, -3891(%ebp)
		.LBE166:
		.LBE165:
		.LBB167:
		.LBB168:
				movsbl	-3891(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE168:
		.LBE167:
		.LBB169:
		.LBB170:
		.LBB171:
  132                 print symbol( '"' )
  133                 print string( " at square '".slot2name( slot )."'" )
				leal	-284(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				movl	%eax, -4176(%ebp)
		.LBE171:
		.LBB172:
		.LBB173:
				movzbl	-3904(%ebp), %edx
				leal	-4168(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				movl	-4172(%ebp), %ecx
				call	SLOT2NAME.6051
				addl	$12, %esp
				leal	-284(%ebp), %eax
				leal	-4168(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %edi
				movl	%edi, -4172(%ebp)
		.LBE173:
		.LBB174:
				leal	-284(%ebp), %eax
				leal	.LC3@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %edx
		.LBE174:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-4172(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-284(%ebp), %edx
		.LBE172:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-4176(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-284(%ebp), %edx
		.LBE170:
				leal	-284(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %edx
				leal	-2076(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE169:
		.LBB175:
		.LBB176:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE176:
		.LBE175:
		.LBB177:
		.LBB178:
				call	_imp_newline@PLT
		.LBE178:
		.LBE177:
  134                 new line
  135             %finish
  136         %finish %else %start
				jmp	.L91
		.L97:
				jmp	.L91
		.L95:
		.LBB179:
  137             select output( 0 )
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB180:
  138             print string( "Cheating detected! Player '" )
				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
				leal	-284(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE180:
		.LBB181:
		.LBB182:
				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
		.LBE182:
		.LBE181:
  139             print symbol( symbol )
				movzbl	-3908(%ebp), %eax
				movsbl	%al, %eax
				movb	%al, -3885(%ebp)
		.LBB183:
		.LBB184:
				movsbl	-3885(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE184:
		.LBE183:
		.LBB185:
  140             print string( "' tried to move to '" )
				leal	-540(%ebp), %eax
				leal	.LC5@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2844(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-2844(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE185:
		.LBB186:
		.LBB187:
				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
		.LBE187:
		.LBE186:
		.LBB188:
  141             print string( slot2name( slot ) )
				movzbl	-3904(%ebp), %edx
				leal	-796(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				movl	-4172(%ebp), %ecx
				call	SLOT2NAME.6051
				addl	$12, %esp
				leal	-796(%ebp), %edx
				leal	-796(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE188:
		.LBB189:
		.LBB190:
				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
		.LBE190:
		.LBE189:
		.LBB191:
  142             print string( "'" )
				leal	-1052(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2588(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-2588(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE191:
		.LBB192:
		.LBB193:
				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
		.LBE193:
		.LBE192:
		.LBB194:
		.LBB195:
				call	_imp_newline@PLT
		.LBE195:
		.LBE194:
		.LBB196:
  143             new line
  144             print string( " Only squares 1..9 are valid!" )
				leal	-1308(%ebp), %eax
				leal	.LC6@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2332(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				leal	-2332(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE196:
		.LBB197:
		.LBB198:
				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
		.LBE198:
		.LBE197:
		.LBB199:
		.LBB200:
				call	_imp_newline@PLT
		.L91:
		.LBE200:
		.LBE199:
  145             new line
  146         %finish
  147         %result = next state
				movl	-3900(%ebp), %eax
				movl	%eax, %edx
				leal	-3868(%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
  148     %end
				movl	-3900(%ebp), %eax
				movl	-28(%ebp), %ebx
				xorl	%gs:20, %ebx
				je	.L93
				call	__stack_chk_fail_local
		.L93:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE196:
		FREESLOT.6213:
		.LFB199:
  149
  150     %predicate my slot( %string(9) state, %byte slot id, symbol )
  151         %true %if (charno( state, slot id ) = unused symbol)
  152         %false
  153     %end
?SYMBOL unused
  154
  155     ! Would the player win on their next move?
  156     %predicate potential win line( %string(9) state, %byte symbol, p1,p2,p3 )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$60, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	264(%ebp), %esi
				movl	268(%ebp), %ebx
				movl	272(%ebp), %edx
				movl	276(%ebp), %edi
				movl	%esi, %eax
				movb	%al, -44(%ebp)
				movb	%bl, -48(%ebp)
				movb	%dl, -52(%ebp)
				movl	%edi, %eax
				movb	%al, -56(%ebp)
				movl	%ecx, -60(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				leal	8(%ebp), %edx
				leal	8(%ebp), %eax
				movl	%edx, -32(%ebp)
				movl	%eax, -40(%ebp)
				movzbl	-44(%ebp), %eax
				movb	%al, -36(%ebp)
  157         %byte pos 1, pos 2, pos 3
  158
  159         %predicate free slot( %byte slot id )
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	8(%ebp), %eax
				movb	%al, -28(%ebp)
				movl	%ecx, %edx
				movl	%ecx, -32(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -12(%ebp)
				xorl	%eax, %eax
  160             %true %if (charno( state, slot id ) = unused symbol)
				movzbl	-28(%ebp), %eax
				movl	(%edx), %edx
				movl	%edx, -20(%ebp)
				movl	%eax, -16(%ebp)
		.LBB201:
		.LBB202:
				movl	-20(%ebp), %edx
				movl	-16(%ebp), %eax
				addl	%edx, %eax
		.LBE202:
		.LBE201:
				movzbl	(%eax), %eax
				cmpb	$45, %al
				jne	.L105
				movl	$1, %eax
				jmp	.L102
		.L105:
				nop
		.L101:
  161             %false
				movl	$0, %eax
		.L102:
  162         %end
				movl	-12(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L103
				call	__stack_chk_fail_local
		.L103:
				leave
				ret
		.LFE199:
		POTENTIALWINLINE.6207:
		.LFB198:
  163
  164         %predicate my slot( %byte slot id )
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	8(%ebp), %eax
				movb	%al, -28(%ebp)
				movl	%ecx, %eax
				movl	%ecx, -32(%ebp)
				movl	%gs:20, %edx
				movl	%edx, -12(%ebp)
				xorl	%edx, %edx
  165             %true %if (charno( state, slot id ) = symbol )
				movzbl	-28(%ebp), %edx
				movl	(%eax), %ecx
				movl	%ecx, -20(%ebp)
				movl	%edx, -16(%ebp)
		.LBB203:
		.LBB204:
				movl	-20(%ebp), %ecx
				movl	-16(%ebp), %edx
				addl	%ecx, %edx
		.LBE204:
		.LBE203:
				movzbl	(%edx), %edx
				movzbl	4(%eax), %eax
				cmpb	%dl, %al
				jne	.L137
				movl	$1, %eax
				jmp	.L134
		.L137:
				nop
		.L133:
  166             %false
				movl	$0, %eax
		.L134:
  167         %end
				movl	-12(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L135
				call	__stack_chk_fail_local
		.L135:
				leave
				ret
		.LFE200:
		NEXTMOVEWIN.6225:
		.LFB201:
  168
  169         %true %if free slot( p1 ) %and   my slot( p2 ) %and   my slot( p3 )
				movzbl	-48(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	FREESLOT.6213
				addl	$16, %esp
				testl	%eax, %eax
				je	.L121
				movzbl	-52(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L122
				movzbl	-56(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L123
				movl	$1, %eax
				jmp	.L111
		.L121:
				nop
				jmp	.L108
		.L122:
				nop
				jmp	.L108
		.L123:
				nop
		.L108:
  170         %true %if   my slot( p1 ) %and free slot( p2 ) %and   my slot( p3 )
				movzbl	-48(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L124
				movzbl	-52(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	FREESLOT.6213
				addl	$16, %esp
				testl	%eax, %eax
				je	.L125
				movzbl	-56(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L126
				movl	$1, %eax
				jmp	.L111
		.L124:
				nop
				jmp	.L113
		.L125:
				nop
				jmp	.L113
		.L126:
				nop
		.L113:
  171         %true %if   my slot( p1 ) %and   my slot( p2 ) %and free slot( p3 )
				movzbl	-48(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L127
				movzbl	-52(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L128
				movzbl	-56(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	FREESLOT.6213
				addl	$16, %esp
				testl	%eax, %eax
				je	.L129
				movl	$1, %eax
				jmp	.L111
		.L127:
				nop
				jmp	.L117
		.L128:
				nop
				jmp	.L117
		.L129:
				nop
		.L117:
  172         %false
				movl	$0, %eax
		.L111:
  173     %end
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L120
				call	__stack_chk_fail_local
		.L120:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE198:
		MYSLOT.6217:
		.LFB200:
    0 nused
    0 nused
    0 nused
  174
				leal	4(%esp), %ecx
				andl	$-16, %esp
				pushl	-4(%ecx)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				pushl	%ecx
				subl	$1080, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -812(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				leal	8(%ebp), %edx
				movl	%edx, -808(%ebp)
				subl	$8, %esp
				pushl	-812(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
		.LBB109:
				pushl	%ebp
				movl	%esp, %ebp
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, -4(%ebp)
				movl	12(%ebp), %eax
				cmpl	8(%ebp), %eax
				jle	.L10
				movl	12(%ebp), %eax
				jmp	.L8
		.L10:
				nop
		.L7:
				movl	8(%ebp), %eax
		.L8:
				leave
				ret
		.LFE190:
				.globl	main
		main:
		.LFB189:
				pushl	%ebp
				movl	%esp, %ebp
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, -4(%ebp)
				movl	12(%ebp), %eax
				cmpl	8(%ebp), %eax
				jge	.L18
				movl	12(%ebp), %eax
				jmp	.L16
		.L18:
				nop
		.L15:
				movl	8(%ebp), %eax
		.L16:
				leave
				ret
		.LFE191:
		RESETGAME.6034:
		.LFB192:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1084, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -1084(%ebp)
				movl	%ecx, -1088(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB116:
		.LBB117:
				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	-796(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE117:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE116:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-1052(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
				movl	$0, -1072(%ebp)
		.L20:
				cmpl	$9, -1072(%ebp)
				je	.L29
				addl	$1, -1072(%ebp)
				movl	$45, -1068(%ebp)
				leal	-540(%ebp), %eax
				movl	%eax, -1064(%ebp)
		.LBB118:
		.LBB119:
		.LBB120:
		.LBB121:
		.LBB122:
		.LBB123:
		.LBB124:
				movl	-1064(%ebp), %eax
		.LBE124:
		.LBE123:
				movb	$1, (%eax)
				leal	-540(%ebp), %eax
				movl	%eax, -1060(%ebp)
				movl	$1, -1056(%ebp)
		.LBB125:
		.LBB126:
				movl	-1060(%ebp), %edx
				movl	-1056(%ebp), %eax
				addl	%edx, %eax
		.LBE126:
		.LBE125:
				movl	-1068(%ebp), %edx
				movb	%dl, (%eax)
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE122:
		.LBE121:
				nop
		.L22:
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %edx
		.LBE120:
				leal	-540(%ebp), %eax
				subl	$4, %esp
				pushl	%edx
				leal	-1052(%ebp), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-540(%ebp), %edx
		.LBE119:
				leal	-540(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-540(%ebp), %eax
		.LBE118:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-1052(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
				jmp	.L20
		.L29:
				movl	-1084(%ebp), %eax
				movl	%eax, %edx
				leal	-1052(%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
				movl	-1084(%ebp), %eax
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L27
				call	__stack_chk_fail_local
		.L27:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE192:
				.section	.rodata
		.LC19:
				.string	"test-in/tictactoe.imp"
				.align 4
		.LC20:
				.string	"->SW(%d) out of bounds at %s line %d"
				.align 4
		.LC21:
				.string	"switch jump to undefined label SW(%d): at %s line %d"
				.align 32
		.LC8:
				.byte	21
				.string	"test-in/tictactoe.imp"
				.zero	233
		SLOT2NAME.6051:
		.LFB193:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1068, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	12(%ebp), %edx
				movl	8(%ebp), %eax
				movl	%eax, -1068(%ebp)
				movl	%edx, %eax
				movb	%al, -1072(%ebp)
				movl	%ecx, -1076(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				movl	$61, -1064(%ebp)
				leal	.LC19@GOTOFF(%ebx), %eax
				movl	%eax, -1060(%ebp)
				movzbl	-1072(%ebp), %eax
				movl	%eax, -1056(%ebp)
				nop
		.L31:
				cmpl	$0, -1056(%ebp)
				js	.L32
				cmpl	$255, -1056(%ebp)
				jle	.L33
		.L32:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L34
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1080(%ebp)
				jmp	.L35
		.L34:
				movl	$75, -1080(%ebp)
		.L35:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L36
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L37
		.L36:
		.LBB127:
				leal	-284(%ebp), %eax
				leal	.LC8@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE127:
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L37:
				pushl	-1064(%ebp)
				pushl	-1060(%ebp)
				pushl	-1056(%ebp)
				leal	.LC20@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1056(%ebp)
				pushl	$3
				pushl	$6
				pushl	-1080(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_eventf@PLT
				addl	$288, %esp
		.L33:
				nop
		.L39:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L46
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1080(%ebp)
				jmp	.L42
		.L46:
				movl	$75, -1080(%ebp)
		.L42:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L43
				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	.L44
		.L43:
		.LBB128:
				leal	-284(%ebp), %eax
				leal	.LC8@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
		.LBE128:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L44:
				pushl	-1064(%ebp)
				pushl	-1060(%ebp)
				pushl	-1056(%ebp)
				leal	.LC21@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1056(%ebp)
				pushl	$2
				pushl	$8
				pushl	-1080(%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_eventf@PLT
				addl	$288, %esp
				nop
				movl	-1068(%ebp), %eax
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L45
				call	__stack_chk_fail_local
		.L45:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE193:
		SHOWSTATE.6116:
		.LFB194:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1340, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -1340(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB129:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %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
		.LBE129:
		.LBB130:
		.LBB131:
				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
		.LBE131:
		.LBE130:
		.LBB132:
		.LBB133:
				call	_imp_newline@PLT
		.LBE133:
		.LBE132:
		.LBB134:
		.LBB135:
				call	_imp_newline@PLT
		.LBE135:
		.LBE134:
				movl	$0, -1332(%ebp)
		.L48:
				cmpl	$9, -1332(%ebp)
				je	.L73
				addl	$1, -1332(%ebp)
				leal	8(%ebp), %eax
				movl	%eax, -1316(%ebp)
				movl	-1332(%ebp), %eax
				movl	%eax, -1312(%ebp)
		.LBB136:
		.LBB137:
				movl	-1316(%ebp), %edx
				movl	-1312(%ebp), %eax
				addl	%edx, %eax
		.LBE137:
		.LBE136:
				nop
		.L50:
		.LBB138:
		.LBB139:
				call	_imp_newline@PLT
		.LBE139:
		.LBE138:
				movzbl	(%eax), %eax
				movb	%al, -1333(%ebp)
				cmpb	$45, -1333(%ebp)
				jne	.L74
				movb	$32, -1333(%ebp)
				jmp	.L53
		.L74:
				nop
		.L53:
				movl	$90, -1328(%ebp)
				leal	.LC19@GOTOFF(%ebx), %eax
				movl	%eax, -1324(%ebp)
				movl	-1332(%ebp), %eax
				movl	%eax, -1320(%ebp)
				nop
		.L54:
				cmpl	$0, -1320(%ebp)
				jle	.L56
				jmp	.L71
		.L73:
				jmp	.L47
		.L71:
				cmpl	$9, -1320(%ebp)
				jle	.L57
		.L56:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L58
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1344(%ebp)
				jmp	.L59
		.L58:
				movl	$108, -1344(%ebp)
		.L59:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L60
				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	.L61
		.L60:
		.LBB140:
				leal	-540(%ebp), %eax
				leal	.LC8@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE140:
				leal	-796(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L61:
				pushl	-1328(%ebp)
				pushl	-1324(%ebp)
				pushl	-1320(%ebp)
				leal	.LC20@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1320(%ebp)
				pushl	$3
				pushl	$6
				pushl	-1344(%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_eventf@PLT
				addl	$288, %esp
		.L57:
				nop
		.L63:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L72
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1344(%ebp)
				jmp	.L66
		.L72:
				movl	$108, -1344(%ebp)
		.L66:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L67
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-540(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L68
		.L67:
		.LBB141:
				leal	-540(%ebp), %eax
				leal	.LC8@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE141:
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L68:
				pushl	-1328(%ebp)
				pushl	-1324(%ebp)
				pushl	-1320(%ebp)
				leal	.LC21@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-1320(%ebp)
				pushl	$2
				pushl	$8
				pushl	-1344(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_eventf@PLT
				addl	$288, %esp
		.L47:
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L69
				call	__stack_chk_fail_local
		.L69:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE194:
		UNUSEDSLOT.6152:
		.LFB195:
				pushl	%ebp
				movl	%esp, %ebp
				subl	$24, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	264(%ebp), %eax
				movb	%al, -20(%ebp)
				movl	%ecx, -24(%ebp)
				movzbl	-20(%ebp), %eax
				leal	8(%ebp), %ecx
				movl	%ecx, -8(%ebp)
				movl	%eax, -4(%ebp)
		.LBB142:
		.LBB143:
				movl	-8(%ebp), %edx
				movl	-4(%ebp), %eax
				addl	%edx, %eax
		.LBE143:
		.LBE142:
				movzbl	(%eax), %eax
				cmpb	$45, %al
				jne	.L81
				movl	$1, %eax
				jmp	.L79
		.L81:
				nop
		.L78:
				movl	$0, %eax
		.L79:
				leave
				ret
		.LFE195:
				.section	.rodata
				.align 32
		.LC0:
				.byte	26
				.string	"Cheating detected! Player "
				.zero	228
				.align 32
		.LC1:
				.byte	27
				.string	" tried to overwrite player "
				.zero	227
				.align 32
		.LC2:
				.byte	1
				.string	"'"
				.zero	253
				.align 32
		.LC3:
				.byte	12
				.string	" at square '"
				.zero	242
				.align 32
		.LC4:
				.byte	27
				.string	"Cheating detected! Player '"
				.zero	227
				.align 32
		.LC5:
				.byte	20
				.string	"' tried to move to '"
				.zero	234
				.align 32
		.LC6:
				.byte	29
				.string	" Only squares 1..9 are valid!"
				.zero	225
		MAKEMOVE.6158:
		.LFB196:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$4172, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	268(%ebp), %esi
				movl	272(%ebp), %edx
				movl	8(%ebp), %eax
				movl	%eax, -3900(%ebp)
				movl	%esi, %eax
				movb	%al, -3904(%ebp)
				movl	%edx, %eax
				movb	%al, -3908(%ebp)
				movl	%ecx, -4172(%ebp)
				movl	%ecx, -3912(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB144:
				leal	-284(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE144:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-3868(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB145:
				movzbl	-3904(%ebp), %eax
				movb	%al, -3892(%ebp)
				cmpb	$0, -3892(%ebp)
				je	.L95
				cmpb	$9, -3892(%ebp)
				ja	.L96
		.LBE145:
				nop
				jmp	.L84
		.L96:
				nop
		.L84:
		.LBE179:
				movzbl	-3904(%ebp), %eax
				movl	%eax, -4176(%ebp)
		.LBB146:
				leal	-284(%ebp), %eax
				leal	12(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE146:
				subl	$12, %esp
				pushl	-4176(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	-4172(%ebp), %ecx
				call	UNUSEDSLOT.6152
				addl	$272, %esp
				testl	%eax, %eax
				je	.L97
				nop
		.L87:
				movzbl	-3904(%ebp), %eax
				leal	-3868(%ebp), %edx
				movl	%edx, -3884(%ebp)
				movl	%eax, -3880(%ebp)
		.LBB147:
		.LBB148:
				movl	-3884(%ebp), %edx
				movl	-3880(%ebp), %eax
				addl	%eax, %edx
		.LBE148:
		.LBE147:
				movzbl	-3908(%ebp), %eax
				movb	%al, (%edx)
				nop
		.L89:
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB149:
				leal	-284(%ebp), %eax
				leal	.LC0@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	-1564(%ebp), %eax
				leal	-3612(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE149:
		.LBB150:
		.LBB151:
				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	_imp_printstring@PLT
				addl	$256, %esp
				movb	$34, -3886(%ebp)
		.LBE151:
		.LBE150:
		.LBB152:
		.LBB153:
				movsbl	-3886(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE153:
		.LBE152:
				movzbl	-3908(%ebp), %eax
				movsbl	%al, %eax
				movb	%al, -3887(%ebp)
		.LBB154:
		.LBB155:
				movsbl	-3887(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
				movb	$34, -3888(%ebp)
		.LBE155:
		.LBE154:
		.LBB156:
		.LBB157:
				movsbl	-3888(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE157:
		.LBE156:
		.LBB158:
				leal	-284(%ebp), %eax
				leal	.LC1@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	-1820(%ebp), %eax
				leal	-3356(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE158:
		.LBB159:
		.LBB160:
				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	_imp_printstring@PLT
				addl	$256, %esp
				movb	$34, -3889(%ebp)
		.LBE160:
		.LBE159:
		.LBB161:
		.LBB162:
				movsbl	-3889(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE162:
		.LBE161:
				movzbl	-3904(%ebp), %eax
				leal	12(%ebp), %edx
				movl	%edx, -3876(%ebp)
				movl	%eax, -3872(%ebp)
		.LBB163:
		.LBB164:
				movl	-3876(%ebp), %edx
				movl	-3872(%ebp), %eax
				addl	%edx, %eax
		.LBE164:
		.LBE163:
				movzbl	(%eax), %eax
				movsbl	%al, %eax
				movb	%al, -3890(%ebp)
		.LBB165:
		.LBB166:
				movsbl	-3890(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
				movb	$34, -3891(%ebp)
		.LBE166:
		.LBE165:
		.LBB167:
		.LBB168:
				movsbl	-3891(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE168:
		.LBE167:
		.LBB169:
		.LBB170:
		.LBB171:
				leal	-284(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				movl	%eax, -4176(%ebp)
		.LBE171:
		.LBB172:
		.LBB173:
				movzbl	-3904(%ebp), %edx
				leal	-4168(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				movl	-4172(%ebp), %ecx
				call	SLOT2NAME.6051
				addl	$12, %esp
				leal	-284(%ebp), %eax
				leal	-4168(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %edi
				movl	%edi, -4172(%ebp)
		.LBE173:
		.LBB174:
				leal	-284(%ebp), %eax
				leal	.LC3@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %edx
		.LBE174:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-4172(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-284(%ebp), %edx
		.LBE172:
				leal	-284(%ebp), %eax
				subl	$4, %esp
				pushl	-4176(%ebp)
				pushl	%edx
				pushl	%eax
				call	_imp_join@PLT
				addl	$12, %esp
				leal	-284(%ebp), %edx
		.LBE170:
				leal	-284(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %edx
				leal	-2076(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE169:
		.LBB175:
		.LBB176:
				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	_imp_printstring@PLT
				addl	$256, %esp
		.LBE176:
		.LBE175:
		.LBB177:
		.LBB178:
				call	_imp_newline@PLT
		.LBE178:
		.LBE177:
				jmp	.L91
		.L97:
				jmp	.L91
		.L95:
		.LBB179:
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB180:
				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
				leal	-284(%ebp), %eax
				leal	-3100(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE180:
		.LBB181:
		.LBB182:
				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
		.LBE182:
		.LBE181:
				movzbl	-3908(%ebp), %eax
				movsbl	%al, %eax
				movb	%al, -3885(%ebp)
		.LBB183:
		.LBB184:
				movsbl	-3885(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE184:
		.LBE183:
		.LBB185:
				leal	-540(%ebp), %eax
				leal	.LC5@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2844(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-2844(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE185:
		.LBB186:
		.LBB187:
				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
		.LBE187:
		.LBE186:
		.LBB188:
				movzbl	-3904(%ebp), %edx
				leal	-796(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				movl	-4172(%ebp), %ecx
				call	SLOT2NAME.6051
				addl	$12, %esp
				leal	-796(%ebp), %edx
				leal	-796(%ebp), %eax
				movl	%edx, %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
		.LBE188:
		.LBB189:
		.LBB190:
				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
		.LBE190:
		.LBE189:
		.LBB191:
				leal	-1052(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2588(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-2588(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE191:
		.LBB192:
		.LBB193:
				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
		.LBE193:
		.LBE192:
		.LBB194:
		.LBB195:
				call	_imp_newline@PLT
		.LBE195:
		.LBE194:
		.LBB196:
				leal	-1308(%ebp), %eax
				leal	.LC6@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2332(%ebp), %eax
				leal	-1308(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				leal	-2332(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE196:
		.LBB197:
		.LBB198:
				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
		.LBE198:
		.LBE197:
		.LBB199:
		.LBB200:
				call	_imp_newline@PLT
		.L91:
		.LBE200:
		.LBE199:
				movl	-3900(%ebp), %eax
				movl	%eax, %edx
				leal	-3868(%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
				movl	-3900(%ebp), %eax
				movl	-28(%ebp), %ebx
				xorl	%gs:20, %ebx
				je	.L93
				call	__stack_chk_fail_local
		.L93:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret	$4
		.LFE196:
		FREESLOT.6213:
		.LFB199:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$60, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	264(%ebp), %esi
				movl	268(%ebp), %ebx
				movl	272(%ebp), %edx
				movl	276(%ebp), %edi
				movl	%esi, %eax
				movb	%al, -44(%ebp)
				movb	%bl, -48(%ebp)
				movb	%dl, -52(%ebp)
				movl	%edi, %eax
				movb	%al, -56(%ebp)
				movl	%ecx, -60(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				leal	8(%ebp), %edx
				leal	8(%ebp), %eax
				movl	%edx, -32(%ebp)
				movl	%eax, -40(%ebp)
				movzbl	-44(%ebp), %eax
				movb	%al, -36(%ebp)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	8(%ebp), %eax
				movb	%al, -28(%ebp)
				movl	%ecx, %edx
				movl	%ecx, -32(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -12(%ebp)
				xorl	%eax, %eax
				movzbl	-28(%ebp), %eax
				movl	(%edx), %edx
				movl	%edx, -20(%ebp)
				movl	%eax, -16(%ebp)
		.LBB201:
		.LBB202:
				movl	-20(%ebp), %edx
				movl	-16(%ebp), %eax
				addl	%edx, %eax
		.LBE202:
		.LBE201:
				movzbl	(%eax), %eax
				cmpb	$45, %al
				jne	.L105
				movl	$1, %eax
				jmp	.L102
		.L105:
				nop
		.L101:
				movl	$0, %eax
		.L102:
				movl	-12(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L103
				call	__stack_chk_fail_local
		.L103:
				leave
				ret
		.LFE199:
		POTENTIALWINLINE.6207:
		.LFB198:
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	8(%ebp), %eax
				movb	%al, -28(%ebp)
				movl	%ecx, %eax
				movl	%ecx, -32(%ebp)
				movl	%gs:20, %edx
				movl	%edx, -12(%ebp)
				xorl	%edx, %edx
				movzbl	-28(%ebp), %edx
				movl	(%eax), %ecx
				movl	%ecx, -20(%ebp)
				movl	%edx, -16(%ebp)
		.LBB203:
		.LBB204:
				movl	-20(%ebp), %ecx
				movl	-16(%ebp), %edx
				addl	%ecx, %edx
		.LBE204:
		.LBE203:
				movzbl	(%edx), %edx
				movzbl	4(%eax), %eax
				cmpb	%dl, %al
				jne	.L137
				movl	$1, %eax
				jmp	.L134
		.L137:
				nop
		.L133:
				movl	$0, %eax
		.L134:
				movl	-12(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L135
				call	__stack_chk_fail_local
		.L135:
				leave
				ret
		.LFE200:
		NEXTMOVEWIN.6225:
		.LFB201:
				movzbl	-48(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	FREESLOT.6213
				addl	$16, %esp
				testl	%eax, %eax
				je	.L121
				movzbl	-52(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L122
				movzbl	-56(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L123
				movl	$1, %eax
				jmp	.L111
		.L121:
				nop
				jmp	.L108
		.L122:
				nop
				jmp	.L108
		.L123:
				nop
		.L108:
				movzbl	-48(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L124
				movzbl	-52(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	FREESLOT.6213
				addl	$16, %esp
				testl	%eax, %eax
				je	.L125
				movzbl	-56(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L126
				movl	$1, %eax
				jmp	.L111
		.L124:
				nop
				jmp	.L113
		.L125:
				nop
				jmp	.L113
		.L126:
				nop
		.L113:
				movzbl	-48(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L127
				movzbl	-52(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	MYSLOT.6217
				addl	$16, %esp
				testl	%eax, %eax
				je	.L128
				movzbl	-56(%ebp), %edx
				subl	$12, %esp
				leal	-40(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	FREESLOT.6213
				addl	$16, %esp
				testl	%eax, %eax
				je	.L129
				movl	$1, %eax
				jmp	.L111
		.L127:
				nop
				jmp	.L117
		.L128:
				nop
				jmp	.L117
		.L129:
				nop
		.L117:
				movl	$0, %eax
		.L111:
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L120
				call	__stack_chk_fail_local
		.L120:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE198:
		MYSLOT.6217:
		.LFB200:
  175     ! Check for a potential winning line for the player using the given symbol
  176     %predicate next move win( %string(9) state, %byte player symbol )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$300, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	264(%ebp), %eax
				movb	%al, -300(%ebp)
				movl	%ecx, %ebx
				movl	%ecx, -304(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  177
  178         ! Check for any potential winning lines for player symbol
  179
  180         ! check for any potential win in a horizontal row for player symbol
  181         ! check top row (left,centre,right) == (1,2,3)
  182         %true %if potential win line( state, player symbol, 1, 2, 3 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB205:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE205:
				pushl	$3
				pushl	$2
				pushl	$1
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	POTENTIALWINLINE.6207
				addl	$272, %esp
				testl	%eax, %eax
				je	.L165
				movl	$1, %eax
				jmp	.L141
		.L165:
				nop
		.L140:
  183
  184         ! check middle row (left,centre,right) == (4,5,6)
  185         %true %if potential win line( state, player symbol, 4, 5, 6 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB206:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE206:
				pushl	$6
				pushl	$5
				pushl	$4
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	POTENTIALWINLINE.6207
				addl	$272, %esp
				testl	%eax, %eax
				je	.L166
				movl	$1, %eax
				jmp	.L141
		.L166:
				nop
		.L143:
  186
  187         ! check bottom row (left,centre,right) == (7,8,9)
  188         %true %if potential win line( state, player symbol, 7, 8, 9 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB207:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE207:
				pushl	$9
				pushl	$8
				pushl	$7
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	POTENTIALWINLINE.6207
				addl	$272, %esp
				testl	%eax, %eax
				je	.L167
				movl	$1, %eax
				jmp	.L141
		.L167:
				nop
		.L145:
  189
  190         ! check for any potential win in a vertical column for player symbol
  191         ! check left column (top,middle,bottom) == (1,4,7)
  192         %true %if potential win line( state, player symbol, 1, 4, 7 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB208:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE208:
				pushl	$7
				pushl	$4
				pushl	$1
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	POTENTIALWINLINE.6207
				addl	$272, %esp
				testl	%eax, %eax
				je	.L168
				movl	$1, %eax
				jmp	.L141
		.L168:
				nop
		.L147:
  193
  194         ! check middle column (top,middle,bottom) == (2,5,8)
  195         %true %if potential win line( state, player symbol, 2, 5, 8 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB209:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE209:
				pushl	$8
				pushl	$5
				pushl	$2
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	POTENTIALWINLINE.6207
				addl	$272, %esp
				testl	%eax, %eax
				je	.L169
				movl	$1, %eax
				jmp	.L141
		.L169:
				nop
		.L149:
  196
  197         ! check right column (top,middle,bottom) == (3,6,9)
  198         %true %if potential win line( state, player symbol, 3, 6, 9 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB210:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE210:
				pushl	$9
				pushl	$6
				pushl	$3
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	POTENTIALWINLINE.6207
				addl	$272, %esp
				testl	%eax, %eax
				je	.L170
				movl	$1, %eax
				jmp	.L141
		.L170:
				nop
		.L151:
  199
  200         ! check for any potential diagonal win for the player symbol
  201         ! check diagonal from top left to bottom right
  202         ! diagonal is (top left,middle centre,bottom right) == (1,5,9)
  203         %true %if potential win line( state, player symbol, 1, 5, 9 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB211:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE211:
				pushl	$9
				pushl	$5
				pushl	$1
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	POTENTIALWINLINE.6207
				addl	$272, %esp
				testl	%eax, %eax
				je	.L171
				movl	$1, %eax
				jmp	.L141
		.L171:
				nop
		.L153:
  204
  205         ! check diagonal from top right to bottom left
  206         ! diagonal is (top right,middle centre,bottom left) == (3,5,7)
  207         %true %if potential win line( state, player symbol, 3, 5, 7 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB212:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE212:
				pushl	$7
				pushl	$5
				pushl	$3
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	POTENTIALWINLINE.6207
				addl	$272, %esp
				testl	%eax, %eax
				je	.L172
				movl	$1, %eax
				jmp	.L141
		.L172:
				nop
		.L155:
  208
  209         ! no potential win line for symbol player
  210         %false
				movl	$0, %eax
		.L141:
  211     %end
				movl	-28(%ebp), %ebx
				xorl	%gs:20, %ebx
				je	.L156
				call	__stack_chk_fail_local
		.L156:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE201:
		WINLINE.6256:
		.LFB202:
  212
  213     ! Check for a winning line for the player using the given symbol
  214     %predicate win line( %string(9) state, %byte symbol, %byte p1,p2,p3 )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$52, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	264(%ebp), %esi
				movl	268(%ebp), %ebx
				movl	272(%ebp), %edx
				movl	276(%ebp), %edi
				movl	%esi, %eax
				movb	%al, -48(%ebp)
				movb	%bl, -52(%ebp)
				movb	%dl, -56(%ebp)
				movl	%edi, %eax
				movb	%al, -60(%ebp)
				movl	%ecx, -64(%ebp)
  215         %byte pos 1, pos 2, pos 3
  216
  217         pos 1 = charno( state, p1 )
				movzbl	-52(%ebp), %eax
				leal	8(%ebp), %ecx
				movl	%ecx, -20(%ebp)
				movl	%eax, -16(%ebp)
		.LBB213:
		.LBB214:
				movl	-20(%ebp), %edx
				movl	-16(%ebp), %eax
				addl	%edx, %eax
		.LBE214:
		.LBE213:
				movzbl	(%eax), %eax
				movb	%al, -39(%ebp)
  218         pos 2 = charno( state, p2 )
				movzbl	-56(%ebp), %eax
				leal	8(%ebp), %esi
				movl	%esi, -28(%ebp)
				movl	%eax, -24(%ebp)
		.LBB215:
		.LBB216:
				movl	-28(%ebp), %edx
				movl	-24(%ebp), %eax
				addl	%edx, %eax
		.LBE216:
		.LBE215:
				movzbl	(%eax), %eax
				movb	%al, -38(%ebp)
  219         pos 3 = charno( state, p3 )
				movzbl	-60(%ebp), %eax
				leal	8(%ebp), %ecx
				movl	%ecx, -36(%ebp)
				movl	%eax, -32(%ebp)
		.LBB217:
		.LBB218:
				movl	-36(%ebp), %edx
				movl	-32(%ebp), %eax
				addl	%edx, %eax
		.LBE218:
		.LBE217:
				movzbl	(%eax), %eax
				movb	%al, -37(%ebp)
  220
  221         %true %if (pos 1 = symbol) %and (pos 2 = symbol) %and (pos 3 = symbol)
				movzbl	-39(%ebp), %eax
				cmpb	-48(%ebp), %al
				jne	.L182
				movzbl	-38(%ebp), %eax
				cmpb	-48(%ebp), %al
				jne	.L183
				movzbl	-37(%ebp), %eax
				cmpb	-48(%ebp), %al
				jne	.L184
				movl	$1, %eax
				jmp	.L181
		.L182:
				nop
				jmp	.L178
		.L183:
				nop
				jmp	.L178
		.L184:
				nop
		.L178:
  222         %false
				movl	$0, %eax
		.L181:
  223     %end
				addl	$52, %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE202:
		PLAYERWIN.6264:
		.LFB203:
  224
  225     ! Check for a winning line for the player using the given symbol
  226     %predicate player win( %string(9) state, %byte player symbol )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$300, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	264(%ebp), %eax
				movb	%al, -300(%ebp)
				movl	%ecx, %ebx
				movl	%ecx, -304(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  227
  228         ! Check for any winning lines for player symbol
  229
  230         ! check for any win in a horizontal row for player symbol
  231         ! check top row (left,centre,right) == (1,2,3)
  232         %true %if win line( state, player symbol, 1, 2, 3 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB219:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE219:
				pushl	$3
				pushl	$2
				pushl	$1
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	WINLINE.6256
				addl	$272, %esp
				testl	%eax, %eax
				je	.L212
				movl	$1, %eax
				jmp	.L188
		.L212:
				nop
		.L187:
  233
  234         ! check middle row (left,centre,right) == (4,5,6)
  235         %true %if win line( state, player symbol, 4, 5, 6 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB220:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE220:
				pushl	$6
				pushl	$5
				pushl	$4
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	WINLINE.6256
				addl	$272, %esp
				testl	%eax, %eax
				je	.L213
				movl	$1, %eax
				jmp	.L188
		.L213:
				nop
		.L190:
  236
  237         ! check bottom row (left,centre,right) == (7,8,9)
  238         %true %if win line( state, player symbol, 7, 8, 9 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB221:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE221:
				pushl	$9
				pushl	$8
				pushl	$7
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	WINLINE.6256
				addl	$272, %esp
				testl	%eax, %eax
				je	.L214
				movl	$1, %eax
				jmp	.L188
		.L214:
				nop
		.L192:
  239
  240         ! check for any win in a vertical column for player symbol
  241         ! check left column (top,middle,bottom) == (1,4,7)
  242         %true %if win line( state, player symbol, 1, 4, 7 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB222:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE222:
				pushl	$7
				pushl	$4
				pushl	$1
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	WINLINE.6256
				addl	$272, %esp
				testl	%eax, %eax
				je	.L215
				movl	$1, %eax
				jmp	.L188
		.L215:
				nop
		.L194:
  243
  244         ! check middle column (top,middle,bottom) == (2,5,8)
  245         %true %if win line( state, player symbol, 2, 5, 8 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB223:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE223:
				pushl	$8
				pushl	$5
				pushl	$2
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	WINLINE.6256
				addl	$272, %esp
				testl	%eax, %eax
				je	.L216
				movl	$1, %eax
				jmp	.L188
		.L216:
				nop
		.L196:
  246
  247         ! check right column (top,middle,bottom) == (3,6,9)
  248         %true %if win line( state, player symbol, 3, 6, 9 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB224:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE224:
				pushl	$9
				pushl	$6
				pushl	$3
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	WINLINE.6256
				addl	$272, %esp
				testl	%eax, %eax
				je	.L217
				movl	$1, %eax
				jmp	.L188
		.L217:
				nop
		.L198:
  249
  250         ! check for any diagonal win for the player symbol
  251         ! check diagonal from top left to bottom right
  252         ! diagonal is (top left,centre,bottom right) == (1,5,9)
  253         %true %if win line( state, player symbol, 1, 5, 9 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB225:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE225:
				pushl	$9
				pushl	$5
				pushl	$1
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	WINLINE.6256
				addl	$272, %esp
				testl	%eax, %eax
				je	.L218
				movl	$1, %eax
				jmp	.L188
		.L218:
				nop
		.L200:
  254
  255         ! check diagonal from top right to bottom left
  256         ! diagonal is (top right,centre,bottom left) == (3,5,7)
  257         %true %if win line( state, player symbol, 3, 5, 7 )
				movzbl	-300(%ebp), %eax
				movl	%eax, -308(%ebp)
		.LBB226:
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE226:
				pushl	$7
				pushl	$5
				pushl	$3
				pushl	-308(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	WINLINE.6256
				addl	$272, %esp
				testl	%eax, %eax
				je	.L219
				movl	$1, %eax
				jmp	.L188
		.L219:
				nop
		.L202:
  258
  259         ! no win line for symbol player
  260         %false
				movl	$0, %eax
		.L188:
  261     %end
				movl	-28(%ebp), %ebx
				xorl	%gs:20, %ebx
				je	.L203
				call	__stack_chk_fail_local
		.L203:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE203:
		GAMEOVER.6291:
		.LFB204:
  262
  263     %predicate game over( %string(9) state )
				pushl	%ebp
				movl	%esp, %ebp
				subl	$20, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, -20(%ebp)
  264         %integer i
  265         %integer unused
  266
  267         ! Check if there are any unused slots
  268         unused = 0
				movl	$0, -12(%ebp)
  269         %for i = 1,1,9 %cycle
				movl	$0, -16(%ebp)
		.L221:
				cmpl	$9, -16(%ebp)
				je	.L232
				addl	$1, -16(%ebp)
				leal	8(%ebp), %eax
				movl	%eax, -8(%ebp)
				movl	-16(%ebp), %eax
				movl	%eax, -4(%ebp)
		.LBB227:
		.LBB228:
				movl	-8(%ebp), %edx
				movl	-4(%ebp), %eax
				addl	%edx, %eax
		.LBE228:
		.LBE227:
				nop
		.L223:
  270             unused = unused + 1 %if (charno( state, i ) <> unused symbol)
				movzbl	(%eax), %eax
				cmpb	$45, %al
				je	.L233
				addl	$1, -12(%ebp)
				jmp	.L221
		.L233:
				nop
		.L226:
  271         %repeat
				jmp	.L221
		.L232:
  272
  273         ! there are no unused slots so game must be over
  274         %true %if (unused = 0)
				cmpl	$0, -12(%ebp)
				jne	.L234
				movl	$1, %eax
				jmp	.L229
		.L234:
				nop
		.L228:
  275
  276         ! there are some unused slots so game is not over
  277         %false
				movl	$0, %eax
		.L229:
  278     %end
				leave
				ret
		.LFE204:
		TERMINALSTATE.6300:
		.LFB205:
  279
  280     %predicate terminal state( %string(9) state )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$300, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %ebx
				movl	%ecx, -300(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB229:
  281
  282         ! Check for win lines for maximising player (machine)
  283         %true %if player win( state, maximising symbol )
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE229:
				subl	$12, %esp
				pushl	$79
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	PLAYERWIN.6264
				addl	$272, %esp
				testl	%eax, %eax
				je	.L247
				movl	$1, %eax
				jmp	.L238
		.L247:
				nop
		.L237:
		.LBB230:
  284
  285         ! Check for win lines for minimising player
  286         %true %if player win( state, minimising symbol )
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE230:
				subl	$12, %esp
				pushl	$88
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	PLAYERWIN.6264
				addl	$272, %esp
				testl	%eax, %eax
				je	.L248
				movl	$1, %eax
				jmp	.L238
		.L248:
				nop
		.L240:
		.LBB231:
  287
  288         ! check to see if the game has reached a state with no more moves
  289         %true %if game over( state )
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE231:
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	GAMEOVER.6291
				addl	$256, %esp
				testl	%eax, %eax
				je	.L249
				movl	$1, %eax
				jmp	.L238
		.L249:
				nop
		.L242:
  290
  291         ! At this point:
  292         !    there are no win lines for either player
  293         !    and there are more moves to make
  294         !    hence this is not a terminal node ( or game state )
  295         %false
				movl	$0, %eax
		.L238:
  296     %end
				movl	-28(%ebp), %ebx
				xorl	%gs:20, %ebx
				je	.L243
				call	__stack_chk_fail_local
		.L243:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE205:
		HEURISTIC.6312:
		.LFB206:
  297
  298     %integer %function heuristic( %string(9) state )
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$300, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %ebx
				movl	%ecx, -300(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB232:
  299         ! check for a current/future win for the maximising player (machine)
  300         %result = plus infinity  %if player win( state, machine )
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE232:
				subl	$12, %esp
				pushl	$0
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	PLAYERWIN.6264
				addl	$272, %esp
				testl	%eax, %eax
				je	.L265
				movl	$2147483647, %eax
				jmp	.L253
		.L265:
				nop
		.L252:
		.LBB233:
  301         %result = plus infinity  %if next move win( state, machine )
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE233:
				subl	$12, %esp
				pushl	$0
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	NEXTMOVEWIN.6225
				addl	$272, %esp
				testl	%eax, %eax
				je	.L266
				movl	$2147483647, %eax
				jmp	.L253
		.L266:
				nop
		.L255:
		.LBB234:
  302
  303         ! check for a current/future win for the minimising player (human)
  304         %result = minus infinity %if player win( state, human )
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE234:
				subl	$12, %esp
				pushl	$1
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	PLAYERWIN.6264
				addl	$272, %esp
				testl	%eax, %eax
				je	.L267
				movl	$-2147483648, %eax
				jmp	.L253
		.L267:
				nop
		.L257:
		.LBB235:
  305         %result = minus infinity %if next move win( state, human )
				leal	-284(%ebp), %eax
				leal	8(%ebp), %esi
				movl	$64, %edx
				movl	%eax, %edi
				movl	%edx, %ecx
				rep movsl
				leal	-284(%ebp), %eax
		.LBE235:
				subl	$12, %esp
				pushl	$1
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	%ebx, %ecx
				call	NEXTMOVEWIN.6225
				addl	$272, %esp
				testl	%eax, %eax
				je	.L268
				movl	$-2147483648, %eax
				jmp	.L253
		.L268:
				nop
		.L259:
  306
  307         %result = 0
				movl	$0, %eax
		.L253:
  308     %end
				movl	-28(%ebp), %ebx
				xorl	%gs:20, %ebx
				je	.L260
				call	__stack_chk_fail_local
		.L260:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE206:
		MINIMAX.6329:
		.LFB207:
  309
  310     ! maximising player uses the 'maximising symbol' (machine)
  311     ! minimising player uses the 'minimising symbol' (humane)
  312     %integer %function minimax( %string(9) state,
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$828, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%eax, -832(%ebp)
				movl	%ecx, -828(%ebp)
				movl	%ecx, -556(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  313                                 %integer depth,
  314                                 %integer player go )
  315         %string(9) new state
  316         %integer value, response
  317         %integer i
  318
  319         %if (depth = 0) %or terminal state( state ) %start
				cmpl	$0, 264(%ebp)
				je	.L291
		.LBB236:
				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
		.LBE236:
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %ebx
				movl	$64, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				movl	-828(%ebp), %ecx
				call	TERMINALSTATE.6300
				addl	$256, %esp
				testl	%eax, %eax
				je	.L292
				jmp	.L271
		.L291:
				nop
		.L271:
		.LBB237:
				nop
		.L272:
  320             value = heuristic( state )
				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
		.LBE237:
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %ebx
				movl	$64, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				movl	-828(%ebp), %ecx
				call	HEURISTIC.6312
				addl	$256, %esp
				movl	%eax, -552(%ebp)
  321         %finish %else %if (player go = machine) %start
				jmp	.L285
		.L292:
				cmpl	$0, 268(%ebp)
				jne	.L293
				nop
		.L275:
  322             ! check possible moves for the maximising player (machine)
  323             ! set value = - infinity
  324             value = minus infinity
				movl	$-2147483648, -552(%ebp)
  325
  326             ! for each potential next game state
  327             %for i=1,1,9 %cycle
				movl	$0, -548(%ebp)
		.L276:
				cmpl	$9, -548(%ebp)
				je	.L294
				addl	$1, -548(%ebp)
				nop
		.L278:
  328                 ! find an empty slot
  329                 %if unused slot( state, i) %start
				movl	-548(%ebp), %eax
				movzbl	%al, %eax
				movl	%eax, -836(%ebp)
		.LBB238:
				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
		.LBE238:
				subl	$12, %esp
				pushl	-836(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %ebx
				movl	$64, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				movl	-828(%ebp), %ecx
				call	UNUSEDSLOT.6152
				addl	$272, %esp
				testl	%eax, %eax
				je	.L295
		.LBB239:
				nop
		.L280:
  330                     ! next state after the maximising player (machine) move
  331                     new state = make move( state, i, machine symbol )
				movl	-548(%ebp), %eax
				movzbl	%al, %eax
				movl	%eax, -836(%ebp)
		.LBB240:
				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
		.LBE240:
				leal	-824(%ebp), %edi
				movl	%edi, -840(%ebp)
				subl	$4, %esp
				pushl	$79
				pushl	-836(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %ebx
				movl	$64, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				pushl	-840(%ebp)
				movl	-828(%ebp), %ecx
				call	MAKEMOVE.6158
				addl	$268, %esp
				leal	-284(%ebp), %eax
				leal	-824(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE239:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-540(%ebp), %eax
				pushl	%eax
				movl	-832(%ebp), %ebx
				call	_imp_strncpy@PLT
				addl	$16, %esp
  332                     ! response from the minimising player (human)
  333                     response = minimax( new state, depth - 1, human )
				movl	264(%ebp), %eax
				leal	-1(%eax), %ebx
		.LBB241:
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE241:
				subl	$8, %esp
				pushl	$1
				pushl	%ebx
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %ebx
				movl	$64, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				movl	-828(%ebp), %ebx
				movl	%ebx, %ecx
				call	MINIMAX.6329
				addl	$272, %esp
				movl	%eax, -544(%ebp)
  334                     value = max( value, response )
				subl	$8, %esp
				pushl	-544(%ebp)
				pushl	-552(%ebp)
				movl	%ebx, %ecx
				call	MAX.6025
				addl	$16, %esp
				movl	%eax, -552(%ebp)
				jmp	.L276
		.L295:
  335                 %finish
  336             %repeat
				jmp	.L276
		.L294:
  337         %finish %else %start
				jmp	.L285
		.L293:
  338             ! Oh! this must be for the minimising player (human)
  339             ! set value = + infinity
  340             value = plus infinity
				movl	$2147483647, -552(%ebp)
  341
  342             ! for each potential next game state
  343             %for i=1,1,9 %cycle
				movl	$0, -548(%ebp)
		.L281:
				cmpl	$9, -548(%ebp)
				je	.L296
				addl	$1, -548(%ebp)
				nop
		.L285:
  344                 %if unused slot( state, i ) %start
				movl	-548(%ebp), %eax
				movzbl	%al, %eax
				movl	%eax, -836(%ebp)
		.LBB242:
				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
		.LBE242:
				subl	$12, %esp
				pushl	-836(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %ebx
				movl	$64, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				movl	-828(%ebp), %ecx
				call	UNUSEDSLOT.6152
				addl	$272, %esp
				testl	%eax, %eax
				je	.L297
		.LBB243:
				nop
		.L284:
  345                     ! next state after the minimising player (human) move
  346                     new state = make move( state, i, human symbol )
				movl	-548(%ebp), %eax
				movzbl	%al, %eax
				movl	%eax, -836(%ebp)
		.LBB244:
				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
		.LBE244:
				leal	-824(%ebp), %ebx
				movl	%ebx, -840(%ebp)
				subl	$4, %esp
				pushl	$88
				pushl	-836(%ebp)
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %ebx
				movl	$64, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				pushl	-840(%ebp)
				movl	-828(%ebp), %ecx
				call	MAKEMOVE.6158
				addl	$268, %esp
				leal	-284(%ebp), %eax
				leal	-824(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE243:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-540(%ebp), %eax
				pushl	%eax
				movl	-832(%ebp), %ebx
				call	_imp_strncpy@PLT
				addl	$16, %esp
  347                     ! response from the maximising player (machine)
  348                     response = minimax( new state, depth - 1, machine )
				movl	264(%ebp), %eax
				leal	-1(%eax), %ebx
		.LBB245:
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE245:
				subl	$8, %esp
				pushl	$0
				pushl	%ebx
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %ebx
				movl	$64, %eax
				movl	%edx, %edi
				movl	%ebx, %esi
				movl	%eax, %ecx
				rep movsl
				movl	-828(%ebp), %esi
				movl	%esi, %ecx
				call	MINIMAX.6329
				addl	$272, %esp
				movl	%eax, -544(%ebp)
  349                     value = min( value, response )
				subl	$8, %esp
				pushl	-544(%ebp)
				pushl	-552(%ebp)
				movl	%esi, %ecx
				call	MIN.6030
				addl	$16, %esp
				movl	%eax, -552(%ebp)
				jmp	.L281
		.L297:
  350                 %finish
  351             %repeat
				jmp	.L281
		.L273:
		.L296:
  352         %finish
  353         %result = value
				movl	-552(%ebp), %eax
  354     %end
				movl	-28(%ebp), %edi
				xorl	%gs:20, %edi
				je	.L287
				call	__stack_chk_fail_local
		.L287:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE207:
				.section	.rodata
				.align 4
		__PRETTY_FUNCTION__.5625:
				.string	"_imp_SELECTOUTPUT"
				.section	.data.rel.local,"aw",@progbits
				.align 32
		SW.6057:
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.long	.L39
				.align 32
		SW.6124:
				.long	.L63
				.long	.L63
				.long	.L63
				.long	.L63
				.long	.L63
				.long	.L63
				.long	.L63
				.long	.L63
				.long	.L63
				.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:
		.LFB208:
				movl	(%esp), %eax
				ret
		.LFE208:
				.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:
		.LFB209:
				movl	(%esp), %ebx
				ret
		.LFE209:
		.Letext0:
  355
  356     ! form the initial game state
  357     game state = reset game
				leal	-1080(%ebp), %edx
				subl	$12, %esp
				leal	-808(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	RESETGAME.6034
				addl	$12, %esp
				leal	-284(%ebp), %eax
				leal	-1080(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE109:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-796(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB110:
		.LBB111:
  358
  359     ! make the first move for the minimising player (human)
  360     game state = make move( game state, 27, human symbol )
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE111:
				leal	-1080(%ebp), %esi
				movl	%esi, -1084(%ebp)
				subl	$4, %esp
				leal	-808(%ebp), %edi
				movl	%edi, -1088(%ebp)
				pushl	$88
				pushl	$27
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				pushl	-1084(%ebp)
				movl	-1088(%ebp), %ecx
				call	MAKEMOVE.6158
				addl	$268, %esp
				leal	-284(%ebp), %eax
				leal	-1080(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE110:
				subl	$4, %esp
				pushl	$9
				pushl	%eax
				leal	-796(%ebp), %eax
				pushl	%eax
				call	_imp_strncpy@PLT
				addl	$16, %esp
		.LBB112:
  361
  362     ! after the first move
  363     ! evaluate the game for the maximising player (machine)
  364     game = minimax( game state, 4, machine symbol )
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
		.LBE112:
				subl	$8, %esp
				leal	-808(%ebp), %esi
				movl	%esi, -1084(%ebp)
				pushl	$79
				pushl	$4
				subl	$256, %esp
				movl	%esp, %edx
				movl	%eax, %esi
				movl	$64, %eax
				movl	%edx, %edi
				movl	%eax, %ecx
				rep movsl
				movl	-1084(%ebp), %ecx
				call	MINIMAX.6329
				addl	$272, %esp
				movl	%eax, -804(%ebp)
		.LBB113:
  365
  366     show state( "XO-X--X--")
				leal	-540(%ebp), %edx
				movl	$0, %eax
				movl	$64, %ecx
				movl	%edx, %edi
				rep stosl
				movb	$9, -540(%ebp)
				movl	$1479364440, -539(%ebp)
				movl	$760753453, -535(%ebp)
				movb	$45, -531(%ebp)
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE113:
				leal	-808(%ebp), %eax
				movl	%eax, -1084(%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
				movl	-1084(%ebp), %ecx
				call	SHOWSTATE.6116
				addl	$256, %esp
				movl	$0, -800(%ebp)
		.LBB114:
		.LBB115:
				subl	$12, %esp
				pushl	-800(%ebp)
				call	exit@PLT
		.LBE115:
		.LBE114:
		.LFE189:
		MIN.6030:
		.LFB191:
  367 %end
?MYSLOT unused
  368 %endoffile
  253 Statements compiled
