         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
		.Ltext0:
		_imp_SELECTINPUT:
		.LFB93:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				cmpl	$0, 8(%ebp)
				js	.L4
				movl	_imp_InStream@GOT(%eax), %edx
				movl	8(%ebp), %ecx
				movl	%ecx, (%edx)
				movl	_imp_infile@GOT(%eax), %ecx
				movl	8(%ebp), %edx
				imull	$276, %edx, %edx
				addl	%ecx, %edx
				addl	$4, %edx
				movl	(%edx), %ecx
				movl	_imp_InFile@GOT(%eax), %edx
				movl	%ecx, (%edx)
				subl	$12, %esp
				leal	__PRETTY_FUNCTION__.5621@GOTOFF(%eax), %edx
				pushl	%edx
				movl	%eax, %ebx
				call	check_instream@PLT
				addl	$16, %esp
				jmp	.L1
		.L4:
				nop
		.L1:
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE93:
		_imp_SELECTOUTPUT:
		.LFB94:
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$4, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				cmpl	$0, 8(%ebp)
				js	.L8
				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	.L5
		.L8:
				nop
		.L5:
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE94:
		RELEASECHAIN.6196:
		.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	$68648, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %eax
				movl	4(%eax), %edx
				movl	%edx, -68652(%ebp)
				movl	%gs:20, %esi
				movl	%esi, -28(%ebp)
				xorl	%esi, %esi
				leal	8(%ebp), %edx
				movl	%edx, -64060(%ebp)
				subl	$8, %esp
				pushl	-68652(%ebp)
				pushl	(%eax)
				call	_imp_initialise@PLT
				addl	$16, %esp
    2       %CONSTINTEGER BIT = X'80000000'
    3       %CONSTINTEGER MAX SCORE = +50000
    4       !!
    5       %EXTERNALROUTINESPEC PROMPT(%STRING (255) S)
    6
    7
    8       %CONSTINTEGER PLYWIDTH = 5
    9       %RECORDFORMAT SQF(%INTEGER P, ATT, DEF, ATTP)
   10       { %RECORDFORMAT ROWF(%RECORD %ARRAY R(1:8)(SQF))
   11       %RECORDFORMAT ROWF(%RECORD (SQF) %ARRAY R(1:8))
   12
   13       %OWN %RECORD(ROWF)%ARRAY BRD(1:8)
				leal	-68588(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	BRD.6038@GOTOFF(%ebx), %eax
				movl	%eax, -68588(%ebp)
				movl	$128, -68584(%ebp)
   14       %OWN %RECORD(ROWF)%ARRAY BRDOLD(1:8)
				leal	-68520(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	BRDOLD.6040@GOTOFF(%ebx), %eax
				movl	%eax, -68520(%ebp)
				movl	$128, -68516(%ebp)
   15       %INTEGERARRAY VAL(-6:6)
				leal	-68452(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$1176, %eax
				movl	%eax, -68452(%ebp)
				movl	$4, -68448(%ebp)
   16
   17        !! PIECE = BRD(Y)_R(X)_P
   18
   19       %RECORDFORMAT LISTF(%RECORD(LISTF)%NAME L, %INTEGER SCORE %or %integer HOLD, %C
   20         %BYTEINTEGER FR, TO, %INTEGER SPEC, CHK)
   21             !! SCORE - CONTAINS SCORE FOR THE MOVE
   22             !! SPEC  - CONTAINS FLAGS FOR QUEENING, CASTLING
   23             !! CHK   - OPPOSING KING IS IN CHECK
   24
   25       !!%RECORDFORMAT QHF(%RECORD(LISTF)%NAME L,%INTEGER HOLD)
   26       {%RECORDSPEC QHF_L(LISTF)
   27       !!
   28       %RECORDFORMAT PTF(%INTEGERNAME P)
   29       %RECORD(PTF)%ARRAY PT(1:64)
				leal	-68384(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$80, %eax
				movl	%eax, -68384(%ebp)
				movl	$4, -68380(%ebp)
   30       !!
   31       %CONSTINTEGER KING = 6;           ! NB: AND -6
   32       %CONSTINTEGER QUEEN = 5;          !    AND -5
   33       %CONSTINTEGER ROOK = 4;                !     AND -4
   34       %CONSTINTEGER PAWN = 1;           !    AND -1
   35       !!
   36
   37       %RECORD(LISTF)%NAME FREELIST
   38       %RECORD(LISTF{QHF}) MOVE
   39       %RECORD(LISTF)%ARRAY LISTA(0:4000)
				leal	-68316(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-64056(%ebp), %eax
				movl	%eax, -68316(%ebp)
				movl	$16, -68312(%ebp)
   40       %RECORD (SQF) %NAME SQ
   41       !!
   42       %OWNINTEGERARRAY PINX(1:32) = 0(32)
				leal	-68248(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	PINX.6071@GOTOFF(%ebx), %eax
				movl	%eax, -68248(%ebp)
				movl	$4, -68244(%ebp)
   43       %OWNINTEGERARRAY PINY(1:32) = 0(32)
				leal	-68180(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	PINY.6073@GOTOFF(%ebx), %eax
				movl	%eax, -68180(%ebp)
				movl	$4, -68176(%ebp)
   44       %INTEGERARRAY PINDX, PINPY(1:32)
				leal	-68112(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$1048, %eax
				movl	%eax, -68112(%ebp)
				movl	$4, -68108(%ebp)
				leal	-68044(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$664, %eax
				movl	%eax, -68044(%ebp)
				movl	$4, -68040(%ebp)
   45          %OWNINTEGER PIN PT, PX, PY
   46       !!
   47       %RECORDFORMAT SQIF(%RECORD(SQF)%NAME SQ)
   48       {%RECORDSPEC SQIF_SQ(SQF)
   49       %RECORD(SQIF)%ARRAY SQI(1:64)
				leal	-67976(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$792, %eax
				movl	%eax, -67976(%ebp)
				movl	$4, -67972(%ebp)
   50       %CONSTINTEGERARRAY BIT VAL(1:6)=256,64,32,8,2,1
				movl	$256, -64676(%ebp)
				movl	$64, -64672(%ebp)
				movl	$32, -64668(%ebp)
				movl	$8, -64664(%ebp)
				movl	$2, -64660(%ebp)
				movl	$1, -64656(%ebp)
				leal	-67908(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$640, %eax
				movl	%eax, -67908(%ebp)
				movl	$4, -67904(%ebp)
   51       !!
   52       %CONSTINTEGERARRAY PAWN 2D(9:72) = %C
				leal	-64932(%ebp), %eax
				leal	.LC0@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-67840(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$384, %eax
				movl	%eax, -67840(%ebp)
				movl	$4, -67836(%ebp)
   53          0, 0, 0, 0, 0, 0, 0, 0,
   54          0, 0, 0, 0, 0, 5, 0, 0,
   55          3, 3, 3, 20, 20, 3, 3, 3,
   56          4, 6, 6, 50, 50, 6, 6, 4,
   57          8, 9, 30, 55, 55, 30, 9, 8,
   58          10, 10, 35, 60, 60, 35, 10, 10,
   59          100(8),
   60          500(8)
   61       !!
   62       %CONSTBYTEINTEGERARRAY POSX(1:12) = %C
				movb	$2, -64072(%ebp)
				movb	$3, -64071(%ebp)
				movb	$6, -64070(%ebp)
				movb	$7, -64069(%ebp)
				movb	$58, -64068(%ebp)
				movb	$59, -64067(%ebp)
				movb	$62, -64066(%ebp)
				movb	$63, -64065(%ebp)
				movb	$1, -64064(%ebp)
				movb	$8, -64063(%ebp)
				movb	$57, -64062(%ebp)
				movb	$64, -64061(%ebp)
				leal	-67772(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$1244, %eax
				movl	%eax, -67772(%ebp)
				movl	$1, -67768(%ebp)
   63          2, 3, 6, 7, 58, 59, 62, 63, 1, 8, 57, 64
   64       %CONSTINTEGERARRAY POSP(1:12) = %C
				movl	$-2, -64980(%ebp)
				movl	$-3, -64976(%ebp)
				movl	$-3, -64972(%ebp)
				movl	$-2, -64968(%ebp)
				movl	$2, -64964(%ebp)
				movl	$3, -64960(%ebp)
				movl	$3, -64956(%ebp)
				movl	$2, -64952(%ebp)
				movl	$-4, -64948(%ebp)
				movl	$-4, -64944(%ebp)
				movl	$4, -64940(%ebp)
				movl	$4, -64936(%ebp)
				leal	-67704(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$336, %eax
				movl	%eax, -67704(%ebp)
				movl	$4, -67700(%ebp)
   65          -2, -3, -3, -2, 2, 3, 3, 2, -4, -4, 4, 4
   66       %CONSTINTEGERARRAY POSPP(1:12) = %C
				movl	$-7, -65284(%ebp)
				movl	$-7, -65280(%ebp)
				movl	$-7, -65276(%ebp)
				movl	$-7, -65272(%ebp)
				movl	$7, -65268(%ebp)
				movl	$7, -65264(%ebp)
				movl	$7, -65260(%ebp)
				movl	$7, -65256(%ebp)
				movl	$-10, -65252(%ebp)
				movl	$-10, -65248(%ebp)
				movl	$10, -65244(%ebp)
				movl	$10, -65240(%ebp)
				leal	-67636(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$32, %eax
				movl	%eax, -67636(%ebp)
				movl	$4, -67632(%ebp)
   67          -7(4), 7(4), -10(2), 10(2)
   68       !!
   69       %CONSTINTEGERARRAY NOLEG MOVE(-1:1) = -24000, 0, 24000
				movl	$-24000, -64088(%ebp)
				movl	$0, -64084(%ebp)
				movl	$24000, -64080(%ebp)
				leal	-67568(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-65316(%ebp), %eax
				addl	$1228, %eax
				movl	%eax, -67568(%ebp)
				movl	$4, -67564(%ebp)
   70       !!
   71       %OWNBYTEINTEGERARRAY KMOVE(-1:1) = 0(3)
				leal	-67500(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	KMOVE.6102@GOTOFF(%ebx), %eax
				movl	%eax, -67500(%ebp)
				movl	$1, -67496(%ebp)
   72       %OWNINTEGERARRAY KCAS(-1:1) = 0(3)
				leal	-67432(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	KCAS.6104@GOTOFF(%ebx), %eax
				movl	%eax, -67432(%ebp)
				movl	$4, -67428(%ebp)
		.LBB293:
   73       !!
   74       %RECORD (LISTF)LM
   75       %RECORD (LISTF{QHF})MMOVE
   76       !!
   77
   78
   79       %INTEGER I, X, Y, PLAY
   80       %OWNLONGREAL TIME, TIME2, TIMTT = 15
   81       %OWNINTEGER NO = 1, SCOREA, XDEPTH, PDEPTH, MON, JUST ONE PLY
   82       %OWNINTEGER CHK, LAST CHK, PIN REMOVE
   83       !!
   84       %EXTERNALLONGREALFNSPEC CPU TIME
   85       !!
   86       %INTEGERFNSPEC N PLY(%INTEGER WHICH, DEPTH, %RECORD(LISTF)%NAME CHAIN)
   87       %INTEGERFNSPEC SORT AND PRUNE(%RECORD(LISTF)%NAME LIST, %C
   88          %INTEGER WIDTH, WHICH)
   89       %INTEGERFNSPEC SCORE(%INTEGER WHICH, %RECORD (LISTF)%NAME L)
   90       %INTEGERFNSPEC MOVES(%INTEGER WHICH, SCRQ)
   91       %INTEGERFNSPEC ONEPLY(%INTEGER WHICH, WIDTH)
   92       %INTEGERFNSPEC CHANGE BOARD(%RECORD(LISTF{QHF})%NAME B)
   93       %ROUTINESPEC RESTORE BOARD(%RECORD(LISTF{QHF})%NAME B)
   94       %ROUTINESPEC BURP(%RECORD (LISTF{QHF}) %NAME X, %INTEGER W)
   95       %ROUTINESPEC TELL(%RECORD (LISTF)%NAME MOVE, %INTEGER WHICH)
   96       %ROUTINESPEC PRINT BOARD
   97       %ROUTINESPEC PRINTMOVE(%RECORD (LISTF)%NAME LIST)
   98       %INTEGERFNSPEC CHECK YOUR MOVE(%RECORD (LISTF)%NAME LIST)
   99       %ROUTINESPEC YOUR MOVE
  100
  101       !****  INITIALISATION ETC
  102
  103       %CYCLE I = 0, 1, 4000-1
				movl	$3999, -68624(%ebp)
		.LBB294:
				movl	-68624(%ebp), %eax
				movl	%eax, -68620(%ebp)
				movl	-68620(%ebp), %eax
				xorl	$1, %eax
				shrl	$31, %eax
				movzbl	%al, %eax
		.LBE294:
				testl	%eax, %eax
				je	.L20
				leal	-66084(%ebp), %eax
				subl	$8, %esp
				leal	.LC23@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L21
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -68656(%ebp)
				jmp	.L22
		.L21:
				movl	$103, -68656(%ebp)
		.L22:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L23
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-65828(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L24
		.L23:
		.LBB295:
				leal	-65572(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-67364(%ebp), %eax
				leal	-65572(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE295:
				leal	-65828(%ebp), %eax
				leal	-67364(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L24:
				pushl	$0
				pushl	$1
				pushl	$5
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-66084(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-68656(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-65828(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
		.L20:
				movl	$-1, -68636(%ebp)
		.L25:
				movl	-68636(%ebp), %eax
				cmpl	-68624(%ebp), %eax
				je	.L50
				addl	$1, -68636(%ebp)
				nop
		.L27:
		.LBE293:
  104          LISTA(I)_L == LISTA(I+1)
				movl	-68636(%ebp), %eax
				leal	1(%eax), %edx
				leal	-64056(%ebp), %eax
				sall	$4, %edx
				addl	%eax, %edx
				movl	-68636(%ebp), %eax
				sall	$4, %eax
				leal	-24(%ebp), %esi
				addl	%esi, %eax
				subl	$64032, %eax
				movl	%edx, (%eax)
  105       %REPEAT
				jmp	.L25
		.L50:
  106       FREELIST == LISTA(0)
				leal	-64056(%ebp), %eax
				movl	%eax, -64076(%ebp)
  107       !!
  108       SELECTINPUT(1)
				subl	$12, %esp
				pushl	$1
				call	_imp_SELECTINPUT
				addl	$16, %esp
  109       %CYCLE I = -6, 1, 6
				movl	$-7, -68636(%ebp)
		.L28:
				cmpl	$6, -68636(%ebp)
				je	.L51
				addl	$1, -68636(%ebp)
				nop
  110          READ(VAL(I))
				movl	-68636(%ebp), %eax
				leal	6(%eax), %edx
				leal	-65316(%ebp), %eax
				addl	$292, %edx
				sall	$2, %edx
				addl	%edx, %eax
				addl	$8, %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_readint@PLT
				addl	$16, %esp
  111       %REPEAT
				jmp	.L28
		.L30:
		.L51:
  112       READ(PDEPTH)
				subl	$12, %esp
				leal	PDEPTH.6118@GOTOFF(%ebx), %eax
				pushl	%eax
				call	_imp_readint@PLT
				addl	$16, %esp
  113       READ(MON);  READ(PLAY)
				subl	$12, %esp
				leal	MON.6119@GOTOFF(%ebx), %eax
				pushl	%eax
				call	_imp_readint@PLT
				addl	$16, %esp
				subl	$12, %esp
				leal	-68640(%ebp), %eax
				pushl	%eax
				call	_imp_readint@PLT
				addl	$16, %esp
  114       I = 1
				movl	$1, -68636(%ebp)
  115       %CYCLE Y = 1,1,8
				movl	$0, -68628(%ebp)
		.L31:
				cmpl	$8, -68628(%ebp)
				je	.L52
				addl	$1, -68628(%ebp)
				nop
		.L33:
  116          %CYCLE X = 1,1,8
				movl	$0, -68632(%ebp)
		.L34:
				cmpl	$8, -68632(%ebp)
				je	.L53
				addl	$1, -68632(%ebp)
				nop
		.L36:
  117             SQ == BRD(Y)_R(X)
				movl	-68628(%ebp), %eax
				leal	-1(%eax), %edx
				movl	-68632(%ebp), %eax
				subl	$1, %eax
				sall	$3, %edx
				addl	%edx, %eax
				sall	$4, %eax
				movl	%eax, %edx
				leal	BRD.6038@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				movl	%eax, -68616(%ebp)
  118             READ(SQ_P)
				movl	-68616(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_readint@PLT
				addl	$16, %esp
  119             SQI(I)_SQ == SQ
				movl	-68636(%ebp), %eax
				subl	$1, %eax
				leal	196(%eax), %edx
				movl	-68616(%ebp), %eax
				movl	%eax, -65308(%ebp,%edx,4)
  120             PT(I)_P == SQ_P; I = I+1
				movl	-68636(%ebp), %eax
				leal	-1(%eax), %edx
				movl	-68616(%ebp), %eax
				addl	$20, %edx
				movl	%eax, -65316(%ebp,%edx,4)
				addl	$1, -68636(%ebp)
  121          %REPEAT
				jmp	.L34
		.L53:
  122       %REPEAT
				jmp	.L31
		.L52:
  123       SELECT INPUT(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTINPUT
				addl	$16, %esp
  124       MMOVE_HOLD = 0;  MOVE_HOLD = 0
				movl	$0, -65300(%ebp)
				movl	$0, -68604(%ebp)
  125       LM_SCORE = 0;  LM_CHK = 0
				movl	$0, -65312(%ebp)
				movl	$0, -65304(%ebp)
  126       MMOVE_L == LM
				leal	-65316(%ebp), %eax
				movl	%eax, -65300(%ebp)
		.LBB296:
  127       PRINTSTRING("Version 2.5
				leal	-65572(%ebp), %eax
				leal	.LC2@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-67108(%ebp), %eax
				leal	-65572(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-65572(%ebp), %eax
				leal	-67108(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE296:
		.LBB297:
		.LBB298:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-65572(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE298:
		.LBE297:
		.LBB299:
  128 HOW DIFFICULT A GAME DO YOU WANT?
  129       2 = NORMAL STRENGTH, 3 = MORE DIFFICULT
  130 ")
  131       PROMPT("2-4?")
				leal	-66340(%ebp), %eax
				leal	.LC3@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-66852(%ebp), %eax
				leal	-66340(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE299:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-66852(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	PROMPT@PLT
				addl	$256, %esp
  132       READ(PDEPTH); SKIPSYMBOL
				subl	$12, %esp
				leal	PDEPTH.6118@GOTOFF(%ebx), %eax
				pushl	%eax
				call	_imp_readint@PLT
				addl	$16, %esp
		.LBB300:
		.LBB301:
				call	_imp_skipsymbol@PLT
		.LBE301:
		.LBE300:
		.LBB302:
  133       PROMPT("Move?")
				leal	-66596(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-66340(%ebp), %eax
				leal	-66596(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE302:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-66340(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	PROMPT@PLT
				addl	$256, %esp
  134       PRINTBOARD
				leal	-65316(%ebp), %eax
				movl	%eax, %ecx
				call	PRINTBOARD.6154
  135       !!
  136       !!
  137       !! N B     WHITE PIECES ARE -VE, BLACK ARE +VE
  138       !!
  139       !**** MAIN LOOP
  140          TIME2 = CPUTIME
				call	CPUTIME@PLT
				fstpl	TIME2.6113@GOTOFF(%ebx)
		.L37:
  141       %CYCLE
  142          %IF PLAY = 1 %START
				movl	-68640(%ebp), %eax
				cmpl	$1, %eax
				jne	.L54
				nop
		.L39:
  143             MOVE_L == RECORD(N PLY(-1, 0, MOVE))
				subl	$4, %esp
				leal	-65316(%ebp), %eax
				leal	-68604(%ebp), %edx
				pushl	%edx
				pushl	$0
				pushl	$-1
				movl	%eax, %ecx
				call	NPLY.6129
				addl	$16, %esp
				movl	%eax, -68612(%ebp)
		.LBB303:
		.LBB304:
				movl	-68612(%ebp), %eax
		.LBE304:
		.LBE303:
				movl	%eax, -68604(%ebp)
  144             TELL(MOVE_L, -1)
				movl	-68604(%ebp), %edx
				subl	$8, %esp
				leal	-65316(%ebp), %eax
				pushl	$-1
				pushl	%edx
				movl	%eax, %ecx
				call	TELL.6152
				addl	$16, %esp
  145             I =CHANGE BOARD(MOVE)
				subl	$12, %esp
				leal	-65316(%ebp), %eax
				leal	-68604(%ebp), %edx
				pushl	%edx
				movl	%eax, %ecx
				call	CHANGEBOARD.6144
				addl	$16, %esp
				movl	%eax, -68636(%ebp)
  146          %FINISHELSESTART
				jmp	.L41
		.L54:
  147             YOURMOVE
				leal	-65316(%ebp), %eax
				movl	%eax, %ecx
				call	YOURMOVE.6160
  148             BURP(MMOVE, -1)
				subl	$8, %esp
				leal	-65316(%ebp), %eax
				pushl	$-1
				leal	-65316(%ebp), %edx
				addl	$16, %edx
				pushl	%edx
				movl	%eax, %ecx
				call	BURP.6149
				addl	$16, %esp
		.L41:
  149          %FINISH
  150          TIME = CPUTIME
				call	CPUTIME@PLT
				fstpl	TIME.6112@GOTOFF(%ebx)
  151          MOVE_L == RECORD(N PLY(+1, 0, MMOVE_L))
				movl	-65300(%ebp), %edx
				subl	$4, %esp
				leal	-65316(%ebp), %eax
				pushl	%edx
				pushl	$0
				pushl	$1
				movl	%eax, %ecx
				call	NPLY.6129
				addl	$16, %esp
				movl	%eax, -68608(%ebp)
		.LBB305:
		.LBB306:
				movl	-68608(%ebp), %eax
		.LBE306:
		.LBE305:
				movl	%eax, -68604(%ebp)
  152          BURP(MOVE, +1)
				subl	$8, %esp
				leal	-65316(%ebp), %eax
				pushl	$1
				leal	-68604(%ebp), %edx
				pushl	%edx
				movl	%eax, %ecx
				call	BURP.6149
				addl	$16, %esp
  153          PRINTBOARD
				leal	-65316(%ebp), %eax
				movl	%eax, %ecx
				call	PRINTBOARD.6154
  154          SELECT OUTPUT(2); PRINTBOARD; SELECT OUTPUT(0)
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				leal	-65316(%ebp), %eax
				movl	%eax, %ecx
				call	PRINTBOARD.6154
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
  155          NO = NO+1
				movl	NO.6115@GOTOFF(%ebx), %eax
				addl	$1, %eax
				movl	%eax, NO.6115@GOTOFF(%ebx)
  156       %REPEAT
				jmp	.L37
		.LFE189:
				.section	.rodata
		.LC24:
				.string	"Illegal cycle J = 1, 1, I - 1"
				.align 32
		.LC21:
				.byte	7
				.string	" FORCED"
				.zero	247
				.align 32
		.LC22:
				.byte	28
				.string	"FORCED TO INCREASE PLYWIDTH\n"
				.zero	226
		NPLY.6129:
		.LFB191:
  157
  158       !!
  159       %ROUTINE RELEASE CHAIN(%RECORD(LISTF)%NAME L)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$20, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %eax
				movl	%ecx, -20(%ebp)
  160          {%RECORDSPEC L(LISTF)
  161          %RECORD(LISTF)%NAME L2
  162          L2 == L
				movl	8(%ebp), %edx
				movl	%edx, -16(%ebp)
		.L10:
  163          %WHILE ADDR(L_L) # 0 %CYCLE
				movl	8(%ebp), %edx
				movl	(%edx), %edx
				movl	%edx, -12(%ebp)
		.LBB287:
		.LBB288:
				movl	-12(%ebp), %edx
		.LBE288:
		.LBE287:
				testl	%edx, %edx
				je	.L18
				nop
		.L13:
  164             L == L_L;                   ! GO TO BOTTOM OF CHAIN
				movl	8(%ebp), %edx
				movl	(%edx), %edx
				movl	%edx, 8(%ebp)
  165          %REPEAT
				jmp	.L10
		.L18:
  166          L_L == FREELIST
				movl	1240(%eax), %ecx
				movl	8(%ebp), %edx
				movl	%ecx, (%edx)
				movl	-16(%ebp), %edx
				movl	%edx, -4(%ebp)
		.LBB289:
		.LBB290:
				movl	-4(%ebp), %edx
				movl	%edx, -8(%ebp)
		.LBE290:
		.LBE289:
		.LBB291:
		.LBB292:
				movl	-8(%ebp), %edx
		.LBE292:
		.LBE291:
  167          FREELIST == RECORD(ADDR(L2))
				movl	%edx, 1240(%eax)
  168       %END
				nop
				leave
				ret
		.LFE190:
				.section	.rodata
				.align 4
		.LC23:
				.string	"Illegal cycle I = 0, 1, 4000 - 1"
				.align 32
		.LC0:
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	0
				.long	5
				.long	0
				.long	0
				.long	3
				.long	3
				.long	3
				.long	20
				.long	20
				.long	3
				.long	3
				.long	3
				.long	4
				.long	6
				.long	6
				.long	50
				.long	50
				.long	6
				.long	6
				.long	4
				.long	8
				.long	9
				.long	30
				.long	55
				.long	55
				.long	30
				.long	9
				.long	8
				.long	10
				.long	10
				.long	35
				.long	60
				.long	60
				.long	35
				.long	10
				.long	10
				.long	100
				.long	100
				.long	100
				.long	100
				.long	100
				.long	100
				.long	100
				.long	100
				.long	500
				.long	500
				.long	500
				.long	500
				.long	500
				.long	500
				.long	500
				.long	500
				.align 32
		.LC1:
				.byte	18
				.string	"test-in/chess9.imp"
				.zero	236
				.align 32
		.LC2:
				.byte	92
				.string	"Version 2.5\nHOW DIFFICULT A GAME DO YOU WANT?\n      2 = NORMAL STRENGTH, 3 = MORE DIFFI
				.zero	162
				.align 32
		.LC3:
				.byte	4
				.string	"2-4?"
				.zero	250
				.align 32
		.LC4:
				.byte	5
				.string	"Move?"
				.zero	249
				.globl	main
		main:
		.LFB189:
  169       !!
  170       %INTEGERFN N PLY(%INTEGER WHICH, DEPTH, %RECORD(LISTF)%NAME CHAIN)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$2732, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	16(%ebp), %eax
				movl	%eax, -2732(%ebp)
				movl	%ecx, -2740(%ebp)
				movl	%ecx, -2736(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  171          %INTEGER I, XWHICH, J, SWIDTH, CI, FLAG
  172          %RECORD(LISTF{QHF})%NAME BPT
  173         %RECORD(LISTF{QHF})%ARRAY B(1:40)
				leal	-2596(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-668(%ebp), %eax
				movl	%eax, -2596(%ebp)
				movl	$16, -2592(%ebp)
  174         %RECORD(LISTF)%NAME LIST, LISTX
  175
  176          %CONSTINTEGERARRAY XWIDTH(0:10) = 8, 8, 3(9)
				movl	$8, -2640(%ebp)
				movl	$8, -2636(%ebp)
				movl	$3, -2632(%ebp)
				movl	$3, -2628(%ebp)
				movl	$3, -2624(%ebp)
				movl	$3, -2620(%ebp)
				movl	$3, -2616(%ebp)
				movl	$3, -2612(%ebp)
				movl	$3, -2608(%ebp)
				movl	$3, -2604(%ebp)
				movl	$3, -2600(%ebp)
				leal	-2528(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-2640(%ebp), %eax
				movl	%eax, -2528(%ebp)
				movl	$4, -2524(%ebp)
  177          !!
  178          XDEPTH = DEPTH;                ! HOLD FOR GLOBAL USE
				movl	12(%ebp), %eax
				movl	%eax, XDEPTH.6117@GOTOFF(%ebx)
  179          DEPTH = DEPTH+1
				addl	$1, 12(%ebp)
  180          SWIDTH = XWIDTH(DEPTH)
				movl	12(%ebp), %eax
				movl	-2640(%ebp,%eax,4), %eax
				movl	%eax, -2716(%ebp)
  181          %IF DEPTH=PDEPTH %THEN SWIDTH=1
				movl	PDEPTH.6118@GOTOFF(%ebx), %eax
				cmpl	%eax, 12(%ebp)
				jne	.L107
				movl	$1, -2716(%ebp)
				jmp	.L57
		.L107:
				nop
		.L57:
  182          LAST CHK = CHAIN_CHK
				movl	-2732(%ebp), %eax
				movl	12(%eax), %eax
				movl	%eax, LASTCHK.6122@GOTOFF(%ebx)
  183          LIST == RECORD(ONE PLY(WHICH, SWIDTH))
				subl	$8, %esp
				pushl	-2716(%ebp)
				pushl	8(%ebp)
				movl	-2740(%ebp), %ecx
				call	ONEPLY.6142
				addl	$16, %esp
				movl	%eax, -2676(%ebp)
		.LBB307:
		.LBB308:
				movl	-2676(%ebp), %eax
		.LBE308:
		.LBE307:
				movl	%eax, -2708(%ebp)
  184          I = 1
				movl	$1, -2724(%ebp)
				movl	$0, -2680(%ebp)
		.LBB309:
		.LBB310:
				movl	-2680(%ebp), %eax
		.LBE310:
		.LBE309:
  185          B(1)_L == RECORD(0)
				movl	%eax, -668(%ebp)
  186          FLAG = 0
				movl	$0, -2712(%ebp)
		.L60:
				movl	-2708(%ebp), %eax
				movl	%eax, -2672(%ebp)
		.LBB311:
		.LBB312:
				movl	-2672(%ebp), %eax
		.LBE312:
		.LBE311:
  187          %WHILE ADDR(LIST)#0 %CYCLE
				testl	%eax, %eax
				je	.L108
				nop
		.L63:
				movl	-2708(%ebp), %eax
				movl	%eax, -2652(%ebp)
		.LBB329:
		.LBB330:
				movl	-2652(%ebp), %eax
		.LBE330:
		.LBE329:
  188             BPT == B(I)
				movl	-2724(%ebp), %eax
				leal	-1(%eax), %edx
				leal	-668(%ebp), %eax
				sall	$4, %edx
				addl	%edx, %eax
				movl	%eax, -2704(%ebp)
  189             BPT_L == LIST
				movl	-2704(%ebp), %eax
				movl	-2708(%ebp), %edx
				movl	%edx, (%eax)
  190             LIST == LIST_L
				movl	-2708(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -2708(%ebp)
  191             %IF MON#0 %START
				movl	MON.6119@GOTOFF(%ebx), %eax
				testl	%eax, %eax
				je	.L109
				nop
		.L65:
  192                SELECT OUTPUT(2)
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
  193                SPACES(DEPTH*3)
				movl	12(%ebp), %edx
				movl	%edx, %eax
				addl	%eax, %eax
				addl	%edx, %eax
				movl	%eax, -2668(%ebp)
		.LBB313:
		.LBB314:
				subl	$12, %esp
				pushl	-2668(%ebp)
				call	_imp_spaces@PLT
				addl	$16, %esp
		.LBE314:
		.LBE313:
  194                WRITE(DEPTH, 1);  SPACES(2);   PRINTMOVE(BPT_L)
				subl	$8, %esp
				pushl	$1
				pushl	12(%ebp)
				call	_imp_writeint@PLT
				addl	$16, %esp
				movl	$2, -2664(%ebp)
		.LBB315:
		.LBB316:
				subl	$12, %esp
				pushl	-2664(%ebp)
				call	_imp_spaces@PLT
				addl	$16, %esp
		.LBE316:
		.LBE315:
				movl	-2704(%ebp), %eax
				movl	(%eax), %eax
				subl	$12, %esp
				pushl	%eax
				movl	-2740(%ebp), %ecx
				call	PRINTMOVE.6156
				addl	$16, %esp
  195                %IF LAST CHK#0 %THEN PRINTSTRING(" FORCED")
				movl	LASTCHK.6122@GOTOFF(%ebx), %eax
				testl	%eax, %eax
				je	.L110
		.LBB317:
				leal	-1436(%ebp), %eax
				leal	.LC21@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2460(%ebp), %eax
				leal	-1436(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1180(%ebp), %eax
				leal	-2460(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE317:
		.LBB318:
		.LBB319:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1180(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
				jmp	.L67
		.L110:
		.LBE319:
		.LBE318:
				nop
		.L67:
		.LBB320:
		.LBB321:
				call	_imp_newline@PLT
		.LBE321:
		.LBE320:
  196                NEWLINE
  197                SELECT OUTPUT(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				jmp	.L65
		.L109:
  198             %FINISH
  199             I = I+1
				addl	$1, -2724(%ebp)
  200             ! %EXIT %IF LIST == NULL;     ! ONLY ONE MOVE ALLOWED
  201 !            %EXIT %IF ADDR(LIST) = 0 %AND I = 2;   ! SEE ABOVE
  202             XWHICH = WHICH!!X'FFFFFFFE'
				movl	8(%ebp), %eax
				xorl	$-2, %eax
				movl	%eax, -2700(%ebp)
  203             %IF DEPTH < PDEPTH %START
				movl	PDEPTH.6118@GOTOFF(%ebx), %eax
				cmpl	%eax, 12(%ebp)
				jge	.L111
				nop
		.L74:
  204
  205                CI = CHANGE BOARD(BPT)
				subl	$12, %esp
				pushl	-2704(%ebp)
				movl	-2740(%ebp), %esi
				movl	%esi, %ecx
				call	CHANGEBOARD.6144
				addl	$16, %esp
				movl	%eax, -2696(%ebp)
  206                LISTX == RECORD(N PLY(XWHICH, DEPTH, BPT_L))
				movl	-2704(%ebp), %eax
				movl	(%eax), %eax
				subl	$4, %esp
				pushl	%eax
				pushl	12(%ebp)
				pushl	-2700(%ebp)
				movl	%esi, %ecx
				call	NPLY.6129
				addl	$16, %esp
				movl	%eax, -2656(%ebp)
		.LBB322:
		.LBB323:
				movl	-2656(%ebp), %eax
		.LBE323:
		.LBE322:
				movl	%eax, -2692(%ebp)
  207                LAST CHK = CHAIN_CHK;    ! REALLY FOR MONITORING
				movl	-2732(%ebp), %eax
				movl	12(%eax), %eax
				movl	%eax, LASTCHK.6122@GOTOFF(%ebx)
  208                RESTORE BOARD(BPT)
				subl	$12, %esp
				pushl	-2704(%ebp)
				movl	%esi, %ecx
				call	RESTOREBOARD.6146
				addl	$16, %esp
				movl	-2692(%ebp), %eax
				movl	%eax, -2660(%ebp)
		.LBB324:
		.LBB325:
				movl	-2660(%ebp), %eax
		.LBE325:
		.LBE324:
  209                %UNLESS ADDR(LISTX)=0 %START
				testl	%eax, %eax
				je	.L112
				nop
		.L73:
  210                   BPT_L_SCORE = LISTX_SCORE;    ! GET BEST OPP PIECE SCORE
				movl	-2704(%ebp), %eax
				movl	(%eax), %eax
				movl	-2692(%ebp), %edx
				movl	4(%edx), %edx
				movl	%edx, 4(%eax)
  211                   RELEASE CHAIN(LISTX); FLAG = FLAG+1
				subl	$12, %esp
				pushl	-2692(%ebp)
				movl	-2740(%ebp), %ecx
				call	RELEASECHAIN.6196
				addl	$16, %esp
				addl	$1, -2712(%ebp)
  212                %FINISHELSESTART
				jmp	.L74
		.L112:
  213                   BPT_L_SCORE = NO LEG MOVE(WHICH)
				movl	8(%ebp), %eax
				leal	1(%eax), %edx
				movl	-2704(%ebp), %eax
				movl	(%eax), %eax
				addl	$304, %edx
				movl	-2740(%ebp), %edi
				movl	12(%edi,%edx,4), %edx
				movl	%edx, 4(%eax)
				jmp	.L74
		.L69:
		.L111:
  214                   ! %IF BPT_L_CHK = 0 %THEN BPT_L_SCORE = 0; ! ????
  215                %FINISH
  216             %FINISH
  217          %IF I > SWIDTH %START
				movl	-2724(%ebp), %eax
				cmpl	-2716(%ebp), %eax
				jle	.L113
				nop
				jmp	.L60
		.L116:
  218             %IF FLAG # 0 %OR I = 2 %THEN %EXIT;   ! MOVE FOUND
				cmpl	$0, -2712(%ebp)
				jne	.L114
				cmpl	$2, -2724(%ebp)
				jne	.L115
				jmp	.L78
		.L114:
				nop
		.L78:
				jmp	.L63
		.L115:
				nop
		.L79:
  219             %IF MON # 0 %START
				movl	MON.6119@GOTOFF(%ebx), %eax
				testl	%eax, %eax
				je	.L116
				nop
		.L81:
  220                SELECT OUTPUT(2)
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB326:
  221                PRINTSTRING("FORCED TO INCREASE PLYWIDTH
				leal	-1436(%ebp), %eax
				leal	.LC22@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-2204(%ebp), %eax
				leal	-1436(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-924(%ebp), %eax
				leal	-2204(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE326:
		.LBB327:
		.LBB328:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-924(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE328:
		.LBE327:
  222 ")
  223                SELECT OUTPUT(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				jmp	.L60
		.L76:
		.L113:
  224             %FINISH
  225                   !! IF NO LEGAL MOVE, SEARCH ALL MOVES ON THIS LEVEL
  226          %FINISH
  227          %REPEAT
				jmp	.L60
		.L108:
  228          RELEASE CHAIN(LIST) %IF ADDR(LIST)#0
				testl	%eax, %eax
				je	.L117
				subl	$12, %esp
				pushl	-2708(%ebp)
				movl	-2740(%ebp), %ecx
				call	RELEASECHAIN.6196
				addl	$16, %esp
				jmp	.L84
		.L117:
				nop
		.L84:
				movl	$0, -2648(%ebp)
		.LBB331:
		.LBB332:
				movl	-2648(%ebp), %eax
		.LBE332:
		.LBE331:
  229          LIST == RECORD(0)
				movl	%eax, -2708(%ebp)
  230          %IF I = 1 %THEN %RESULT = 0;   ! NO LEGAL MOVE
				cmpl	$1, -2724(%ebp)
				jne	.L118
				movl	$0, %eax
				jmp	.L100
		.L118:
				nop
		.L87:
  231          %IF I = 2 %THEN %RESULT = ADDR(B(1)_L); ! SINGLE RESULT
				cmpl	$2, -2724(%ebp)
				jne	.L119
				movl	-668(%ebp), %eax
				movl	%eax, -2644(%ebp)
		.LBB333:
		.LBB334:
				movl	-2644(%ebp), %eax
		.LBE334:
		.LBE333:
				jmp	.L100
		.L119:
				nop
		.L90:
		.LBB335:
  232          %CYCLE J = 1, 1, I-1
				movl	-2724(%ebp), %eax
				subl	$1, %eax
				movl	%eax, -2688(%ebp)
		.LBB336:
				movl	-2688(%ebp), %eax
				subl	$1, %eax
				movl	%eax, -2684(%ebp)
				movl	-2684(%ebp), %eax
				xorl	$1, %eax
				shrl	$31, %eax
				movzbl	%al, %eax
		.LBE336:
				testl	%eax, %eax
				je	.L92
				leal	-1692(%ebp), %eax
				subl	$8, %esp
				leal	.LC24@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L93
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -2744(%ebp)
				jmp	.L94
		.L93:
				movl	$232, -2744(%ebp)
		.L94:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L95
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %edx
				leal	-1436(%ebp), %eax
				subl	$8, %esp
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				jmp	.L96
		.L95:
		.LBB337:
				leal	-1436(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1948(%ebp), %eax
				leal	-1436(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE337:
				leal	-1436(%ebp), %eax
				leal	-1948(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L96:
				pushl	$0
				pushl	$1
				pushl	$5
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1692(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-2744(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-1436(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
		.L92:
				movl	$0, -2720(%ebp)
		.L97:
				movl	-2720(%ebp), %eax
				cmpl	-2688(%ebp), %eax
				je	.L120
				addl	$1, -2720(%ebp)
				nop
		.L99:
		.LBE335:
  233             B(J)_L_L == LIST
				movl	-2720(%ebp), %eax
				subl	$1, %eax
				sall	$4, %eax
				leal	-24(%ebp), %esi
				addl	%esi, %eax
				subl	$644, %eax
				movl	(%eax), %eax
				movl	-2708(%ebp), %edx
				movl	%edx, (%eax)
  234             LIST == B(J)_L;             ! STACK THE RESULTS
				movl	-2720(%ebp), %eax
				subl	$1, %eax
				sall	$4, %eax
				leal	-24(%ebp), %edi
				addl	%edi, %eax
				subl	$644, %eax
				movl	(%eax), %eax
				movl	%eax, -2708(%ebp)
  235          %REPEAT
				jmp	.L97
		.L120:
  236          %RESULT = SORT AND PRUNE(LIST, 1, WHICH)
				subl	$4, %esp
				pushl	8(%ebp)
				pushl	$1
				pushl	-2708(%ebp)
				movl	-2740(%ebp), %ecx
				call	SORTANDPRUNE.6133
				addl	$16, %esp
		.L100:
  237                                         ! GET THE 'BEST' RESULT
  238                                         ! NB RESULT == SORT ON PDP11
  239
  240       %END
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L101
				call	__stack_chk_fail_local
		.L101:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE191:
		ONEPLY.6142:
		.LFB192:
  241
  242
  243       %INTEGERFN ONE PLY(%INTEGER WHICH, WIDTH)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$36, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, %ebx
				movl	%ecx, -28(%ebp)
  244          %RECORD(LISTF)%NAME LIST
  245
  246
  247          !! BRDOLD = BRD;                  ! HOLD IT (TO ERASE ATT&DEF
  248          LIST == RECORD(MOVES(WHICH, 0))
				subl	$8, %esp
				pushl	$0
				pushl	8(%ebp)
				movl	%ebx, %ecx
				call	MOVES.6139
				addl	$16, %esp
				movl	%eax, -12(%ebp)
		.LBB338:
		.LBB339:
				movl	-12(%ebp), %eax
		.LBE339:
		.LBE338:
				movl	%eax, -24(%ebp)
  249          LIST == RECORD (SORT AND PRUNE(LIST, WIDTH, WHICH))
				subl	$4, %esp
				pushl	8(%ebp)
				pushl	12(%ebp)
				pushl	-24(%ebp)
				movl	%ebx, %ecx
				call	SORTANDPRUNE.6133
				addl	$16, %esp
				movl	%eax, -16(%ebp)
		.LBB340:
		.LBB341:
				movl	-16(%ebp), %eax
		.LBE341:
		.LBE340:
				movl	%eax, -24(%ebp)
				movl	-24(%ebp), %eax
				movl	%eax, -20(%ebp)
		.LBB342:
		.LBB343:
				movl	-20(%ebp), %eax
		.LBE343:
		.LBE342:
  250          %RESULT = ADDR(LIST)
  251       %END
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE192:
				.section	.rodata
				.align 32
		.LC19:
				.long	3
				.long	2
				.long	2
				.long	2
				.long	2
				.long	2
				.long	2
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.long	1
				.align 32
		.LC20:
				.byte	40
				.string	"PROGRAM ERROR, NEXT MOVE MAY BE STUPID!\n"
				.zero	214
		EXVAL.6253:
		.LFB193:
  252
  253       !!
  254       %INTEGERFN EXVAL(%INTEGER OCC,SIDE1,SIDE2)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$844, %esp
				call	__x86.get_pc_thunk.dx
				addl	$_GLOBAL_OFFSET_TABLE_, %edx
				movl	%ecx, -848(%ebp)
				movl	%ecx, -844(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  255          %INTEGER GAIN,LOSS,NEW
  256          %CONSTINTEGERARRAY PCE(1:31)=3,2(6),1(24)
				leal	-664(%ebp), %eax
				leal	.LC19@GOTOFF(%edx), %ebx
				movl	$31, %ecx
				movl	%eax, %edi
				movl	%ebx, %esi
				rep movsl
				leal	-800(%ebp), %ebx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%ebx, %edi
				rep stosl
				leal	-664(%ebp), %eax
				movl	%eax, -800(%ebp)
				movl	$4, -796(%ebp)
  257          !! %CONSTINTEGERARRAY VAL(1:6)=100,300,350,500,900,5000
  258          %CONSTINTEGERARRAY BIT(1:6)=256,64,32,8,2,1
				movl	$256, -824(%ebp)
				movl	$64, -820(%ebp)
				movl	$32, -816(%ebp)
				movl	$8, -812(%ebp)
				movl	$2, -808(%ebp)
				movl	$1, -804(%ebp)
				leal	-732(%ebp), %ebx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%ebx, %edi
				rep stosl
				leal	-824(%ebp), %eax
				movl	%eax, -732(%ebp)
				movl	$4, -728(%ebp)
  259                      !* +VE RESULT => ATTACKING SIDE HAS GAINED SOMETHING
  260          GAIN=VAL(OCC)
				movl	8(%ebp), %eax
				addl	$6, %eax
				addl	$292, %eax
				movl	-848(%ebp), %esi
				movl	8(%esi,%eax,4), %eax
				movl	%eax, -832(%ebp)
  261          %IF SIDE1<0 %START
				cmpl	$0, 12(%ebp)
				jns	.L143
		.LBB344:
				nop
		.L128:
  262             PRINTSTRING("PROGRAM ERROR, NEXT MOVE MAY BE STUPID!
				leal	-284(%ebp), %eax
				leal	.LC20@GOTOFF(%edx), %ebx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%ebx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %ebx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%ebx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %ebx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%ebx, %esi
				rep movsl
		.LBE344:
		.LBB345:
		.LBB346:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %ebx
				leal	-284(%ebp), %eax
				movl	$64, %ecx
				movl	%ebx, %edi
				movl	%eax, %esi
				rep movsl
				movl	%edx, %ebx
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE346:
		.LBE345:
  263 ")
  264             %RESULT = 0
				movl	$0, %eax
				jmp	.L137
		.L143:
  265          %FINISH
  266          %IF SIDE2=0 %THENRESULT=GAIN
				cmpl	$0, 16(%ebp)
				jne	.L144
				movl	-832(%ebp), %eax
				jmp	.L137
		.L144:
				nop
		.L131:
  267          NEW=SIDE1>>5
				movl	12(%ebp), %eax
				shrl	$5, %eax
				movl	%eax, -836(%ebp)
  268          %IF NEW#0 %THEN NEW=PCE(NEW) %ELSE NEW=PCE(SIDE1)+3
				cmpl	$0, -836(%ebp)
				je	.L145
				movl	-836(%ebp), %eax
				subl	$1, %eax
				movl	-664(%ebp,%eax,4), %eax
				movl	%eax, -836(%ebp)
				jmp	.L134
		.L145:
				nop
		.L133:
				movl	12(%ebp), %eax
				subl	$1, %eax
				movl	-664(%ebp,%eax,4), %eax
				addl	$3, %eax
				movl	%eax, -836(%ebp)
		.L134:
  269          LOSS=EXVAL(NEW,SIDE2,SIDE1-BIT(NEW))
				movl	-836(%ebp), %eax
				subl	$1, %eax
				movl	-824(%ebp,%eax,4), %eax
				movl	12(%ebp), %edx
				subl	%eax, %edx
				movl	%edx, %eax
				subl	$4, %esp
				pushl	%eax
				pushl	16(%ebp)
				pushl	-836(%ebp)
				movl	-848(%ebp), %ecx
				call	EXVAL.6253
				addl	$16, %esp
				movl	%eax, -828(%ebp)
  270          %IF LOSS<0 %THENRESULT=GAIN %ELSERESULT=GAIN-LOSS
				cmpl	$0, -828(%ebp)
				jns	.L146
				movl	-832(%ebp), %eax
				jmp	.L137
		.L146:
				nop
		.L136:
				movl	-832(%ebp), %eax
				subl	-828(%ebp), %eax
		.L137:
  271       %END
				movl	-28(%ebp), %edx
				xorl	%gs:20, %edx
				je	.L138
				call	__stack_chk_fail_local
		.L138:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE193:
				.section	.rodata
		.LC25:
				.string	"Illegal cycle I = 1, 1, PINPT"
		CHECKPINS.6270:
		.LFB194:
  272       !!
  273       %ROUTINE CHECK PINS(%INTEGER WHICH)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$828, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -836(%ebp)
				movl	%ecx, -828(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  274          %INTEGER I, K, BV
  275          %RECORD(SQF)%NAME SQ
  276          !! THIS ROUTINE REMOVES THE 'ATTACKS' AND 'DEFENSES' OF ALL THE
  277          !! PINNED PIECES.
  278          !! THEY ARE NOT DELETED IF THE PINNED PIECE IS ATTACKING THE
  279          !! PINNING PIECE
  280          !!
  281          %RETURN %IF PIN PT=0
				movl	PINPT.6079@GOTOFF(%ebx), %eax
				testl	%eax, %eax
				je	.L164
				nop
		.L149:
		.LBB347:
				nop
		.L147:
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L162
				call	__stack_chk_fail_local
		.L162:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE194:
		TRYANOTHERPLY.6287:
		.LFB195:
  282          %CYCLE I = 1, 1, PIN PT
				movl	PINPT.6079@GOTOFF(%ebx), %eax
				movl	%eax, -816(%ebp)
		.LBB348:
				movl	-816(%ebp), %eax
				subl	$1, %eax
				movl	%eax, -812(%ebp)
				movl	-812(%ebp), %eax
				xorl	$1, %eax
				shrl	$31, %eax
				movzbl	%al, %eax
		.LBE348:
				testl	%eax, %eax
				je	.L151
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC25@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L152
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -832(%ebp)
				jmp	.L153
		.L152:
				movl	$282, -832(%ebp)
		.L153:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L154
				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	.L155
		.L154:
		.LBB349:
				leal	-284(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE349:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L155:
				pushl	$0
				pushl	$1
				pushl	$5
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-832(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
		.L151:
				movl	$0, -820(%ebp)
		.L156:
				movl	-820(%ebp), %eax
				cmpl	-816(%ebp), %eax
				je	.L165
				addl	$1, -820(%ebp)
				nop
		.L158:
		.LBE347:
  283             PX = PINX(I); PY = PINY(I)
				movl	-820(%ebp), %eax
				subl	$1, %eax
				movl	PINX.6071@GOTOFF(%ebx,%eax,4), %eax
				movl	%eax, PX.6080@GOTOFF(%ebx)
				movl	-820(%ebp), %eax
				subl	$1, %eax
				movl	PINY.6073@GOTOFF(%ebx,%eax,4), %eax
				movl	%eax, PY.6081@GOTOFF(%ebx)
  284             SQ == SQI(PINDX(I))_SQ;     ! ATTACKERS SQUARE
				movl	-820(%ebp), %eax
				subl	$1, %eax
				addl	$260, %eax
				movl	-836(%ebp), %esi
				movl	8(%esi,%eax,4), %eax
				subl	$1, %eax
				addl	$196, %eax
				movl	8(%esi,%eax,4), %eax
				movl	%eax, -808(%ebp)
  285             BV = BIT VAL(PINPY(I))
				movl	-820(%ebp), %eax
				subl	$1, %eax
				addl	$164, %eax
				movl	8(%esi,%eax,4), %eax
				subl	$1, %eax
				addl	$160, %eax
				movl	(%esi,%eax,4), %eax
				movl	%eax, -804(%ebp)
  286             %IF SQ_ATT&BV#0 %START
				movl	-808(%ebp), %eax
				movl	4(%eax), %edx
				cmpl	$0, -804(%ebp)
				sete	%al
				movzbl	%al, %eax
				andl	%edx, %eax
				testl	%eax, %eax
				je	.L166
				nop
		.L160:
  287                !! NO PIN
  288             %FINISHELSESTART
				nop
		.L161:
  289                PIN REMOVE = PINPY(I);       ! IF ATT>PINNED DEFENSE!
				movl	-820(%ebp), %eax
				subl	$1, %eax
				addl	$164, %eax
				movl	-836(%ebp), %ecx
				movl	8(%ecx,%eax,4), %eax
				movl	%eax, PINREMOVE.6123@GOTOFF(%ebx)
  290                K = MOVES(WHICH, 3)
				subl	$8, %esp
				pushl	$3
				pushl	8(%ebp)
				call	MOVES.6139
				addl	$16, %esp
				movl	%eax, -800(%ebp)
  291                SCOREA = SCOREA+SQ_P*5
				movl	-808(%ebp), %eax
				movl	(%eax), %edx
				movl	%edx, %eax
				sall	$2, %eax
				addl	%eax, %edx
				movl	SCOREA.6116@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				movl	%eax, SCOREA.6116@GOTOFF(%ebx)
				jmp	.L156
		.L166:
  292             %FINISH
  293          %REPEAT
				jmp	.L156
		.L165:
  294       %END
				nop
				jmp	.L147
		.L164:
  295       !!
  296       %INTEGERFN TRY ANOTHER PLY(%INTEGER WHICH)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$156, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %esi
				movl	%ecx, -156(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  297          %RECORD(LISTF)%NAME LIST2
  298          %INTEGER X, WW, XMON
  299          %CONSTINTEGERARRAY WWW(-1:1) = 25, 0, -25
				movl	$25, -108(%ebp)
				movl	$0, -104(%ebp)
				movl	$-25, -100(%ebp)
				leal	-96(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-108(%ebp), %eax
				movl	%eax, -96(%ebp)
				movl	$4, -92(%ebp)
  300          %RESULT = 0 %IF JUST ONE PLY = 1;   ! ONLY ONE LEVEL
				movl	JUSTONEPLY.6120@GOTOFF(%ebx), %eax
				cmpl	$1, %eax
				jne	.L183
				movl	$0, %eax
				jmp	.L179
		.L183:
				nop
		.L169:
  301          JUST ONE PLY = 1; XMON = MON; MON = 1
				movl	$1, JUSTONEPLY.6120@GOTOFF(%ebx)
				movl	MON.6119@GOTOFF(%ebx), %eax
				movl	%eax, -140(%ebp)
				movl	$1, MON.6119@GOTOFF(%ebx)
  302          WW = WHICH!!X'FFFFFFFE'
				movl	8(%ebp), %eax
				xorl	$-2, %eax
				movl	%eax, -136(%ebp)
  303          LIST2 == RECORD(MOVES(WW, 0))
				subl	$8, %esp
				pushl	$0
				pushl	-136(%ebp)
				movl	%esi, %ecx
				call	MOVES.6139
				addl	$16, %esp
				movl	%eax, -120(%ebp)
		.LBB350:
		.LBB351:
				movl	-120(%ebp), %eax
		.LBE351:
		.LBE350:
				movl	%eax, -132(%ebp)
  304          JUST ONE PLY = 0; MON = XMON
				movl	$0, JUSTONEPLY.6120@GOTOFF(%ebx)
				movl	-140(%ebp), %eax
				movl	%eax, MON.6119@GOTOFF(%ebx)
				movl	-132(%ebp), %eax
				movl	%eax, -124(%ebp)
		.LBB352:
		.LBB353:
				movl	-124(%ebp), %eax
		.LBE353:
		.LBE352:
  305          %IF ADDR(LIST2) = 0 %START
				testl	%eax, %eax
				jne	.L184
				nop
		.L174:
  306             %RESULT = -NOLEGMOVE(WW)//2
				movl	-136(%ebp), %eax
				addl	$1, %eax
				addl	$304, %eax
				movl	12(%esi,%eax,4), %eax
				movl	%eax, %edx
				shrl	$31, %edx
				addl	%edx, %eax
				sarl	%eax
				negl	%eax
				jmp	.L179
		.L184:
  307          %FINISHELSESTART
  308             LIST2 == RECORD(SORT AND PRUNE(LIST2, 1, WW))
				subl	$4, %esp
				pushl	-136(%ebp)
				pushl	$1
				pushl	-132(%ebp)
				movl	%esi, %ecx
				call	SORTANDPRUNE.6133
				addl	$16, %esp
				movl	%eax, -112(%ebp)
		.LBB354:
		.LBB355:
				movl	-112(%ebp), %eax
		.LBE355:
		.LBE354:
				movl	%eax, -132(%ebp)
  309             X = LIST2_SCORE
				movl	-132(%ebp), %eax
				movl	4(%eax), %eax
				movl	%eax, -128(%ebp)
				movl	-132(%ebp), %eax
				movl	%eax, -116(%ebp)
		.LBB356:
		.LBB357:
				movl	-116(%ebp), %eax
		.LBE357:
		.LBE356:
  310          %FINISH
  311          RELEASE CHAIN(LIST2) %UNLESS ADDR(LIST2)=0
				testl	%eax, %eax
				je	.L185
				subl	$12, %esp
				pushl	-132(%ebp)
				movl	%esi, %ecx
				call	RELEASECHAIN.6196
				addl	$16, %esp
				jmp	.L178
		.L185:
				nop
		.L178:
  312          %RESULT = X+WWW(WW)
				movl	-136(%ebp), %eax
				addl	$1, %eax
				movl	-108(%ebp,%eax,4), %edx
				movl	-128(%ebp), %eax
				addl	%edx, %eax
		.L179:
  313       %END
				movl	-28(%ebp), %edi
				xorl	%gs:20, %edi
				je	.L180
				call	__stack_chk_fail_local
		.L180:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE195:
				.section	.rodata
				.align 32
		.LC18:
				.byte	6
				.string	"SCORE:"
				.zero	248
		SCORE.6136:
		.LFB196:
  314       !!
  315       %INTEGER %FN SCORE(%INTEGER WHICH, %RECORD(LISTF)%NAME L)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$636, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	12(%ebp), %eax
				movl	%eax, -636(%ebp)
				movl	%ecx, %esi
				movl	%ecx, -640(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  316          {%RECORDSPEC L(LISTF)
  317          %INTEGER SCOREB, X, Y, I, P, Q, QQ, PAWNB, WHX, W2
  318          %INTEGER GAIN, SQU, LOSS, NPH, NPH2, BAD, SCOREC
  319          %RECORD(LISTF{QHF}) HOLD
  320          %RECORD(LISTF)%NAME LIST2
  321          %RECORD(SQF)%NAME SQ
  322          !!
  323          !! BRD = BRDOLD;                  ! CLEAR ATT & DEF
  324          PIN PT = 0
				movl	$0, PINPT.6079@GOTOFF(%ebx)
  325          %CYCLE I = 1, 1, 64
				movl	$0, -624(%ebp)
		.L187:
				cmpl	$64, -624(%ebp)
				je	.L269
				addl	$1, -624(%ebp)
				nop
		.L189:
  326             SQI(I)_SQ_ATT = 0; SQI(I)_SQ_DEF = 0
				movl	-624(%ebp), %eax
				subl	$1, %eax
				addl	$196, %eax
				movl	8(%esi,%eax,4), %eax
				movl	$0, 4(%eax)
				movl	-624(%ebp), %eax
				subl	$1, %eax
				addl	$196, %eax
				movl	8(%esi,%eax,4), %eax
				movl	$0, 8(%eax)
  327          %REPEAT
				jmp	.L187
		.L269:
  328          WHX = WHICH&BIT;               ! GET TYPE
				movl	8(%ebp), %eax
				andl	$-2147483648, %eax
				movl	%eax, -572(%ebp)
  329          L_CHK = 0;                     ! CLEAR FLAG
				movl	-636(%ebp), %eax
				movl	$0, 12(%eax)
  330          HOLD_L == L;                   ! MAP TO MOVE
				movl	-636(%ebp), %eax
				movl	%eax, -556(%ebp)
  331          P = CHANGE BOARD(HOLD);            ! AND MAKE IT
				subl	$12, %esp
				leal	-556(%ebp), %eax
				pushl	%eax
				movl	%esi, %ecx
				call	CHANGEBOARD.6144
				addl	$16, %esp
				movl	%eax, -612(%ebp)
  332          SCOREB = 0; SCOREA = 0;  SCOREC = 0
				movl	$0, -616(%ebp)
				movl	$0, SCOREA.6116@GOTOFF(%ebx)
				movl	$0, -576(%ebp)
  333          P = MOVES(WHICH, 1)
				subl	$8, %esp
				pushl	$1
				pushl	8(%ebp)
				movl	%esi, %ecx
				call	MOVES.6139
				addl	$16, %esp
				movl	%eax, -612(%ebp)
  334          SQU = 0
				movl	$0, -596(%ebp)
  335          BAD = 0; NPH = 0; NPH2 = 0
				movl	$0, -580(%ebp)
				movl	$0, -588(%ebp)
				movl	$0, -584(%ebp)
  336          %CYCLE Y = 1, 1, 8
				movl	$0, -628(%ebp)
		.L190:
				cmpl	$8, -628(%ebp)
				je	.L270
				addl	$1, -628(%ebp)
				nop
		.L192:
  337             %CYCLE X = 1, 1, 8
				movl	$0, -620(%ebp)
		.L193:
				cmpl	$8, -620(%ebp)
				je	.L271
				addl	$1, -620(%ebp)
				nop
		.L195:
  338                SQU = SQU+1
				addl	$1, -596(%ebp)
  339                SQ == SQI(SQU)_SQ
				movl	-596(%ebp), %eax
				subl	$1, %eax
				addl	$196, %eax
				movl	8(%esi,%eax,4), %eax
				movl	%eax, -568(%ebp)
  340                Q = SQ_P
				movl	-568(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -564(%ebp)
  341                %IF Q#0 %START;          ! PIECE ON SQUARE
				cmpl	$0, -564(%ebp)
				je	.L272
				nop
		.L197:
  342                   %IF Q < 0 %START
				cmpl	$0, -564(%ebp)
				jns	.L273
				nop
		.L199:
  343                      QQ = -Q; W2 = -1
				movl	-564(%ebp), %eax
				negl	%eax
				movl	%eax, -608(%ebp)
				movl	$-1, -600(%ebp)
  344                   %FINISHELSESTART
				jmp	.L200
		.L273:
  345                      QQ = Q; W2 = 1
				movl	-564(%ebp), %eax
				movl	%eax, -608(%ebp)
				movl	$1, -600(%ebp)
		.L200:
  346                   %FINISH
  347
  348                   !!
  349                   P = 0
				movl	$0, -612(%ebp)
  350                   %IF QQ = 1 %START;    ! PAWN
				cmpl	$1, -608(%ebp)
				jne	.L274
				nop
		.L202:
  351                      %IF Q > 0 %THEN PAWNB= 9-Y %ELSE %C
				cmpl	$0, -564(%ebp)
				jle	.L275
				movl	$9, %eax
				subl	-628(%ebp), %eax
				movl	%eax, -604(%ebp)
				jmp	.L205
		.L275:
				nop
		.L204:
				movl	-628(%ebp), %eax
				movl	%eax, -604(%ebp)
		.L205:
  352                         PAWNB = Y
  353                      P = PAWN 2D(PAWNB*8+X)*Q
				movl	-604(%ebp), %eax
				leal	0(,%eax,8), %edx
				movl	-620(%ebp), %eax
				addl	%edx, %eax
				subl	$9, %eax
				addl	$96, %eax
				movl	(%esi,%eax,4), %eax
				movl	-564(%ebp), %edx
				imull	%edx, %eax
				movl	%eax, -612(%ebp)
				jmp	.L202
		.L274:
  354                   %FINISH
  355                   !!
  356                   %IF Q&BIT = WHX %START
				cmpl	$-2147483648, -572(%ebp)
				setne	%al
				movzbl	%al, %eax
				andl	-564(%ebp), %eax
				testl	%eax, %eax
				jne	.L276
				nop
		.L207:
  357                                         !*
  358                                         !* 'MY' PIECEON SQU X,Y
  359                                         !*
  360                      %IF QQ=6 %START;  ! 'MY' KING
				cmpl	$6, -608(%ebp)
				jne	.L277
				nop
				jmp	.L212
		.L278:
  361                         %IF SQ_ATT # 0 %START
				movl	-568(%ebp), %eax
				movl	4(%eax), %eax
				testl	%eax, %eax
				je	.L278
				nop
		.L212:
  362                            RESTORE BOARD(HOLD)
				subl	$12, %esp
				leal	-556(%ebp), %eax
				pushl	%eax
				movl	%esi, %ecx
				call	RESTOREBOARD.6146
				addl	$16, %esp
  363                            %RESULT = MAX SCORE
				movl	$-50000, %eax
				jmp	.L256
		.L209:
		.L277:
  364                         %FINISH
  365                                         ! ILLEGAL MOVE
  366                      %FINISH
  367                      %IF SQ_ATT > 0 %START;  ! MY PIECE UNDER ATTACK
				movl	-568(%ebp), %eax
				movl	4(%eax), %eax
				testl	%eax, %eax
				jle	.L279
				nop
				jmp	.L230
		.L280:
  368                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				movl	-568(%ebp), %eax
				movl	8(%eax), %edx
				movl	-568(%ebp), %eax
				movl	4(%eax), %eax
				subl	$4, %esp
				pushl	%edx
				pushl	%eax
				pushl	-608(%ebp)
				movl	%esi, %ecx
				call	EXVAL.6253
				addl	$16, %esp
				movl	%eax, -560(%ebp)
  369                         %IF GAIN > 0 %START
				cmpl	$0, -560(%ebp)
				jle	.L280
				nop
				jmp	.L230
		.L281:
  370                            GAIN = GAIN+P
				movl	-612(%ebp), %eax
				addl	%eax, -560(%ebp)
  371                            SCOREA = SCOREA-(GAIN*W2)//10
				movl	-560(%ebp), %eax
				imull	-600(%ebp), %eax
				movl	%eax, %ecx
				movl	$1717986919, %edx
				movl	%ecx, %eax
				imull	%edx
				movl	%edx, %eax
				sarl	$2, %eax
				sarl	$31, %ecx
				movl	%ecx, %edx
				subl	%eax, %edx
				movl	SCOREA.6116@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				movl	%eax, SCOREA.6116@GOTOFF(%ebx)
  372                            %IF GAIN > BAD %THEN BAD = GAIN
				movl	-560(%ebp), %eax
				cmpl	-580(%ebp), %eax
				jle	.L281
				movl	-560(%ebp), %eax
				movl	%eax, -580(%ebp)
				nop
		.L218:
				jmp	.L230
		.L276:
  373                                         ! PROBLEMS WITH POSITIONAL VALUE
  374                        %FINISH
  375                      %FINISH
  376                      !!
  377                                         ! PIECE EFFECTIVELY LOST
  378                   %FINISHELSESTART
				jmp	.L230
		.L214:
		.L217:
		.L279:
  379                                         !*
  380                                         !* OPP PIECE (SEE WHICH) ON X,Y
  381                                         !*
  382                      %IF SQ_ATT # 0 %START
				movl	-568(%ebp), %eax
				movl	4(%eax), %eax
				testl	%eax, %eax
				je	.L282
				nop
				jmp	.L230
		.L286:
  383                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				movl	-568(%ebp), %eax
				movl	8(%eax), %edx
				movl	-568(%ebp), %eax
				movl	4(%eax), %eax
				subl	$4, %esp
				pushl	%edx
				pushl	%eax
				pushl	-608(%ebp)
				movl	%esi, %ecx
				call	EXVAL.6253
				addl	$16, %esp
				movl	%eax, -560(%ebp)
  384                         %IF GAIN > 0 %START
				cmpl	$0, -560(%ebp)
				jle	.L283
				nop
				jmp	.L227
		.L285:
				nop
		.L227:
  385                         %IF GAIN >NPH %START
				movl	-560(%ebp), %eax
				cmpl	-588(%ebp), %eax
				jle	.L284
				nop
		.L224:
  386                            NPH2 = NPH; NPH = GAIN
				movl	-588(%ebp), %eax
				movl	%eax, -584(%ebp)
				movl	-560(%ebp), %eax
				movl	%eax, -588(%ebp)
  387                         %FINISHELSESTART
				jmp	.L227
		.L284:
  388                            %IF GAIN > NPH2 %THEN NPH2 = GAIN
				movl	-560(%ebp), %eax
				cmpl	-584(%ebp), %eax
				jle	.L285
				movl	-560(%ebp), %eax
				movl	%eax, -584(%ebp)
				jmp	.L227
		.L222:
		.L226:
		.L283:
  389                         %FINISH
  390                        %FINISH
  391                         %IF QQ = 6 %START
				cmpl	$6, -608(%ebp)
				jne	.L286
				nop
		.L230:
  392                             L_CHK = Q
				movl	-636(%ebp), %eax
				movl	-564(%ebp), %edx
				movl	%edx, 12(%eax)
				jmp	.L230
		.L219:
		.L229:
		.L282:
  393                         %FINISH
  394                      %FINISH
  395                   %FINISH
  396                   SCOREB = SCOREB+P+VAL(Q)
				movl	-616(%ebp), %edx
				movl	-612(%ebp), %eax
				addl	%eax, %edx
				movl	-564(%ebp), %eax
				addl	$6, %eax
				addl	$292, %eax
				movl	8(%esi,%eax,4), %eax
				addl	%edx, %eax
				movl	%eax, -616(%ebp)
				jmp	.L193
		.L272:
  397                %FINISH
  398             %REPEAT
				jmp	.L193
		.L271:
  399          %REPEAT
				jmp	.L190
		.L270:
  400          LOSS = 0
				movl	$0, -592(%ebp)
  401          %IF BAD > 0 %START;         ! PLAYER ABOUT TO LOSE
				cmpl	$0, -580(%ebp)
				jle	.L287
				nop
		.L232:
  402             %IF ((BAD > 300 %AND NPH > 400) %OR NPH>400)  %C
				cmpl	$300, -580(%ebp)
				jle	.L288
				cmpl	$400, -588(%ebp)
				jg	.L289
				jmp	.L234
		.L288:
				nop
		.L234:
				cmpl	$400, -588(%ebp)
				jle	.L290
				jmp	.L235
		.L289:
				nop
		.L235:
				cmpl	$499, -580(%ebp)
				jg	.L291
				subl	$12, %esp
				pushl	8(%ebp)
				movl	%esi, %ecx
				call	TRYANOTHERPLY.6287
				addl	$16, %esp
				movl	%eax, -576(%ebp)
				jmp	.L236
		.L290:
				nop
				jmp	.L236
		.L291:
				nop
		.L236:
  403               %AND BAD < 500 %THEN SCOREC = TRY ANOTHER PLY(WHICH)
  404             NPH = NPH//3
				movl	-588(%ebp), %ecx
				movl	$1431655766, %edx
				movl	%ecx, %eax
				imull	%edx
				movl	%ecx, %eax
				sarl	$31, %eax
				subl	%eax, %edx
				movl	%edx, %eax
				movl	%eax, -588(%ebp)
  405             LOSS = BAD
				movl	-580(%ebp), %eax
				movl	%eax, -592(%ebp)
  406             %IF NPH > BAD %THEN LOSS = NPH2//3 %ELSE %C
				movl	-588(%ebp), %eax
				cmpl	-580(%ebp), %eax
				jle	.L292
				movl	-584(%ebp), %ecx
				movl	$1431655766, %edx
				movl	%ecx, %eax
				imull	%edx
				movl	%ecx, %eax
				sarl	$31, %eax
				subl	%eax, %edx
				movl	%edx, %eax
				movl	%eax, -592(%ebp)
				nop
		.L240:
				nop
		.L239:
				movl	-588(%ebp), %eax
				subl	%eax, -592(%ebp)
				jmp	.L241
		.L287:
  407               LOSS = LOSS-NPH
  408          %FINISHELSESTART
				jmp	.L241
		.L292:
  409             %IF NPH2 # 0 %THEN LOSS = -NPH2
				cmpl	$0, -584(%ebp)
				je	.L293
				movl	-584(%ebp), %eax
				negl	%eax
				movl	%eax, -592(%ebp)
				jmp	.L243
		.L293:
				nop
		.L243:
  410             LOSS = LOSS-NPH//6
				movl	-588(%ebp), %ecx
				movl	$715827883, %edx
				movl	%ecx, %eax
				imull	%edx
				movl	%ecx, %eax
				sarl	$31, %eax
				subl	%edx, %eax
				addl	%eax, -592(%ebp)
		.L241:
  411          %FINISH
  412          SCOREB = SCOREB+KCAS(-1)+KCAS(1)
				movl	KCAS.6104@GOTOFF(%ebx), %edx
				movl	-616(%ebp), %eax
				addl	%eax, %edx
				movl	8+KCAS.6104@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				movl	%eax, -616(%ebp)
  413          %CYCLE I = 1, 1, 12;            ! CHECK B&N POS
				movl	$0, -624(%ebp)
		.L244:
				cmpl	$12, -624(%ebp)
				je	.L294
				addl	$1, -624(%ebp)
				nop
		.L246:
  414             SCOREB = SCOREB+POSPP(I) %IF POSP(I) # PT(POSX(I))_P
				movl	-624(%ebp), %eax
				subl	$1, %eax
				addl	$84, %eax
				movl	(%esi,%eax,4), %edx
				movl	-624(%ebp), %eax
				subl	$1, %eax
				movzbl	1244(%esi,%eax), %eax
				movzbl	%al, %eax
				subl	$1, %eax
				addl	$20, %eax
				movl	(%esi,%eax,4), %eax
				movl	(%eax), %eax
				cmpl	%eax, %edx
				je	.L295
				movl	-624(%ebp), %eax
				subl	$1, %eax
				addl	$8, %eax
				movl	(%esi,%eax,4), %eax
				addl	%eax, -616(%ebp)
				jmp	.L244
		.L295:
				nop
		.L248:
  415          %REPEAT
				jmp	.L244
		.L294:
  416                %IF L_CHK # 0 %START
				movl	-636(%ebp), %eax
				movl	12(%eax), %eax
				testl	%eax, %eax
				je	.L296
				nop
				jmp	.L252
		.L297:
				nop
		.L252:
  417                   SCOREC = TRY ANOTHER PLY(WHICH) %UNLESS SCOREC#0
				cmpl	$0, -576(%ebp)
				jne	.L297
				subl	$12, %esp
				pushl	8(%ebp)
				movl	%esi, %ecx
				call	TRYANOTHERPLY.6287
				addl	$16, %esp
				movl	%eax, -576(%ebp)
				jmp	.L252
		.L250:
		.L296:
  418                %FINISH
  419          RESTORE BOARD(HOLD);           ! UNDO THE MOVE
				subl	$12, %esp
				leal	-556(%ebp), %eax
				pushl	%eax
				movl	%esi, %ecx
				call	RESTOREBOARD.6146
				addl	$16, %esp
  420          %IF MON&64 # 0 %START
  421             SELECT OUTPUT(2)
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.LBB358:
  422             PRINTSTRING("SCORE:")
				leal	-284(%ebp), %eax
				leal	.LC18@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE358:
		.LBB359:
		.LBB360:
				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
		.LBE360:
		.LBE359:
  423             WRITE(SCOREA, 1); WRITE(SCOREB, 1); WRITE(SCOREC, 1)
				movl	SCOREA.6116@GOTOFF(%ebx), %eax
				subl	$8, %esp
				pushl	$1
				pushl	%eax
				call	_imp_writeint@PLT
				addl	$16, %esp
				subl	$8, %esp
				pushl	$1
				pushl	-616(%ebp)
				call	_imp_writeint@PLT
				addl	$16, %esp
				subl	$8, %esp
				pushl	$1
				pushl	-576(%ebp)
				call	_imp_writeint@PLT
				addl	$16, %esp
  424             WRITE(BAD, 1); WRITE(NPH, 1); WRITE(NPH2, 1)
				subl	$8, %esp
				pushl	$1
				pushl	-580(%ebp)
				call	_imp_writeint@PLT
				addl	$16, %esp
				subl	$8, %esp
				pushl	$1
				pushl	-588(%ebp)
				call	_imp_writeint@PLT
				addl	$16, %esp
				subl	$8, %esp
				pushl	$1
				pushl	-584(%ebp)
				call	_imp_writeint@PLT
				addl	$16, %esp
  425             WRITE(LOSS, 1); NEWLINE
				subl	$8, %esp
				pushl	$1
				pushl	-592(%ebp)
				call	_imp_writeint@PLT
				addl	$16, %esp
		.LBB361:
		.LBB362:
				call	_imp_newline@PLT
		.LBE362:
		.LBE361:
  426             SELECT OUTPUT(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.L253:
  427          %FINISH
  428          %RESULT = SCOREC %IF SCOREC # 0
				cmpl	$0, -576(%ebp)
				je	.L298
				movl	-576(%ebp), %eax
				jmp	.L256
		.L298:
				nop
		.L255:
  429          %RESULT = SCOREB+SCOREA-LOSS*WHICH
				movl	SCOREA.6116@GOTOFF(%ebx), %edx
				movl	-616(%ebp), %eax
				addl	%eax, %edx
				movl	-592(%ebp), %eax
				imull	8(%ebp), %eax
				subl	%eax, %edx
				movl	%edx, %eax
		.L256:
  430       %END
				movl	-28(%ebp), %edi
				xorl	%gs:20, %edi
				je	.L257
				call	__stack_chk_fail_local
		.L257:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE196:
				.section	.rodata
				.align 32
		.LC16:
				.byte	21
				.string	"OUT OF FREE CELLS!!!\n"
				.zero	233
				.align 32
		.LC17:
				.byte	3
				.string	"---"
				.zero	251
		DOM.6403:
		.LFB198:
?LIST2 unused
  431       !!
  432       %INTEGERFN MOVES(%INTEGER WHICH, SCRQ)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1004, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %esi
				movl	12(%ebp), %edx
				movl	%ecx, %edi
				movl	%edi, -1012(%ebp)
				movl	%ecx, -1004(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				leal	8(%ebp), %eax
				movl	%eax, -868(%ebp)
				movl	%esi, -904(%ebp)
				movl	%edx, -872(%ebp)
				movl	%edi, -892(%ebp)
  433          %INTEGER X, Y, Q, QQ, WHICHX, A, B, K, I, TYPE, W2, DIAG
  434          %INTEGER SPEC, PIN FLAG, PIN PIECE, POX, POY, SQU, IMODK
  435          %RECORD(ROWF)%NAME ROW
  436          %RECORD(LISTF)%NAME LIST
  437          %OWNINTEGERARRAY KCASCH( -1:1) = 1, 0, 8
				leal	-864(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	KCASCH.6389@GOTOFF(%ebx), %eax
				movl	%eax, -864(%ebp)
				movl	$4, -860(%ebp)
  438          %SWITCH MOVE(1:6)
  439          !!
  440          %INTEGER %FN DOM(%INTEGER X0, Y0)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$620, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -624(%ebp)
				movl	%ecx, -620(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB363:
  441             %RECORD(SQF)%NAME SQ
  442             %INTEGER I, J, K
  443             %RECORD(LISTF)%NAME LIST2
  444             %RECORD(LISTF)%NAME N
  445             !!
  446             !*
  447             !* SCRQ =  0  STANDARD ENTRY FOR ONE PLY
  448             !*        +1  ENTRY FROM SCORE
  449             !*        +2
  450             !*        +3  PINNED PIECE ENTRY
  451             !*
  452             %UNLESS 1 <= X0 <=8 %AND 1 <=Y0<=8 %THEN %RESULT = 0
				movl	8(%ebp), %eax
				movl	%eax, -600(%ebp)
				cmpl	$0, -600(%ebp)
				jle	.L390
				cmpl	$8, -600(%ebp)
				jg	.L391
		.LBE363:
		.LBB364:
				movl	12(%ebp), %eax
				movl	%eax, -596(%ebp)
				cmpl	$0, -596(%ebp)
				jle	.L392
				cmpl	$8, -596(%ebp)
				jle	.L393
		.LBE364:
				jmp	.L301
		.L390:
		.LBB365:
				nop
				jmp	.L301
		.L391:
				nop
				jmp	.L301
		.L392:
		.LBE365:
		.LBB366:
				nop
		.L301:
		.LBE366:
				movl	$0, %eax
				jmp	.L305
		.L393:
		.LBB367:
				nop
		.L304:
		.LBE367:
  453             SQ == BRD(Y0)_R(X0)
				movl	12(%ebp), %eax
				leal	-1(%eax), %edx
				movl	8(%ebp), %eax
				subl	$1, %eax
				sall	$3, %edx
				addl	%edx, %eax
				sall	$4, %eax
				movl	%eax, %edx
				leal	BRD.6038@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				movl	%eax, -608(%ebp)
  454            K = SQ_P
				movl	-608(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -604(%ebp)
  455             %IF SCRQ <= 0 %START
				movl	-624(%ebp), %eax
				movl	72(%eax), %eax
				testl	%eax, %eax
				jg	.L394
				nop
		.L307:
  456                %IF K#0 %AND K&BIT = Q&BIT %THEN %C
				cmpl	$0, -604(%ebp)
				je	.L395
				movl	$0, %eax
				jmp	.L305
		.L395:
				nop
		.L309:
  457                 %RESULT = 0
  458                %IF QQ=PAWN %START
				movl	-624(%ebp), %eax
				movl	68(%eax), %eax
				cmpl	$1, %eax
				jne	.L396
				nop
				jmp	.L319
		.L402:
				nop
		.L319:
  459                   %IF (TYPE=0 %AND K#0) %OR %C
				movl	-624(%ebp), %eax
				movl	64(%eax), %eax
				testl	%eax, %eax
				jne	.L397
				cmpl	$0, -604(%ebp)
				jne	.L398
				jmp	.L313
		.L397:
				nop
		.L313:
				movl	-624(%ebp), %eax
				movl	64(%eax), %eax
				cmpl	$1, %eax
				jne	.L399
				cmpl	$0, -604(%ebp)
				jne	.L400
				jmp	.L314
		.L398:
				nop
		.L314:
				movl	$0, %eax
				jmp	.L305
		.L399:
				nop
				jmp	.L316
		.L400:
				nop
		.L316:
  460                      (TYPE=1 %AND K=0) %THEN %RESULT = 0
  461                     %IF Y0=1 %OR Y0=8 %THEN SPEC=5*Q; ! QUEEN
				cmpl	$1, 12(%ebp)
				je	.L401
				cmpl	$8, 12(%ebp)
				jne	.L402
				jmp	.L318
		.L401:
				nop
		.L318:
				movl	-624(%ebp), %ecx
				movl	60(%ecx), %edx
				movl	%edx, %eax
				sall	$2, %eax
				addl	%edx, %eax
				movl	%eax, 56(%ecx)
				jmp	.L319
		.L311:
		.L396:
  462                %FINISH
  463                SPEC = 0
				movl	$0, %eax
				movl	-624(%ebp), %esi
				movl	%eax, 56(%esi)
  464                N == FREE LIST;  FREE LIST == RECORD(ADDR(N_L))
				movl	52(%esi), %eax
				movl	1240(%eax), %eax
				movl	%eax, -592(%ebp)
				movl	-592(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -572(%ebp)
		.LBB368:
		.LBB369:
				movl	-572(%ebp), %edx
		.LBE369:
		.LBE368:
				movl	52(%esi), %eax
				movl	%edx, -576(%ebp)
		.LBB370:
		.LBB371:
				movl	-576(%ebp), %edx
		.LBE371:
		.LBE370:
				movl	%edx, 1240(%eax)
  465                %IF ADDR(FREE LIST) = 0 %START
				movl	52(%esi), %eax
				movl	1240(%eax), %eax
				movl	%eax, -580(%ebp)
		.LBB372:
		.LBB373:
				movl	-580(%ebp), %eax
		.LBE373:
		.LBE372:
				testl	%eax, %eax
				jne	.L403
		.LBB374:
				nop
		.L324:
  466                   PRINTSTRING("OUT OF FREE CELLS!!!
				leal	-284(%ebp), %eax
				leal	.LC16@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE374:
		.LBB375:
		.LBB376:
				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
				movl	$0, -568(%ebp)
		.LBE376:
		.LBE375:
		.LBB377:
		.LBB378:
				subl	$12, %esp
				pushl	-568(%ebp)
				call	exit@PLT
		.L403:
		.LBE378:
		.LBE377:
  467 ")
  468                   %STOP
  469                %FINISH
  470                N_FR = X<<4+Y
				movl	-624(%ebp), %edi
				movl	48(%edi), %eax
				sall	$4, %eax
				movl	%eax, %edx
				movl	44(%edi), %eax
				addl	%eax, %edx
				movl	-592(%ebp), %eax
				movb	%dl, 4(%eax)
  471                N_TO = X0<<4+Y0
				movl	8(%ebp), %eax
				sall	$4, %eax
				movl	%eax, %edx
				movl	12(%ebp), %eax
				addl	%eax, %edx
				movl	-592(%ebp), %eax
				movb	%dl, 5(%eax)
  472                N_SPEC = SPEC
				movl	56(%edi), %edx
				movl	-592(%ebp), %eax
				movl	%edx, 8(%eax)
		.LBB379:
  473                %IF 6 <= TYPE <= 7 %START
				movl	64(%edi), %eax
				movl	%eax, -588(%ebp)
				cmpl	$5, -588(%ebp)
				jle	.L404
				cmpl	$7, -588(%ebp)
				jg	.L405
		.LBE379:
				nop
				jmp	.L326
		.L405:
				nop
		.L326:
		.LBE380:
  474                   N_SPEC = TYPE
				movl	-624(%ebp), %eax
				movl	64(%eax), %edx
				movl	-592(%ebp), %eax
				movl	%edx, 8(%eax)
  475                   N_TO = N_FR
				movl	-592(%ebp), %eax
				movzbl	4(%eax), %edx
				movl	-592(%ebp), %eax
				movb	%dl, 5(%eax)
				jmp	.L326
		.L404:
		.LBB380:
  476                %FINISH
  477                N_SCORE = SCORE(WHICH, N)
				movl	-624(%ebp), %esi
				movl	40(%esi), %edx
				movl	52(%esi), %eax
				subl	$8, %esp
				pushl	-592(%ebp)
				pushl	%edx
				movl	%eax, %ecx
				call	SCORE.6136
				addl	$16, %esp
				movl	%eax, %edx
				movl	-592(%ebp), %eax
				movl	%edx, 4(%eax)
  478                !!
  479                %IF TYPE = 6 %START;    ! ILLEGAL CASTLE CHECK
				movl	64(%esi), %eax
				cmpl	$6, %eax
				jne	.L406
				nop
				jmp	.L331
		.L407:
				nop
		.L331:
  480                   %IF ROW_R(6)_ATT # 0 %THEN N_SCORE = MAX SCORE
				movl	-624(%ebp), %eax
				movl	36(%eax), %eax
				movl	84(%eax), %eax
				testl	%eax, %eax
				je	.L407
				movl	-592(%ebp), %eax
				movl	$-50000, 4(%eax)
				jmp	.L331
		.L329:
		.L406:
  481                %FINISH
  482                %IF TYPE = 7 %START;     ! DITTO
				movl	-624(%ebp), %eax
				movl	64(%eax), %eax
				cmpl	$7, %eax
				jne	.L408
				nop
				jmp	.L335
		.L409:
				nop
		.L335:
  483                   %IF ROW_R(4)_ATT # 0 %THEN N_SCORE = MAX SCORE
				movl	-624(%ebp), %eax
				movl	36(%eax), %eax
				movl	52(%eax), %eax
				testl	%eax, %eax
				je	.L409
				movl	-592(%ebp), %eax
				movl	$-50000, 4(%eax)
				jmp	.L335
		.L333:
		.L408:
  484                %FINISH
  485                !!
  486 !!
  487                %IF N_SCORE = MAX SCORE %START;  ! WAS ILLEGAL
				movl	-592(%ebp), %eax
				movl	4(%eax), %eax
				cmpl	$-50000, %eax
				jne	.L410
				nop
  488                   N_L == FREE LIST;     ! RE-LINK IT
				movl	-624(%ebp), %ebx
				movl	52(%ebx), %eax
				movl	1240(%eax), %edx
				movl	-592(%ebp), %eax
				movl	%edx, (%eax)
				movl	-592(%ebp), %eax
				movl	%eax, -560(%ebp)
		.LBB381:
		.LBB382:
				movl	-560(%ebp), %edx
		.LBE382:
		.LBE381:
  489                   FREE LIST == RECORD(ADDR(N))
				movl	52(%ebx), %eax
				movl	%edx, -564(%ebp)
		.LBB383:
		.LBB384:
				movl	-564(%ebp), %edx
		.LBE384:
		.LBE383:
				movl	%edx, 1240(%eax)
  490                   %IF K#0 %THEN %RESULT = 0; ! PIECE IN WAY, NO FURTHER
				cmpl	$0, -604(%ebp)
				je	.L411
				movl	$0, %eax
				jmp	.L305
		.L411:
				nop
		.L341:
  491                   %RESULT= 1;       ! MUST TRAVERSE ENTIRE B,R OR Q PATH
				movl	$1, %eax
				jmp	.L305
		.L337:
		.L410:
  492                %FINISH
  493                !!
  494                !!
  495                %IF MON&2=2 %START
  496                   SELECT OUTPUT(2)
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				movl	$20, -556(%ebp)
		.LBB385:
		.LBB386:
				subl	$12, %esp
				pushl	-556(%ebp)
				call	_imp_spaces@PLT
				addl	$16, %esp
		.LBE386:
		.LBE385:
  497                   SPACES(20)
  498                   WRITE(XDEPTH, 5)
				movl	XDEPTH.6117@GOTOFF(%ebx), %eax
				subl	$8, %esp
				pushl	$5
				pushl	%eax
				call	_imp_writeint@PLT
				addl	$16, %esp
		.LBB387:
  499                   PRINTSTRING("---")
				leal	-284(%ebp), %eax
				leal	.LC17@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE387:
		.LBB388:
		.LBB389:
				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
		.LBE389:
		.LBE388:
  500                   PRINTMOVE(N)
				movl	-624(%ebp), %edi
				movl	52(%edi), %eax
				subl	$12, %esp
				pushl	-592(%ebp)
				movl	%eax, %ecx
				call	PRINTMOVE.6156
				addl	$16, %esp
		.LBB390:
		.LBB391:
				call	_imp_newline@PLT
		.LBE391:
		.LBE390:
  501                   NEWLINE
  502                   SELECT OUTPUT(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
		.L342:
  503                %FINISH
  504                !!
  505                N_L == LIST;  LIST == RECORD(ADDR(N))
				movl	%edi, %ebx
				movl	32(%ebx), %edx
				movl	-592(%ebp), %eax
				movl	%edx, (%eax)
				movl	-592(%ebp), %eax
				movl	%eax, -548(%ebp)
		.LBB392:
		.LBB393:
				movl	-548(%ebp), %eax
				movl	%eax, -552(%ebp)
		.LBE393:
		.LBE392:
		.LBB394:
		.LBB395:
				movl	-552(%ebp), %eax
		.LBE395:
		.LBE394:
				movl	%edi, %ebx
				movl	%eax, 32(%ebx)
  506                %IF K=0 %THEN J=1 %ELSE J=0
				cmpl	$0, -604(%ebp)
				jne	.L412
				movl	$1, -612(%ebp)
				nop
		.L347:
				nop
		.L346:
				movl	$0, -612(%ebp)
				jmp	.L348
		.L394:
  507             %FINISHELSESTART
				jmp	.L348
		.L412:
  508                J = 2
				movl	$2, -612(%ebp)
  509                %IF K # 0 %START
				cmpl	$0, -604(%ebp)
				je	.L413
				nop
		.L377:
  510                   %IF QQ=PAWN %AND TYPE=0 %THEN %RESULT = 0
				movl	-624(%ebp), %eax
				movl	68(%eax), %eax
				cmpl	$1, %eax
				jne	.L414
				movl	-624(%ebp), %eax
				movl	64(%eax), %eax
				testl	%eax, %eax
				jne	.L415
				movl	$0, %eax
				jmp	.L305
		.L414:
				nop
				jmp	.L352
		.L415:
				nop
		.L352:
  511                   J = 0;            ! POSSIBLY NO FURTHER
				movl	$0, -612(%ebp)
				movl	-604(%ebp), %eax
				movl	%eax, -544(%ebp)
		.LBB396:
		.LBB397:
				movl	-544(%ebp), %eax
				cltd
				movl	%edx, %eax
				xorl	-544(%ebp), %eax
				subl	%edx, %eax
		.LBE397:
		.LBE396:
  512                   IMODK = IMOD(K)
				movl	-624(%ebp), %ecx
				movl	%eax, 28(%ecx)
  513                   %IF K&BIT = Q&BIT %START;  ! ITS A DEFENCE
  514                         %IF QQ = 5 %START;            ! Q 'BEHIND'
				movl	68(%ecx), %eax
				cmpl	$5, %eax
				jne	.L416
				nop
		.L356:
  515                            %IF (DIAG=1 %AND IMODK=3) %OR %C
				movl	-624(%ebp), %eax
				movl	24(%eax), %eax
				cmpl	$1, %eax
				jne	.L417
				movl	-624(%ebp), %eax
				movl	28(%eax), %eax
				cmpl	$3, %eax
				je	.L418
				jmp	.L358
		.L417:
				nop
		.L358:
				movl	-624(%ebp), %eax
				movl	24(%eax), %eax
				testl	%eax, %eax
				jne	.L419
				movl	-624(%ebp), %eax
				movl	28(%eax), %eax
				cmpl	$4, %eax
				jne	.L420
				jmp	.L359
		.L418:
				nop
		.L359:
				movl	$1, -612(%ebp)
				nop
				jmp	.L367
		.L420:
				nop
		.L361:
				jmp	.L367
		.L416:
  516                             (DIAG=0 %AND IMODK=4) %THEN J=1
  517                         %FINISHELSESTART
				jmp	.L367
		.L419:
  518                            %IF IMODK=5 %START
				movl	-624(%ebp), %eax
				movl	28(%eax), %eax
				cmpl	$5, %eax
				jne	.L421
		.LBB398:
				nop
				jmp	.L367
		.L422:
		.LBB399:
				nop
				jmp	.L367
		.L423:
				nop
		.L367:
		.LBE399:
  519                               %IF 3<=QQ<=4 %THEN J=1
				movl	-624(%ebp), %eax
				movl	68(%eax), %eax
				movl	%eax, -584(%ebp)
				cmpl	$2, -584(%ebp)
				jle	.L422
				cmpl	$4, -584(%ebp)
				jg	.L423
		.LBE398:
				movl	$1, -612(%ebp)
				jmp	.L367
		.L362:
		.L366:
		.L421:
  520                            %FINISH
  521                         %FINISH
  522                         ! IF A PIECE DOUBLES UP, THEN KEEP GOING
  523                      %IF SCRQ # 3 %START
				movl	-624(%ebp), %eax
				movl	72(%eax), %eax
				cmpl	$3, %eax
				je	.L424
				nop
		.L369:
  524                        %IF PINFLAG = 0 %THEN %C
				movl	-624(%ebp), %eax
				movl	20(%eax), %eax
				testl	%eax, %eax
				jne	.L425
				movl	-608(%ebp), %eax
				movl	8(%eax), %edx
				movl	-624(%ebp), %edi
				movl	68(%edi), %eax
				leal	-1(%eax), %ecx
				movl	52(%edi), %eax
				addl	$160, %ecx
				movl	(%eax,%ecx,4), %eax
				addl	%eax, %edx
				movl	-608(%ebp), %eax
				movl	%edx, 8(%eax)
				nop
		.L371:
				jmp	.L372
		.L424:
  525                           SQ_DEF = SQ_DEF+BIT VAL(QQ)
  526                     %FINISHELSESTART
				jmp	.L372
		.L425:
  527                        SQ_DEF = SQ_DEF-BIT VAL(QQ)
				movl	-608(%ebp), %eax
				movl	8(%eax), %edx
				movl	-624(%ebp), %esi
				movl	68(%esi), %eax
				leal	-1(%eax), %ecx
				movl	52(%esi), %eax
				addl	$160, %ecx
				movl	(%eax,%ecx,4), %eax
				subl	%eax, %edx
				movl	-608(%ebp), %eax
				movl	%edx, 8(%eax)
		.L372:
  528                     %FINISH
  529                   %FINISHELSESTART
				nop
				jmp	.L377
		.L350:
		.L373:
		.L374:
		.L375:
		.L376:
		.L413:
  530                      %IF SCRQ = 3 %START
  531                                         ! PIECE QQ IS ATTACKING K
  532                         %IF PIN REMOVE >= IMODK %THEN %C
  533                           SQ_ATT = SQ_ATT-BIT VAL(QQ)
  534                      %FINISHELSESTART
  535                         %IF PINFLAG=0 %START
  536                            SQ_ATT = SQ_ATT+BIT VAL(QQ)
  537                            PINFLAG=1; J=3
  538                            PINPIECE=IMODK; POX=X0; POY=Y0
  539                         %FINISHELSESTART
  540                            %IF IMODK>3 %AND IMODK>PIN PIECE %START
  541                               %IF PIN PT#0 %START
  542
  543                                  %CYCLE I = 1,1,PIN PT
  544                                     %IF PINX(I)=POX %AND PINY(I)=POY %C
  545                                        %THEN ->NO PIN
  546                                  %REPEAT
  547                               %FINISH
  548                               PIN PT = PIN PT+1
  549                               PINX(PINPT) = POX
  550                               PINY(PINPT) = POY
  551                               PINDX(PINPT) = SQU
  552                               PINPY(PINPT) = PIN PIECE
  553 NO PIN:
  554                            %FINISH
  555                         %FINISH
  556                      %FINISH
  557                   %FINISH
  558                %FINISH
  559                SCOREA = SCOREA+W2
				movl	SCOREA.6116@GOTOFF(%ebx), %eax
				movl	-624(%ebp), %ecx
				movl	(%ecx), %edx
				addl	%edx, %eax
				movl	%eax, SCOREA.6116@GOTOFF(%ebx)
		.L348:
  560             %FINISH
  561             %RESULT = J
				movl	-612(%ebp), %eax
		.L305:
  562          %END
				movl	-28(%ebp), %ebx
				xorl	%gs:20, %ebx
				je	.L378
				call	__stack_chk_fail_local
		.L378:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE198:
				.section	.rodata
		.LC26:
				.string	"test-in/chess9.imp"
				.align 4
		.LC27:
				.string	"->MOVE(%d) out of bounds at %s line %d"
		MOVES.6139:
		.LFB197:
?LIST2 unused
  563          !!
  564          DIAG = 0
				movl	$0, %eax
				movl	%eax, -920(%ebp)
				movl	$0, -952(%ebp)
		.LBB400:
		.LBB401:
				movl	-952(%ebp), %eax
		.LBE401:
		.LBE400:
  565          LIST == RECORD(0)
				movl	%eax, -912(%ebp)
  566          WHICHX = WHICH&BIT
				movl	-904(%ebp), %eax
				andl	$-2147483648, %eax
				movl	%eax, -980(%ebp)
  567          !!
  568          %IF SCRQ = 3 %START;           ! PIN ENTRY
				movl	-872(%ebp), %eax
				cmpl	$3, %eax
				jne	.L544
				nop
		.L429:
  569             X = PX; Y = PY
				movl	PX.6080@GOTOFF(%ebx), %eax
				movl	%eax, -896(%ebp)
				movl	PY.6081@GOTOFF(%ebx), %eax
				movl	%eax, -900(%ebp)
  570             SQU = (Y-1)*8+X
				movl	-900(%ebp), %eax
				subl	$1, %eax
				leal	0(,%eax,8), %edx
				movl	-896(%ebp), %eax
				addl	%edx, %eax
				movl	%eax, -940(%ebp)
  571             -> PIN ENTRY
				jmp	.L430
		.L544:
  572          %FINISH
  573
  574          !!
  575          SQU = 0
				movl	$0, %eax
				movl	%eax, -940(%ebp)
  576          %CYCLE Y = 1,1, 8
				movl	$0, %eax
				movl	%eax, -900(%ebp)
		.L431:
				movl	-900(%ebp), %eax
				cmpl	$8, %eax
				je	.L545
				movl	-900(%ebp), %eax
				addl	$1, %eax
				movl	%eax, -900(%ebp)
				nop
		.L433:
  577
  578             %CYCLE X = 1, 1, 8
				movl	$0, %eax
				movl	%eax, -896(%ebp)
		.L434:
				movl	-896(%ebp), %eax
				cmpl	$8, %eax
				je	.L546
				movl	-896(%ebp), %eax
				addl	$1, %eax
				movl	%eax, -896(%ebp)
				nop
		.L436:
  579                TYPE = -1
				movl	$-1, %eax
				movl	%eax, -880(%ebp)
  580                SQU = SQU+1
				movl	-940(%ebp), %eax
				addl	$1, %eax
				movl	%eax, -940(%ebp)
		.L430:
  581 PIN ENTRY:
  582                Q = PT(SQU)_P;           ! PICK UP PIECE(X,Y)
				movl	-940(%ebp), %eax
				subl	$1, %eax
				addl	$20, %eax
				movl	-1012(%ebp), %esi
				movl	(%esi,%eax,4), %eax
				movl	(%eax), %eax
				movl	%eax, -884(%ebp)
  583                %IF Q # 0 %AND (Q&BIT = WHICHX %OR %C
				movl	-884(%ebp), %eax
				testl	%eax, %eax
				je	.L547
				cmpl	$-2147483648, -980(%ebp)
				sete	%al
				movzbl	%al, %eax
				movl	-884(%ebp), %edx
				andl	%edx, %eax
				testl	%eax, %eax
				jne	.L548
				movl	-872(%ebp), %eax
				testl	%eax, %eax
				jle	.L549
				jmp	.L440
		.L548:
				nop
		.L440:
				nop
				jmp	.L510
		.L549:
				nop
				jmp	.L510
		.L560:
  584                  SCRQ > 0) %START
  585                   %IF Q<0 %THEN QQ=-Q %AND W2=-1 %ELSE %C
				movl	-884(%ebp), %eax
				testl	%eax, %eax
				jns	.L550
				movl	-884(%ebp), %eax
				negl	%eax
				movl	%eax, -876(%ebp)
				movl	$-1, %eax
				movl	%eax, -944(%ebp)
				jmp	.L443
		.L550:
				nop
		.L442:
				movl	-884(%ebp), %eax
				movl	%eax, -876(%ebp)
				movl	$1, %eax
				movl	%eax, -944(%ebp)
		.L443:
  586                     QQ = Q %AND W2 = +1
  587                   -> MOVE(QQ)
				movl	$587, -976(%ebp)
				leal	.LC26@GOTOFF(%ebx), %eax
				movl	%eax, -972(%ebp)
				movl	-876(%ebp), %eax
				movl	%eax, -968(%ebp)
				nop
		.L444:
  588
  589 MOVE(1):                                ! PAWN
  590                   TYPE = 0
				movl	$0, %eax
				movl	%eax, -880(%ebp)
  591                   PIN FLAG = 0
				movl	$0, %eax
				movl	%eax, -924(%ebp)
  592                   K = DOM(X, Y-W2)
				movl	-900(%ebp), %edx
				movl	-944(%ebp), %eax
				movl	%edx, %ecx
				subl	%eax, %ecx
				movl	-896(%ebp), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  593                   PIN FLAG = 0
				movl	$0, %eax
				movl	%eax, -924(%ebp)
  594                   K=DOM(X, Y-W2-W2) %IF (Y=2 %OR Y=7) %AND K#0
				movl	-900(%ebp), %eax
				cmpl	$2, %eax
				je	.L551
				movl	-900(%ebp), %eax
				cmpl	$7, %eax
				jne	.L552
				jmp	.L448
		.L551:
				nop
		.L448:
				cmpl	$0, -964(%ebp)
				je	.L553
				movl	-900(%ebp), %edx
				movl	-944(%ebp), %eax
				subl	%eax, %edx
				movl	-944(%ebp), %eax
				movl	%edx, %ecx
				subl	%eax, %ecx
				movl	-896(%ebp), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
				jmp	.L449
		.L552:
				nop
				jmp	.L449
		.L553:
				nop
		.L449:
  595                   TYPE = 1
				movl	$1, %eax
				movl	%eax, -880(%ebp)
  596                   PIN FLAG = 0
				movl	$0, %eax
				movl	%eax, -924(%ebp)
  597                   K = DOM(X-1, Y-W2); PIN FLAG = 0;  K=DOM(X+1, Y-W2)
				movl	-900(%ebp), %edx
				movl	-944(%ebp), %eax
				movl	%edx, %ecx
				subl	%eax, %ecx
				movl	-896(%ebp), %eax
				leal	-1(%eax), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
				movl	-900(%ebp), %edx
				movl	-944(%ebp), %eax
				movl	%edx, %ecx
				subl	%eax, %ecx
				movl	-896(%ebp), %eax
				leal	1(%eax), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  598                   ->OUT
				jmp	.L510
		.L451:
  599                   !!
  600 MOVE(2):                                ! KNIGHT
  601                   %CYCLE A = -2, 4, 2
				movl	$-6, -992(%ebp)
		.L452:
				cmpl	$2, -992(%ebp)
				je	.L554
				addl	$4, -992(%ebp)
				nop
		.L454:
  602                      %CYCLE B = -1, 2, 1
				movl	$-3, -988(%ebp)
		.L455:
				cmpl	$1, -988(%ebp)
				je	.L555
				addl	$2, -988(%ebp)
				nop
		.L457:
  603                            PIN FLAG = 0
				movl	$0, %eax
				movl	%eax, -924(%ebp)
  604                            K = DOM(X+A, Y+B)
				movl	-900(%ebp), %edx
				movl	-988(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-896(%ebp), %edx
				movl	-992(%ebp), %eax
				addl	%eax, %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  605                             PIN FLAG = 0
				movl	$0, %eax
				movl	%eax, -924(%ebp)
  606                            K = DOM(X+B, Y+A)
				movl	-900(%ebp), %edx
				movl	-992(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-896(%ebp), %edx
				movl	-988(%ebp), %eax
				addl	%eax, %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  607                      %REPEAT
				jmp	.L455
		.L555:
  608                   %REPEAT
				jmp	.L452
		.L554:
  609                   -> OUT
				jmp	.L510
		.L458:
		.L459:
  610                   !!!
  611 MOVE(3):                                ! BISHOP
  612 MOVE(5):                                ! QUEEN
  613                   DIAG = 1
				movl	$1, %eax
				movl	%eax, -920(%ebp)
  614                   I = 0;  PIN FLAG = 0
				movl	$0, -984(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
		.L460:
  615                   %CYCLE
  616                      I = I-1
				subl	$1, -984(%ebp)
  617                      K = DOM(X+I, Y+I)
				movl	-900(%ebp), %edx
				movl	-984(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-896(%ebp), %edx
				movl	-984(%ebp), %eax
				addl	%eax, %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  618                   %REPEAT %UNTIL K = 0
				cmpl	$0, -964(%ebp)
				je	.L556
				jmp	.L460
		.L556:
				nop
		.L462:
  619                   I = 0;  PIN FLAG = 0
				movl	$0, -984(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
		.L463:
  620                   %CYCLE
  621                      I = I-1
				subl	$1, -984(%ebp)
  622                      K = DOM(X-I, Y+I)
				movl	-900(%ebp), %edx
				movl	-984(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-896(%ebp), %eax
				subl	-984(%ebp), %eax
				movl	%eax, %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  623                   %REPEAT %UNTIL K = 0
				cmpl	$0, -964(%ebp)
				je	.L557
				jmp	.L463
		.L557:
				nop
		.L465:
  624                   I = 0;  PIN FLAG = 0
				movl	$0, -984(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
		.L466:
  625                   %CYCLE
  626                      I = I-1
				subl	$1, -984(%ebp)
  627                      K = DOM(X+I, Y-I)
				movl	-900(%ebp), %eax
				subl	-984(%ebp), %eax
				movl	%eax, %edx
				movl	-896(%ebp), %ecx
				movl	-984(%ebp), %eax
				addl	%eax, %ecx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%edx
				pushl	%ecx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  628                   %REPEAT %UNTIL K = 0
				cmpl	$0, -964(%ebp)
				je	.L558
				jmp	.L466
		.L558:
				nop
		.L468:
  629                   I = 0;  PIN FLAG = 0
				movl	$0, -984(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
		.L469:
  630                   %CYCLE
  631                      I = I-1
				subl	$1, -984(%ebp)
  632                      K = DOM(X-I, Y-I)
				movl	-900(%ebp), %eax
				subl	-984(%ebp), %eax
				movl	%eax, %ecx
				movl	-896(%ebp), %eax
				subl	-984(%ebp), %eax
				movl	%eax, %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  633                   %REPEAT %UNTIL K = 0
				cmpl	$0, -964(%ebp)
				je	.L559
				jmp	.L469
		.L559:
				nop
		.L471:
  634                   -> OUT %IF QQ # QUEEN;     ! THE BISHOP
				movl	-876(%ebp), %eax
				cmpl	$5, %eax
				jne	.L560
		.L473:
				nop
		.L474:
				nop
				jmp	.L510
		.L569:
  635
  636 MOVE(4):                                ! ROOK
  637                   DIAG = 0
				movl	$0, %eax
				movl	%eax, -920(%ebp)
  638                   K = 1;  I = 0;  PIN FLAG = 0
				movl	$1, -964(%ebp)
				movl	$0, -984(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
		.L475:
  639                   %CYCLE
  640                      I = I-1
				subl	$1, -984(%ebp)
  641                      K = DOM(X, Y+I)
				movl	-900(%ebp), %edx
				movl	-984(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-896(%ebp), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  642                   %REPEAT %UNTIL K = 0
				cmpl	$0, -964(%ebp)
				je	.L561
				jmp	.L475
		.L561:
				nop
		.L477:
  643                   I = 0;  PIN FLAG = 0
				movl	$0, -984(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
		.L478:
  644                   %CYCLE
  645                      I = I+1
				addl	$1, -984(%ebp)
  646                      K = DOM(X+I, Y)
				movl	-896(%ebp), %edx
				movl	-984(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-900(%ebp), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%edx
				pushl	%ecx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  647                   %REPEAT %UNTIL K = 0
				cmpl	$0, -964(%ebp)
				je	.L562
				jmp	.L478
		.L562:
				nop
		.L480:
  648                   I = 0;  PIN FLAG = 0
				movl	$0, -984(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
		.L481:
  649                   %CYCLE
  650                      I = I+1
				addl	$1, -984(%ebp)
  651                      K = DOM(X, Y+I)
				movl	-900(%ebp), %edx
				movl	-984(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-896(%ebp), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  652                   %REPEAT %UNTIL K = 0
				cmpl	$0, -964(%ebp)
				je	.L563
				jmp	.L481
		.L563:
				nop
		.L483:
  653                   I = 0;  PIN FLAG = 0
				movl	$0, -984(%ebp)
				movl	$0, %eax
				movl	%eax, -924(%ebp)
		.L484:
  654                   %CYCLE
  655                      I = I-1
				subl	$1, -984(%ebp)
  656                      K = DOM(X+I, Y)
				movl	-896(%ebp), %edx
				movl	-984(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-900(%ebp), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%edx
				pushl	%ecx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
  657                   %REPEAT %UNTIL K = 0
				cmpl	$0, -964(%ebp)
				je	.L564
				jmp	.L484
		.L564:
				nop
		.L486:
  658                   -> OUT
				jmp	.L510
		.L487:
  659
  660
  661                   !!
  662 MOVE(6):                                ! KING
  663                   ROW == BRD(Y)
				movl	-900(%ebp), %eax
				subl	$1, %eax
				sall	$7, %eax
				movl	%eax, %edx
				leal	BRD.6038@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				movl	%eax, -908(%ebp)
  664                   %CYCLE A = -1, 1, 1
				movl	$-2, -992(%ebp)
		.L488:
				cmpl	$1, -992(%ebp)
				je	.L565
				addl	$1, -992(%ebp)
				nop
		.L490:
  665                      %CYCLE B = -1, 1, 1
				movl	$-2, -988(%ebp)
		.L491:
				cmpl	$1, -988(%ebp)
				je	.L566
				addl	$1, -988(%ebp)
				nop
		.L493:
  666                         %IF A#0 %OR B#0 %START
				cmpl	$0, -992(%ebp)
				jne	.L567
				cmpl	$0, -988(%ebp)
				je	.L568
				jmp	.L495
		.L567:
				nop
		.L495:
				nop
		.L496:
  667                           PIN FLAG = 0
				movl	$0, %eax
				movl	%eax, -924(%ebp)
  668                           K = DOM(X+A, Y+B)
				movl	-900(%ebp), %edx
				movl	-988(%ebp), %eax
				leal	(%edx,%eax), %ecx
				movl	-896(%ebp), %edx
				movl	-992(%ebp), %eax
				addl	%eax, %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%ecx
				pushl	%edx
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
				jmp	.L491
		.L568:
  669                          ! %IF K#0 %AND W2#WHICH %THEN K MOB=K MOB+1
  670                         %FINISH
  671                      %REPEAT
				jmp	.L491
		.L566:
  672                   %REPEAT
				jmp	.L488
		.L565:
  673                   %IF LAST CHK # Q %AND %C
				movl	LASTCHK.6122@GOTOFF(%ebx), %eax
				movl	-884(%ebp), %edx
				cmpl	%eax, %edx
				je	.L569
				movl	-944(%ebp), %eax
				addl	$1, %eax
				movl	KCASCH.6389@GOTOFF(%ebx,%eax,4), %eax
				movl	-900(%ebp), %edx
				cmpl	%eax, %edx
				jne	.L570
				movl	-944(%ebp), %eax
				addl	$1, %eax
				movzbl	KMOVE.6102@GOTOFF(%ebx,%eax), %eax
				testb	%al, %al
				jne	.L571
		.LBB402:
				nop
				jmp	.L510
		.L570:
				nop
				jmp	.L510
		.L571:
				nop
				jmp	.L510
		.L575:
		.LBB405:
  674                     KCASCH(W2) = Y %AND KMOVE(W2)=0 %START
  675                                         ! CORRECT ROW AND ABLE TO CASTLE
  676                      %IF ROW_R(6)_P = 0 = ROW_R(7)_P %AND %C
				movl	-908(%ebp), %eax
				movl	80(%eax), %eax
				movl	$0, -960(%ebp)
				cmpl	%eax, -960(%ebp)
				jne	.L572
				movl	-908(%ebp), %eax
				movl	96(%eax), %eax
				cmpl	%eax, -960(%ebp)
				jne	.L573
		.LBE402:
				movl	-908(%ebp), %eax
				movl	112(%eax), %eax
				movl	-944(%ebp), %edx
				sall	$2, %edx
				cmpl	%edx, %eax
				jne	.L574
				nop
				jmp	.L501
		.L573:
				nop
				jmp	.L501
		.L574:
		.LBE403:
				nop
		.L501:
		.LBB404:
  677                        ROW_R(8)_P = ROOK*W2 %START
  678                         TYPE = 6; K = DOM(7, Y); ! DO CASTLE
				movl	$6, %eax
				movl	%eax, -880(%ebp)
				movl	-900(%ebp), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%edx
				pushl	$7
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
				jmp	.L501
		.L572:
		.LBB403:
  679                      %FINISH
  680                      %IF ROW_R(4)_P = 0 =ROW_R(3)_P %AND %C
				movl	-908(%ebp), %eax
				movl	48(%eax), %eax
				movl	$0, -956(%ebp)
				cmpl	%eax, -956(%ebp)
				jne	.L575
				movl	-908(%ebp), %eax
				movl	32(%eax), %eax
				cmpl	%eax, -956(%ebp)
				jne	.L576
		.LBE404:
				movl	-908(%ebp), %eax
				movl	16(%eax), %eax
				testl	%eax, %eax
				jne	.L577
				movl	-908(%ebp), %eax
				movl	(%eax), %eax
				movl	-944(%ebp), %edx
				sall	$2, %edx
				cmpl	%edx, %eax
				jne	.L578
				nop
				jmp	.L510
		.L576:
				nop
				jmp	.L510
		.L577:
		.LBE405:
				nop
				jmp	.L510
		.L578:
				nop
		.L510:
  681                        ROW_R(2)_P = 0 %AND ROW_R(1)_P = ROOK*W2 %C
  682                        %START
  683                         TYPE = 7; K = DOM(3, Y)
				movl	$7, %eax
				movl	%eax, -880(%ebp)
				movl	-900(%ebp), %edx
				subl	$8, %esp
				leal	-944(%ebp), %eax
				pushl	%edx
				pushl	$3
				movl	%eax, %ecx
				call	DOM.6403
				addl	$16, %esp
				movl	%eax, -964(%ebp)
				jmp	.L510
		.L438:
		.L508:
		.L509:
		.L547:
  684                      %FINISH
  685                   %FINISH
  686                   !!
  687 OUT:
  688                %FINISH
  689                %RESULT = 0 %IF SCRQ = 3
				movl	-872(%ebp), %eax
				cmpl	$3, %eax
				jne	.L579
				movl	$0, %eax
				jmp	.L524
		.L579:
				nop
		.L512:
  690             %REPEAT
				jmp	.L434
		.L546:
  691          %REPEAT
				jmp	.L431
		.L545:
  692          CHECK PINS(WHICH) %IF SCRQ > 0
				movl	-872(%ebp), %eax
				testl	%eax, %eax
				jle	.L580
				movl	-904(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				movl	-1012(%ebp), %ecx
				call	CHECKPINS.6270
				addl	$16, %esp
				jmp	.L515
		.L580:
				nop
		.L515:
  693                                         ! ONLY ON SCORE ENTRY
  694
  695          %RESULT = ADDR(LIST)
				movl	-912(%ebp), %eax
				movl	%eax, -948(%ebp)
		.LBB406:
		.LBB407:
				movl	-948(%ebp), %eax
		.LBE407:
		.LBE406:
				jmp	.L524
		.L530:
				cmpl	$6, -968(%ebp)
				jle	.L518
		.L517:
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L519
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -1008(%ebp)
				jmp	.L520
		.L519:
				movl	$696, -1008(%ebp)
		.L520:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L521
				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	.L522
		.L521:
		.LBB408:
				leal	-796(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE408:
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L522:
				pushl	-976(%ebp)
				pushl	-972(%ebp)
				pushl	-968(%ebp)
				leal	.LC27@GOTOFF(%ebx), %eax
				pushl	%eax
				pushl	-968(%ebp)
				pushl	$3
				pushl	$6
				pushl	-1008(%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
		.L518:
				movl	-968(%ebp), %eax
				subl	$1, %eax
				movl	MOVE.6394@GOTOFF(%ebx,%eax,4), %eax
				nop
				jmp	*%eax
		.L524:
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L525
				call	__stack_chk_fail_local
		.L525:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE197:
				.section	.rodata
		.LC28:
				.string	"Illegal cycle I = 1, 1, WIDTH"
		SORTANDPRUNE.6133:
		.LFB199:
  696       %END
				cmpl	$0, -968(%ebp)
				jle	.L517
				jmp	.L530
		.L445:
  697       !!
  698       %INTEGERFN SORT AND PRUNE(%RECORD(LISTF)%NAME LIST, %C
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$956, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -956(%ebp)
				movl	%ecx, -968(%ebp)
				movl	%ecx, -960(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
  699          %INTEGER WIDTH, WHICH)
  700
  701
  702          %INTEGER I, MAX
  703          %RECORD(LISTF)%NAME M1, M2, L, LN, RES
  704          %CONSTINTEGERARRAY MAXA(-1:1) = 25000, 0, -25000
				movl	$25000, -876(%ebp)
				movl	$0, -872(%ebp)
				movl	$-25000, -868(%ebp)
				leal	-864(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-876(%ebp), %eax
				movl	%eax, -864(%ebp)
				movl	$4, -860(%ebp)
				movl	-956(%ebp), %eax
				movl	%eax, -916(%ebp)
		.LBB409:
		.LBB410:
				movl	-916(%ebp), %eax
		.LBE410:
		.LBE409:
  705          !!
  706
  707          %RESULT = 0 %IF ADDR(LIST) = 0
				testl	%eax, %eax
				jne	.L627
				movl	$0, %eax
				jmp	.L621
		.L627:
				nop
		.L584:
				movl	$0, -912(%ebp)
		.LBB411:
		.LBB412:
				movl	-912(%ebp), %eax
		.LBE412:
		.LBE411:
  708
  709          RES == RECORD(0)
				movl	%eax, -928(%ebp)
		.LBB413:
  710          %CYCLE I = 1, 1, WIDTH
				movl	12(%ebp), %eax
				movl	%eax, -924(%ebp)
		.LBB414:
				movl	-924(%ebp), %eax
				subl	$1, %eax
				movl	%eax, -920(%ebp)
				movl	-920(%ebp), %eax
				xorl	$1, %eax
				shrl	$31, %eax
				movzbl	%al, %eax
		.LBE414:
				testl	%eax, %eax
				je	.L587
				leal	-540(%ebp), %eax
				subl	$8, %esp
				leal	.LC28@GOTOFF(%ebx), %edx
				pushl	%edx
				pushl	%eax
				call	_imp_c2istr@PLT
				addl	$12, %esp
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L588
				movl	_imp_current_line@GOT(%ebx), %eax
				movl	(%eax), %eax
				movl	%eax, -964(%ebp)
				jmp	.L589
		.L588:
				movl	$710, -964(%ebp)
		.L589:
				movl	_imp_current_file@GOT(%ebx), %eax
				movl	(%eax), %eax
				testl	%eax, %eax
				je	.L590
				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	.L591
		.L590:
		.LBB415:
				leal	-284(%ebp), %eax
				leal	.LC1@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-796(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE415:
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.L591:
				pushl	$0
				pushl	$1
				pushl	$5
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				pushl	-964(%ebp)
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_signal_event@PLT
				addl	$528, %esp
		.L587:
				movl	$0, -952(%ebp)
		.L592:
				movl	-952(%ebp), %eax
				cmpl	-924(%ebp), %eax
				je	.L628
				addl	$1, -952(%ebp)
				movl	$0, -904(%ebp)
		.LBB416:
		.LBB417:
				movl	-904(%ebp), %eax
		.LBE417:
		.LBE416:
				nop
				jmp	.L594
		.L629:
  711             M1 == RECORD(0)
				movl	%eax, -944(%ebp)
  712             M2 == M1; LN == M1
				movl	-944(%ebp), %eax
				movl	%eax, -940(%ebp)
				movl	-944(%ebp), %eax
				movl	%eax, -932(%ebp)
  713             MAX = MAXA(WHICH)
				movl	16(%ebp), %eax
				addl	$1, %eax
				movl	-876(%ebp,%eax,4), %eax
				movl	%eax, -948(%ebp)
  714
  715             L == LIST
				movl	-956(%ebp), %eax
				movl	%eax, -936(%ebp)
				movl	-936(%ebp), %eax
				movl	%eax, -908(%ebp)
		.LBB418:
		.LBB419:
				movl	-908(%ebp), %eax
		.LBE419:
		.LBE418:
  716             %%EXIT  %IF ADDR(L) = 0
				testl	%eax, %eax
				je	.L629
				nop
		.L598:
		.L599:
				movl	-936(%ebp), %eax
				movl	%eax, -900(%ebp)
		.LBB420:
		.LBB421:
				movl	-900(%ebp), %eax
		.LBE421:
		.LBE420:
				nop
		.L594:
				movl	-956(%ebp), %eax
				movl	%eax, -892(%ebp)
		.LBE413:
		.LBB424:
		.LBB425:
				movl	-892(%ebp), %eax
		.LBE425:
		.LBE424:
  717
  718             %WHILE ADDR(L) # 0 %CYCLE
				testl	%eax, %eax
				je	.L630
				nop
		.L602:
  719                %IF (WHICH<0 %AND L_SCORE<MAX) %OR %C
				cmpl	$0, 16(%ebp)
				jns	.L631
				movl	-936(%ebp), %eax
				movl	4(%eax), %eax
				cmpl	%eax, -948(%ebp)
				jg	.L632
				jmp	.L604
		.L631:
				nop
		.L604:
				cmpl	$0, 16(%ebp)
				jle	.L633
				movl	-936(%ebp), %eax
				movl	4(%eax), %eax
				cmpl	%eax, -948(%ebp)
				jge	.L634
				jmp	.L605
		.L632:
				nop
		.L605:
				nop
				jmp	.L607
		.L634:
				nop
		.L607:
  720                  (WHICH>0 %AND L_SCORE>MAX) %START
  721                   !!
  722                   M2 == L;  M1 == LN;  MAX = L_SCORE
				movl	-936(%ebp), %eax
				movl	%eax, -940(%ebp)
				movl	-932(%ebp), %eax
				movl	%eax, -944(%ebp)
				movl	-936(%ebp), %eax
				movl	4(%eax), %eax
				movl	%eax, -948(%ebp)
				jmp	.L607
		.L633:
  723                %FINISH
  724                !!
  725                LN == L;  L == L_L
				movl	-936(%ebp), %eax
				movl	%eax, -932(%ebp)
				movl	-936(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -936(%ebp)
  726             %REPEAT
				jmp	.L598
		.L630:
  727
  728             !!
  729             L == M2_L;                  ! PICKUP ITS POINTER
				movl	-940(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -936(%ebp)
  730             M2_L == RES
				movl	-940(%ebp), %eax
				movl	-928(%ebp), %edx
				movl	%edx, (%eax)
  731             RES == M2;                     ! NOTE LINKS BACKWARDS
				movl	-940(%ebp), %eax
				movl	%eax, -928(%ebp)
				movl	-944(%ebp), %eax
				movl	%eax, -896(%ebp)
		.LBB422:
		.LBB423:
				movl	-896(%ebp), %eax
		.LBE423:
		.LBE422:
  732             %IF ADDR(M1) = 0 %THEN LIST == L %ELSE %C
				testl	%eax, %eax
				jne	.L635
				movl	-936(%ebp), %eax
				movl	%eax, -956(%ebp)
				jmp	.L611
		.L635:
				nop
		.L610:
				movl	-944(%ebp), %eax
				movl	-936(%ebp), %edx
				movl	%edx, (%eax)
		.L611:
  733               M1_L == L
  734          %REPEAT
				jmp	.L592
		.L628:
  735
  736          %IF ADDR(LIST) # 0 %THEN RELEASE CHAIN(LIST)
				testl	%eax, %eax
				je	.L636
				subl	$12, %esp
				pushl	-956(%ebp)
				movl	-968(%ebp), %ecx
				call	RELEASECHAIN.6196
				addl	$16, %esp
				jmp	.L614
		.L636:
				nop
		.L614:
				movl	$0, -888(%ebp)
		.LBB426:
		.LBB427:
				movl	-888(%ebp), %eax
		.LBE427:
		.LBE426:
  737          L == RECORD (0)
				movl	%eax, -936(%ebp)
		.L616:
				movl	-928(%ebp), %eax
				movl	%eax, -884(%ebp)
		.LBB428:
		.LBB429:
				movl	-884(%ebp), %eax
		.LBE429:
		.LBE428:
  738          %WHILE ADDR(RES) # 0 %CYCLE
				testl	%eax, %eax
				je	.L637
				nop
		.L619:
				movl	-936(%ebp), %eax
				movl	%eax, -880(%ebp)
		.LBB430:
		.LBB431:
				movl	-880(%ebp), %eax
		.L621:
		.LBE431:
		.LBE430:
  739             M1 == RES_L;                ! NEXT LINK
				movl	-928(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -944(%ebp)
  740             RES_L == L;                 ! LINK TO NEXT
				movl	-928(%ebp), %eax
				movl	-936(%ebp), %edx
				movl	%edx, (%eax)
  741             L == RES
				movl	-928(%ebp), %eax
				movl	%eax, -936(%ebp)
  742             RES == M1
				movl	-944(%ebp), %eax
				movl	%eax, -928(%ebp)
  743          %REPEAT
				jmp	.L616
		.L637:
  744          %RESULT = ADDR(L)
  745       %END
				movl	-28(%ebp), %esi
				xorl	%gs:20, %esi
				je	.L622
				call	__stack_chk_fail_local
		.L622:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE199:
		CHANGEBOARD.6144:
		.LFB200:
  746       !!
  747       %INTEGERFN CHANGE BOARD(%RECORD(LISTF{QHF})%NAME B)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$52, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, -52(%ebp)
  748
  749          %RECORD(SQF)%NAME SQ
  750          %RECORD(ROWF)%NAME ROW
  751          %RECORD(LISTF)%NAME LIST
  752          %INTEGER FROM, TO, X, Y, X0, Y0, KING, CAS, ROOK
  753          LIST == B_L
				movl	8(%ebp), %edx
				movl	(%edx), %edx
				movl	%edx, -36(%ebp)
  754          FROM = LIST_FR;  TO = LIST_TO
				movl	-36(%ebp), %edx
				movzbl	4(%edx), %edx
				movzbl	%dl, %edx
				movl	%edx, -32(%ebp)
				movl	-36(%ebp), %edx
				movzbl	5(%edx), %edx
				movzbl	%dl, %edx
				movl	%edx, -28(%ebp)
  755          X = FROM>>4;  X0 = TO>>4
				movl	-32(%ebp), %edx
				shrl	$4, %edx
				movl	%edx, -24(%ebp)
				movl	-28(%ebp), %edx
				shrl	$4, %edx
				movl	%edx, -20(%ebp)
  756          Y = FROM&15; Y0 = TO&15
				movl	-32(%ebp), %edx
				andl	$15, %edx
				movl	%edx, -16(%ebp)
				movl	-28(%ebp), %edx
				andl	$15, %edx
				movl	%edx, -12(%ebp)
  757          SQ == BRD(Y0)_R(X0)
				movl	-12(%ebp), %edx
				leal	-1(%edx), %ecx
				movl	-20(%ebp), %edx
				subl	$1, %edx
				sall	$3, %ecx
				addl	%ecx, %edx
				movl	%edx, %ecx
				sall	$4, %ecx
				leal	BRD.6038@GOTOFF(%eax), %edx
				addl	%ecx, %edx
				movl	%edx, -8(%ebp)
  758          B_HOLD = SQ_P
				movl	-8(%ebp), %edx
				movl	(%edx), %ecx
				movl	8(%ebp), %edx
				movl	%ecx, (%edx)
  759          %IF LIST_SPEC # 0 %START
				movl	-36(%ebp), %edx
				movl	8(%edx), %edx
				testl	%edx, %edx
				je	.L655
				nop
		.L640:
  760             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				movl	-36(%ebp), %edx
				movl	8(%edx), %edx
				cmpl	$5, %edx
				jle	.L656
				nop
		.L642:
  761                %IF SQ_P<0 %START
				movl	-8(%ebp), %edx
				movl	(%edx), %edx
				testl	%edx, %edx
				jns	.L657
				nop
		.L644:
  762                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = -30
				movl	$1, -44(%ebp)
				movl	$-6, -48(%ebp)
				movl	$-4, -40(%ebp)
				movl	$-30, KCAS.6104@GOTOFF(%eax)
  763                %FINISHELSESTART
				jmp	.L645
		.L657:
  764                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 30
				movl	$8, -44(%ebp)
				movl	$6, -48(%ebp)
				movl	$4, -40(%ebp)
				movl	$30, 8+KCAS.6104@GOTOFF(%eax)
		.L645:
  765                %FINISH
  766                ROW == BRD(CAS)
				movl	-44(%ebp), %edx
				subl	$1, %edx
				sall	$7, %edx
				leal	BRD.6038@GOTOFF(%eax), %eax
				addl	%edx, %eax
				movl	%eax, -4(%ebp)
  767                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				movl	-36(%ebp), %eax
				movl	8(%eax), %eax
				cmpl	$6, %eax
				jne	.L658
				nop
		.L647:
  768                   ROW_R(7)_P = KING;  ROW_R(6)_P = ROOK
				movl	-4(%ebp), %eax
				movl	-48(%ebp), %edx
				movl	%edx, 96(%eax)
				movl	-4(%ebp), %eax
				movl	-40(%ebp), %edx
				movl	%edx, 80(%eax)
  769                   ROW_R(8)_P = 0
				movl	-4(%ebp), %eax
				movl	$0, 112(%eax)
  770                %FINISHELSESTART
				jmp	.L648
		.L658:
  771                   ROW_R(3)_P = KING;  ROW_R(4)_P = ROOK
				movl	-4(%ebp), %eax
				movl	-48(%ebp), %edx
				movl	%edx, 32(%eax)
				movl	-4(%ebp), %eax
				movl	-40(%ebp), %edx
				movl	%edx, 48(%eax)
  772                   ROW_R(1)_P = 0
				movl	-4(%ebp), %eax
				movl	$0, (%eax)
		.L648:
  773                %FINISH
  774                SQ_P = 0
				movl	-8(%ebp), %eax
				movl	$0, (%eax)
  775                %RESULT = KING
				movl	-48(%ebp), %eax
				jmp	.L649
		.L656:
  776             %FINISH
  777             SQ_P = LIST_SPEC
				movl	-36(%ebp), %edx
				movl	8(%edx), %ecx
				movl	-8(%ebp), %edx
				movl	%ecx, (%edx)
  778          %FINISHELSESTART
				jmp	.L650
		.L655:
  779             SQ_P = BRD(Y)_R(X)_P
				movl	-16(%ebp), %edx
				leal	-1(%edx), %ecx
				movl	-24(%ebp), %edx
				subl	$1, %edx
				sall	$3, %ecx
				addl	%edx, %ecx
				leal	BRD.6038@GOTOFF(%eax), %edx
				sall	$4, %ecx
				addl	%ecx, %edx
				movl	(%edx), %ecx
				movl	-8(%ebp), %edx
				movl	%ecx, (%edx)
		.L650:
  780          %FINISH
  781          BRD(Y)_R(X)_P = 0
				movl	-16(%ebp), %edx
				leal	-1(%edx), %ecx
				movl	-24(%ebp), %edx
				subl	$1, %edx
				sall	$3, %ecx
				addl	%ecx, %edx
				leal	BRD.6038@GOTOFF(%eax), %eax
				sall	$4, %edx
				addl	%edx, %eax
				movl	$0, (%eax)
  782          %RESULT = SQ_P
				movl	-8(%ebp), %eax
				movl	(%eax), %eax
		.L649:
  783       %END
				leave
				ret
		.LFE200:
		RESTOREBOARD.6146:
		.LFB201:
  784       !!
  785       %ROUTINE RESTORE BOARD(%RECORD(LISTF{QHF})%NAME B)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$52, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	%ecx, -56(%ebp)
  786          %RECORD(SQF)%NAME SQ
  787          %RECORD(ROWF)%NAME ROW
  788          %RECORD(LISTF)%NAME LIST
  789          %INTEGER FROM, TO, X, Y, X0, Y0, KING, CAS, ROOK
  790          LIST == B_L
				movl	8(%ebp), %edx
				movl	(%edx), %edx
				movl	%edx, -40(%ebp)
  791          FROM = LIST_FR;  TO = LIST_TO
				movl	-40(%ebp), %edx
				movzbl	4(%edx), %edx
				movzbl	%dl, %edx
				movl	%edx, -36(%ebp)
				movl	-40(%ebp), %edx
				movzbl	5(%edx), %edx
				movzbl	%dl, %edx
				movl	%edx, -32(%ebp)
  792          X = FROM>>4;  X0 = TO>>4
				movl	-36(%ebp), %edx
				shrl	$4, %edx
				movl	%edx, -28(%ebp)
				movl	-32(%ebp), %edx
				shrl	$4, %edx
				movl	%edx, -24(%ebp)
  793          Y = FROM&15; Y0 = TO&15
				movl	-36(%ebp), %edx
				andl	$15, %edx
				movl	%edx, -20(%ebp)
				movl	-32(%ebp), %edx
				andl	$15, %edx
				movl	%edx, -16(%ebp)
  794          SQ == BRD(Y0)_R(X0)
				movl	-16(%ebp), %edx
				leal	-1(%edx), %ecx
				movl	-24(%ebp), %edx
				subl	$1, %edx
				sall	$3, %ecx
				addl	%ecx, %edx
				movl	%edx, %ecx
				sall	$4, %ecx
				leal	BRD.6038@GOTOFF(%eax), %edx
				addl	%ecx, %edx
				movl	%edx, -12(%ebp)
  795          %IF LIST_SPEC # 0 %START
				movl	-40(%ebp), %edx
				movl	8(%edx), %edx
				testl	%edx, %edx
				je	.L678
				nop
		.L673:
  796             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				movl	-40(%ebp), %edx
				movl	8(%edx), %edx
				cmpl	$5, %edx
				jle	.L679
				nop
		.L663:
  797                %IF Y0 = 1 %START
				cmpl	$1, -16(%ebp)
				jne	.L680
				nop
		.L665:
  798                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = 0
				movl	$1, -48(%ebp)
				movl	$-6, -52(%ebp)
				movl	$-4, -44(%ebp)
				movl	$0, KCAS.6104@GOTOFF(%eax)
  799                %FINISHELSESTART
				jmp	.L666
		.L680:
  800                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 0
				movl	$8, -48(%ebp)
				movl	$6, -52(%ebp)
				movl	$4, -44(%ebp)
				movl	$0, 8+KCAS.6104@GOTOFF(%eax)
		.L666:
  801                %FINISH
  802                ROW == BRD(CAS)
				movl	-48(%ebp), %edx
				subl	$1, %edx
				sall	$7, %edx
				leal	BRD.6038@GOTOFF(%eax), %eax
				addl	%edx, %eax
				movl	%eax, -8(%ebp)
  803                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				movl	-40(%ebp), %eax
				movl	8(%eax), %eax
				cmpl	$6, %eax
				jne	.L681
				nop
		.L668:
  804                   ROW_R(8)_P = ROOK
				movl	-8(%ebp), %eax
				movl	-44(%ebp), %edx
				movl	%edx, 112(%eax)
  805                   ROW_R(7)_P = 0;  ROW_R(6)_P = 0
				movl	-8(%ebp), %eax
				movl	$0, 96(%eax)
				movl	-8(%ebp), %eax
				movl	$0, 80(%eax)
  806                %FINISHELSESTART
				jmp	.L669
		.L681:
  807                   ROW_R(1)_P = ROOK
				movl	-8(%ebp), %eax
				movl	-44(%ebp), %edx
				movl	%edx, (%eax)
  808                   ROW_R(3)_P = 0;  ROW_R(4)_P = 0
				movl	-8(%ebp), %eax
				movl	$0, 32(%eax)
				movl	-8(%ebp), %eax
				movl	$0, 48(%eax)
		.L669:
  809                %FINISH
  810                SQ_P = KING
				movl	-12(%ebp), %eax
				movl	-52(%ebp), %edx
				movl	%edx, (%eax)
  811                %RETURN
				jmp	.L659
		.L679:
  812             %FINISH
  813             %IF Y0=8 %THEN SQ_P=-1 %ELSE SQ_P=1
				cmpl	$8, -16(%ebp)
				jne	.L682
				movl	-12(%ebp), %edx
				movl	$-1, (%edx)
				jmp	.L673
		.L682:
				nop
		.L672:
				movl	-12(%ebp), %edx
				movl	$1, (%edx)
				jmp	.L673
		.L661:
		.L678:
  814          %FINISH
  815          BRD(Y)_R(X)_P = SQ_P
				movl	-20(%ebp), %edx
				leal	-1(%edx), %ebx
				movl	-28(%ebp), %edx
				leal	-1(%edx), %ecx
				movl	-12(%ebp), %edx
				movl	(%edx), %edx
				sall	$3, %ebx
				addl	%ebx, %ecx
				leal	BRD.6038@GOTOFF(%eax), %eax
				sall	$4, %ecx
				addl	%ecx, %eax
				movl	%edx, (%eax)
  816          SQ_P = B_HOLD
				movl	8(%ebp), %eax
				movl	(%eax), %edx
				movl	-12(%ebp), %eax
				movl	%edx, (%eax)
  817       %END
				nop
		.L659:
				addl	$52, %esp
				popl	%ebx
				popl	%ebp
				ret
		.LFE201:
		BURP.6149:
		.LFB202:
  818       !!
  819       !!
  820       %ROUTINE BURP(%RECORD(LISTF{QHF})%NAME X, %INTEGER W)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%esi
				pushl	%ebx
				subl	$32, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %esi
				movl	%ecx, -28(%ebp)
  821          %INTEGER I
  822          !!
  823          TELL(X_L, W)
				movl	8(%ebp), %eax
				movl	(%eax), %eax
				subl	$8, %esp
				pushl	12(%ebp)
				pushl	%eax
				movl	%esi, %ecx
				call	TELL.6152
				addl	$16, %esp
  824          SELECT OUTPUT(2)
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				movb	$42, -13(%ebp)
		.LBB432:
		.LBB433:
				movsbl	-13(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE433:
		.LBE432:
  825          PRINTSYMBOL('*'); TELL(X_L, W)
				movl	8(%ebp), %eax
				movl	(%eax), %eax
				subl	$8, %esp
				pushl	12(%ebp)
				pushl	%eax
				movl	%esi, %ecx
				call	TELL.6152
				addl	$16, %esp
  826          SELECT OUTPUT(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
  827 !         %IF W > 0 %AND TIMTT < 3 %AND PDEPTH#1 %THEN PDEPTH=PDEPTH+1
  828          I = CHANGE BOARD(X)
				subl	$12, %esp
				pushl	8(%ebp)
				movl	%esi, %ecx
				call	CHANGEBOARD.6144
				addl	$16, %esp
				movl	%eax, -12(%ebp)
  829          %IF I = KING*W %THEN KMOVE(W) = 1
				movl	12(%ebp), %edx
				movl	%edx, %eax
				addl	%eax, %eax
				addl	%edx, %eax
				addl	%eax, %eax
				cmpl	%eax, -12(%ebp)
				jne	.L687
				movl	12(%ebp), %eax
				addl	$1, %eax
				movb	$1, KMOVE.6102@GOTOFF(%ebx,%eax)
				nop
		.L685:
				nop
				leal	-8(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%ebp
				ret
		.LFE202:
				.section	.rodata
				.align 32
		.LC12:
				.byte	6
				.string	"I Win\n"
				.zero	248
				.align 32
		.LC13:
				.byte	8
				.string	"YOU WIN\n"
				.zero	246
				.align 32
		.LC14:
				.byte	1
				.string	"("
				.zero	253
				.align 32
		.LC15:
				.byte	7
				.string	" Secs)\n"
				.zero	247
		TELL.6152:
		.LFB203:
  830       %END
				jmp	.L685
		.L687:
  831       !!
  832       %ROUTINE TELL(%RECORD(LISTF)%NAME MOVE, %INTEGER WHICH)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1116, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -1116(%ebp)
				movl	%ecx, %esi
				movl	%ecx, -1120(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				movl	-1116(%ebp), %eax
				movl	%eax, -1104(%ebp)
		.LBB434:
		.LBB435:
				movl	-1104(%ebp), %eax
		.LBE435:
		.LBE434:
  833
  834          %IF ADDR(MOVE) = 0 %START
				testl	%eax, %eax
				jne	.L708
				nop
  835             %IF WHICH < 0 %THEN PRINTSTRING("I Win
				cmpl	$0, 12(%ebp)
				jns	.L709
		.LBB436:
				leal	-284(%ebp), %eax
				leal	.LC12@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
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE436:
		.LBB437:
		.LBB438:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-540(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE438:
		.LBE437:
				jmp	.L694
		.L709:
				nop
		.L693:
		.LBB439:
				leal	-284(%ebp), %eax
				leal	.LC13@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
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE439:
		.LBB440:
		.LBB441:
				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
		.L694:
				movl	$0, -1100(%ebp)
		.LBE441:
		.LBE440:
		.LBB442:
		.LBB443:
				subl	$12, %esp
				pushl	-1100(%ebp)
				call	exit@PLT
		.L691:
		.L708:
		.LBE443:
		.LBE442:
  836 ")          %ELSE %C
  837               PRINTSTRING("YOU WIN
  838 ")
  839             %STOP
  840          %FINISH
  841          !!
  842          WRITE(NO, 1)
				movl	NO.6115@GOTOFF(%ebx), %eax
				subl	$8, %esp
				pushl	$1
				pushl	%eax
				call	_imp_writeint@PLT
				addl	$16, %esp
  843          %IF WHICH > 0 %THEN SPACES(25) %ELSE SPACES(4)
				cmpl	$0, 12(%ebp)
				jle	.L710
				movl	$25, -1096(%ebp)
		.LBB444:
		.LBB445:
				subl	$12, %esp
				pushl	-1096(%ebp)
				call	_imp_spaces@PLT
				addl	$16, %esp
		.LBE445:
		.LBE444:
				jmp	.L697
		.L710:
				nop
		.L696:
				movl	$4, -1092(%ebp)
		.LBB446:
		.LBB447:
				subl	$12, %esp
				pushl	-1092(%ebp)
				call	_imp_spaces@PLT
				addl	$16, %esp
		.L697:
		.LBE447:
		.LBE446:
  844          PRINTMOVE(MOVE)
				subl	$12, %esp
				pushl	-1116(%ebp)
				movl	%esi, %ecx
				call	PRINTMOVE.6156
				addl	$16, %esp
		.LBB448:
  845          PRINTSTRING("(")
				leal	-284(%ebp), %eax
				leal	.LC14@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
				leal	-540(%ebp), %eax
				leal	-1052(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE448:
		.LBB449:
		.LBB450:
				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
		.LBE450:
		.LBE449:
  846          %IF WHICH > 0 %START
				cmpl	$0, 12(%ebp)
				jle	.L711
				nop
		.L699:
  847             TIMTT = CPUTIME-TIME
				call	CPUTIME@PLT
				fldl	TIME.6112@GOTOFF(%ebx)
				fsubrp	%st, %st(1)
				fstpl	TIMTT.6114@GOTOFF(%ebx)
  848            PRINT(TIMTT, 1, 2)
				fldl	TIMTT.6114@GOTOFF(%ebx)
				fstpl	-1072(%ebp)
				movl	$1, -1088(%ebp)
				movl	$2, -1084(%ebp)
		.LBB451:
		.LBB452:
				pushl	-1084(%ebp)
				pushl	-1088(%ebp)
				pushl	-1068(%ebp)
				pushl	-1072(%ebp)
				call	_imp_print@PLT
				addl	$16, %esp
		.LBE452:
		.LBE451:
  849          %FINISHELSESTART
				jmp	.L700
		.L711:
  850             PRINT(CPUTIME-TIME2, 1, 2)
				call	CPUTIME@PLT
				fldl	TIME2.6113@GOTOFF(%ebx)
				fsubrp	%st, %st(1)
				fstpl	-1064(%ebp)
				movl	$1, -1080(%ebp)
				movl	$2, -1076(%ebp)
		.LBB453:
		.LBB454:
				pushl	-1076(%ebp)
				pushl	-1080(%ebp)
				pushl	-1060(%ebp)
				pushl	-1064(%ebp)
				call	_imp_print@PLT
				addl	$16, %esp
		.L700:
		.LBE454:
		.LBE453:
		.LBB455:
  851          %FINISH
  852          PRINTSTRING(" Secs)
				leal	-284(%ebp), %eax
				leal	.LC15@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
				leal	-284(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE455:
		.LBB456:
		.LBB457:
				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
		.LBE457:
		.LBE456:
  853 ")
  854       %END
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L702
				call	__stack_chk_fail_local
		.L702:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE203:
				.section	.rodata
				.align 32
		.LC11:
				.byte	36
				.string	"  !---!---!---!---!---!---!---!---!\n"
				.zero	218
		LINE.6630:
		.LFB205:
  855       !!
  856       %ROUTINE PRINTBOARD
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1820, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -1820(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				leal	8(%ebp), %eax
				movl	%eax, -1804(%ebp)
  857          %CONSTBYTEINTEGERARRAY BLACK(1:64) = %C
				movb	$0, -92(%ebp)
				movb	$1, -91(%ebp)
				movb	$0, -90(%ebp)
				movb	$1, -89(%ebp)
				movb	$0, -88(%ebp)
				movb	$1, -87(%ebp)
				movb	$0, -86(%ebp)
				movb	$1, -85(%ebp)
				movb	$1, -84(%ebp)
				movb	$0, -83(%ebp)
				movb	$1, -82(%ebp)
				movb	$0, -81(%ebp)
				movb	$1, -80(%ebp)
				movb	$0, -79(%ebp)
				movb	$1, -78(%ebp)
				movb	$0, -77(%ebp)
				movb	$0, -76(%ebp)
				movb	$1, -75(%ebp)
				movb	$0, -74(%ebp)
				movb	$1, -73(%ebp)
				movb	$0, -72(%ebp)
				movb	$1, -71(%ebp)
				movb	$0, -70(%ebp)
				movb	$1, -69(%ebp)
				movb	$1, -68(%ebp)
				movb	$0, -67(%ebp)
				movb	$1, -66(%ebp)
				movb	$0, -65(%ebp)
				movb	$1, -64(%ebp)
				movb	$0, -63(%ebp)
				movb	$1, -62(%ebp)
				movb	$0, -61(%ebp)
				movb	$0, -60(%ebp)
				movb	$1, -59(%ebp)
				movb	$0, -58(%ebp)
				movb	$1, -57(%ebp)
				movb	$0, -56(%ebp)
				movb	$1, -55(%ebp)
				movb	$0, -54(%ebp)
				movb	$1, -53(%ebp)
				movb	$1, -52(%ebp)
				movb	$0, -51(%ebp)
				movb	$1, -50(%ebp)
				movb	$0, -49(%ebp)
				movb	$1, -48(%ebp)
				movb	$0, -47(%ebp)
				movb	$1, -46(%ebp)
				movb	$0, -45(%ebp)
				movb	$0, -44(%ebp)
				movb	$1, -43(%ebp)
				movb	$0, -42(%ebp)
				movb	$1, -41(%ebp)
				movb	$0, -40(%ebp)
				movb	$1, -39(%ebp)
				movb	$0, -38(%ebp)
				movb	$1, -37(%ebp)
				movb	$1, -36(%ebp)
				movb	$0, -35(%ebp)
				movb	$1, -34(%ebp)
				movb	$0, -33(%ebp)
				movb	$1, -32(%ebp)
				movb	$0, -31(%ebp)
				movb	$1, -30(%ebp)
				movb	$0, -29(%ebp)
				leal	-1780(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-92(%ebp), %eax
				movl	%eax, -1780(%ebp)
				movl	$1, -1776(%ebp)
  858             0, 1, 0, 1, 0, 1, 0, 1,
  859             1, 0, 1, 0, 1, 0, 1, 0,
  860             0, 1, 0, 1, 0, 1, 0, 1,
  861             1, 0, 1, 0, 1, 0, 1, 0,
  862             0, 1, 0, 1, 0, 1, 0, 1,
  863             1, 0, 1, 0, 1, 0, 1, 0,
  864             0, 1, 0, 1, 0, 1, 0, 1,
  865             1, 0, 1, 0, 1, 0, 1, 0
  866          !!
  867          %ROUTINE LINE
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$556, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ebx, -560(%ebp)
				movl	%ecx, -556(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
		.LBB458:
  868             PRINTSTRING("  !---!---!---!---!---!---!---!---!
				leal	-284(%ebp), %eax
				movl	%ebx, -560(%ebp)
				leal	.LC11@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-284(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE458:
		.LBB459:
		.LBB460:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %ebx
				leal	-284(%ebp), %eax
				movl	$64, %edx
				movl	%ebx, %edi
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				movl	-560(%ebp), %ebx
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE460:
		.LBE459:
  869 ")
  870          %END
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L714
				call	__stack_chk_fail_local
		.L714:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE205:
				.section	.rodata
				.align 32
		.LC8:
				.byte	2
				.string	"! "
				.zero	252
				.align 32
		.LC9:
				.byte	2
				.string	"!\n"
				.zero	252
				.align 32
		.LC10:
				.byte	34
				.string	"    A   B   C   D   E   F   G   H\n"
				.zero	220
		PRINTBOARD.6154:
		.LFB204:
  871          !!
  872          %CONSTBYTEINTEGERARRAY PX(-6:6) = %C
				movb	$107, -105(%ebp)
				movb	$113, -104(%ebp)
				movb	$114, -103(%ebp)
				movb	$98, -102(%ebp)
				movb	$110, -101(%ebp)
				movb	$112, -100(%ebp)
				movb	$32, -99(%ebp)
				movb	$80, -98(%ebp)
				movb	$78, -97(%ebp)
				movb	$66, -96(%ebp)
				movb	$82, -95(%ebp)
				movb	$81, -94(%ebp)
				movb	$75, -93(%ebp)
				leal	-1712(%ebp), %edx
				movl	$0, %eax
				movl	$17, %ecx
				movl	%edx, %edi
				rep stosl
				leal	-105(%ebp), %eax
				movl	%eax, -1712(%ebp)
				movl	$1, -1708(%ebp)
  873            'k', 'q', 'r', 'b', 'n', 'p',
  874            ' ', 'P', 'N', 'B', 'R', 'Q', 'K'
  875          %INTEGER X,Y, I, P, Q
  876          %RECORD(ROWF)%NAME ROW
  877          !!
  878          Q = 1
				movl	$1, -1792(%ebp)
  879          %CYCLE Y = 8, -1, 1
				movl	$9, -1796(%ebp)
		.L716:
				cmpl	$1, -1796(%ebp)
				je	.L738
				subl	$1, -1796(%ebp)
				nop
		.L718:
  880             ROW == BRD(Y)
				movl	-1796(%ebp), %eax
				subl	$1, %eax
				sall	$7, %eax
				movl	%eax, %edx
				leal	BRD.6038@GOTOFF(%ebx), %eax
				addl	%edx, %eax
				movl	%eax, -1788(%ebp)
  881             LINE
				leal	-1804(%ebp), %eax
				movl	%eax, %ecx
				call	LINE.6630
  882             WRITE(Y, 1)
				subl	$8, %esp
				pushl	$1
				pushl	-1796(%ebp)
				call	_imp_writeint@PLT
				addl	$16, %esp
  883             %CYCLE X = 1, 1, 8
				movl	$0, -1800(%ebp)
		.L719:
				cmpl	$8, -1800(%ebp)
				je	.L739
				addl	$1, -1800(%ebp)
		.LBB461:
				nop
		.L721:
		.LBB474:
  884                PRINTSTRING("! ")
				leal	-361(%ebp), %eax
				leal	.LC8@GOTOFF(%ebx), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
				leal	-1641(%ebp), %eax
				leal	-361(%ebp), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
				leal	-873(%ebp), %eax
				leal	-1641(%ebp), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
		.LBE461:
		.LBB462:
		.LBB463:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-873(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE463:
		.LBE462:
  885                P = ROW_R(X)_P
				movl	-1800(%ebp), %eax
				leal	-1(%eax), %edx
				movl	-1788(%ebp), %eax
				sall	$4, %edx
				addl	%edx, %eax
				movl	(%eax), %eax
				movl	%eax, -1784(%ebp)
  886                %IF P # 0 %THEN PRINTSYMBOL(PX(P)) %ELSE %START
				cmpl	$0, -1784(%ebp)
				je	.L740
				movl	-1784(%ebp), %eax
				addl	$6, %eax
				movzbl	-105(%ebp,%eax), %eax
				movsbl	%al, %eax
				movb	%al, -1809(%ebp)
		.LBB464:
		.LBB465:
				movsbl	-1809(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE465:
		.LBE464:
				jmp	.L727
		.L740:
				nop
		.L723:
  887                   %IF BLACK(Q) = 1 %THEN PRINTSYMBOL('*') %C
				movl	-1792(%ebp), %eax
				subl	$1, %eax
				movzbl	-92(%ebp,%eax), %eax
				cmpb	$1, %al
				jne	.L741
				movb	$42, -1808(%ebp)
		.LBB466:
		.LBB467:
				movsbl	-1808(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE467:
		.LBE466:
				jmp	.L727
		.L741:
				nop
		.L726:
				movb	$32, -1807(%ebp)
		.LBB468:
		.LBB469:
				movsbl	-1807(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.L724:
		.L727:
		.LBE469:
		.LBE468:
  888                   %ELSE PRINTSYMBOL(' ')
  889                %FINISH
  890                %IF P > 0 %THEN PRINTSYMBOL('+') %ELSE %C
				cmpl	$0, -1784(%ebp)
				jle	.L742
				movb	$43, -1806(%ebp)
		.LBB470:
		.LBB471:
				movsbl	-1806(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE471:
		.LBE470:
				jmp	.L730
		.L742:
				nop
		.L729:
				movb	$32, -1805(%ebp)
		.LBB472:
		.LBB473:
				movsbl	-1805(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.L730:
		.LBE473:
		.LBE472:
  891                  PRINTSYMBOL(' ')
  892                Q = Q+1
				addl	$1, -1792(%ebp)
  893             %REPEAT
				jmp	.L719
		.L739:
  894             PRINTSTRING("!
				leal	-361(%ebp), %eax
				leal	.LC9@GOTOFF(%ebx), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
				leal	-1385(%ebp), %eax
				leal	-361(%ebp), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
				leal	-617(%ebp), %eax
				leal	-1385(%ebp), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
		.LBE474:
		.LBB475:
		.LBB476:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-617(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE476:
		.LBE475:
  895 ")
  896          %REPEAT
				jmp	.L716
		.L738:
  897          LINE
				leal	-1804(%ebp), %eax
				movl	%eax, %ecx
				call	LINE.6630
		.LBB477:
  898          PRINTSTRING("    A   B   C   D   E   F   G   H
				leal	-361(%ebp), %eax
				leal	.LC10@GOTOFF(%ebx), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
				leal	-1129(%ebp), %eax
				leal	-361(%ebp), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
				leal	-361(%ebp), %eax
				leal	-1129(%ebp), %edx
				movl	$256, %ecx
				movl	(%edx), %esi
				movl	%esi, (%eax)
				movl	-4(%edx,%ecx), %esi
				movl	%esi, -4(%eax,%ecx)
				leal	4(%eax), %edi
				andl	$-4, %edi
				subl	%edi, %eax
				subl	%eax, %edx
				addl	%eax, %ecx
				andl	$-4, %ecx
				movl	%ecx, %eax
				shrl	$2, %eax
				movl	%edx, %esi
				movl	%eax, %ecx
				rep movsl
		.LBE477:
		.LBB478:
		.LBB479:
				subl	$256, %esp
				movl	%esp, %eax
				movl	%eax, %edi
				leal	-361(%ebp), %eax
				movl	$64, %edx
				movl	%eax, %esi
				movl	%edx, %ecx
				rep movsl
				call	_imp_printstring@PLT
				addl	$256, %esp
		.LBE479:
		.LBE478:
  899 ")
  900       %END
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L732
				call	__stack_chk_fail_local
		.L732:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE204:
		BURP.6665:
		.LFB207:
?I unused
  901       !!
  902          !!
  903       %ROUTINE PRINTMOVE(%RECORD(LISTF)%NAME LIST)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$36, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -28(%ebp)
				movl	%ecx, -32(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -12(%ebp)
				xorl	%eax, %eax
				leal	8(%ebp), %eax
				movl	%eax, -16(%ebp)
  904          %INTEGER I,J,K
  905          %ROUTINE BURP(%INTEGER X)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$36, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, -28(%ebp)
  906             PRINTSYMBOL((X>>4)+'A'-1)
				movl	8(%ebp), %eax
				shrl	$4, %eax
				addl	$64, %eax
				movsbl	%al, %eax
				movb	%al, -9(%ebp)
		.LBB480:
		.LBB481:
				movsbl	-9(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE481:
		.LBE480:
  907             PRINTSYMBOL(X&15+'0')
				movl	8(%ebp), %eax
				andl	$15, %eax
				addl	$48, %eax
				movsbl	%al, %eax
				movb	%al, -10(%ebp)
		.LBB482:
		.LBB483:
				movsbl	-10(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
		.LBE483:
		.LBE482:
		.LBB484:
		.LBB485:
				call	_imp_space@PLT
		.LBE485:
		.LBE484:
  908             SPACE
  909          %END
				nop
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE207:
		PRINTMOVE.6156:
		.LFB206:
  910          !!
  911          BURP(LIST_FR); BURP(LIST_TO)
				movl	-28(%ebp), %eax
				movzbl	4(%eax), %eax
				movzbl	%al, %edx
				subl	$12, %esp
				leal	-16(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	BURP.6665
				addl	$16, %esp
				movl	-28(%ebp), %eax
				movzbl	5(%eax), %eax
				movzbl	%al, %edx
				subl	$12, %esp
				leal	-16(%ebp), %eax
				pushl	%edx
				movl	%eax, %ecx
				call	BURP.6665
				addl	$16, %esp
  912          %IF LIST_CHK # 0 %THEN PRINTSYMBOL('+')
				movl	-28(%ebp), %eax
				movl	12(%eax), %eax
				testl	%eax, %eax
				je	.L751
				movb	$43, -17(%ebp)
		.LBB486:
		.LBB487:
				movsbl	-17(%ebp), %eax
				subl	$12, %esp
				pushl	%eax
				call	_imp_printsymbol@PLT
				addl	$16, %esp
				jmp	.L750
		.L747:
		.L751:
		.LBE487:
		.LBE486:
				nop
		.L750:
  913          WRITE(LIST_SCORE, 5)
				movl	-28(%ebp), %eax
				movl	4(%eax), %eax
				subl	$8, %esp
				pushl	$5
				pushl	%eax
				call	_imp_writeint@PLT
				addl	$16, %esp
  914       %END
				nop
				movl	-12(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L749
				call	__stack_chk_fail_local
		.L749:
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE206:
		CHECKYOURMOVE.6158:
		.LFB208:
?K unused
?J unused
?I unused
  915       !!
  916       %INTEGER %FN CHECK YOUR MOVE(%RECORD(LISTF)%NAME LIST)
				pushl	%ebp
				movl	%esp, %ebp
				subl	$40, %esp
				call	__x86.get_pc_thunk.ax
				addl	$_GLOBAL_OFFSET_TABLE_, %eax
				movl	8(%ebp), %eax
				movl	%eax, -28(%ebp)
				movl	%ecx, %eax
				movl	%ecx, -32(%ebp)
				movl	%gs:20, %ecx
				movl	%ecx, -12(%ebp)
				xorl	%ecx, %ecx
  917          %RECORD(LISTF)%NAME L2, MM
  918          %INTEGER I
  919          MM == MMOVE_L
				movl	16(%eax), %eax
				movl	%eax, -24(%ebp)
  920          L2 == LIST
				movl	-28(%ebp), %eax
				movl	%eax, -20(%ebp)
		.L753:
				movl	-28(%ebp), %eax
				movl	%eax, -16(%ebp)
		.LBB488:
		.LBB489:
				movl	-16(%ebp), %eax
		.LBE489:
		.LBE488:
  921          %WHILE ADDR(LIST) # 0 %CYCLE
				testl	%eax, %eax
				je	.L763
				nop
		.L756:
  922             %IF LIST_FR = MM_FR %AND LIST_TO = MM_TO %C
				movl	-28(%ebp), %eax
				movzbl	4(%eax), %edx
				movl	-24(%ebp), %eax
				movzbl	4(%eax), %eax
				cmpb	%al, %dl
				jne	.L764
				movl	-28(%ebp), %eax
				movzbl	5(%eax), %edx
				movl	-24(%ebp), %eax
				movzbl	5(%eax), %eax
				cmpb	%al, %dl
				jne	.L765
				nop
				jmp	.L758
		.L765:
				nop
		.L758:
  923                %START
  924                   MM_SCORE = LIST_SCORE;  MM_CHK = LIST_CHK
				movl	-28(%ebp), %eax
				movl	4(%eax), %edx
				movl	-24(%ebp), %eax
				movl	%edx, 4(%eax)
				movl	-28(%ebp), %eax
				movl	12(%eax), %edx
				movl	-24(%ebp), %eax
				movl	%edx, 12(%eax)
  925                   %RESULT = 1
				movl	$1, %eax
				jmp	.L760
		.L764:
  926             %FINISH
  927             LIST == LIST_L
				movl	-28(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -28(%ebp)
  928          %REPEAT
				jmp	.L753
		.L763:
  929          %RESULT = 0
				movl	$0, %eax
		.L760:
  930       %END
				movl	-12(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L761
				call	__stack_chk_fail_local
		.L761:
				leave
				ret
		.LFE208:
		PRINTMOVES.6678:
		.LFB209:
?I unused
  931       !!
  932       %INTEGERFN PRINT MOVES(%RECORD(LISTF)%NAME LIST)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%esi
				pushl	%ebx
				subl	$32, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %esi
				movl	%ecx, -28(%ebp)
  933          %RECORD(LISTF)%NAME L
  934          SELECT OUTPUT(2)
				subl	$12, %esp
				pushl	$2
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
  935          LIST == RECORD(SORT AND PRUNE(LIST, 100, -1))
				subl	$4, %esp
				pushl	$-1
				pushl	$100
				pushl	8(%ebp)
				movl	%esi, %ecx
				call	SORTANDPRUNE.6133
				addl	$16, %esp
				movl	%eax, -20(%ebp)
		.LBB490:
		.LBB491:
				movl	-20(%ebp), %eax
		.LBE491:
		.LBE490:
				movl	%eax, 8(%ebp)
  936          L == LIST
				movl	8(%ebp), %eax
				movl	%eax, -24(%ebp)
		.L768:
  937          %CYCLE
  938             PRINTMOVE(L); NEWLINE
				subl	$12, %esp
				pushl	-24(%ebp)
				movl	%esi, %ecx
				call	PRINTMOVE.6156
				addl	$16, %esp
		.LBB492:
		.LBB493:
				call	_imp_newline@PLT
		.LBE493:
		.LBE492:
  939             L == L_L
				movl	-24(%ebp), %eax
				movl	(%eax), %eax
				movl	%eax, -24(%ebp)
				movl	-24(%ebp), %eax
				movl	%eax, -16(%ebp)
		.LBB494:
		.LBB495:
				movl	-16(%ebp), %eax
		.LBE495:
		.LBE494:
  940             %EXIT %IF ADDR(L) = 0
				testl	%eax, %eax
				je	.L775
				nop
		.L771:
				nop
		.L772:
  941          %REPEAT
				jmp	.L768
		.L775:
  942          SELECT OUTPUT(0)
				subl	$12, %esp
				pushl	$0
				call	_imp_SELECTOUTPUT
				addl	$16, %esp
				movl	8(%ebp), %eax
				movl	%eax, -12(%ebp)
		.LBB496:
		.LBB497:
				movl	-12(%ebp), %eax
		.LBE497:
		.LBE496:
  943          %RESULT = ADDR(LIST)
  944       %END
				leal	-8(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%ebp
				ret
		.LFE209:
		READM.6689:
		.LFB211:
  945
  946       %ROUTINE YOUR MOVE
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%edi
				pushl	%esi
				pushl	%ebx
				subl	$1900, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	%ecx, %esi
				movl	%esi, -1904(%ebp)
				movl	%ecx, -1900(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -28(%ebp)
				xorl	%eax, %eax
				leal	8(%ebp), %eax
				movl	%eax, -1872(%ebp)
  947          %INTEGER %FN READM(%INTEGERNAME X, Y)
				pushl	%ebp
				movl	%esp, %ebp
				pushl	%ebx
				subl	$52, %esp
				call	__x86.get_pc_thunk.bx
				addl	$_GLOBAL_OFFSET_TABLE_, %ebx
				movl	8(%ebp), %eax
				movl	%eax, -44(%ebp)
				movl	12(%ebp), %eax
				movl	%eax, -48(%ebp)
				movl	%ecx, -52(%ebp)
				movl	%gs:20, %eax
				movl	%eax, -12(%ebp)
				xorl	%eax, %eax
		.L777:
		.LBB498:
		.LBB499:
				call	_imp_nextsymbol@PLT
		.LBE499:
		.LBE498:
  948             %INTEGER I,J
  949             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
				cmpl	$10, %eax
				jne	.L789
		.LBB500:
		.LBB501:
				call	_imp_skipsymbol@PLT
		.LBE501:
		.LBE500:
				jmp	.L777
		.L789:
				nop
		.L780:
				leal	-28(%ebp), %eax
				movl	%eax, -20(%ebp)
		.LBB502:
		.LBB503:
				subl	$12, %esp
				pushl	-20(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.L781:
		.LBE503:
		.LBE502:
		.LBB504:
		.LBB505:
				call	_imp_nextsymbol@PLT
		.LBE505:
		.LBE504:
  950             READSYMBOL(I)
  951             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
				cmpl	$10, %eax
				jne	.L790
		.LBB506:
		.LBB507:
				call	_imp_skipsymbol@PLT
		.LBE507:
		.LBE506:
				jmp	.L781
		.L790:
				nop
		.L784:
				leal	-24(%ebp), %eax
				movl	%eax, -16(%ebp)
		.LBB508:
		.LBB509:
				subl	$12, %esp
				pushl	-16(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE509:
		.LBE508:
  952             READSYMBOL(J)
  953             X = I-'A'+1;  Y = J-'0'
				movl	-28(%ebp), %eax
				leal	-64(%eax), %edx
				movl	-44(%ebp), %eax
				movl	%edx, (%eax)
				movl	-24(%ebp), %eax
				leal	-48(%eax), %edx
				movl	-48(%ebp), %eax
				movl	%edx, (%eax)
  954             %RESULT = 0
				movl	$0, %eax
  955          %END
				movl	-12(%ebp), %ecx
				xorl	%gs:20, %ecx
				je	.L786
				call	__stack_chk_fail_local
		.L786:
				movl	-4(%ebp), %ebx
				leave
				ret
		.LFE211:
				.section	.rodata
				.align 32
		.LC5:
				.byte	4
				.string	"MON?"
				.zero	250
				.align 32
		.LC6:
				.byte	8
				.string	"NEW PLY?"
				.zero	246
				.align 32
		.LC7:
				.byte	33
				.string	"INVALID MOVE - MY FORMAT IS D2D4\n"
				.zero	221
		YOURMOVE.6160:
		.LFB210:
  956
  957          %INTEGER I, X, Y, X0, Y0, K
  958          %RECORD(LISTF)%NAME LIST
  959          !!
  960          JUST ONE PLY = 1;              ! DONT ALLOW LOOK AHEAD (NO POINT)
				movl	$1, JUSTONEPLY.6120@GOTOFF(%ebx)
  961          LIST == RECORD(MOVES(-1, 0));     ! GET OPPS LEGAL MOVES
				subl	$8, %esp
				pushl	$0
				pushl	$-1
				movl	%esi, %ecx
				call	MOVES.6139
				addl	$16, %esp
				movl	%eax, -1844(%ebp)
		.LBB510:
		.LBB511:
				movl	-1844(%ebp), %eax
		.LBE511:
		.LBE510:
				movl	%eax, -1868(%ebp)
  962          JUST ONE PLY = 0
				movl	$0, JUSTONEPLY.6120@GOTOFF(%ebx)
				movl	-1868(%ebp), %eax
				movl	%eax, -1848(%ebp)
		.LBB512:
		.LBB513:
				movl	-1848(%ebp), %eax
		.LBE513:
		.LBE512:
  963          %IF ADDR(LIST) = 0 %THEN TELL(LIST, -1); ! CHECKMATE
				testl	%eax, %eax
				jne	.L845
				subl	$8, %esp
				pushl	$-1
				pushl	-1868(%ebp)
				movl	-1904(%ebp), %ecx
				call	TELL.6152
				addl	$16, %esp
				jmp	.L840
		.L795:
		.L845:
				nop
		.L840:
  964          %IF MON&1#0 %THEN LIST == RECORD(PRINT MOVES(LIST))
				subl	$12, %esp
				pushl	-1868(%ebp)
				movl	-1904(%ebp), %ecx
				call	PRINTMOVES.6678
				addl	$16, %esp
				movl	%eax, -1840(%ebp)
		.LBB514:
		.LBB515:
				movl	-1840(%ebp), %eax
		.LBE515:
		.LBE514:
				movl	%eax, -1868(%ebp)
		.L797:
		.L798:
  965 AGAIN:
  966          LM_SPEC = 0
				movl	-1904(%ebp), %eax
				movl	$0, 8(%eax)
		.LBB516:
		.LBB517:
				call	_imp_nextsymbol@PLT
		.LBE517:
		.LBE516:
  967          %IF NEXTSYMBOL='M' %START;     ! MONITOR
				cmpl	$77, %eax
				jne	.L846
		.LBB518:
		.LBB519:
				call	_imp_skipsymbol@PLT
		.LBE519:
		.LBE518:
		.LBB520:
				nop
		.L801:
		.LBB524:
		.LBB525:
				call	_imp_nextsymbol@PLT
		.LBE525:
		.LBE524:
  968             SKIPSYMBOL
  969             PROMPT("MON?"); READ(MON); SKIPSYMBOL
				leal	-796(%ebp), %eax
				leal	.LC5@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1820(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE520:
				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	PROMPT@PLT
				addl	$256, %esp
				subl	$12, %esp
				leal	MON.6119@GOTOFF(%ebx), %eax
				pushl	%eax
				call	_imp_readint@PLT
				addl	$16, %esp
		.LBB521:
		.LBB522:
				call	_imp_skipsymbol@PLT
		.LBE522:
		.LBE521:
		.LBB523:
  970             PROMPT("Move?")
				leal	-796(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1564(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE523:
				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	PROMPT@PLT
				addl	$256, %esp
  971             ->AGAIN
				jmp	.L797
		.L846:
  972          %FINISH
  973          %IF NEXTSYMBOL='X' %START
				cmpl	$88, %eax
				jne	.L847
		.LBB526:
		.LBB527:
				call	_imp_skipsymbol@PLT
		.LBE527:
		.LBE526:
		.LBB528:
		.LBB529:
				call	_imp_skipsymbol@PLT
				jmp	.L804
		.L847:
		.LBE529:
		.LBE528:
				nop
		.L804:
		.LBB530:
		.LBB531:
				call	_imp_nextsymbol@PLT
		.LBE531:
		.LBE530:
  974             SKIPSYMBOL; SKIPSYMBOL; !PPROFILE
  975          %FINISH
  976          %IF NEXTSYMBOL = 'P' %START
				cmpl	$80, %eax
				jne	.L848
		.LBB532:
				nop
		.L807:
		.LBB538:
		.LBB539:
				call	_imp_nextsymbol@PLT
		.LBE539:
		.LBE538:
  977             PROMPT("NEW PLY?");  SKIPSYMBOL
				leal	-796(%ebp), %eax
				leal	.LC6@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1308(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE532:
				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	PROMPT@PLT
				addl	$256, %esp
		.LBB533:
		.LBB534:
				call	_imp_skipsymbol@PLT
		.LBE534:
		.LBE533:
  978             READ(PDEPTH); SKIPSYMBOL
				subl	$12, %esp
				leal	PDEPTH.6118@GOTOFF(%ebx), %eax
				pushl	%eax
				call	_imp_readint@PLT
				addl	$16, %esp
		.LBB535:
		.LBB536:
				call	_imp_skipsymbol@PLT
		.LBE536:
		.LBE535:
		.LBB537:
  979             PROMPT("Move?")
				leal	-796(%ebp), %eax
				leal	.LC4@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-1052(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE537:
				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	PROMPT@PLT
				addl	$256, %esp
  980             -> AGAIN
				jmp	.L797
		.L848:
  981          %FINISH
  982          %IF NEXTSYMBOL='O' %START;     ! CASTLE
				cmpl	$79, %eax
				jne	.L849
				nop
		.L810:
  983             X = 0
				movl	$0, -1892(%ebp)
		.LBB540:
		.LBB541:
				call	_imp_skipsymbol@PLT
				leal	-1896(%ebp), %eax
				movl	%eax, -1836(%ebp)
		.LBE541:
		.LBE540:
		.LBB542:
		.LBB543:
				subl	$12, %esp
				pushl	-1836(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE543:
		.LBE542:
  984             SKIPSYMBOL; READSYMBOL(I)
  985             %IF I # '-' %THEN -> NO
				movl	-1896(%ebp), %eax
				cmpl	$45, %eax
				jne	.L850
				nop
		.L812:
				leal	-1896(%ebp), %eax
				movl	%eax, -1832(%ebp)
		.LBB544:
		.LBB545:
				subl	$12, %esp
				pushl	-1832(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE545:
		.LBE544:
				nop
				jmp	.L831
		.L851:
  986             READSYMBOL(I); -> NO %IF I#'O'
				movl	-1896(%ebp), %eax
				cmpl	$79, %eax
				jne	.L851
				nop
		.L815:
		.LBB546:
		.LBB547:
				call	_imp_nextsymbol@PLT
		.LBE547:
		.LBE546:
				nop
				jmp	.L831
		.L854:
		.LBB564:
				nop
				jmp	.L831
		.L855:
				nop
				jmp	.L831
		.L856:
		.LBE564:
		.LBB565:
				nop
				jmp	.L831
		.L857:
				nop
				jmp	.L831
		.L858:
		.LBE565:
		.LBB566:
				nop
				jmp	.L831
		.L859:
				nop
				jmp	.L831
		.L860:
		.LBE566:
		.LBB567:
				nop
				jmp	.L831
		.L863:
		.LBE567:
  987             %IF NEXTSYMBOL = '-' %START; ! QUEEN SIDE
				cmpl	$45, %eax
				jne	.L852
				nop
		.L818:
  988                X = 1; SKIPSYMBOL; SKIPSYMBOL
				movl	$1, -1892(%ebp)
		.LBB548:
		.LBB549:
				call	_imp_skipsymbol@PLT
		.LBE549:
		.LBE548:
		.LBB550:
		.LBB551:
				call	_imp_skipsymbol@PLT
				jmp	.L818
		.L852:
		.LBE551:
		.LBE550:
  989             %FINISH
  990             LM_SPEC = 6+X
				movl	-1892(%ebp), %eax
				addl	$6, %eax
				movl	-1904(%ebp), %esi
				movl	%eax, 8(%esi)
  991             LM_FR = 5<<4+1
				movb	$81, 4(%esi)
  992             LM_TO = 5<<4+1
				movb	$81, 5(%esi)
  993          %FINISHELSESTART
				jmp	.L819
		.L849:
  994             I = READM(X, Y);  I=READM(X0, Y0)
				subl	$8, %esp
				leal	-1872(%ebp), %eax
				leal	-1888(%ebp), %edx
				pushl	%edx
				leal	-1892(%ebp), %edx
				pushl	%edx
				movl	%eax, %ecx
				call	READM.6689
				addl	$16, %esp
				movl	%eax, -1896(%ebp)
				subl	$8, %esp
				leal	-1872(%ebp), %eax
				leal	-1880(%ebp), %edx
				pushl	%edx
				leal	-1884(%ebp), %edx
				pushl	%edx
				movl	%eax, %ecx
				call	READM.6689
				addl	$16, %esp
				movl	%eax, -1896(%ebp)
		.LBB552:
		.LBB553:
				call	_imp_nextsymbol@PLT
		.LBE553:
		.LBE552:
  995             %IF NEXTSYMBOL='(' %START
				cmpl	$40, %eax
				jne	.L853
		.LBB554:
		.LBB555:
				call	_imp_skipsymbol@PLT
				leal	-1876(%ebp), %eax
				movl	%eax, -1828(%ebp)
		.LBE555:
		.LBE554:
		.LBB556:
		.LBB557:
				subl	$12, %esp
				pushl	-1828(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE557:
		.LBE556:
		.LBB558:
		.LBB559:
				call	_imp_skipsymbol@PLT
		.LBE559:
		.LBE558:
				nop
		.L822:
		.LBB560:
  996                SKIPSYMBOL;  READSYMBOL(K); SKIPSYMBOL
  997                LM_SPEC = (K-'0')*(-1)
				movl	-1876(%ebp), %eax
				movl	$48, %edx
				subl	%eax, %edx
				movl	%edx, %eax
				movl	-1904(%ebp), %ecx
				movl	%eax, 8(%ecx)
				jmp	.L822
		.L853:
  998             %FINISH
  999
 1000             %UNLESS 0<X<9 %AND 0<X0<9 %AND %C
				movl	-1892(%ebp), %eax
				movl	%eax, -1864(%ebp)
				cmpl	$0, -1864(%ebp)
				jle	.L854
				cmpl	$8, -1864(%ebp)
				jg	.L855
		.LBE560:
		.LBB561:
				movl	-1884(%ebp), %eax
				movl	%eax, -1860(%ebp)
				cmpl	$0, -1860(%ebp)
				jle	.L856
				cmpl	$8, -1860(%ebp)
				jg	.L857
		.LBE561:
		.LBB562:
				movl	-1888(%ebp), %eax
				movl	%eax, -1856(%ebp)
				cmpl	$0, -1856(%ebp)
				jle	.L858
				cmpl	$8, -1856(%ebp)
				jg	.L859
		.LBE562:
		.LBB563:
				movl	-1880(%ebp), %eax
				movl	%eax, -1852(%ebp)
				cmpl	$0, -1852(%ebp)
				jle	.L860
				cmpl	$8, -1852(%ebp)
				jle	.L861
		.LBE563:
				jmp	.L831
		.L813:
		.L850:
				nop
		.L830:
		.LBE573:
 1001                     0<Y<9 %AND 0<Y0<9 %START
 1002 NO:            PRINTSTRING("INVALID MOVE - MY FORMAT IS D2D4
				leal	-796(%ebp), %eax
				leal	.LC7@GOTOFF(%ebx), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-540(%ebp), %eax
				leal	-796(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
				leal	-284(%ebp), %eax
				leal	-540(%ebp), %edx
				movl	$64, %ecx
				movl	%eax, %edi
				movl	%edx, %esi
				rep movsl
		.LBE568:
		.LBB569:
		.LBB570:
				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
		.L832:
				leal	-1896(%ebp), %eax
				movl	%eax, -1824(%ebp)
		.LBE570:
		.LBE569:
		.LBB571:
		.LBB572:
				subl	$12, %esp
				pushl	-1824(%ebp)
				call	_imp_readsymbol@PLT
				addl	$16, %esp
		.LBE572:
		.LBE571:
 1003 ")
 1004                %CYCLE
 1005                   READSYMBOL(I)
 1006                   %EXIT %IF I=NL
				movl	-1896(%ebp), %eax
				cmpl	$10, %eax
				je	.L862
				nop
		.L834:
				nop
		.L835:
 1007                %REPEAT
				jmp	.L832
		.L862:
 1008                ->AGAIN
				jmp	.L797
		.L861:
		.LBB573:
 1009             %FINISH
 1010
 1011             !!
 1012             LM_FR = X<<4+Y
				movl	-1892(%ebp), %eax
				sall	$4, %eax
				movl	%eax, %edx
				movl	-1888(%ebp), %eax
				addl	%edx, %eax
				movl	-1904(%ebp), %edi
				movb	%al, 4(%edi)
 1013             LM_TO = X0<<4+Y0
				movl	-1884(%ebp), %eax
				sall	$4, %eax
				movl	%eax, %edx
				movl	-1880(%ebp), %eax
				addl	%edx, %eax
				movb	%al, 5(%edi)
		.L819:
 1014          %FINISH
 1015          MMOVE_L == LM
				movl	-1904(%ebp), %edi
				movl	%edi, %eax
				movl	%eax, 16(%edi)
				subl	$12, %esp
				pushl	-1868(%ebp)
				movl	%edi, %ecx
				call	CHECKYOURMOVE.6158
				addl	$16, %esp
				testl	%eax, %eax
				je	.L863
				nop
		.L837:
		.LBB574:
		.LBB575:
				call	_imp_skipsymbol@PLT
		.LBE575:
		.LBE574:
 1016          %IF CHECK YOUR MOVE(LIST) = 0 %THEN ->NO
				nop
		.L831:
		.LBB568:
 1017          SKIPSYMBOL
 1018          RELEASE CHAIN(LIST)
				subl	$12, %esp
				pushl	-1868(%ebp)
				movl	-1904(%ebp), %ecx
				call	RELEASECHAIN.6196
				addl	$16, %esp
 1019       %END
				nop
				movl	-28(%ebp), %eax
				xorl	%gs:20, %eax
				je	.L839
				call	__stack_chk_fail_local
		.L839:
				leal	-12(%ebp), %esp
				popl	%ebx
				popl	%esi
				popl	%edi
				popl	%ebp
				ret
		.LFE210:
				.comm	BRD.6038,1024,32
				.comm	BRDOLD.6040,1024,32
				.comm	PINX.6071,128,32
				.comm	PINY.6073,128,32
				.comm	KMOVE.6102,3,1
				.comm	KCAS.6104,12,4
				.comm	PDEPTH.6118,4,4
				.comm	MON.6119,4,4
				.comm	TIME2.6113,8,8
				.comm	TIME.6112,8,8
				.data
				.align 4
		NO.6115:
				.long	1
				.comm	PINREMOVE.6123,4,4
				.comm	LASTCHK.6122,4,4
				.comm	CHK.6121,4,4
				.comm	JUSTONEPLY.6120,4,4
				.comm	XDEPTH.6117,4,4
				.comm	SCOREA.6116,4,4
				.align 8
		TIMTT.6114:
				.long	0
				.long	1076756480
				.comm	PY.6081,4,4
				.comm	PX.6080,4,4
				.comm	PINPT.6079,4,4
				.section	.rodata
				.align 4
		__PRETTY_FUNCTION__.5621:
				.string	"_imp_SELECTINPUT"
				.data
				.align 4
		KCASCH.6389:
				.long	1
				.long	0
				.long	8
				.section	.data.rel.local,"aw",@progbits
				.align 4
		MOVE.6394:
				.long	.L445
				.long	.L451
				.long	.L458
				.long	.L474
				.long	.L459
				.long	.L487
				.section	.rodata
				.align 4
		__PRETTY_FUNCTION__.5625:
				.string	"_imp_SELECTOUTPUT"
				.section	.text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
				.globl	__x86.get_pc_thunk.ax
				.hidden	__x86.get_pc_thunk.ax
		__x86.get_pc_thunk.ax:
		.LFB212:
				movl	(%esp), %eax
				ret
		.LFE212:
				.section	.text.__x86.get_pc_thunk.dx,"axG",@progbits,__x86.get_pc_thunk.dx,comdat
				.globl	__x86.get_pc_thunk.dx
				.hidden	__x86.get_pc_thunk.dx
		__x86.get_pc_thunk.dx:
		.LFB213:
				movl	(%esp), %edx
				ret
		.LFE213:
				.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:
		.LFB214:
				movl	(%esp), %ebx
				ret
		.LFE214:
		.Letext0:
 1020 %ENDOFPROGRAM
?CHK unused
?BRDOLD unused
?PLYWIDTH unused
  879 Statements compiled
