         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
				.option nopic
		.Ltext0:
				.align	1
		RELEASECHAIN.6158:
		.LFB186:
		.LVL622:
				add	sp,sp,-2032
				sd	ra,2024(sp)
				sd	s0,2016(sp)
				sd	s1,2008(sp)
				sd	s2,2000(sp)
				sd	s3,1992(sp)
				sd	s4,1984(sp)
				sd	s5,1976(sp)
				sd	s6,1968(sp)
				sd	s7,1960(sp)
				sd	s8,1952(sp)
				sd	s9,1944(sp)
				sd	s10,1936(sp)
				sd	s11,1928(sp)
				li	t1,-65536
				add	t1,t1,-1488
				add	sp,sp,t1
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				li	s6,69632
				add	a4,s6,-712
				add	a3,sp,16
				add	a4,a4,a3
				sd	a5,0(a4)
				li	s1,-65536
				add	a5,s6,-704
				add	a5,a5,a3
				add	s0,a5,s1
				add	a5,s6,-592
				add	a5,a5,a3
				sd	a5,1504(s0)
    2       %CONSTINTEGER BIT = X'80000000'
				call	_imp_initialise
		.LVL623:
    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)
   14       %OWN %RECORD(ROWF)%ARRAY BRDOLD(1:8)
   15       %INTEGERARRAY VAL(-6:6)
   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)
   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)
   40       %RECORD (SQF) %NAME SQ
   41       !!
   42       %OWNINTEGERARRAY PINX(1:32) = 0(32)
   43       %OWNINTEGERARRAY PINY(1:32) = 0(32)
   44       %INTEGERARRAY PINDX, PINPY(1:32)
   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)
   50       %CONSTINTEGERARRAY BIT VAL(1:6)=256,64,32,8,2,1
				li	a5,256
				sw	a5,1144(s0)
				li	s3,64
				sw	s3,1148(s0)
				li	a5,32
				sw	a5,1152(s0)
				li	s4,8
				sw	s4,1156(s0)
				li	s2,2
				sw	s2,1160(s0)
				li	s5,1
				sw	s5,1164(s0)
   51       !!
   52       %CONSTINTEGERARRAY PAWN 2D(9:72) = %C
				li	a2,256
				lui	a1,%hi(.LANCHOR2+216)
				addi	a1,a1,%lo(.LANCHOR2+216)
				add	a0,s0,888
				call	memcpy
		.LVL624:
   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
				sb	s2,1488(s0)
				li	a5,3
				sb	a5,1489(s0)
				li	a5,6
				sb	a5,1490(s0)
				li	a5,7
				sb	a5,1491(s0)
				li	a5,58
				sb	a5,1492(s0)
				li	a5,59
				sb	a5,1493(s0)
				li	a5,62
				sb	a5,1494(s0)
				li	a5,63
				sb	a5,1495(s0)
				sb	s5,1496(s0)
				sb	s4,1497(s0)
				li	a5,57
				sb	a5,1498(s0)
				sb	s3,1499(s0)
   63          2, 3, 6, 7, 58, 59, 62, 63, 1, 8, 57, 64
   64       %CONSTINTEGERARRAY POSP(1:12) = %C
				li	a5,-2
				sw	a5,840(s0)
				li	a4,-3
				sw	a4,844(s0)
				sw	a4,848(s0)
				sw	a5,852(s0)
				sw	s2,856(s0)
				li	a5,3
				sw	a5,860(s0)
				sw	a5,864(s0)
				sw	s2,868(s0)
				li	a5,-4
				sw	a5,872(s0)
				sw	a5,876(s0)
				li	a5,4
				sw	a5,880(s0)
				sw	a5,884(s0)
   65          -2, -3, -3, -2, 2, 3, 3, 2, -4, -4, 4, 4
   66       %CONSTINTEGERARRAY POSPP(1:12) = %C
				li	a5,-7
				sw	a5,792(s0)
				sw	a5,796(s0)
				sw	a5,800(s0)
				sw	a5,804(s0)
				li	a5,7
				sw	a5,808(s0)
				sw	a5,812(s0)
				sw	a5,816(s0)
				sw	a5,820(s0)
				li	a5,-10
				sw	a5,824(s0)
				sw	a5,828(s0)
				li	a5,10
				sw	a5,832(s0)
				sw	a5,836(s0)
   67          -7(4), 7(4), -10(2), 10(2)
   68       !!
   69       %CONSTINTEGERARRAY NOLEG MOVE(-1:1) = -24000, 0, 24000
				li	a5,-24576
				addw	a5,a5,576
				sw	a5,1476(s0)
				sw	zero,1480(s0)
				li	a5,24576
				addw	a5,a5,-576
				sw	a5,1484(s0)
		.LVL625:
				add	a5,s6,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a5,a5,s1
				add	a5,a5,1528
				add	a4,s6,-712
				add	a3,sp,16
				add	a4,a3,a4
		.LVL626:
		.L384:
		.LBB641:
   70       !!
   71       %OWNBYTEINTEGERARRAY KMOVE(-1:1) = 0(3)
   72       %OWNINTEGERARRAY KCAS(-1:1) = 0(3)
   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
  104          LISTA(I)_L == LISTA(I+1)
				sd	a5,-16(a5)
		.LDL21:
				add	a5,a5,16
  105       %REPEAT
  106       FREELIST == LISTA(0)
				li	s0,-65536
				li	s1,69632
				add	a5,s1,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a4,a5,s0
				add	a5,s0,1512
				add	a3,s1,-704
				add	a2,sp,16
				add	a3,a3,a2
				add	a5,a3,a5
				sd	a5,784(a4)
		.LVL627:
		.LBB642:
		.LBB643:
				lui	a5,%hi(_imp_InStream)
				li	a4,1
				sw	a4,%lo(_imp_InStream)(a5)
				lui	a5,%hi(_imp_infile+296)
				ld	a4,%lo(_imp_infile+296)(a5)
				lui	a5,%hi(_imp_InFile)
				sd	a4,%lo(_imp_InFile)(a5)
				lui	a0,%hi(.LANCHOR2+472)
				addi	a0,a0,%lo(.LANCHOR2+472)
				call	check_instream
		.LVL628:
				add	a5,s0,-272
				add	a4,s1,-704
				add	a3,sp,16
				add	a4,a4,a3
				add	a5,a4,a5
				add	s1,a5,1696
				add	s0,a5,1748
		.LVL629:
		.L386:
		.LBE643:
		.LBE642:
  107       !!
  108       SELECTINPUT(1)
				bne	a5,a4,.L384
		.L385:
		.LBE641:
  109       %CYCLE I = -6, 1, 6
  110          READ(VAL(I))
				mv	a0,s1
				call	_imp_readint
		.LVL630:
		.LDL22:
				add	s1,s1,4
  111       %REPEAT
  112       READ(PDEPTH)
				bne	s1,s0,.L386
		.L387:
				lui	a0,%hi(PDEPTH.6080)
				addi	a0,a0,%lo(PDEPTH.6080)
				call	_imp_readint
		.LVL631:
  113       READ(MON);  READ(PLAY)
				lui	a0,%hi(MON.6081)
				addi	a0,a0,%lo(MON.6081)
				call	_imp_readint
		.LVL632:
  114       I = 1
				li	a0,-69632
				add	a0,a0,964
				li	s2,69632
				add	a5,s2,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_readint
		.LVL633:
				lui	s1,%hi(.LANCHOR0)
				addi	s1,s1,%lo(.LANCHOR0)
				li	s0,0
				mv	s2,s1
		.LVL635:
		.L388:
  115       %CYCLE Y = 1,1,8
  116          %CYCLE X = 1,1,8
  117             SQ == BRD(Y)_R(X)
  118             READ(SQ_P)
				li	s3,64
		.LVL634:
		.L390:
				addw	s4,s0,8
				mv	a0,s2
				call	_imp_readint
		.LVL636:
				bne	s0,s3,.L390
		.L389:
		.LVL641:
		.LBB644:
		.LBB645:
				lui	a5,%hi(_imp_InStream)
				sw	zero,%lo(_imp_InStream)(a5)
				lui	a5,%hi(_imp_infile+8)
				ld	a4,%lo(_imp_infile+8)(a5)
		.LVL642:
				lui	a5,%hi(_imp_InFile)
				sd	a4,%lo(_imp_InFile)(a5)
				lui	s3,%hi(.LANCHOR2)
				addi	s3,s3,%lo(.LANCHOR2)
				add	a0,s3,472
				call	check_instream
		.LVL643:
		.LBE645:
		.LBE644:
  119             SQI(I)_SQ == SQ
				li	a5,-65536
				add	a4,s2,-704
				add	a3,sp,16
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,8(sp)
				sext.w	a5,s0
				add	a4,a5,68
				sll	a4,a4,3
				ld	a3,8(sp)
				add	a4,a3,a4
				sd	s2,-272(a4)
				bne	s0,s4,.L388
		.LDL24:
		.LDL25:
		.LVL640:
				add	s1,s1,128
				sext.w	s0,s0
  120             PT(I)_P == SQ_P; I = I+1
				add	a5,a5,4
				sll	a5,a5,3
				add	a5,a3,a5
				sd	s2,-272(a5)
		.LDL23:
		.LVL637:
				add	s2,s2,16
		.LVL638:
				addw	s0,s0,1
		.LVL639:
  121          %REPEAT
  122       %REPEAT
  123       SELECT INPUT(0)
  124       MMOVE_HOLD = 0;  MOVE_HOLD = 0
  125       LM_SCORE = 0;  LM_CHK = 0
				li	s1,-69632
				sw	zero,304(sp)
				li	a5,-65536
				li	a4,4096
				add	a3,a4,-968
				add	a2,sp,16
				add	a3,a3,a2
				sw	zero,0(a3)
  126       MMOVE_L == LM
				add	a3,a4,-964
				add	a3,a3,a2
				sw	zero,0(a3)
				add	a5,a5,-272
				li	s5,69632
				add	a3,s5,-704
				add	a3,a3,a2
				add	a5,a3,a5
				add	a3,a4,-960
				add	a3,a3,a2
				sd	a5,0(a3)
		.LBB646:
  127       PRINTSTRING("Version 2.5
				add	a5,a4,-704
				add	a5,a5,a2
				add	s0,a5,-528
		.LVL644:
				li	a2,256
				add	a1,s3,496
				mv	a0,s0
				call	memcpy
		.LVL645:
				add	s4,sp,320
				li	a2,256
				mv	a1,s0
				mv	a0,s4
				call	memcpy
		.LVL646:
				add	s2,sp,1088
		.LVL647:
				li	a2,256
				mv	a1,s4
				mv	a0,s2
				call	memcpy
		.LVL648:
		.LBE646:
		.LBB647:
		.LBB648:
				add	s4,sp,16
				li	a2,256
				mv	a1,s2
				mv	a0,s4
				call	memcpy
		.LVL649:
				add	s1,s1,704
				add	a5,s5,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	s2,a5,s1
				mv	a0,s2
				call	_imp_printstring
		.LVL650:
		.LBE648:
		.LBE647:
		.LBB649:
  128 HOW DIFFICULT A GAME DO YOU WANT?
  129       2 = NORMAL STRENGTH, 3 = MORE DIFFICULT
  130 ")
  131       PROMPT("2-4?")
				li	a2,256
				add	a1,s3,752
				mv	a0,s0
				call	memcpy
		.LVL651:
				add	s1,sp,576
				li	a2,256
				mv	a1,s0
				mv	a0,s1
				call	memcpy
		.LVL652:
		.LBE649:
				li	a2,256
				mv	a1,s1
				mv	a0,s4
				call	memcpy
		.LVL653:
				mv	a0,s2
				call	PROMPT
		.LVL654:
  132       READ(PDEPTH); SKIPSYMBOL
				lui	a0,%hi(PDEPTH.6080)
				addi	a0,a0,%lo(PDEPTH.6080)
				call	_imp_readint
		.LVL655:
		.LBB650:
		.LBB651:
				call	_imp_skipsymbol
		.LVL656:
		.LBE651:
		.LBE650:
		.LBB652:
  133       PROMPT("Move?")
				li	a2,256
				add	a1,s3,1008
				mv	a0,s0
				call	memcpy
		.LVL657:
				add	s1,sp,832
				li	a2,256
				mv	a1,s0
				mv	a0,s1
				call	memcpy
		.LVL658:
		.LBE652:
				li	a2,256
				mv	a1,s1
				mv	a0,s4
				call	memcpy
		.LVL659:
				mv	a0,s2
				call	PROMPT
		.LVL660:
  134       PRINTBOARD
				call	PRINTBOARD.6116
		.LVL661:
  135       !!
  136       !!
  137       !! N B     WHITE PIECES ARE -VE, BLACK ARE +VE
  138       !!
  139       !**** MAIN LOOP
  140          TIME2 = CPUTIME
				call	CPUTIME
		.LVL662:
				lui	a5,%hi(TIME2.6075)
				fsd	fa0,%lo(TIME2.6075)(a5)
		.LBB653:
		.LBB654:
  141       %CYCLE
  142          %IF PLAY = 1 %START
				li	a5,-69632
				li	a4,69632
				add	a4,a4,-704
				add	a3,sp,16
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,8(sp)
				lw	a4,964(a5)
				li	a5,1
				beq	a4,a5,.L432
		.L393:
		.LBB739:
		.LBB732:
  143             MOVE_L == RECORD(N PLY(-1, 0, MOVE))
				li	s1,-69632
				add	s0,s1,992
				li	s2,69632
				add	a5,s2,-704
				add	a5,a5,a3
				add	s0,a5,s0
				mv	t2,s6
				mv	a2,s0
				li	a1,0
				li	a0,-1
				call	NPLY.6091
		.LVL663:
				add	a5,s2,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a5,a5,s1
				sd	a5,8(sp)
				sd	a0,992(a5)
  144             TELL(MOVE_L, -1)
				li	a1,-1
				call	TELL.6114
		.LVL664:
  145             I =CHANGE BOARD(MOVE)
				mv	a0,s0
				call	CHANGEBOARD.6106
		.LVL665:
  146          %FINISHELSESTART
				j	.L394
		.L433:
		.LBB734:
		.LBB731:
  147             YOURMOVE
  148             BURP(MMOVE, -1)
				add	s11,s6,16
		.LBB733:
		.LBB730:
		.LBB666:
				li	a1,-1
				mv	a0,s11
				call	BURP.6111
		.LVL728:
		.L394:
  149          %FINISH
  150          TIME = CPUTIME
				call	CPUTIME
		.LVL729:
				lui	a5,%hi(TIME.6074)
				fsd	fa0,%lo(TIME.6074)(a5)
  151          MOVE_L == RECORD(N PLY(+1, 0, MMOVE_L))
				li	s0,69632
				add	a5,s0,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a5,a5,s9
				mv	t2,s6
				ld	a2,-256(a5)
				li	a1,0
				li	a0,1
				call	NPLY.6091
		.LVL730:
				li	a5,-69632
				sd	a0,304(sp)
  152          BURP(MOVE, +1)
				add	a5,a5,992
				li	a1,1
				add	a4,s0,-704
				add	a3,sp,16
				add	a4,a4,a3
				add	a0,a4,a5
				call	BURP.6111
		.LVL731:
  153          PRINTBOARD
				call	PRINTBOARD.6116
		.LVL732:
		.LBB735:
		.LBB736:
				lui	s3,%hi(_imp_OutStream)
				li	a5,2
				sw	a5,%lo(_imp_OutStream)(s3)
				lui	s2,%hi(_imp_OutFile)
				lui	s0,%hi(_imp_outfile)
				addi	s0,s0,%lo(_imp_outfile)
				ld	a5,584(s0)
				sd	a5,%lo(_imp_OutFile)(s2)
				add	s1,s4,-1152
				mv	a0,s1
				call	check_outstream
		.LVL733:
		.LBE736:
		.LBE735:
  154          SELECT OUTPUT(2); PRINTBOARD; SELECT OUTPUT(0)
  155          NO = NO+1
				call	PRINTBOARD.6116
		.LVL734:
		.LBB737:
		.LBB738:
				sw	zero,%lo(_imp_OutStream)(s3)
				ld	a5,8(s0)
				sd	a5,%lo(_imp_OutFile)(s2)
				mv	a0,s1
				call	check_outstream
		.LVL735:
		.LBE738:
		.LBE737:
				lui	a4,%hi(NO.6077)
				lw	a5,%lo(NO.6077)(a4)
				addw	a5,a5,1
				sw	a5,%lo(NO.6077)(a4)
		.L392:
  156       %REPEAT
  157
  158       !!
  159       %ROUTINE RELEASE CHAIN(%RECORD(LISTF)%NAME L)
		.LVL0:
				mv	a4,a0
				j	.L2
		.LVL1:
		.L4:
  160          {%RECORDSPEC L(LISTF)
  161          %RECORD(LISTF)%NAME L2
  162          L2 == L
  163          %WHILE ADDR(L_L) # 0 %CYCLE
  164             L == L_L;                   ! GO TO BOTTOM OF CHAIN
				mv	a4,a5
		.LVL2:
		.L2:
				ld	a5,0(a4)
				bnez	a5,.L4
		.L3:
  165          %REPEAT
  166          L_L == FREELIST
				ld	a5,1056(t2)
				sd	a5,0(a4)
  167          FREELIST == RECORD(ADDR(L2))
				sd	a0,1056(t2)
  168       %END
  169       !!
				ret
		.LFE186:
				.align	1
		CHANGEBOARD.6106:
		.LFB196:
  170       %INTEGERFN N PLY(%INTEGER WHICH, DEPTH, %RECORD(LISTF)%NAME CHAIN)
		.LVL536:
				add	sp,sp,-2032
				sd	ra,2024(sp)
				sd	s0,2016(sp)
				sd	s1,2008(sp)
				sd	s2,2000(sp)
				sd	s3,1992(sp)
				sd	s4,1984(sp)
				sd	s5,1976(sp)
				sd	s6,1968(sp)
				sd	s7,1960(sp)
				sd	s8,1952(sp)
				sd	s9,1944(sp)
				sd	s10,1936(sp)
				sd	s11,1928(sp)
				add	sp,sp,-1136
				mv	s7,a0
				mv	s10,a2
				sd	t2,16(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				li	a3,4096
				add	a4,a3,-1096
				add	a2,sp,48
		.LVL537:
				add	a4,a4,a2
				sd	a5,0(a4)
  171          %INTEGER I, XWHICH, J, SWIDTH, CI, FLAG
  172          %RECORD(LISTF{QHF})%NAME BPT
  173         %RECORD(LISTF{QHF})%ARRAY B(1:40)
  174         %RECORD(LISTF)%NAME LIST, LISTX
  175
  176          %CONSTINTEGERARRAY XWIDTH(0:10) = 8, 8, 3(9)
				li	a5,-4096
				add	a4,a3,-1088
				add	a4,a4,a2
				add	a5,a4,a5
				sd	a5,8(sp)
				li	a5,8
				ld	a4,8(sp)
				sw	a5,1608(a4)
				sw	a5,1612(a4)
				li	a5,3
				sw	a5,1616(a4)
				sw	a5,1620(a4)
				sw	a5,1624(a4)
				sw	a5,1628(a4)
				sw	a5,1632(a4)
				sw	a5,1636(a4)
				sw	a5,1640(a4)
				sw	a5,1644(a4)
				sw	a5,1648(a4)
  177          !!
  178          XDEPTH = DEPTH;                ! HOLD FOR GLOBAL USE
				lui	a5,%hi(XDEPTH.6079)
				sw	a1,%lo(XDEPTH.6079)(a5)
  179          DEPTH = DEPTH+1
				addw	s0,a1,1
				sext.w	s3,s0
		.LVL538:
  180          SWIDTH = XWIDTH(DEPTH)
				sll	a5,s3,2
				add	a5,a4,a5
				lw	s4,1608(a5)
		.LVL539:
  181          %IF DEPTH=PDEPTH %THEN SWIDTH=1
				lui	a5,%hi(PDEPTH.6080)
				lw	a5,%lo(PDEPTH.6080)(a5)
				beq	a5,s3,.L372
		.LVL540:
		.L340:
  182          LAST CHK = CHAIN_CHK
				lw	a4,12(s10)
				lui	a5,%hi(LASTCHK.6084)
				sw	a4,%lo(LASTCHK.6084)(a5)
		.LVL541:
		.LBB514:
		.LBB515:
				li	s4,1
		.LVL549:
				j	.L340
		.LVL550:
		.L365:
  183          LIST == RECORD(ONE PLY(WHICH, SWIDTH))
				mv	s2,a0
		.LVL545:
  184          I = 1
				li	s0,1
		.LVL547:
		.LBB516:
		.LBB517:
				lui	a5,%hi(.LANCHOR2)
				addi	s5,a5,%lo(.LANCHOR2)
				add	a5,s5,-1152
				sd	a5,8(sp)
		.LBE517:
		.LBE516:
  185          B(1)_L == RECORD(0)
				li	a4,4096
				add	a5,a4,-1736
				add	a3,sp,48
				add	a5,a5,a3
				sd	zero,0(a5)
		.LVL546:
  186          FLAG = 0
				li	s6,0
  187          %WHILE ADDR(LIST)#0 %CYCLE
  188             BPT == B(I)
				beqz	a0,.L341
				beqz	s2,.L343
		.LVL552:
		.L342:
				mv	s11,s1
  189             BPT_L == LIST
				sd	s2,0(s1)
  190             LIST == LIST_L
				ld	s2,0(s2)
		.LVL553:
  191             %IF MON#0 %START
				lui	a5,%hi(MON.6081)
				lw	a5,%lo(MON.6081)(a5)
				bnez	a5,.L373
		.L344:
  192                SELECT OUTPUT(2)
  193                SPACES(DEPTH*3)
				sllw	a1,s0,1
				addw	a5,a1,s0
				sd	a5,24(sp)
				add	a5,a4,-1736
				add	s1,a3,a5
  194                WRITE(DEPTH, 1);  SPACES(2);   PRINTMOVE(BPT_L)
				li	a1,1
				mv	a0,s3
				call	_imp_writeint
		.LVL567:
		.LBB529:
		.LBB530:
				li	a0,2
				call	_imp_spaces
		.LVL568:
		.LBE530:
		.LBE529:
  195                %IF LAST CHK#0 %THEN PRINTSTRING(" FORCED")
				lui	a5,%hi(LASTCHK.6084)
				lw	a5,%lo(LASTCHK.6084)(a5)
				bnez	a5,.L375
		.L345:
		.LBB531:
		.LBB532:
				call	_imp_newline
		.LVL570:
		.LBE532:
		.LBE531:
		.LBB533:
		.LBB534:
				lui	a5,%hi(_imp_OutStream)
				sw	zero,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+8)
				ld	a4,%lo(_imp_outfile+8)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				ld	a0,8(sp)
				call	check_outstream
		.LVL571:
				j	.L344
		.LVL572:
		.L375:
		.LBE534:
		.LBE533:
		.LBB535:
  196                NEWLINE
				ld	a0,0(s1)
				call	PRINTMOVE.6118
		.LVL569:
				li	a2,256
				add	a1,s5,-296
				add	a0,sp,1640
				call	memcpy
		.LVL573:
				li	s8,-4096
				add	s9,sp,616
				li	a2,256
				add	a1,sp,1640
				mv	a0,s9
				call	memcpy
		.LVL574:
				li	a2,256
				mv	a1,s9
				add	a0,sp,1896
				call	memcpy
		.LVL575:
		.LBE535:
		.LBB536:
		.LBB537:
				li	a2,256
				add	a1,sp,1896
				add	a0,sp,304
				call	memcpy
		.LVL576:
				add	a0,s8,1344
				li	a5,4096
				add	a5,a5,-1088
				add	a4,sp,48
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_printstring
		.LVL577:
				j	.L345
		.LVL578:
		.L374:
		.LBE537:
		.LBE536:
  197                SELECT OUTPUT(0)
  198             %FINISH
  199             I = I+1
				addw	s0,s0,1
		.LVL554:
  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'
  203             %IF DEPTH < PDEPTH %START
				lui	a5,%hi(PDEPTH.6080)
				lw	a5,%lo(PDEPTH.6080)(a5)
				bgt	a5,s3,.L374
		.L346:
		.LVL555:
		.L348:
  204
  205                CI = CHANGE BOARD(BPT)
				mv	a0,s11
				call	CHANGEBOARD.6106
		.LVL579:
  206                LISTX == RECORD(N PLY(XWHICH, DEPTH, BPT_L))
				ld	t2,16(sp)
				ld	a2,0(s11)
				mv	a1,s3
				xor	a0,s7,-2
				call	NPLY.6091
		.LVL580:
				mv	s9,a0
  207                LAST CHK = CHAIN_CHK;    ! REALLY FOR MONITORING
				lw	a4,12(s10)
				lui	a5,%hi(LASTCHK.6084)
				sw	a4,%lo(LASTCHK.6084)(a5)
  208                RESTORE BOARD(BPT)
				mv	a0,s11
				call	RESTOREBOARD.6108
		.LVL581:
  209                %UNLESS ADDR(LISTX)=0 %START
				bnez	s9,.L376
		.L347:
  210                   BPT_L_SCORE = LISTX_SCORE;    ! GET BEST OPP PIECE SCORE
				ld	a5,0(s11)
				lw	a4,8(s9)
				sw	a4,8(a5)
  211                   RELEASE CHAIN(LISTX); FLAG = FLAG+1
				ld	t2,16(sp)
				mv	a0,s9
				call	RELEASECHAIN.6158
		.LVL582:
  212                %FINISHELSESTART
				addw	s6,s6,1
		.LVL583:
				j	.L348
		.L350:
		.LVL584:
		.L353:
  213                   BPT_L_SCORE = NO LEG MOVE(WHICH)
				addw	a5,s7,1
				add	a5,a5,436
				sll	a5,a5,2
				add	a5,s8,a5
				sd	a5,40(sp)
				j	.L342
		.LVL548:
		.L372:
				ld	a5,0(s11)
				ld	a4,40(sp)
				lw	a4,4(a4)
				sw	a4,8(a5)
				j	.L348
		.L376:
  214                   ! %IF BPT_L_CHK = 0 %THEN BPT_L_SCORE = 0; ! ????
  215                %FINISH
  216             %FINISH
  217          %IF I > SWIDTH %START
				bge	s4,s0,.L349
  218             %IF FLAG # 0 %OR I = 2 %THEN %EXIT;   ! MOVE FOUND
				bnez	s6,.L353
  219             %IF MON # 0 %START
				li	a5,2
				beq	s0,a5,.L351
		.L352:
				lui	a5,%hi(MON.6081)
				lw	a5,%lo(MON.6081)(a5)
				beqz	a5,.L365
		.LVL556:
		.LBB519:
		.LBB520:
				li	a5,2
				lui	a4,%hi(_imp_OutStream)
				sw	a5,%lo(_imp_OutStream)(a4)
				lui	s11,%hi(_imp_OutFile)
				lui	s8,%hi(_imp_outfile)
				addi	s8,s8,%lo(_imp_outfile)
				ld	a5,584(s8)
				sd	a5,%lo(_imp_OutFile)(s11)
				ld	a0,8(sp)
				call	check_outstream
		.LVL557:
		.LBE520:
		.LBE519:
		.LBB521:
  220                SELECT OUTPUT(2)
  221                PRINTSTRING("FORCED TO INCREASE PLYWIDTH
				li	a2,256
				add	a1,s5,-40
				add	a5,sp,1640
				mv	a0,a5
				call	memcpy
		.LVL558:
				li	s9,-4096
				add	a5,sp,872
				li	a2,256
				add	a1,sp,1640
				sd	a5,32(sp)
				mv	a0,a5
				call	memcpy
		.LVL559:
				li	a2,256
				ld	a1,32(sp)
				li	a5,4096
				add	a3,a5,-1992
				add	a5,sp,48
				add	a3,a3,a5
				mv	a0,a3
				call	memcpy
		.LVL560:
		.LBE521:
		.LBB522:
		.LBB523:
				li	a2,256
				li	a5,4096
				add	a1,a5,-1992
				add	a5,sp,48
				add	a1,a1,a5
				add	a0,sp,304
				call	memcpy
		.LVL561:
				add	a0,s9,1344
				li	a5,4096
				add	a5,a5,-1088
				add	a4,sp,48
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_printstring
		.LVL562:
		.LBE523:
		.LBE522:
		.LBB524:
		.LBB525:
				lui	a4,%hi(_imp_OutStream)
				sw	zero,%lo(_imp_OutStream)(a4)
				ld	a5,8(s8)
				sd	a5,%lo(_imp_OutFile)(s11)
				ld	a0,8(sp)
				call	check_outstream
		.LVL563:
				j	.L349
		.LVL564:
		.L373:
		.LBE525:
		.LBE524:
		.LBB526:
		.LBB518:
				lui	a5,%hi(_imp_OutStream)
				li	a4,2
				sw	a4,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+584)
				ld	a4,%lo(_imp_outfile+584)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				ld	a0,8(sp)
				call	check_outstream
		.LVL565:
		.LBE518:
		.LBE526:
		.LBB527:
		.LBB528:
				ld	a0,24(sp)
				call	_imp_spaces
		.LVL566:
		.LBE528:
		.LBE527:
  222 ")
  223                SELECT OUTPUT(0)
  224             %FINISH
				mv	s6,a5
		.LVL551:
		.L349:
				add	s1,s1,16
  225                   !! IF NO LEGAL MOVE, SEARCH ALL MOVES ON THIS LEVEL
  226          %FINISH
  227          %REPEAT
  228          RELEASE CHAIN(LIST) %IF ADDR(LIST)#0
				beqz	s2,.L343
		.LVL585:
		.L363:
				bnez	s2,.L363
		.LVL609:
		.L362:
  229          LIST == RECORD(0)
				ld	t2,16(sp)
				mv	a0,s2
				call	RELEASECHAIN.6158
		.LVL586:
		.L343:
  230          %IF I = 1 %THEN %RESULT = 0;   ! NO LEGAL MOVE
				li	a5,1
				beq	s0,a5,.L341
		.L354:
  231          %IF I = 2 %THEN %RESULT = ADDR(B(1)_L); ! SINGLE RESULT
				li	a0,0
				li	a5,2
				beq	s0,a5,.L362
		.L355:
		.LVL587:
		.LBB538:
		.LBB539:
  232          %CYCLE J = 1, 1, I-1
				li	a5,4096
				add	a5,a5,-1736
				add	a4,sp,48
				add	a5,a5,a4
				lw	a0,0(a5)
				j	.L341
		.LVL610:
		.L378:
  233             B(J)_L_L == LIST
				ld	a3,0(a5)
				sd	a0,0(a3)
				add	a5,a5,16
  234             LIST == B(J)_L;             ! STACK THE RESULTS
				addw	a5,s0,-2
		.LVL588:
		.LBE539:
				sll	a4,a5,32
				bltz	a4,.L377
		.LVL589:
		.L356:
				ld	a0,-16(a5)
		.LVL591:
				lui	a5,%hi(_imp_current_file)
		.LVL598:
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L357
				add	a0,sp,1384
				call	_imp_c2istr
		.LVL599:
		.L358:
				lui	a5,%hi(_imp_current_line)
				lw	s2,%lo(_imp_current_line)(a5)
				bnez	s2,.L359
				li	s2,234
		.L359:
				lui	a1,%hi(.LC33)
				addi	a1,a1,%lo(.LC33)
				add	a0,sp,1640
				call	_imp_c2istr
		.LVL600:
				li	s1,-4096
				li	a2,256
				add	a1,sp,1384
				add	a0,sp,304
				call	memcpy
		.LVL601:
				li	a2,256
				add	a1,sp,1640
				add	a0,sp,48
				call	memcpy
		.LVL602:
				add	a2,s1,1088
				add	a0,s1,1344
				li	a5,0
				li	a4,1
				li	a3,5
				li	s1,4096
				add	a1,s1,-1088
				add	a6,sp,48
				add	a1,a1,a6
				add	a2,a1,a2
				mv	a1,s2
				add	s1,s1,-1088
				add	s1,s1,a6
				add	a0,s1,a0
				call	_signal_event
		.LVL603:
				j	.L356
		.L357:
		.LBB540:
				li	a2,256
				lui	a1,%hi(.LANCHOR1)
				addi	a1,a1,%lo(.LANCHOR1)
				add	a0,sp,1640
				call	memcpy
		.LVL604:
				li	a2,256
				add	a1,sp,1640
				add	a0,sp,1128
				call	memcpy
		.LVL605:
		.LBE540:
				li	a2,256
				add	a1,sp,1128
				add	a0,sp,1384
				call	memcpy
		.LVL606:
				j	.L358
		.LVL607:
		.L368:
  235          %REPEAT
  236          %RESULT = SORT AND PRUNE(LIST, 1, WHICH)
				ld	t2,16(sp)
				mv	a2,s7
				li	a1,1
				call	SORTANDPRUNE.6095
		.LVL593:
		.L341:
  237                                         ! GET THE 'BEST' RESULT
				li	a5,1
				beq	s0,a5,.L368
				li	a3,4096
				add	a5,a3,-1736
				add	a4,sp,48
				add	a5,a4,a5
				addw	a4,s0,-2
				sll	a4,a4,32
				srl	a4,a4,32
				sll	a4,a4,4
				add	a3,a3,-1720
				add	a2,sp,48
				add	a3,a3,a2
				add	a4,a4,a3
				li	a0,0
		.LVL590:
		.L361:
				bne	a5,a4,.L361
		.LVL592:
		.L360:
		.LBE538:
				li	a0,0
				j	.L360
		.LVL608:
		.L351:
		.LBE541:
  238                                         ! NB RESULT == SORT ON PDP11
  239
  240       %END
				li	a5,4096
				add	a5,a5,-1096
				add	a4,sp,48
				add	a5,a5,a4
				ld	a4,0(a5)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L378
				add	sp,sp,1136
				ld	ra,2024(sp)
				ld	s0,2016(sp)
				ld	s1,2008(sp)
				ld	s2,2000(sp)
				ld	s3,1992(sp)
		.LVL594:
				ld	s4,1984(sp)
		.LVL595:
				ld	s5,1976(sp)
				ld	s6,1968(sp)
				ld	s7,1960(sp)
				ld	s8,1952(sp)
				ld	s9,1944(sp)
				ld	s10,1936(sp)
		.LVL596:
				ld	s11,1928(sp)
				add	sp,sp,2032
				jr	ra
		.LVL597:
		.L377:
		.LBB541:
				call	__stack_chk_fail
		.LVL611:
		.LFE187:
				.align	1
		BURP.6111:
		.LFB198:
  241
  242
  243       %INTEGERFN ONE PLY(%INTEGER WHICH, WIDTH)
  244          %RECORD(LISTF)%NAME LIST
  245
  246
  247          !! BRDOLD = BRD;                  ! HOLD IT (TO ERASE ATT&DEF
  248          LIST == RECORD(MOVES(WHICH, 0))
				ld	s8,16(sp)
				mv	t2,s8
				li	a1,0
				mv	a0,s7
		.LVL542:
				call	MOVES.6101
		.LVL543:
  249          LIST == RECORD (SORT AND PRUNE(LIST, WIDTH, WHICH))
				mv	t2,s8
				mv	a2,s7
				mv	a1,s4
				call	SORTANDPRUNE.6095
		.LVL544:
		.LBE515:
		.LBE514:
  250          %RESULT = ADDR(LIST)
  251       %END
  252
  253       !!
  254       %INTEGERFN EXVAL(%INTEGER OCC,SIDE1,SIDE2)
		.LVL108:
				add	sp,sp,-976
				sd	ra,968(sp)
				sd	s0,960(sp)
				sd	s1,952(sp)
				sd	s2,944(sp)
				sd	s3,936(sp)
				mv	s0,a0
				mv	s1,a1
				mv	s2,a2
				mv	s3,t2
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,920(sp)
  255          %INTEGER GAIN,LOSS,NEW
  256          %CONSTINTEGERARRAY PCE(1:31)=3,2(6),1(24)
				li	a2,124
		.LVL109:
				lui	a1,%hi(.LANCHOR1+256)
		.LVL110:
				addi	a1,a1,%lo(.LANCHOR1+256)
				add	a0,sp,280
		.LVL111:
				call	memcpy
		.LVL112:
  257          !! %CONSTINTEGERARRAY VAL(1:6)=100,300,350,500,900,5000
  258          %CONSTINTEGERARRAY BIT(1:6)=256,64,32,8,2,1
				li	a5,256
				sw	a5,256(sp)
				li	a5,64
				sw	a5,260(sp)
				li	a5,32
				sw	a5,264(sp)
				li	a5,8
				sw	a5,268(sp)
				li	a5,2
				sw	a5,272(sp)
				li	a5,1
				sw	a5,276(sp)
		.LVL113:
  259                      !* +VE RESULT => ATTACKING SIDE HAS GAINED SOMETHING
  260          GAIN=VAL(OCC)
				add	s0,s0,424
				sll	s0,s0,2
				add	s0,s3,s0
				lw	s0,0(s0)
  261          %IF SIDE1<0 %START
				bltz	s1,.L73
		.L65:
				addw	s0,s0,6
		.LVL114:
  262             PRINTSTRING("PROGRAM ERROR, NEXT MOVE MAY BE STUPID!
				li	a2,256
				lui	a1,%hi(.LANCHOR1+384)
				addi	a1,a1,%lo(.LANCHOR1+384)
				add	a0,sp,664
				call	memcpy
		.LVL116:
				li	a2,256
				add	a1,sp,664
				add	a0,sp,408
				call	memcpy
		.LVL117:
				li	a2,256
				add	a1,sp,408
				add	a0,sp,664
				call	memcpy
		.LVL118:
		.LBE313:
		.LBB314:
		.LBB315:
				li	a2,256
				add	a1,sp,664
				mv	a0,sp
				call	memcpy
		.LVL119:
				mv	a0,sp
				call	_imp_printstring
		.LVL120:
		.LBE315:
		.LBE314:
  263 ")
  264             %RESULT = 0
				li	s0,0
				j	.L66
		.L74:
		.L67:
  265          %FINISH
  266          %IF SIDE2=0 %THENRESULT=GAIN
				bnez	s2,.L74
		.L66:
  267          NEW=SIDE1>>5
				srlw	a5,s1,5
				sext.w	a4,a5
		.LVL121:
  268          %IF NEW#0 %THEN NEW=PCE(NEW) %ELSE NEW=PCE(SIDE1)+3
				beqz	a4,.L68
  269          LOSS=EXVAL(NEW,SIDE2,SIDE1-BIT(NEW))
				addw	a5,a5,-1
		.LVL122:
				sll	a5,a5,2
				add	a4,sp,928
		.LVL123:
				add	a5,a4,a5
				lw	a0,-648(a5)
		.LVL124:
		.L69:
				addw	a5,a0,-1
				sll	a5,a5,2
				add	a4,sp,928
				add	a5,a4,a5
				lw	a2,-672(a5)
				mv	t2,s3
				subw	a2,s1,a2
				mv	a1,s2
				call	EXVAL.6213
		.LVL125:
  270          %IF LOSS<0 %THENRESULT=GAIN %ELSERESULT=GAIN-LOSS
				bltz	a0,.L66
		.L70:
  271       %END
				mv	a0,s0
				ld	a4,920(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L75
				ld	ra,968(sp)
				ld	s0,960(sp)
				ld	s1,952(sp)
				ld	s2,944(sp)
				ld	s3,936(sp)
				add	sp,sp,976
				jr	ra
		.LVL115:
		.L73:
		.LBB313:
				call	__stack_chk_fail
		.LVL131:
		.LFE189:
				.align	1
		LINE.6584:
		.LFB201:
  272       !!
				addw	a5,s1,-1
		.LVL127:
				sll	a5,a5,2
				add	a4,sp,928
		.LVL128:
				add	a5,a4,a5
				lw	a0,-648(a5)
				addw	a0,a0,3
		.LVL129:
				j	.L69
		.LVL130:
		.L75:
  273       %ROUTINE CHECK PINS(%INTEGER WHICH)
				subw	s0,s0,a0
				j	.L66
		.LVL126:
		.L68:
  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
				lui	a5,%hi(PINPT.6050)
				lw	s3,%lo(PINPT.6050)(a5)
				beqz	s3,.L305
		.L297:
		.LBE469:
		.LBE468:
  282          %CYCLE I = 1, 1, PIN PT
  283             PX = PINX(I); PY = PINY(I)
				lui	s7,%hi(PX.6051)
				lw	a5,0(s2)
				sw	a5,%lo(PX.6051)(s7)
  284             SQ == SQI(PINDX(I))_SQ;     ! ATTACKERS SQUARE
				addw	a5,s3,-1
		.LVL477:
		.LBE471:
				sll	a4,a5,32
				bltz	a4,.L323
		.LVL478:
		.L298:
				lui	a5,%hi(.LANCHOR2)
				addi	a5,a5,%lo(.LANCHOR2)
				add	s2,a5,-600
				add	s4,a5,-472
				add	s1,s0,1440
				addw	s3,s3,-1
		.LVL479:
				sll	s3,s3,32
		.LVL480:
				srl	s3,s3,32
				sll	s3,s3,2
				add	a5,a5,-596
				add	s3,s3,a5
				lui	s6,%hi(PY.6052)
				lui	a5,%hi(_imp_current_file)
		.LVL497:
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L299
				add	a0,sp,1656
				call	_imp_c2istr
		.LVL498:
		.L300:
				lui	a5,%hi(_imp_current_line)
				lw	s1,%lo(_imp_current_line)(a5)
		.LVL499:
				bnez	s1,.L301
				li	s1,284
		.L301:
				lui	a1,%hi(.LC30)
				addi	a1,a1,%lo(.LC30)
				add	a0,sp,1144
				call	_imp_c2istr
		.LVL500:
				li	a2,256
				add	a1,sp,1656
				add	a0,sp,272
				call	memcpy
		.LVL501:
				li	a2,256
				add	a1,sp,1144
				add	a0,sp,16
				call	memcpy
		.LVL502:
				li	a5,0
				li	a4,1
				li	a3,5
				add	a2,sp,16
				mv	a1,s1
				add	a0,sp,272
				call	_signal_event
		.LVL503:
				j	.L298
		.LVL504:
		.L299:
		.LBB472:
				li	a2,256
				lui	a1,%hi(.LANCHOR1)
				addi	a1,a1,%lo(.LANCHOR1)
				add	a0,sp,1656
				call	memcpy
		.LVL505:
				li	a2,256
				add	a1,sp,1656
				add	a0,sp,1400
				call	memcpy
		.LVL506:
		.LBE472:
				li	a2,256
				add	a1,sp,1400
				add	a0,sp,1656
				call	memcpy
		.LVL507:
				j	.L300
		.LVL508:
		.L303:
				add	s2,s2,4
				add	s4,s4,4
				add	s1,s1,4
				lw	a5,0(s4)
				sw	a5,%lo(PY.6052)(s6)
				lw	a5,128(s1)
				addw	a5,a5,-1
				add	a5,a5,68
				sll	a5,a5,3
				add	a5,s0,a5
				ld	s5,0(a5)
		.LVL510:
  285             BV = BIT VAL(PINPY(I))
				lw	a5,0(s1)
				addw	a5,a5,-1
				add	a5,a5,352
				sll	a5,a5,2
				add	a5,s0,a5
  286             %IF SQ_ATT&BV#0 %START
				lw	a5,8(a5)
				lw	a4,4(s5)
				seqz	a5,a5
				and	a5,a5,a4
				beqz	a5,.L303
		.L304:
  287                !! NO PIN
				beq	s2,s3,.L305
		.LVL509:
		.L302:
  288             %FINISHELSESTART
  289                PIN REMOVE = PINPY(I);       ! IF ATT>PINNED DEFENSE!
  290                K = MOVES(WHICH, 3)
				mv	t2,s0
				li	a1,3
				mv	a0,s9
				call	MOVES.6101
		.LVL511:
  291                SCOREA = SCOREA+SQ_P*5
				lui	s8,%hi(SCOREA.6078)
				j	.L302
		.LVL481:
		.L282:
		.LBE470:
		.LBE474:
		.LBE476:
				lw	a4,0(s5)
				sllw	a5,a4,2
				addw	a5,a5,a4
				lw	a4,%lo(SCOREA.6078)(s8)
				addw	a5,a5,a4
				sw	a5,%lo(SCOREA.6078)(s8)
				j	.L303
		.L296:
		.LVL512:
		.L305:
		.LBE473:
		.LBE475:
		.LBE479:
  292             %FINISH
  293          %REPEAT
  294       %END
  295       !!
  296       %INTEGERFN TRY ANOTHER PLY(%INTEGER WHICH)
		.LVL522:
				add	sp,sp,-80
				sd	ra,72(sp)
				sd	s0,64(sp)
				sd	s1,56(sp)
				sd	s2,48(sp)
				sd	s3,40(sp)
				sd	s4,32(sp)
				mv	s0,a0
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,24(sp)
  297          %RECORD(LISTF)%NAME LIST2
  298          %INTEGER X, WW, XMON
  299          %CONSTINTEGERARRAY WWW(-1:1) = 25, 0, -25
				li	a5,25
				sw	a5,8(sp)
				sw	zero,12(sp)
				li	a5,-25
				sw	a5,16(sp)
  300          %RESULT = 0 %IF JUST ONE PLY = 1;   ! ONLY ONE LEVEL
				lui	a5,%hi(JUSTONEPLY.6082)
				lw	a4,%lo(JUSTONEPLY.6082)(a5)
				li	a5,1
				beq	a4,a5,.L330
				mv	s1,t2
		.L331:
  301          JUST ONE PLY = 1; XMON = MON; MON = 1
				li	a0,0
		.LVL523:
				lui	s3,%hi(JUSTONEPLY.6082)
				sw	a5,%lo(JUSTONEPLY.6082)(s3)
  302          WW = WHICH!!X'FFFFFFFE'
				lui	s2,%hi(MON.6081)
				lw	s4,%lo(MON.6081)(s2)
		.LVL524:
				xor	s0,s0,-2
		.LVL525:
  303          LIST2 == RECORD(MOVES(WW, 0))
				sw	a5,%lo(MON.6081)(s2)
				li	a1,0
				mv	a0,s0
				call	MOVES.6101
		.LVL526:
  304          JUST ONE PLY = 0; MON = XMON
				sw	zero,%lo(JUSTONEPLY.6082)(s3)
  305          %IF ADDR(LIST2) = 0 %START
				sw	s4,%lo(MON.6081)(s2)
				bnez	a0,.L332
  306             %RESULT = -NOLEGMOVE(WW)//2
				addw	t2,s0,1
				add	t2,t2,436
				sll	t2,t2,2
				add	t2,s1,t2
				lw	a5,4(t2)
				srlw	a0,a5,31
				addw	a0,a0,a5
				sraw	a0,a0,1
				subw	a0,zero,a0
		.LVL527:
		.L330:
  307          %FINISHELSESTART
  308             LIST2 == RECORD(SORT AND PRUNE(LIST2, 1, WW))
				mv	t2,s1
				mv	a2,s0
				li	a1,1
				call	SORTANDPRUNE.6095
		.LVL529:
  309             X = LIST2_SCORE
				lw	s2,8(a0)
		.LVL530:
  310          %FINISH
  311          RELEASE CHAIN(LIST2) %UNLESS ADDR(LIST2)=0
				bnez	a0,.L338
		.L333:
  312          %RESULT = X+WWW(WW)
				addw	s0,s0,1
		.LVL531:
				sll	s0,s0,2
				add	a5,sp,32
				add	s0,a5,s0
				lw	a0,-24(s0)
				addw	a0,a0,s2
				j	.L330
		.LVL532:
		.L338:
				mv	t2,s1
				call	RELEASECHAIN.6158
		.LVL533:
				j	.L333
		.LVL534:
		.L337:
  313       %END
				ld	a4,24(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L337
				ld	ra,72(sp)
				ld	s0,64(sp)
				ld	s1,56(sp)
				ld	s2,48(sp)
				ld	s3,40(sp)
				ld	s4,32(sp)
				add	sp,sp,80
				jr	ra
		.LVL528:
		.L332:
				call	__stack_chk_fail
		.LVL535:
		.LFE191:
				.align	1
		NPLY.6091:
		.LFB187:
  314       !!
  315       %INTEGER %FN SCORE(%INTEGER WHICH, %RECORD(LISTF)%NAME L)
  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
				lui	a5,%hi(PINPT.6050)
				sw	zero,%lo(PINPT.6050)(a5)
		.LVL276:
				add	a5,s4,544
				add	a3,s4,1056
		.LVL277:
		.L137:
  325          %CYCLE I = 1, 1, 64
  326             SQI(I)_SQ_ATT = 0; SQI(I)_SQ_DEF = 0
				ld	a4,0(a5)
				sw	zero,4(a4)
  327          %REPEAT
				ld	a4,0(a5)
				sw	zero,8(a4)
		.LDL8:
				add	a5,a5,8
  328          WHX = WHICH&BIT;               ! GET TYPE
				bne	a5,a3,.L137
		.L138:
		.LVL278:
  329          L_CHK = 0;                     ! CLEAR FLAG
				ld	a5,32(sp)
				sw	zero,12(a5)
  330          HOLD_L == L;                   ! MAP TO MOVE
				sd	a5,328(sp)
  331          P = CHANGE BOARD(HOLD);            ! AND MAKE IT
				add	a0,sp,328
		.LVL279:
				call	CHANGEBOARD.6106
		.LVL280:
  332          SCOREB = 0; SCOREA = 0;  SCOREC = 0
				mv	s5,s11
  333          P = MOVES(WHICH, 1)
				lui	a5,%hi(SCOREA.6078)
				sw	zero,%lo(SCOREA.6078)(a5)
		.LVL281:
				mv	t2,s4
				li	a1,1
				ld	s0,56(sp)
				mv	a0,s0
				call	MOVES.6101
		.LVL282:
  334          SQU = 0
				ld	s11,0(sp)
				mv	s7,s11
  335          BAD = 0; NPH = 0; NPH2 = 0
				sd	s11,24(sp)
  336          %CYCLE Y = 1, 1, 8
				sd	s11,40(sp)
  337             %CYCLE X = 1, 1, 8
				sd	s11,48(sp)
  338                SQU = SQU+1
  339                SQ == SQI(SQU)_SQ
				beq	s11,a5,.L229
		.LVL294:
		.L141:
				addw	a5,a5,s8
		.LVL319:
				add	a5,a5,68
				sll	a5,a5,3
				add	a5,s4,a5
				ld	a5,0(a5)
		.LVL320:
  340                Q = SQ_P
				addw	s11,s11,1
		.LVL295:
				li	s1,0
				sext.w	s8,s7
				addw	s9,s8,1
				li	a5,9
				subw	a5,a5,s11
				sd	a5,16(sp)
				j	.L139
		.LVL296:
		.L232:
				li	a5,8
				beq	s1,a5,.L231
		.L139:
				sext.w	a5,s1
		.LVL316:
				addw	a3,a5,1
		.LVL317:
				addw	s7,s9,a5
		.LVL318:
				lw	s0,0(a5)
		.LVL321:
  341                %IF Q#0 %START;          ! PIECE ON SQUARE
				beqz	s0,.L142
  342                   %IF Q < 0 %START
				bltz	s0,.L232
		.L143:
		.L146:
		.LVL322:
  343                      QQ = -Q; W2 = -1
				subw	s3,zero,s0
				sext.w	s3,s3
		.LVL297:
  344                   %FINISHELSESTART
				li	s10,-1
  345                      QQ = Q; W2 = 1
				mv	s3,s0
  346                   %FINISH
				mv	s10,s0
		.L145:
		.LVL300:
		.L147:
				li	s10,1
  347
  348                   !!
  349                   P = 0
  350                   %IF QQ = 1 %START;    ! PAWN
				li	a4,1
				bne	s3,a4,.L144
				li	a4,1
				beq	s0,a4,.L233
		.LVL323:
		.L144:
  351                      %IF Q > 0 %THEN PAWNB= 9-Y %ELSE %C
  352                         PAWNB = Y
  353                      P = PAWN 2D(PAWNB*8+X)*Q
				sllw	a4,a4,3
		.LVL301:
				addw	a4,a4,a3
				addw	a4,a4,-9
				add	a4,a4,288
				sll	a4,a4,2
				add	a4,s4,a4
				lw	s2,8(a4)
				mulw	s2,s2,s0
		.LVL302:
  354                   %FINISH
  355                   !!
				mv	a4,s11
				j	.L147
		.LVL298:
		.L233:
				ld	a4,16(sp)
		.LVL299:
  356                   %IF Q&BIT = WHX %START
				not	a5,s0
				srlw	a5,a5,31
				sw	a5,8(sp)
				j	.L141
		.LVL283:
		.L227:
		.LDL9:
		.LBE425:
		.LBE424:
				lw	a4,8(sp)
		.LVL303:
				and	s3,s0,a4
				sext.w	s3,s3
				bnez	s3,.L148
				li	s3,1
		.L149:
		.L152:
				ld	s2,0(sp)
		.LVL310:
		.L148:
				lw	a4,8(sp)
				and	s2,s0,a4
				sext.w	s2,s2
				bnez	s2,.L212
  357                                         !*
  358                                         !* 'MY' PIECEON SQU X,Y
  359                                         !*
  360                      %IF QQ=6 %START;  ! 'MY' KING
				li	a4,6
				bne	s3,a4,.L152
  361                         %IF SQ_ATT # 0 %START
				lw	s2,4(a5)
				beqz	s2,.L163
  362                            RESTORE BOARD(HOLD)
				add	a0,sp,328
				call	RESTOREBOARD.6108
		.LVL324:
  363                            %RESULT = MAX SCORE
				li	a5,-49152
				add	a5,a5,-848
				sd	a5,0(sp)
		.LVL325:
				j	.L151
		.LVL326:
		.L230:
  364                         %FINISH
  365                                         ! ILLEGAL MOVE
  366                      %FINISH
  367                      %IF SQ_ATT > 0 %START;  ! MY PIECE UNDER ATTACK
				lw	a1,4(a5)
				blez	a1,.L163
  368                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				mv	t2,s4
				lw	a2,8(a5)
				mv	a0,s3
				call	EXVAL.6213
		.LVL304:
  369                         %IF GAIN > 0 %START
				blez	a0,.L163
  370                            GAIN = GAIN+P
				addw	a0,a0,s2
		.LVL305:
  371                            SCOREA = SCOREA-(GAIN*W2)//10
				mulw	s10,a0,s10
				li	a5,10
				divw	s10,s10,a5
				lui	a4,%hi(SCOREA.6078)
				lw	a5,%lo(SCOREA.6078)(a4)
				subw	s10,a5,s10
				sw	s10,%lo(SCOREA.6078)(a4)
				mv	a5,a0
				sext.w	a0,a0
		.LVL306:
				ld	a4,24(sp)
				bge	a0,a4,.L153
				mv	a5,a4
		.LVL307:
		.L153:
				sext.w	a5,a5
				sd	a5,24(sp)
		.LVL308:
				j	.L163
		.LVL309:
		.L212:
  372                            %IF GAIN > BAD %THEN BAD = GAIN
  373                                         ! PROBLEMS WITH POSITIONAL VALUE
  374                        %FINISH
  375                      %FINISH
  376                      !!
  377                                         ! PIECE EFFECTIVELY LOST
  378                   %FINISHELSESTART
  379                                         !*
  380                                         !* OPP PIECE (SEE WHICH) ON X,Y
  381                                         !*
  382                      %IF SQ_ATT # 0 %START
				lw	a1,4(a5)
				bnez	a1,.L230
		.L150:
		.L159:
		.L160:
		.L161:
		.L162:
		.LVL311:
		.L163:
  383                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				mv	t2,s4
				lw	a2,8(a5)
				mv	a0,s3
				call	EXVAL.6213
		.LVL327:
  384                         %IF GAIN > 0 %START
				blez	a0,.L158
  385                         %IF GAIN >NPH %START
				ld	a5,40(sp)
				bgt	a0,a5,.L213
		.L155:
				mv	a5,a0
				ld	a4,48(sp)
				bge	a0,a4,.L156
				mv	a5,a4
		.L156:
				sext.w	a5,a5
				sd	a5,48(sp)
		.LVL328:
				j	.L158
		.LVL329:
		.L213:
				ld	a5,40(sp)
				sd	a5,48(sp)
		.LVL330:
  386                            NPH2 = NPH; NPH = GAIN
  387                         %FINISHELSESTART
				sd	a0,40(sp)
		.LVL331:
		.L154:
		.L157:
		.L158:
  388                            %IF GAIN > NPH2 %THEN NPH2 = GAIN
  389                         %FINISH
  390                        %FINISH
  391                         %IF QQ = 6 %START
				li	a5,6
				bne	s3,a5,.L163
  392                             L_CHK = Q
				ld	a5,32(sp)
				sw	s0,12(a5)
				j	.L163
		.LVL332:
		.L229:
		.L140:
  393                         %FINISH
  394                      %FINISH
  395                   %FINISH
  396                   SCOREB = SCOREB+P+VAL(Q)
				addw	s2,s2,s5
				addw	s0,s0,6
		.LVL312:
				add	s0,s0,424
				sll	s0,s0,2
				add	s0,s4,s0
				lw	s5,0(s0)
		.LVL313:
				addw	s5,s5,s2
		.LVL314:
		.L142:
				add	s1,s1,1
		.LVL315:
  397                %FINISH
  398             %REPEAT
  399          %REPEAT
  400          LOSS = 0
				ld	a4,48(sp)
				mv	a5,a4
  401          %IF BAD > 0 %START;         ! PLAYER ABOUT TO LOSE
				ld	a4,24(sp)
				blez	a4,.L164
  402             %IF ((BAD > 300 %AND NPH > 400) %OR NPH>400)  %C
				li	a5,300
				ble	a4,a5,.L165
  403               %AND BAD < 500 %THEN SCOREC = TRY ANOTHER PLY(WHICH)
				li	a5,400
				ld	a4,40(sp)
				bgt	a4,a5,.L166
				j	.L167
		.L165:
  404             NPH = NPH//3
				li	s7,3
		.LVL334:
				ld	a5,40(sp)
				divw	s7,a5,s7
				sext.w	a5,s7
				sd	a5,40(sp)
		.LVL335:
  405             LOSS = BAD
				li	a5,400
				ld	a4,40(sp)
				ble	a4,a5,.L167
		.L166:
  406             %IF NPH > BAD %THEN LOSS = NPH2//3 %ELSE %C
				ld	a4,24(sp)
				bge	a4,a5,.L168
  407               LOSS = LOSS-NPH
				li	a5,499
				ld	a4,24(sp)
				ble	a4,a5,.L234
		.LVL333:
		.L167:
				li	s7,3
		.LVL336:
				ld	a5,48(sp)
		.LVL337:
				divw	s7,a5,s7
		.LVL338:
				j	.L171
		.LVL339:
		.L234:
  408          %FINISHELSESTART
				mv	t2,s4
				ld	a0,56(sp)
				call	TRYANOTHERPLY.6245
		.LVL340:
				sd	a0,0(sp)
		.LVL341:
				j	.L167
		.LVL342:
		.L168:
  409             %IF NPH2 # 0 %THEN LOSS = -NPH2
				beqz	a4,.L170
  410             LOSS = LOSS-NPH//6
				ld	a5,24(sp)
				subw	s7,a5,s7
		.LVL343:
				j	.L171
		.LVL344:
		.L164:
				subw	a5,zero,a4
				sext.w	a5,a5
		.LVL345:
		.L170:
				li	s7,6
		.LVL346:
				ld	a4,40(sp)
				divw	s7,a4,s7
				subw	s7,a5,s7
		.LVL347:
		.L169:
		.L171:
  411          %FINISH
  412          SCOREB = SCOREB+KCAS(-1)+KCAS(1)
				lui	a5,%hi(.LANCHOR0)
				addi	a5,a5,%lo(.LANCHOR0)
				lw	s0,1024(a5)
				addw	s5,s0,s5
		.LVL348:
				lw	s0,1032(a5)
				addw	s0,s0,s5
		.LVL349:
				add	a4,s4,1064
				add	a3,s4,1760
				add	a1,s4,1112
				j	.L172
		.LVL350:
		.L174:
				add	a4,a4,4
				add	a3,a3,1
		.LVL351:
  413          %CYCLE I = 1, 1, 12;            ! CHECK B&N POS
  414             SCOREB = SCOREB+POSPP(I) %IF POSP(I) # PT(POSX(I))_P
				lbu	a5,0(a3)
				addw	a5,a5,-1
				add	a5,a5,4
				sll	a5,a5,3
				add	a5,s4,a5
				ld	a5,0(a5)
				lw	a2,48(a4)
				lw	a5,0(a5)
				beq	a2,a5,.L174
  415          %REPEAT
				lw	a5,0(a4)
				addw	s0,a5,s0
		.LVL353:
				j	.L174
		.LVL354:
		.L173:
  416                %IF L_CHK # 0 %START
				beq	a4,a1,.L173
		.LVL352:
		.L172:
				ld	a5,32(sp)
				lw	a5,12(a5)
				beqz	a5,.L176
  417                   SCOREC = TRY ANOTHER PLY(WHICH) %UNLESS SCOREC#0
				ld	a5,0(sp)
				beqz	a5,.L235
		.L175:
		.L176:
  418                %FINISH
				mv	t2,s4
				ld	a0,56(sp)
				call	TRYANOTHERPLY.6245
		.LVL387:
				sd	a0,0(sp)
		.LVL388:
				j	.L176
		.LVL389:
		.L236:
		.LBE436:
		.LBE454:
  419          RESTORE BOARD(HOLD);           ! UNDO THE MOVE
				add	a0,sp,328
				call	RESTOREBOARD.6108
		.LVL355:
		.LBB426:
		.LBB427:
				lui	s4,%hi(_imp_OutStream)
				li	a5,2
				sw	a5,%lo(_imp_OutStream)(s4)
				lui	s3,%hi(_imp_OutFile)
				lui	s1,%hi(_imp_outfile)
				addi	s1,s1,%lo(_imp_outfile)
				ld	a5,584(s1)
				sd	a5,%lo(_imp_OutFile)(s3)
				lui	s2,%hi(.LANCHOR2)
				addi	s2,s2,%lo(.LANCHOR2)
				add	s5,s2,-1152
				mv	a0,s5
				call	check_outstream
		.LVL356:
		.LBE427:
		.LBE426:
		.LBB428:
  420          %IF MON&64 # 0 %START
  421             SELECT OUTPUT(2)
  422             PRINTSTRING("SCORE:")
				li	a2,256
				add	a1,s2,-1128
				add	a0,sp,856
				call	memcpy
		.LVL357:
				li	a2,256
				add	a1,sp,856
				add	a0,sp,1112
				call	memcpy
		.LVL358:
				li	a2,256
				add	a1,sp,1112
				add	a0,sp,856
				call	memcpy
		.LVL359:
		.LBE428:
		.LBB429:
		.LBB430:
				li	a2,256
				add	a1,sp,856
				add	a0,sp,64
				call	memcpy
		.LVL360:
				add	a0,sp,64
				call	_imp_printstring
		.LVL361:
		.LBE430:
		.LBE429:
  423             WRITE(SCOREA, 1); WRITE(SCOREB, 1); WRITE(SCOREC, 1)
				li	a1,1
				lui	a5,%hi(SCOREA.6078)
				lw	a0,%lo(SCOREA.6078)(a5)
				call	_imp_writeint
		.LVL362:
  424             WRITE(BAD, 1); WRITE(NPH, 1); WRITE(NPH2, 1)
				li	a1,1
				mv	a0,s0
				call	_imp_writeint
		.LVL363:
				li	a1,1
				ld	a0,24(sp)
				call	_imp_writeint
		.LVL365:
  425             WRITE(LOSS, 1); NEWLINE
				li	a1,1
				ld	s2,0(sp)
				mv	a0,s2
				call	_imp_writeint
		.LVL364:
				li	a1,1
				ld	a0,40(sp)
				call	_imp_writeint
		.LVL366:
				li	a1,1
				mv	a0,s7
				call	_imp_writeint
		.LVL368:
		.LBB431:
		.LBB432:
				call	_imp_newline
		.LVL369:
		.LBE432:
		.LBE431:
		.LBB433:
		.LBB434:
				sw	zero,%lo(_imp_OutStream)(s4)
				ld	a5,8(s1)
				sd	a5,%lo(_imp_OutFile)(s3)
				mv	a0,s5
				call	check_outstream
		.LVL370:
		.LDL12:
		.LBE434:
		.LBE433:
  426             SELECT OUTPUT(0)
				li	a1,1
				ld	a0,48(sp)
				call	_imp_writeint
		.LVL367:
  427          %FINISH
  428          %RESULT = SCOREC %IF SCOREC # 0
				bnez	s2,.L151
		.L177:
  429          %RESULT = SCOREB+SCOREA-LOSS*WHICH
				lui	a5,%hi(SCOREA.6078)
				lw	a5,%lo(SCOREA.6078)(a5)
				addw	s0,a5,s0
		.LVL371:
				ld	a5,56(sp)
				mulw	s7,a5,s7
		.LVL372:
				subw	a5,s0,s7
				sd	a5,0(sp)
		.LVL373:
		.L151:
		.LBE435:
		.LBE442:
  430       %END
?LIST2 unused
  431       !!
  432       %INTEGERFN MOVES(%INTEGER WHICH, SCRQ)
				add	sp,sp,-2016
				sd	ra,2008(sp)
				sd	s0,2000(sp)
				sd	s1,1992(sp)
				sd	s2,1984(sp)
				sd	s3,1976(sp)
				sd	s4,1968(sp)
				sd	s5,1960(sp)
				sd	s6,1952(sp)
				sd	s7,1944(sp)
				sd	s8,1936(sp)
				sd	s9,1928(sp)
				mv	s1,a0
				mv	s0,t2
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1912(sp)
				add	a5,sp,2016
				sd	a5,624(sp)
				sw	a0,592(sp)
				sw	a1,620(sp)
				sd	t2,552(sp)
  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
  438          %SWITCH MOVE(1:6)
  439          !!
  440          %INTEGER %FN DOM(%INTEGER X0, Y0)
		.LVL257:
				add	sp,sp,-1488
				sd	ra,1480(sp)
				sd	s0,1472(sp)
				sd	s1,1464(sp)
				sd	s2,1456(sp)
				sd	s3,1448(sp)
				sd	s4,1440(sp)
				sd	s5,1432(sp)
				sd	s6,1424(sp)
				sd	s7,1416(sp)
				sd	s8,1408(sp)
				sd	s9,1400(sp)
				sd	s10,1392(sp)
				sd	s11,1384(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1368(sp)
		.LVL258:
		.LBB418:
  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
  453             SQ == BRD(Y0)_R(X0)
				mv	a3,a5
				addw	a6,a0,-1
		.LVL260:
  454            K = SQ_P
				sll	a5,a5,3
				add	a5,a5,a6
				sll	a4,a5,4
				lui	a5,%hi(.LANCHOR0)
				addi	a5,a5,%lo(.LANCHOR0)
				add	a5,a5,a4
				lw	a5,0(a5)
				sd	a5,0(sp)
		.LVL261:
  455             %IF SCRQ <= 0 %START
				addw	a4,a0,-1
				li	a5,7
				bgtu	a4,a5,.L206
				mv	s6,t2
		.LVL259:
		.LBE418:
		.LBB419:
				lw	a4,84(t2)
				blez	a4,.L223
		.L129:
		.LVL262:
  456                %IF K#0 %AND K&BIT = Q&BIT %THEN %C
				bnez	a5,.L208
		.L130:
  457                 %RESULT = 0
  458                %IF QQ=PAWN %START
				lw	a4,80(t2)
				li	a5,1
				beq	a4,a5,.L227
		.L131:
		.L132:
		.L133:
		.L134:
				li	a0,0
		.LVL404:
				j	.L203
		.LVL405:
		.L239:
  459                   %IF (TYPE=0 %AND K#0) %OR %C
  460                      (TYPE=1 %AND K=0) %THEN %RESULT = 0
  461                     %IF Y0=1 %OR Y0=8 %THEN SPEC=5*Q; ! QUEEN
  462                %FINISH
				addw	a5,a1,-1
				li	a4,7
				bgtu	a5,a4,.L207
		.L128:
		.LBE419:
				lw	a4,76(t2)
				bne	a4,a5,.L134
  463                SPEC = 0
				sw	zero,68(s6)
  464                N == FREE LIST;  FREE LIST == RECORD(ADDR(N_L))
				ld	a5,16(s6)
				ld	a4,1056(a5)
				sd	a4,32(sp)
		.LVL269:
  465                %IF ADDR(FREE LIST) = 0 %START
				ld	a4,0(a4)
		.LVL270:
				sd	a4,1056(a5)
		.LVL271:
				ld	a5,16(s6)
				ld	a5,1056(a5)
				beqz	a5,.L228
		.L135:
				ld	a0,0(sp)
		.LVL284:
				j	.L203
		.LVL285:
		.L228:
		.LBB437:
  466                   PRINTSTRING("OUT OF FREE CELLS!!!
				li	a2,256
				lui	a1,%hi(.LANCHOR2-1408)
		.LVL286:
				addi	a1,a1,%lo(.LANCHOR2-1408)
				add	a0,sp,1112
		.LVL287:
				call	memcpy
		.LVL288:
				li	a2,256
				add	a1,sp,1112
				add	a0,sp,856
				call	memcpy
		.LVL289:
				li	a2,256
				add	a1,sp,856
				add	a0,sp,1112
				call	memcpy
		.LVL290:
		.LBE437:
		.LBB438:
		.LBB439:
				li	a2,256
				add	a1,sp,1112
				add	a0,sp,64
				call	memcpy
		.LVL291:
				add	a0,sp,64
				call	_imp_printstring
		.LVL292:
		.LBE439:
		.LBE438:
		.LBB440:
		.LBB441:
				li	a0,0
				call	exit
		.LVL293:
		.L231:
		.LDL10:
		.LDL11:
		.LBE441:
		.LBE440:
		.LBB442:
		.LBB435:
  467 ")
				li	a0,0
		.LVL400:
		.L127:
		.L203:
				li	a0,0
		.LVL402:
				j	.L203
		.LVL403:
		.L208:
  468                   %STOP
  469                %FINISH
  470                N_FR = X<<4+Y
				lw	a4,64(s6)
				sllw	a4,a4,4
				lw	a5,60(s6)
				addw	a4,a4,a5
				and	a4,a4,0xff
				ld	a3,32(sp)
				sb	a4,4(a3)
  471                N_TO = X0<<4+Y0
				sllw	a5,a0,4
				addw	a5,a5,a1
				mv	a1,a3
		.LVL272:
				sb	a5,5(a3)
  472                N_SPEC = SPEC
				lw	a5,68(s6)
				sw	a5,8(a3)
		.LBB423:
  473                %IF 6 <= TYPE <= 7 %START
  474                   N_SPEC = TYPE
				sw	a5,8(a1)
  475                   N_TO = N_FR
				sb	a4,5(a1)
		.L136:
  476                %FINISH
				lw	a5,76(s6)
		.LVL273:
				addw	a2,a5,-6
				li	a3,1
				bgtu	a2,a3,.L136
		.LBE423:
  477                N_SCORE = SCORE(WHICH, N)
				lw	a5,56(s6)
		.LVL274:
				sd	a5,56(sp)
				ld	s4,16(s6)
		.LVL275:
		.LBB424:
		.LBB425:
				ld	a5,32(sp)
				ld	a4,0(sp)
				sw	a4,8(a5)
  478                !!
  479                %IF TYPE = 6 %START;    ! ILLEGAL CASTLE CHECK
				lw	a5,76(s6)
				li	a4,6
				beq	a5,a4,.L236
		.L178:
		.L182:
  480                   %IF ROW_R(6)_ATT # 0 %THEN N_SCORE = MAX SCORE
				ld	a5,8(s6)
				lw	a5,84(a5)
				beqz	a5,.L183
  481                %FINISH
				li	a5,-49152
				addw	a5,a5,-848
				ld	a4,32(sp)
				sw	a5,8(a4)
  482                %IF TYPE = 7 %START;     ! DITTO
				li	a4,7
				beq	a5,a4,.L237
		.L179:
		.L183:
				lw	a4,76(s6)
				li	a5,7
				bne	a4,a5,.L180
  483                   %IF ROW_R(4)_ATT # 0 %THEN N_SCORE = MAX SCORE
				ld	a5,8(s6)
				lw	a5,52(a5)
				beqz	a5,.L180
				j	.L204
		.L237:
				ld	a5,8(s6)
				lw	a5,52(a5)
				beqz	a5,.L183
		.L204:
  484                %FINISH
				li	a5,-49152
				addw	a5,a5,-848
				ld	a4,32(sp)
				sw	a5,8(a4)
		.L180:
  485                !!
  486 !!
  487                %IF N_SCORE = MAX SCORE %START;  ! WAS ILLEGAL
				ld	a5,32(sp)
				lw	a4,8(a5)
				li	a5,-49152
				add	a5,a5,-848
				beq	a4,a5,.L180
		.L184:
		.LVL374:
		.LBB443:
		.LBB444:
				lui	s4,%hi(_imp_OutStream)
				li	a5,2
				sw	a5,%lo(_imp_OutStream)(s4)
				lui	s3,%hi(_imp_OutFile)
				lui	s0,%hi(_imp_outfile)
				addi	s0,s0,%lo(_imp_outfile)
				ld	a5,584(s0)
				sd	a5,%lo(_imp_OutFile)(s3)
				lui	s1,%hi(.LANCHOR2)
				addi	s1,s1,%lo(.LANCHOR2)
				add	s2,s1,-1152
				mv	a0,s2
				call	check_outstream
		.LVL375:
		.LBE444:
		.LBE443:
		.LBB445:
		.LBB446:
				li	a0,20
				call	_imp_spaces
		.LVL376:
		.LBE446:
		.LBE445:
  488                   N_L == FREE LIST;     ! RE-LINK IT
				ld	a5,16(s6)
				ld	a5,1056(a5)
				ld	a4,32(sp)
				sd	a5,0(a4)
  489                   FREE LIST == RECORD(ADDR(N))
				ld	a5,16(s6)
				sd	a4,1056(a5)
		.LDL14:
  490                   %IF K#0 %THEN %RESULT = 0; ! PIECE IN WAY, NO FURTHER
  491                   %RESULT= 1;       ! MUST TRAVERSE ENTIRE B,R OR Q PATH
				li	a0,1
				j	.L203
		.LVL390:
		.L224:
  492                %FINISH
  493                !!
  494                !!
  495                %IF MON&2=2 %START
  496                   SELECT OUTPUT(2)
  497                   SPACES(20)
  498                   WRITE(XDEPTH, 5)
				li	a1,5
				lui	a5,%hi(XDEPTH.6079)
				lw	a0,%lo(XDEPTH.6079)(a5)
				call	_imp_writeint
		.LVL377:
		.LBB447:
  499                   PRINTSTRING("---")
				li	a2,256
				add	a1,s1,-872
				add	a0,sp,600
				call	memcpy
		.LVL378:
				li	a2,256
				add	a1,sp,600
				add	a0,sp,344
				call	memcpy
		.LVL379:
				li	a2,256
				add	a1,sp,344
				add	a0,sp,600
				call	memcpy
		.LVL380:
		.LBE447:
		.LBB448:
		.LBB449:
				li	a2,256
				add	a1,sp,600
				add	a0,sp,64
				call	memcpy
		.LVL381:
				add	a0,sp,64
				call	_imp_printstring
		.LVL382:
		.LBE449:
		.LBE448:
  500                   PRINTMOVE(N)
				ld	s1,32(sp)
				mv	a0,s1
				call	PRINTMOVE.6118
		.LVL383:
		.LBB450:
		.LBB451:
				call	_imp_newline
		.LVL384:
		.LBE451:
		.LBE450:
		.LBB452:
		.LBB453:
				sw	zero,%lo(_imp_OutStream)(s4)
				ld	a5,8(s0)
				sd	a5,%lo(_imp_OutFile)(s3)
				mv	a0,s2
				call	check_outstream
		.LVL385:
		.LDL13:
		.LBE453:
		.LBE452:
  501                   NEWLINE
  502                   SELECT OUTPUT(0)
  503                %FINISH
  504                !!
  505                N_L == LIST;  LIST == RECORD(ADDR(N))
				ld	a5,0(s6)
				sd	a5,0(s1)
  506                %IF K=0 %THEN J=1 %ELSE J=0
				sd	s1,0(s6)
  507             %FINISHELSESTART
				li	a0,1
				j	.L203
		.LVL386:
		.L235:
		.LBB454:
		.LBB436:
  508                J = 2
				li	a0,2
		.LVL398:
		.L185:
		.L196:
		.L197:
		.L198:
		.L199:
		.L200:
		.L201:
		.L202:
  509                %IF K # 0 %START
				ld	a5,0(sp)
				beqz	a5,.L215
  510                   %IF QQ=PAWN %AND TYPE=0 %THEN %RESULT = 0
				lw	a1,80(t2)
		.LVL263:
				li	a5,1
				beq	a1,a5,.L224
		.L186:
		.LVL264:
		.LBB420:
		.LBB421:
				ld	a5,0(sp)
				sraw	a2,a5,31
				xor	a5,a5,a2
				subw	a5,a5,a2
				sext.w	a2,a5
		.LVL265:
		.LBE421:
		.LBE420:
  511                   J = 0;            ! POSSIBLY NO FURTHER
				li	a0,0
		.LVL266:
				lw	a0,76(t2)
		.LVL391:
				beqz	a0,.L203
		.LVL392:
		.LBB455:
		.LBB422:
				ld	a5,0(sp)
				sraw	a2,a5,31
				xor	a5,a5,a2
				subw	a5,a5,a2
		.LBE422:
		.LBE455:
				li	a0,0
				j	.L194
		.LVL393:
		.L225:
				li	a0,0
				seqz	a0,a2
				seqz	a0,a2
				sltu	a0,a0,2
		.LBB457:
				j	.L194
		.LVL396:
		.L195:
		.LBE457:
  512                   IMODK = IMOD(K)
				sw	a5,52(t2)
				sw	a5,52(t2)
  513                   %IF K&BIT = Q&BIT %START;  ! ITS A DEFENCE
  514                         %IF QQ = 5 %START;            ! Q 'BEHIND'
				li	a5,5
				beq	a1,a5,.L225
		.L188:
  515                            %IF (DIAG=1 %AND IMODK=3) %OR %C
				lw	a5,48(t2)
				li	a0,1
		.LVL394:
				beq	a5,a0,.L238
		.L189:
  516                             (DIAG=0 %AND IMODK=4) %THEN J=1
				add	a2,a2,-3
  517                         %FINISHELSESTART
  518                            %IF IMODK=5 %START
				li	a5,5
				beq	a2,a5,.L226
		.L190:
		.L191:
		.L192:
		.L193:
		.L194:
		.LVL267:
				bnez	a5,.L194
  519                               %IF 3<=QQ<=4 %THEN J=1
				add	a2,a2,-4
  520                            %FINISH
				j	.L194
		.L226:
		.LVL395:
		.LBB456:
  521                         %FINISH
  522                         ! IF A PIECE DOUBLES UP, THEN KEEP GOING
				j	.L194
		.L238:
				addw	a0,a1,-3
		.LBE456:
  523                      %IF SCRQ # 3 %START
				li	a5,3
				beq	a4,a5,.L195
  524                        %IF PINFLAG = 0 %THEN %C
				lw	a5,44(s6)
				bnez	a5,.L202
  525                           SQ_DEF = SQ_DEF+BIT VAL(QQ)
				sll	a3,a3,3
				add	a5,a3,a6
				sll	a3,a5,4
				lui	a5,%hi(.LANCHOR0)
				addi	a5,a5,%lo(.LANCHOR0)
				add	a5,a5,a3
				ld	a3,16(s6)
				addw	a4,a1,-1
				add	a4,a4,352
				sll	a4,a4,2
				add	a4,a3,a4
				lw	a4,8(a4)
				lw	a3,8(a5)
				addw	a4,a4,a3
				sw	a4,8(a5)
				j	.L202
		.LVL268:
		.L223:
  526                     %FINISHELSESTART
  527                        SQ_DEF = SQ_DEF-BIT VAL(QQ)
				sll	a3,a3,3
				add	a5,a3,a6
				sll	a3,a5,4
				lui	a5,%hi(.LANCHOR0)
				addi	a5,a5,%lo(.LANCHOR0)
				add	a5,a5,a3
				ld	a3,16(s6)
				addw	a4,a1,-1
				add	a4,a4,352
				sll	a4,a4,2
				add	a3,a3,a4
				lw	a4,8(a5)
				lw	a3,8(a3)
				subw	a4,a4,a3
				sw	a4,8(a5)
				j	.L202
		.LVL397:
		.L215:
  528                     %FINISH
  529                   %FINISHELSESTART
  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
				lui	a4,%hi(SCOREA.6078)
				lw	a5,%lo(SCOREA.6078)(a4)
				lw	a3,24(s6)
				addw	a5,a5,a3
				sw	a5,%lo(SCOREA.6078)(a4)
				j	.L203
		.LVL399:
		.L206:
  560             %FINISH
  561             %RESULT = J
  562          %END
				ld	a4,1368(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L239
				ld	ra,1480(sp)
				ld	s0,1472(sp)
				ld	s1,1464(sp)
				ld	s2,1456(sp)
				ld	s3,1448(sp)
				ld	s4,1440(sp)
				ld	s5,1432(sp)
				ld	s6,1424(sp)
				ld	s7,1416(sp)
				ld	s8,1408(sp)
				ld	s9,1400(sp)
				ld	s10,1392(sp)
				ld	s11,1384(sp)
				add	sp,sp,1488
				jr	ra
		.LVL401:
		.L207:
				call	__stack_chk_fail
		.LVL406:
		.LFE194:
				.align	1
		MOVES.6101:
		.LFB193:
?LIST2 unused
  563          !!
  564          DIAG = 0
				sw	zero,584(sp)
  565          LIST == RECORD(0)
				sd	zero,536(sp)
		.LVL407:
  566          WHICHX = WHICH&BIT
  567          !!
  568          %IF SCRQ = 3 %START;           ! PIN ENTRY
				li	a5,3
				beq	a1,a5,.L320
		.L241:
  569             X = PX; Y = PY
				lui	a5,%hi(PX.6051)
				lw	a4,%lo(PX.6051)(a5)
				sw	a4,600(sp)
  570             SQU = (Y-1)*8+X
				lui	a5,%hi(PY.6052)
				lw	a5,%lo(PY.6052)(a5)
				sw	a5,596(sp)
				addw	a5,a5,-1
				sllw	a5,a5,3
				addw	a5,a5,a4
				sw	a5,564(sp)
		.L242:
  571             -> PIN ENTRY
  572          %FINISH
  573
  574          !!
  575          SQU = 0
				sw	zero,564(sp)
  576          %CYCLE Y = 1,1, 8
  577
  578             %CYCLE X = 1, 1, 8
  579                TYPE = -1
				li	a5,0
		.L243:
				li	a5,-1
				sw	a5,612(sp)
				lw	a5,596(sp)
				li	a3,8
				bne	a5,a3,.L243
		.L246:
  580                SQU = SQU+1
				addw	a5,a5,1
				sw	a5,596(sp)
				lw	a5,564(sp)
				addw	a5,a5,1
				sw	a5,564(sp)
				j	.L242
		.L320:
  581 PIN ENTRY:
				li	a5,0
		.L247:
				lw	a5,600(sp)
				li	a3,8
				bne	a5,a3,.L247
		.L244:
		.L245:
  582                Q = PT(SQU)_P;           ! PICK UP PIECE(X,Y)
				addw	a5,a5,1
				sw	a5,600(sp)
				lw	a5,564(sp)
				addw	a5,a5,-1
				add	a5,a5,4
				sll	a5,a5,3
				add	a5,s0,a5
				ld	a5,0(a5)
				lw	a5,0(a5)
				sw	a5,608(sp)
  583                %IF Q # 0 %AND (Q&BIT = WHICHX %OR %C
				beqz	a5,.L294
  584                  SCRQ > 0) %START
				srl	a4,s1,63
				and	a4,a4,a5
				bnez	a4,.L251
  585                   %IF Q<0 %THEN QQ=-Q %AND W2=-1 %ELSE %C
				lw	a4,620(sp)
				blez	a4,.L294
		.L251:
				bltz	a5,.L321
		.L252:
  586                     QQ = Q %AND W2 = +1
				subw	a5,zero,a5
				sw	a5,616(sp)
  587                   -> MOVE(QQ)
				lw	s2,616(sp)
		.LVL409:
		.LDL15:
				li	a5,-1
				sw	a5,560(sp)
  588
				j	.L253
		.LVL412:
		.L256:
  589 MOVE(1):                                ! PAWN
  590                   TYPE = 0
				sw	a5,616(sp)
				sw	zero,612(sp)
  591                   PIN FLAG = 0
				li	a5,1
				sw	a5,560(sp)
		.L253:
		.LVL408:
				sw	zero,580(sp)
  592                   K = DOM(X, Y-W2)
				add	t2,sp,536
				lw	a1,596(sp)
				lw	a5,560(sp)
				subw	a1,a1,a5
				lw	a0,600(sp)
				call	DOM.6359
		.LVL413:
  593                   PIN FLAG = 0
				sw	zero,580(sp)
  594                   K=DOM(X, Y-W2-W2) %IF (Y=2 %OR Y=7) %AND K#0
				lw	a5,596(sp)
				li	a4,2
				beq	a5,a4,.L257
  595                   TYPE = 1
				li	a4,7
				beq	a5,a4,.L257
		.LVL414:
		.L258:
				li	a5,1
				sw	a5,612(sp)
  596                   PIN FLAG = 0
				sw	zero,580(sp)
  597                   K = DOM(X-1, Y-W2); PIN FLAG = 0;  K=DOM(X+1, Y-W2)
				add	t2,sp,536
				lw	a1,596(sp)
				lw	a5,560(sp)
				subw	a1,a1,a5
				lw	a0,600(sp)
				addw	a0,a0,-1
				call	DOM.6359
		.LVL415:
				beqz	a0,.L258
  598                   ->OUT
				sw	zero,580(sp)
				j	.L294
		.LVL417:
		.L257:
				lw	a1,560(sp)
				subw	a5,a5,a1
				add	t2,sp,536
				subw	a1,a5,a1
				lw	a0,600(sp)
		.LVL418:
				call	DOM.6359
		.LVL419:
				j	.L258
		.L259:
		.LVL420:
  599                   !!
				add	t2,sp,536
				lw	a1,596(sp)
				lw	a5,560(sp)
				subw	a1,a1,a5
				lw	a0,600(sp)
				addw	a0,a0,1
				call	DOM.6359
		.LVL416:
  600 MOVE(2):                                ! KNIGHT
  601                   %CYCLE A = -2, 4, 2
  602                      %CYCLE B = -1, 2, 1
				li	s3,-6
  603                            PIN FLAG = 0
				li	s7,-3
				mv	s4,s7
		.LVL424:
		.L260:
				sw	zero,580(sp)
  604                            K = DOM(X+A, Y+B)
				li	s6,2
				j	.L261
		.LVL421:
		.L322:
		.LDL16:
		.LDL17:
				beq	s3,s6,.L294
		.LVL422:
		.L261:
				add	t2,sp,536
				lw	a1,596(sp)
				addw	a1,a1,s2
				lw	a0,600(sp)
				addw	a0,a0,s3
				call	DOM.6359
		.LVL426:
  605                             PIN FLAG = 0
				li	s5,1
				addw	s3,s3,4
		.LVL423:
				sw	zero,580(sp)
				bne	s4,s5,.L260
				j	.L322
		.LVL428:
		.L263:
		.L264:
  606                            K = DOM(X+B, Y+A)
				addw	s2,s4,2
				sext.w	s4,s2
		.LVL425:
				add	t2,sp,536
				lw	a1,596(sp)
				addw	a1,a1,s3
				lw	a0,600(sp)
				addw	a0,a0,s2
				call	DOM.6359
		.LVL427:
		.LDL18:
  607                      %REPEAT
  608                   %REPEAT
  609                   -> OUT
  610                   !!!
  611 MOVE(3):                                ! BISHOP
  612 MOVE(5):                                ! QUEEN
  613                   DIAG = 1
				li	a5,1
				sw	a5,584(sp)
		.LVL429:
  614                   I = 0;  PIN FLAG = 0
				li	s3,0
		.LVL430:
		.L265:
  615                   %CYCLE
				sw	zero,580(sp)
  616                      I = I-1
				addw	a5,s3,-1
				sext.w	s3,a5
		.LVL431:
  617                      K = DOM(X+I, Y+I)
				add	t2,sp,536
				lw	a1,596(sp)
				addw	a1,a1,a5
				lw	a0,600(sp)
				addw	a0,a0,a5
				call	DOM.6359
		.LVL432:
				mv	s2,a0
		.LVL433:
  618                   %REPEAT %UNTIL K = 0
				bnez	a0,.L265
		.L266:
		.LVL434:
  619                   I = 0;  PIN FLAG = 0
  620                   %CYCLE
				sw	zero,580(sp)
		.LVL435:
		.L267:
  621                      I = I-1
				addw	a5,s2,-1
				sext.w	s2,a5
		.LVL436:
  622                      K = DOM(X-I, Y+I)
				add	t2,sp,536
				lw	a1,596(sp)
				addw	a1,a1,a5
				lw	a0,600(sp)
		.LVL437:
				subw	a0,a0,a5
				call	DOM.6359
		.LVL438:
				mv	s3,a0
		.LVL439:
  623                   %REPEAT %UNTIL K = 0
				bnez	a0,.L267
		.L268:
		.LVL440:
  624                   I = 0;  PIN FLAG = 0
  625                   %CYCLE
				sw	zero,580(sp)
		.LVL441:
		.L269:
  626                      I = I-1
				addw	a5,s3,-1
				sext.w	s3,a5
		.LVL442:
  627                      K = DOM(X+I, Y-I)
				add	t2,sp,536
				lw	a1,596(sp)
				subw	a1,a1,a5
				lw	a0,600(sp)
		.LVL443:
				addw	a0,a0,a5
				call	DOM.6359
		.LVL444:
				mv	s2,a0
		.LVL445:
  628                   %REPEAT %UNTIL K = 0
				bnez	a0,.L269
		.L270:
		.LVL446:
  629                   I = 0;  PIN FLAG = 0
  630                   %CYCLE
				sw	zero,580(sp)
		.LVL447:
		.L271:
  631                      I = I-1
				addw	a5,s2,-1
				sext.w	s2,a5
		.LVL448:
  632                      K = DOM(X-I, Y-I)
				add	t2,sp,536
				lw	a1,596(sp)
				subw	a1,a1,a5
				lw	a0,600(sp)
		.LVL449:
				subw	a0,a0,a5
				call	DOM.6359
		.LVL450:
  633                   %REPEAT %UNTIL K = 0
				bnez	a0,.L271
		.L272:
  634                   -> OUT %IF QQ # QUEEN;     ! THE BISHOP
				lw	a4,616(sp)
				li	a5,5
				bne	a4,a5,.L294
		.L273:
		.LVL451:
		.L274:
  635
  636 MOVE(4):                                ! ROOK
  637                   DIAG = 0
				sw	zero,584(sp)
		.LVL452:
  638                   K = 1;  I = 0;  PIN FLAG = 0
  639                   %CYCLE
				li	s3,0
		.LVL453:
		.L275:
  640                      I = I-1
				sw	zero,580(sp)
				addw	a5,s3,-1
				sext.w	s3,a5
		.LVL454:
  641                      K = DOM(X, Y+I)
				add	t2,sp,536
				lw	a1,596(sp)
				addw	a1,a1,a5
				lw	a0,600(sp)
				call	DOM.6359
		.LVL455:
				mv	s2,a0
		.LVL456:
  642                   %REPEAT %UNTIL K = 0
				bnez	a0,.L275
		.L276:
		.LVL457:
  643                   I = 0;  PIN FLAG = 0
  644                   %CYCLE
				sw	zero,580(sp)
		.LVL458:
		.L277:
  645                      I = I+1
				addw	a5,s2,1
				sext.w	s2,a5
		.LVL459:
  646                      K = DOM(X+I, Y)
				add	t2,sp,536
				lw	a1,596(sp)
				lw	a0,600(sp)
		.LVL460:
				addw	a0,a0,a5
				call	DOM.6359
		.LVL461:
				mv	s3,a0
		.LVL462:
  647                   %REPEAT %UNTIL K = 0
				bnez	a0,.L277
		.L278:
		.LVL463:
  648                   I = 0;  PIN FLAG = 0
  649                   %CYCLE
				sw	zero,580(sp)
		.LVL464:
		.L279:
  650                      I = I+1
				addw	a5,s3,1
				sext.w	s3,a5
		.LVL465:
  651                      K = DOM(X, Y+I)
				add	t2,sp,536
				lw	a1,596(sp)
				addw	a1,a1,a5
				lw	a0,600(sp)
		.LVL466:
				call	DOM.6359
		.LVL467:
				mv	s2,a0
		.LVL468:
  652                   %REPEAT %UNTIL K = 0
				bnez	a0,.L279
		.L280:
		.LVL469:
  653                   I = 0;  PIN FLAG = 0
  654                   %CYCLE
				sw	zero,580(sp)
		.LVL470:
		.L281:
  655                      I = I-1
				addw	a5,s2,-1
				sext.w	s2,a5
		.LVL471:
  656                      K = DOM(X+I, Y)
				add	t2,sp,536
				lw	a1,596(sp)
				lw	a0,600(sp)
		.LVL472:
				addw	a0,a0,a5
				call	DOM.6359
		.LVL473:
  657                   %REPEAT %UNTIL K = 0
				bnez	a0,.L281
		.L250:
		.L290:
		.L291:
		.L292:
		.L293:
		.LVL474:
		.L294:
  658                   -> OUT
  659
  660
  661                   !!
  662 MOVE(6):                                ! KING
  663                   ROW == BRD(Y)
				lw	a5,596(sp)
				addw	a5,a5,-1
				sll	a4,a5,7
				lui	a5,%hi(.LANCHOR0)
				addi	a5,a5,%lo(.LANCHOR0)
				add	a5,a5,a4
				sd	a5,544(sp)
		.LVL482:
  664                   %CYCLE A = -1, 1, 1
  665                      %CYCLE B = -1, 1, 1
				li	s3,-2
  666                         %IF A#0 %OR B#0 %START
				li	s5,-2
				mv	s2,s5
		.LVL486:
		.L283:
				beqz	s3,.L325
		.L286:
  667                           PIN FLAG = 0
				beq	s3,s4,.L324
		.LVL484:
		.L285:
				sw	zero,580(sp)
				bnez	s2,.L286
  668                           K = DOM(X+A, Y+B)
				li	s4,1
				j	.L285
		.LVL483:
		.L326:
		.LDL19:
		.LDL20:
				addw	s3,s3,1
		.LVL485:
				add	t2,sp,536
				lw	a1,596(sp)
				addw	a1,a1,a5
				lw	a0,600(sp)
				addw	a0,a0,s3
				call	DOM.6359
		.LVL488:
				bne	s2,s4,.L283
				j	.L326
		.LVL489:
		.L325:
  669                          ! %IF K#0 %AND W2#WHICH %THEN K MOB=K MOB+1
				addw	a5,s2,1
				sext.w	s2,a5
		.LVL487:
  670                         %FINISH
				j	.L283
		.LVL490:
		.L324:
		.L284:
  671                      %REPEAT
  672                   %REPEAT
  673                   %IF LAST CHK # Q %AND %C
				lui	a5,%hi(LASTCHK.6084)
				lw	a4,%lo(LASTCHK.6084)(a5)
				lw	a5,608(sp)
				beq	a4,a5,.L294
  674                     KCASCH(W2) = Y %AND KMOVE(W2)=0 %START
				lw	a3,560(sp)
				addw	a4,a3,1
				sll	a2,a4,2
				lui	a5,%hi(.LANCHOR2)
				addi	a5,a5,%lo(.LANCHOR2)
				add	a5,a5,a2
				lw	a1,-616(a5)
				lw	a5,596(sp)
				bne	a5,a1,.L294
  675                                         ! CORRECT ROW AND ABLE TO CASTLE
				lui	a5,%hi(KMOVE.6066)
				addi	a5,a5,%lo(KMOVE.6066)
				add	a4,a4,a5
				lbu	a5,0(a4)
				bnez	a5,.L294
		.LBB477:
  676                      %IF ROW_R(6)_P = 0 = ROW_R(7)_P %AND %C
  677                        ROW_R(8)_P = ROOK*W2 %START
  678                         TYPE = 6; K = DOM(7, Y); ! DO CASTLE
				li	a5,6
				sw	a5,612(sp)
  679                      %FINISH
				ld	a5,544(sp)
		.LVL491:
				lw	a4,80(a5)
				bnez	a4,.L289
				add	t2,sp,536
				li	a0,7
				call	DOM.6359
		.LVL495:
				j	.L289
		.LVL496:
		.L323:
		.LBB479:
		.LBB475:
		.LBB473:
  680                      %IF ROW_R(4)_P = 0 =ROW_R(3)_P %AND %C
  681                        ROW_R(2)_P = 0 %AND ROW_R(1)_P = ROOK*W2 %C
				lw	a4,96(a5)
				bnez	a4,.L289
		.LBE477:
  682                        %START
  683                         TYPE = 7; K = DOM(3, Y)
				lw	a5,112(a5)
				sllw	a3,a3,2
				beq	a5,a3,.L327
		.L289:
		.LBB478:
				ld	a5,544(sp)
		.LVL492:
				lw	a4,48(a5)
				bnez	a4,.L294
				li	a5,7
				sw	a5,612(sp)
  684                      %FINISH
				add	t2,sp,536
				lw	a1,596(sp)
				li	a0,3
				call	DOM.6359
		.LVL493:
				j	.L294
		.LVL494:
		.L327:
  685                   %FINISH
				lw	a4,32(a5)
				bnez	a4,.L294
		.LBE478:
  686                   !!
  687 OUT:
				lw	a4,16(a5)
				bnez	a4,.L294
  688                %FINISH
				lw	a4,0(a5)
				lw	a5,560(sp)
				sllw	a5,a5,2
				bne	a4,a5,.L294
  689                %RESULT = 0 %IF SCRQ = 3
				lw	a4,620(sp)
				li	a5,3
				beq	a4,a5,.L295
		.L248:
		.L249:
  690             %REPEAT
				li	a0,0
  691          %REPEAT
  692          CHECK PINS(WHICH) %IF SCRQ > 0
				blez	a4,.L305
		.LVL475:
		.LBB468:
		.LBB469:
  693                                         ! ONLY ON SCORE ENTRY
				lw	s9,592(sp)
		.LVL476:
		.LBB476:
		.LBB474:
		.LBB470:
		.LBB471:
  694
  695          %RESULT = ADDR(LIST)
				lw	a0,536(sp)
		.L295:
  696       %END
  697       !!
  698       %INTEGERFN SORT AND PRUNE(%RECORD(LISTF)%NAME LIST, %C
		.LVL55:
				add	sp,sp,-1360
				sd	ra,1352(sp)
				sd	s0,1344(sp)
				sd	s1,1336(sp)
				sd	s2,1328(sp)
				sd	s3,1320(sp)
				sd	s4,1312(sp)
				mv	s2,a0
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1304(sp)
				addw	a4,s2,-1
				li	a5,5
				bgtu	a4,a5,.L254
		.L255:
				lui	a5,%hi(_imp_current_file)
				ld	a1,%lo(_imp_current_file)(a5)
				beqz	a1,.L306
				add	a0,sp,888
				call	_imp_c2istr
		.LVL514:
		.L307:
				lui	a5,%hi(_imp_current_line)
				lw	s3,%lo(_imp_current_line)(a5)
				bnez	s3,.L308
				li	s3,698
		.L308:
				li	a2,256
				add	a1,sp,888
				add	a0,sp,16
				call	memcpy
		.LVL515:
				li	a5,587
				sd	a5,0(sp)
				lui	a7,%hi(.LC31)
				addi	a7,a7,%lo(.LC31)
				mv	a6,s2
				lui	a5,%hi(.LC32)
				addi	a5,a5,%lo(.LC32)
				mv	a4,s2
				li	a3,3
				li	a2,6
				mv	a1,s3
				add	a0,sp,16
				call	_signal_eventf
		.LVL516:
				j	.L255
		.L306:
		.LBB480:
				li	a2,256
				lui	a1,%hi(.LANCHOR1)
				addi	a1,a1,%lo(.LANCHOR1)
				add	a0,sp,1656
				call	memcpy
		.LVL517:
				li	a2,256
				add	a1,sp,1656
				add	a0,sp,632
				call	memcpy
		.LVL518:
		.LBE480:
				li	a2,256
				add	a1,sp,632
				add	a0,sp,888
				call	memcpy
		.LVL519:
				j	.L307
		.LVL520:
		.L328:
  699          %INTEGER WIDTH, WHICH)
				addw	s2,s2,-1
		.LVL410:
				sll	s2,s2,3
				lui	a5,%hi(.LANCHOR2)
				addi	a5,a5,%lo(.LANCHOR2)
				add	s2,a5,s2
				ld	a5,-344(s2)
				jr	a5
		.LVL411:
		.L321:
  700
				ld	a4,1912(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L328
				ld	ra,2008(sp)
				ld	s0,2000(sp)
				ld	s1,1992(sp)
				ld	s2,1984(sp)
				ld	s3,1976(sp)
				ld	s4,1968(sp)
				ld	s5,1960(sp)
				ld	s6,1952(sp)
				ld	s7,1944(sp)
				ld	s8,1936(sp)
				ld	s9,1928(sp)
				add	sp,sp,2016
				jr	ra
		.LVL513:
		.L254:
				call	__stack_chk_fail
		.LVL521:
		.LFE193:
				.align	1
		TRYANOTHERPLY.6245:
		.LFB191:
  701
  702          %INTEGER I, MAX
  703          %RECORD(LISTF)%NAME M1, M2, L, LN, RES
  704          %CONSTINTEGERARRAY MAXA(-1:1) = 25000, 0, -25000
				li	a5,24576
				addw	a5,a5,424
				sw	a5,520(sp)
				sw	zero,524(sp)
				li	a5,-24576
				addw	a5,a5,-424
				sw	a5,528(sp)
  705          !!
  706
  707          %RESULT = 0 %IF ADDR(LIST) = 0
				beqz	s2,.L30
				mv	s3,a1
				mv	s1,a2
				mv	s4,t2
		.L31:
		.LVL57:
		.LBB308:
		.LBB309:
  708
				li	a0,0
		.LVL56:
  709          RES == RECORD(0)
  710          %CYCLE I = 1, 1, WIDTH
  711             M1 == RECORD(0)
				li	a1,0
				j	.L44
		.LVL90:
		.L38:
		.LBE308:
  712             M2 == M1; LN == M1
				addw	a5,a1,-1
		.LVL58:
		.LBE309:
				sll	a4,a5,32
				bltz	a4,.L60
		.LVL59:
		.L32:
				lui	a5,%hi(_imp_current_file)
		.LVL63:
				ld	a1,%lo(_imp_current_file)(a5)
		.LVL64:
				beqz	a1,.L33
				add	a0,sp,792
				call	_imp_c2istr
		.LVL65:
		.L34:
				lui	a5,%hi(_imp_current_line)
				lw	s0,%lo(_imp_current_line)(a5)
				bnez	s0,.L35
				li	s0,712
		.L35:
				lui	a1,%hi(.LC29)
				addi	a1,a1,%lo(.LC29)
				add	a0,sp,1048
				call	_imp_c2istr
		.LVL66:
				li	a2,256
				add	a1,sp,792
				add	a0,sp,256
				call	memcpy
		.LVL67:
				li	a2,256
				add	a1,sp,1048
				mv	a0,sp
				call	memcpy
		.LVL68:
				li	a5,0
				li	a4,1
				li	a3,5
				mv	a2,sp
				mv	a1,s0
				add	a0,sp,256
				call	_signal_event
		.LVL69:
				j	.L32
		.LVL70:
		.L33:
		.LBB310:
				li	a2,256
		.LVL71:
				lui	a1,%hi(.LANCHOR1)
				addi	a1,a1,%lo(.LANCHOR1)
				add	a0,sp,1048
				call	memcpy
		.LVL72:
				li	a2,256
				add	a1,sp,1048
				add	a0,sp,536
				call	memcpy
		.LVL73:
		.LBE310:
				li	a2,256
				add	a1,sp,536
				add	a0,sp,792
				call	memcpy
		.LVL74:
				j	.L34
		.LVL75:
		.L55:
				li	s0,0
				li	s0,0
				j	.L46
		.LVL106:
		.L63:
		.LBE312:
  713             MAX = MAXA(WHICH)
				addw	a5,s1,1
				sll	a5,a5,2
				add	a4,sp,1312
				add	a5,a4,a5
		.LVL61:
				li	a6,0
				li	a3,0
  714
  715             L == LIST
				beqz	s3,.L53
		.LVL60:
				beq	s3,a0,.L38
				li	s0,0
				j	.L36
		.LVL94:
		.L57:
		.LBE311:
  716             %%EXIT  %IF ADDR(L) = 0
				li	a0,1
				addw	a0,a0,1
		.LVL88:
				mv	a6,s0
				beqz	s2,.L39
		.LVL89:
		.L37:
  717
  718             %WHILE ADDR(L) # 0 %CYCLE
  719                %IF (WHICH<0 %AND L_SCORE<MAX) %OR %C
				lw	a7,-792(a5)
				j	.L37
		.LVL62:
		.L60:
				beqz	a4,.L61
		.LVL82:
				bltz	s1,.L62
		.L41:
				beqz	s2,.L40
				mv	a5,s2
				mv	a2,a7
  720                  (WHICH>0 %AND L_SCORE>MAX) %START
				lw	a4,8(a5)
				bge	a4,a2,.L43
		.L42:
		.LVL78:
  721                   !!
  722                   M2 == L;  M1 == LN;  MAX = L_SCORE
				blez	s1,.L43
  723                %FINISH
				lw	a4,8(a5)
				ble	a4,a2,.L43
  724                !!
				lw	a2,8(a5)
		.LVL79:
				mv	s0,a5
				mv	a1,a3
		.LVL80:
		.L43:
				j	.L42
		.LVL84:
		.L61:
		.L45:
  725                LN == L;  L == L_L
  726             %REPEAT
				ld	a4,0(a5)
		.LDL1:
		.LDL2:
		.LVL81:
				mv	a3,a5
				mv	a5,a4
		.LVL83:
		.L44:
  727
  728             !!
  729             L == M2_L;                  ! PICKUP ITS POINTER
				mv	s2,a5
		.LVL76:
				j	.L46
		.LVL77:
		.L62:
				ld	a5,0(s0)
		.LVL85:
				li	a5,0
				ld	s2,0(a5)
		.LVL104:
  730             M2_L == RES
				sd	a6,0(s0)
		.LVL86:
				sd	a6,0(a5)
		.LVL105:
  731             RES == M2;                     ! NOTE LINKS BACKWARDS
  732             %IF ADDR(M1) = 0 %THEN LIST == L %ELSE %C
				beqz	a1,.L55
		.L47:
  733               M1_L == L
  734          %REPEAT
  735
  736          %IF ADDR(LIST) # 0 %THEN RELEASE CHAIN(LIST)
				sd	a5,0(a1)
		.LVL87:
		.L46:
				beqz	s2,.L39
		.LVL91:
		.L36:
  737          L == RECORD (0)
				mv	t2,s4
				mv	a0,s2
				call	RELEASECHAIN.6158
		.LVL92:
		.L39:
  738          %WHILE ADDR(RES) # 0 %CYCLE
  739             M1 == RES_L;                ! NEXT LINK
				beqz	s0,.L56
				li	a4,0
				j	.L49
		.LVL93:
		.L53:
		.LBB311:
				ld	a5,0(s0)
		.LVL96:
				bnez	a5,.L57
		.LVL98:
		.L48:
				li	s0,0
		.LVL102:
				j	.L48
		.LVL103:
		.L40:
		.LBB312:
  740             RES_L == L;                 ! LINK TO NEXT
				sd	a4,0(s0)
		.LVL97:
				mv	a4,s0
  741             L == RES
  742             RES == M1
				mv	s0,a5
		.LVL95:
		.L49:
  743          %REPEAT
  744          %RESULT = ADDR(L)
				sext.w	a0,s0
		.LVL99:
		.L30:
  745       %END
				ld	a4,1304(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L63
				ld	ra,1352(sp)
				ld	s0,1344(sp)
				ld	s1,1336(sp)
				ld	s2,1328(sp)
		.LVL100:
				ld	s3,1320(sp)
				ld	s4,1312(sp)
				add	sp,sp,1360
				jr	ra
		.LVL101:
		.L56:
				call	__stack_chk_fail
		.LVL107:
		.LFE195:
				.align	1
		EXVAL.6213:
		.LFB189:
  746       !!
  747       %INTEGERFN CHANGE BOARD(%RECORD(LISTF{QHF})%NAME B)
		.LVL3:
  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
				ld	a6,0(a0)
		.LVL4:
  754          FROM = LIST_FR;  TO = LIST_TO
				lbu	a5,4(a6)
		.LVL5:
  755          X = FROM>>4;  X0 = TO>>4
				lbu	a3,5(a6)
		.LVL6:
				srlw	a7,a5,4
		.LVL7:
  756          Y = FROM&15; Y0 = TO&15
				and	a5,a5,15
		.LVL8:
				srlw	a3,a3,4
		.LVL9:
				addw	a3,a3,-1
		.LVL10:
  757          SQ == BRD(Y0)_R(X0)
				and	a4,a3,15
				addw	a4,a4,-1
  758          B_HOLD = SQ_P
				sll	a2,a4,3
				add	a2,a2,a3
				sll	a1,a2,4
				lui	a2,%hi(.LANCHOR0)
				addi	a2,a2,%lo(.LANCHOR0)
				add	a2,a2,a1
				lw	a2,0(a2)
				sw	a2,0(a0)
		.LVL11:
  759          %IF LIST_SPEC # 0 %START
				lw	a2,8(a6)
				beqz	a2,.L6
  760             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				li	a1,5
				ble	a2,a1,.L7
  761                %IF SQ_P<0 %START
				sll	a5,a4,3
		.LVL12:
				add	a5,a5,a3
				sll	a1,a5,4
				lui	a5,%hi(.LANCHOR0)
				addi	a5,a5,%lo(.LANCHOR0)
				add	a5,a5,a1
				lw	a5,0(a5)
				bltz	a5,.L14
		.L8:
		.LVL13:
  762                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = -30
				li	a5,1
  763                %FINISHELSESTART
				li	a0,-6
		.LVL18:
				j	.L9
		.LVL19:
		.L15:
  764                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 30
				li	a5,8
				li	a1,-4
  765                %FINISH
				li	a0,6
		.LVL14:
		.L9:
				lui	a5,%hi(.LANCHOR0+1024)
				li	a1,-30
				sw	a1,%lo(.LANCHOR0+1024)(a5)
  766                ROW == BRD(CAS)
				li	a1,4
				addw	a5,a5,-1
		.LVL15:
				li	a6,6
		.LVL16:
				beq	a2,a6,.L15
		.L10:
  767                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				lui	a5,%hi(.LANCHOR0+1032)
				li	a1,30
				sw	a1,%lo(.LANCHOR0+1032)(a5)
  768                   ROW_R(7)_P = KING;  ROW_R(6)_P = ROOK
				sll	a5,a5,7
				lui	a2,%hi(.LANCHOR0)
				addi	a2,a2,%lo(.LANCHOR0)
				add	a5,a2,a5
				sw	a0,96(a5)
  769                   ROW_R(8)_P = 0
				sw	a1,80(a5)
				sw	zero,112(a5)
  770                %FINISHELSESTART
				j	.L11
		.LVL20:
		.L7:
  771                   ROW_R(3)_P = KING;  ROW_R(4)_P = ROOK
				sll	a5,a5,7
				lui	a2,%hi(.LANCHOR0)
				addi	a2,a2,%lo(.LANCHOR0)
				add	a5,a2,a5
				sw	a0,32(a5)
  772                   ROW_R(1)_P = 0
				sw	a1,48(a5)
				sw	zero,0(a5)
		.L11:
  773                %FINISH
  774                SQ_P = 0
				sll	a4,a4,3
				add	a3,a4,a3
				sll	a4,a3,4
				lui	a3,%hi(.LANCHOR0)
				addi	a3,a3,%lo(.LANCHOR0)
				add	a3,a3,a4
				sw	zero,0(a3)
  775                %RESULT = KING
				ret
		.LVL17:
		.L14:
  776             %FINISH
  777             SQ_P = LIST_SPEC
				sll	a1,a4,3
				add	a1,a1,a3
				sll	a0,a1,4
		.LVL21:
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a1,a1,a0
				sw	a2,0(a1)
  778          %FINISHELSESTART
				j	.L13
		.LVL22:
		.L6:
  779             SQ_P = BRD(Y)_R(X)_P
				lui	a0,%hi(.LANCHOR0)
		.LVL23:
				addi	a0,a0,%lo(.LANCHOR0)
				addw	a2,a7,-1
				addw	a1,a5,-1
				sll	a1,a1,3
				add	a2,a1,a2
				sll	a2,a2,4
				add	a2,a0,a2
				lw	a1,0(a2)
				sll	a2,a4,3
				add	a2,a2,a3
				sll	a2,a2,4
				add	a0,a0,a2
				sw	a1,0(a0)
		.L13:
  780          %FINISH
  781          BRD(Y)_R(X)_P = 0
				lui	a2,%hi(.LANCHOR0)
				addi	a2,a2,%lo(.LANCHOR0)
				addw	a7,a7,-1
		.LVL24:
				addw	a5,a5,-1
		.LVL25:
				sll	a5,a5,3
				add	a5,a5,a7
				sll	a5,a5,4
				add	a5,a2,a5
				sw	zero,0(a5)
  782          %RESULT = SQ_P
				sll	a4,a4,3
				add	a3,a4,a3
				sll	a3,a3,4
				add	a3,a2,a3
				lw	a0,0(a3)
  783       %END
				ret
		.LFE196:
				.align	1
		RESTOREBOARD.6108:
		.LFB197:
  784       !!
  785       %ROUTINE RESTORE BOARD(%RECORD(LISTF{QHF})%NAME B)
		.LVL26:
  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
				ld	a2,0(a0)
		.LVL27:
  791          FROM = LIST_FR;  TO = LIST_TO
				lbu	a5,4(a2)
		.LVL28:
  792          X = FROM>>4;  X0 = TO>>4
				lbu	a3,5(a2)
		.LVL29:
				srlw	a6,a5,4
		.LVL30:
  793          Y = FROM&15; Y0 = TO&15
				and	a4,a5,15
		.LVL31:
				srlw	a3,a3,4
		.LVL35:
				addw	a1,a3,-1
		.LVL36:
  794          SQ == BRD(Y0)_R(X0)
				and	a5,a3,15
		.LVL32:
				sext.w	a7,a5
		.LVL33:
				addw	a5,a5,-1
		.LVL34:
  795          %IF LIST_SPEC # 0 %START
				lw	a3,8(a2)
		.LVL37:
				beqz	a3,.L25
  796             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				li	a2,5
		.LVL38:
				ble	a3,a2,.L18
  797                %IF Y0 = 1 %START
				li	a4,1
		.LVL39:
				beq	a7,a4,.L26
		.L19:
		.LVL40:
  798                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = 0
  799                %FINISHELSESTART
				li	a2,-6
				j	.L20
		.LVL48:
		.L27:
  800                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 0
				li	a7,8
		.LVL42:
				li	a0,-4
		.LVL47:
  801                %FINISH
				li	a2,6
		.LVL43:
		.L20:
				lui	a4,%hi(.LANCHOR0+1024)
				sw	zero,%lo(.LANCHOR0+1024)(a4)
  802                ROW == BRD(CAS)
				li	a0,4
		.LVL41:
				addw	a7,a7,-1
		.LVL44:
				li	a4,6
				beq	a3,a4,.L27
		.L21:
  803                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				lui	a4,%hi(.LANCHOR0+1032)
				sw	zero,%lo(.LANCHOR0+1032)(a4)
  804                   ROW_R(8)_P = ROOK
				sll	a7,a7,7
				lui	a4,%hi(.LANCHOR0)
				addi	a4,a4,%lo(.LANCHOR0)
				add	a7,a4,a7
				sw	a0,112(a7)
		.LVL49:
  805                   ROW_R(7)_P = 0;  ROW_R(6)_P = 0
				sw	zero,96(a7)
  806                %FINISHELSESTART
				sw	zero,80(a7)
				j	.L22
		.LVL50:
		.L18:
  807                   ROW_R(1)_P = ROOK
				sll	a7,a7,7
				lui	a4,%hi(.LANCHOR0)
				addi	a4,a4,%lo(.LANCHOR0)
				add	a7,a4,a7
				sw	a0,0(a7)
		.LVL45:
  808                   ROW_R(3)_P = 0;  ROW_R(4)_P = 0
				sw	zero,32(a7)
  809                %FINISH
				sw	zero,48(a7)
		.L22:
  810                SQ_P = KING
				sll	a5,a5,3
				add	a5,a5,a1
				sll	a5,a5,4
				lui	a1,%hi(.LANCHOR0)
				addi	a1,a1,%lo(.LANCHOR0)
				add	a1,a1,a5
				sw	a2,0(a1)
  811                %RETURN
				ret
		.LVL46:
		.L26:
  812             %FINISH
  813             %IF Y0=8 %THEN SQ_P=-1 %ELSE SQ_P=1
				li	a3,8
				beq	a7,a3,.L28
		.L24:
  814          %FINISH
				add	a3,a1,56
				sll	a2,a3,4
				lui	a3,%hi(.LANCHOR0)
				addi	a3,a3,%lo(.LANCHOR0)
				add	a3,a3,a2
				li	a2,-1
				sw	a2,0(a3)
		.LVL54:
  815          BRD(Y)_R(X)_P = SQ_P
				lui	a3,%hi(.LANCHOR0)
				addi	a3,a3,%lo(.LANCHOR0)
				sll	a5,a5,3
				add	a5,a5,a1
				sll	a5,a5,4
				add	a5,a3,a5
				lw	a1,0(a5)
				addw	a2,a6,-1
				addw	a4,a4,-1
		.LVL52:
				sll	a4,a4,3
				add	a4,a4,a2
				sll	a4,a4,4
				add	a4,a3,a4
				sw	a1,0(a4)
				j	.L25
		.LFE197:
				.align	1
		SORTANDPRUNE.6095:
		.LFB195:
  816          SQ_P = B_HOLD
				lw	a4,0(a0)
				sw	a4,0(a5)
  817       %END
				sll	a3,a5,3
				add	a3,a3,a1
				sll	a2,a3,4
				lui	a3,%hi(.LANCHOR0)
				addi	a3,a3,%lo(.LANCHOR0)
				add	a3,a3,a2
				li	a2,1
				sw	a2,0(a3)
		.LVL51:
		.L17:
		.L25:
  818       !!
				ret
		.LVL53:
		.L28:
  819       !!
  820       %ROUTINE BURP(%RECORD(LISTF{QHF})%NAME X, %INTEGER W)
		.LVL612:
				add	sp,sp,-64
				sd	ra,56(sp)
				sd	s0,48(sp)
				sd	s1,40(sp)
				sd	s2,32(sp)
				sd	s3,24(sp)
				sd	s4,16(sp)
				sd	s5,8(sp)
				mv	s3,a0
				mv	s0,a1
  821          %INTEGER I
  822          !!
  823          TELL(X_L, W)
				ld	a0,0(a0)
		.LVL613:
				call	TELL.6114
		.LVL614:
		.LBB542:
		.LBB543:
				lui	s5,%hi(_imp_OutStream)
				li	a5,2
				sw	a5,%lo(_imp_OutStream)(s5)
				lui	s4,%hi(_imp_OutFile)
				lui	s2,%hi(_imp_outfile)
				addi	s2,s2,%lo(_imp_outfile)
				ld	a5,584(s2)
				sd	a5,%lo(_imp_OutFile)(s4)
				lui	s1,%hi(.LANCHOR2-1152)
				addi	s1,s1,%lo(.LANCHOR2-1152)
				mv	a0,s1
				call	check_outstream
		.LVL615:
		.LBE543:
		.LBE542:
		.LBB544:
		.LBB545:
				li	a0,42
				call	_imp_printsymbol
		.LVL616:
		.LBE545:
		.LBE544:
  824          SELECT OUTPUT(2)
  825          PRINTSYMBOL('*'); TELL(X_L, W)
  826          SELECT OUTPUT(0)
				mv	a1,s0
				ld	a0,0(s3)
				call	TELL.6114
		.LVL617:
		.LBB546:
		.LBB547:
				sw	zero,%lo(_imp_OutStream)(s5)
				ld	a5,8(s2)
				sd	a5,%lo(_imp_OutFile)(s4)
				mv	a0,s1
				call	check_outstream
		.LVL618:
		.LBE547:
		.LBE546:
  827 !         %IF W > 0 %AND TIMTT < 3 %AND PDEPTH#1 %THEN PDEPTH=PDEPTH+1
  828          I = CHANGE BOARD(X)
				mv	a0,s3
				call	CHANGEBOARD.6106
		.LVL619:
  829          %IF I = KING*W %THEN KMOVE(W) = 1
				sllw	a5,s0,1
				addw	a5,a5,s0
				sllw	a5,a5,1
				beq	a5,a0,.L382
		.L380:
		.L379:
  830       %END
				addw	s0,s0,1
				lui	a5,%hi(KMOVE.6066)
				addi	a5,a5,%lo(KMOVE.6066)
				add	s0,s0,a5
				li	a5,1
				sb	a5,0(s0)
				j	.L379
		.LFE198:
				.align	1
				.globl	main
		main:
		.LFB185:
  831       !!
				ld	ra,56(sp)
				ld	s0,48(sp)
				ld	s1,40(sp)
				ld	s2,32(sp)
				ld	s3,24(sp)
		.LVL620:
				ld	s4,16(sp)
				ld	s5,8(sp)
				add	sp,sp,64
				jr	ra
		.LVL621:
		.L382:
  832       %ROUTINE TELL(%RECORD(LISTF)%NAME MOVE, %INTEGER WHICH)
		.LVL191:
				add	sp,sp,-1328
				sd	ra,1320(sp)
				sd	s0,1312(sp)
				sd	s1,1304(sp)
				mv	s1,a1
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1288(sp)
  833
  834          %IF ADDR(MOVE) = 0 %START
				beqz	a0,.L115
		.L108:
				mv	s0,a0
  835             %IF WHICH < 0 %THEN PRINTSTRING("I Win
				bltz	a1,.L117
		.L109:
		.LBB359:
  836 ")          %ELSE %C
				li	a2,256
				lui	a1,%hi(.LANCHOR1+1664)
		.LVL221:
				addi	a1,a1,%lo(.LANCHOR1+1664)
				add	a0,sp,1032
		.LVL222:
				call	memcpy
		.LVL223:
				li	a2,256
				add	a1,sp,1032
				add	a0,sp,264
				call	memcpy
		.LVL224:
				li	a2,256
				add	a1,sp,264
				add	a0,sp,776
				call	memcpy
		.LVL225:
		.LBE364:
		.LBB365:
		.LBB366:
				li	a2,256
				add	a1,sp,776
				mv	a0,sp
				call	memcpy
		.LVL226:
				mv	a0,sp
				call	_imp_printstring
		.LVL227:
				j	.L110
		.LVL228:
		.L111:
		.LBE366:
		.LBE365:
		.LBB367:
		.LBB368:
				li	a0,4
				call	_imp_spaces
		.LVL229:
		.LBE368:
		.LBE367:
  837               PRINTSTRING("YOU WIN
  838 ")
  839             %STOP
				li	a2,256
				lui	a1,%hi(.LANCHOR1+1920)
		.LVL213:
				addi	a1,a1,%lo(.LANCHOR1+1920)
				add	a0,sp,1032
		.LVL214:
				call	memcpy
		.LVL215:
				li	a2,256
				add	a1,sp,1032
				add	a0,sp,520
				call	memcpy
		.LVL216:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,1032
				call	memcpy
		.LVL217:
		.LBE359:
		.LBB360:
		.LBB361:
				li	a2,256
				add	a1,sp,1032
				mv	a0,sp
				call	memcpy
		.LVL218:
				mv	a0,sp
				call	_imp_printstring
		.LVL219:
		.L110:
		.LBE361:
		.LBE360:
		.LBB362:
		.LBB363:
				li	a0,0
				call	exit
		.LVL220:
		.L117:
		.LBE363:
		.LBE362:
		.LBB364:
  840          %FINISH
  841          !!
  842          WRITE(NO, 1)
				li	a1,1
		.LVL192:
				lui	a5,%hi(NO.6077)
				lw	a0,%lo(NO.6077)(a5)
		.LVL193:
				call	_imp_writeint
		.LVL194:
  843          %IF WHICH > 0 %THEN SPACES(25) %ELSE SPACES(4)
				blez	s1,.L111
		.LVL195:
		.LBB348:
		.LBB349:
				li	a0,25
				call	_imp_spaces
		.LVL196:
		.LBE349:
		.LBE348:
  844          PRINTMOVE(MOVE)
				mv	a0,s0
				call	PRINTMOVE.6118
		.LVL197:
		.LBB350:
				mv	a0,s0
				call	PRINTMOVE.6118
		.LVL230:
		.LBB369:
  845          PRINTSTRING("(")
				li	a2,256
				lui	a1,%hi(.LANCHOR2-1920)
				addi	a1,a1,%lo(.LANCHOR2-1920)
				add	a0,sp,1032
				call	memcpy
		.LVL198:
				li	a2,256
				add	a1,sp,1032
				add	a0,sp,264
				call	memcpy
		.LVL199:
				li	a2,256
				add	a1,sp,264
				add	a0,sp,776
				call	memcpy
		.LVL200:
		.LBE350:
		.LBB351:
		.LBB352:
				li	a2,256
				add	a1,sp,776
				mv	a0,sp
				call	memcpy
		.LVL201:
				mv	a0,sp
				call	_imp_printstring
		.LVL202:
		.LBE352:
		.LBE351:
				li	a2,256
				lui	a1,%hi(.LANCHOR2-1920)
				addi	a1,a1,%lo(.LANCHOR2-1920)
				add	a0,sp,1032
				call	memcpy
		.LVL231:
				li	a2,256
				add	a1,sp,1032
				add	a0,sp,264
				call	memcpy
		.LVL232:
				li	a2,256
				add	a1,sp,264
				add	a0,sp,776
				call	memcpy
		.LVL233:
		.LBE369:
		.LBB370:
		.LBB353:
				li	a2,256
				add	a1,sp,776
				mv	a0,sp
				call	memcpy
		.LVL234:
				mv	a0,sp
				call	_imp_printstring
		.LVL235:
		.LDL7:
		.LBE353:
		.LBE370:
  846          %IF WHICH > 0 %START
  847             TIMTT = CPUTIME-TIME
				call	CPUTIME
		.LVL203:
				lui	a5,%hi(TIME.6074)
				fld	fa5,%lo(TIME.6074)(a5)
		.LBB354:
		.LBB355:
				li	a1,2
				li	a0,1
				fsub.d	fa0,fa0,fa5
		.LVL204:
				call	_imp_print
		.LVL205:
		.L112:
		.LBE355:
		.LBE354:
		.LBB356:
  848            PRINT(TIMTT, 1, 2)
  849          %FINISHELSESTART
  850             PRINT(CPUTIME-TIME2, 1, 2)
				call	CPUTIME
		.LVL236:
				lui	a5,%hi(TIME2.6075)
				fld	fa5,%lo(TIME2.6075)(a5)
		.LBB371:
		.LBB372:
				li	a1,2
				li	a0,1
				fsub.d	fa0,fa0,fa5
		.LVL237:
				call	_imp_print
		.LVL238:
				j	.L112
		.LVL239:
		.L116:
		.LBE372:
		.LBE371:
  851          %FINISH
  852          PRINTSTRING(" Secs)
				li	a2,256
				lui	a1,%hi(.LANCHOR2-1664)
				addi	a1,a1,%lo(.LANCHOR2-1664)
				add	a0,sp,1032
				call	memcpy
		.LVL206:
				li	a2,256
				add	a1,sp,1032
				add	a0,sp,520
				call	memcpy
		.LVL207:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,1032
				call	memcpy
		.LVL208:
		.LBE356:
		.LBB357:
		.LBB358:
				li	a2,256
				add	a1,sp,1032
				mv	a0,sp
				call	memcpy
		.LVL209:
				mv	a0,sp
				call	_imp_printstring
		.LVL210:
		.LBE358:
		.LBE357:
  853 ")
  854       %END
  855       !!
				ld	a4,1288(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L116
				ld	ra,1320(sp)
				ld	s0,1312(sp)
		.LVL211:
				ld	s1,1304(sp)
				add	sp,sp,1328
				jr	ra
		.LVL212:
		.L115:
				call	__stack_chk_fail
		.LVL240:
		.LFE199:
				.align	1
		READM.6642:
		.LFB207:
  856       %ROUTINE PRINTBOARD
				add	sp,sp,-1968
				sd	ra,1960(sp)
				sd	s0,1952(sp)
				sd	s1,1944(sp)
				sd	s2,1936(sp)
				sd	s3,1928(sp)
				sd	s4,1920(sp)
				sd	s5,1912(sp)
				sd	s6,1904(sp)
				sd	s7,1896(sp)
				sd	s8,1888(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,1880(sp)
  857          %CONSTBYTEINTEGERARRAY BLACK(1:64) = %C
				sb	zero,1816(sp)
				li	a5,1
				sb	a5,1817(sp)
				sb	zero,1818(sp)
				sb	a5,1819(sp)
				sb	zero,1820(sp)
				sb	a5,1821(sp)
				sb	zero,1822(sp)
				sb	a5,1823(sp)
				sb	a5,1824(sp)
				sb	zero,1825(sp)
				sb	a5,1826(sp)
				sb	zero,1827(sp)
				sb	a5,1828(sp)
				sb	zero,1829(sp)
				sb	a5,1830(sp)
				sb	zero,1831(sp)
				sb	zero,1832(sp)
				sb	a5,1833(sp)
				sb	zero,1834(sp)
				sb	a5,1835(sp)
				sb	zero,1836(sp)
				sb	a5,1837(sp)
				sb	zero,1838(sp)
				sb	a5,1839(sp)
				sb	a5,1840(sp)
				sb	zero,1841(sp)
				sb	a5,1842(sp)
				sb	zero,1843(sp)
				sb	a5,1844(sp)
				sb	zero,1845(sp)
				sb	a5,1846(sp)
				sb	zero,1847(sp)
				sb	zero,1848(sp)
				sb	a5,1849(sp)
				sb	zero,1850(sp)
				sb	a5,1851(sp)
				sb	zero,1852(sp)
				sb	a5,1853(sp)
				sb	zero,1854(sp)
				sb	a5,1855(sp)
				sb	a5,1856(sp)
				sb	zero,1857(sp)
				sb	a5,1858(sp)
				sb	zero,1859(sp)
				sb	a5,1860(sp)
				sb	zero,1861(sp)
				sb	a5,1862(sp)
				sb	zero,1863(sp)
				sb	zero,1864(sp)
				sb	a5,1865(sp)
				sb	zero,1866(sp)
				sb	a5,1867(sp)
				sb	zero,1868(sp)
				sb	a5,1869(sp)
				sb	zero,1870(sp)
				sb	a5,1871(sp)
				sb	a5,1872(sp)
				sb	zero,1873(sp)
				sb	a5,1874(sp)
				sb	zero,1875(sp)
				sb	a5,1876(sp)
				sb	zero,1877(sp)
				sb	a5,1878(sp)
				sb	zero,1879(sp)
  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
				add	sp,sp,-800
				sd	ra,792(sp)
				sd	s0,784(sp)
				lui	s0,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(s0)
				sd	a5,776(sp)
		.LBB316:
  868             PRINTSTRING("  !---!---!---!---!---!---!---!---!
				li	a2,256
				lui	a1,%hi(.LANCHOR1+640)
				addi	a1,a1,%lo(.LANCHOR1+640)
				add	a0,sp,520
				call	memcpy
		.LVL132:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,264
				call	memcpy
		.LVL133:
				li	a2,256
				add	a1,sp,264
				add	a0,sp,520
				call	memcpy
		.LVL134:
		.LBE316:
		.LBB317:
		.LBB318:
				li	a2,256
				add	a1,sp,520
				mv	a0,sp
				call	memcpy
		.LVL135:
				mv	a0,sp
				call	_imp_printstring
		.LVL136:
		.LBE318:
		.LBE317:
  869 ")
  870          %END
  871          !!
				ld	a4,776(sp)
				ld	a5,%lo(__stack_chk_guard)(s0)
				bne	a4,a5,.L79
				ld	ra,792(sp)
				ld	s0,784(sp)
				add	sp,sp,800
				jr	ra
		.L79:
				call	__stack_chk_fail
		.LVL137:
		.LFE201:
				.align	1
		BURP.6618:
		.LFB203:
  872          %CONSTBYTEINTEGERARRAY PX(-6:6) = %C
				li	a5,107
				sb	a5,1800(sp)
				li	a5,113
				sb	a5,1801(sp)
				li	a5,114
				sb	a5,1802(sp)
				li	a5,98
				sb	a5,1803(sp)
				li	a5,110
				sb	a5,1804(sp)
				li	a5,112
				sb	a5,1805(sp)
				li	a5,32
				sb	a5,1806(sp)
				li	a5,80
				sb	a5,1807(sp)
				li	a5,78
				sb	a5,1808(sp)
				li	a5,66
				sb	a5,1809(sp)
				li	a5,82
				sb	a5,1810(sp)
				li	a5,81
				sb	a5,1811(sp)
				li	a5,75
				sb	a5,1812(sp)
		.LVL152:
				lui	s6,%hi(.LANCHOR0+896)
				addi	s6,s6,%lo(.LANCHOR0+896)
				li	s0,0
  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
  879          %CYCLE Y = 8, -1, 1
  880             ROW == BRD(Y)
				li	s7,9
		.LBB327:
  881             LINE
				call	LINE.6584
		.LVL178:
  882             WRITE(Y, 1)
				li	a5,64
				beq	s0,a5,.L105
		.LVL176:
		.L95:
				li	a1,1
				mv	a0,s7
				call	_imp_writeint
		.LVL179:
				addw	s3,s0,8
				mv	s1,s6
  883             %CYCLE X = 1, 1, 8
				addw	s7,s7,-1
		.LVL177:
  884                PRINTSTRING("! ")
				lui	s8,%hi(.LANCHOR1)
				addi	s8,s8,%lo(.LANCHOR1)
				add	s4,s8,896
		.LBE327:
		.LBB328:
				li	a2,256
				mv	a1,s4
				add	a0,sp,1544
				call	memcpy
		.LVL159:
				li	a2,256
				add	a1,sp,1544
				add	a0,sp,264
				call	memcpy
		.LVL160:
				li	a2,256
				add	a1,sp,264
				add	a0,sp,1032
				call	memcpy
		.LVL161:
		.LBE333:
		.LBB334:
		.LBB335:
				li	a2,256
				add	a1,sp,1032
				mv	a0,sp
				call	memcpy
		.LVL162:
				mv	a0,sp
				call	_imp_printstring
		.LVL163:
		.LBE335:
		.LBE334:
  885                P = ROW_R(X)_P
				lw	s2,0(s1)
		.LVL164:
  886                %IF P # 0 %THEN PRINTSYMBOL(PX(P)) %ELSE %START
				beq	s0,s3,.L102
		.LVL158:
		.L93:
		.LBB333:
				bnez	s2,.L103
		.L87:
  887                   %IF BLACK(Q) = 1 %THEN PRINTSYMBOL('*') %C
				addw	a5,s2,6
				add	a4,sp,1888
				add	a5,a4,a5
		.LBB329:
		.LBB330:
				lbu	a0,-88(a5)
				call	_imp_printsymbol
		.LVL154:
		.LDL3:
		.LDL4:
		.LBE330:
		.LBE329:
				add	a5,sp,1888
				add	a5,a5,s0
				lbu	a5,-72(a5)
				beq	a5,s5,.L104
		.L90:
		.LVL165:
		.LBB336:
		.LBB337:
				li	a0,32
				call	_imp_printsymbol
		.LVL166:
		.L88:
		.LBE337:
		.LBE336:
		.LBB338:
		.LBB339:
				li	a0,32
				call	_imp_printsymbol
		.LVL167:
				j	.L92
		.LVL168:
		.L104:
		.LBE339:
		.LBE338:
		.LBB340:
		.LBB341:
				li	a0,42
				call	_imp_printsymbol
		.LVL169:
				j	.L88
		.LVL170:
		.L102:
		.L94:
		.LBE341:
		.LBE340:
		.LBB342:
				li	s5,1
				j	.L93
		.LVL180:
		.L105:
		.L96:
  888                   %ELSE PRINTSYMBOL(' ')
  889                %FINISH
  890                %IF P > 0 %THEN PRINTSYMBOL('+') %ELSE %C
				blez	s2,.L88
		.LVL155:
		.LBB331:
		.LBB332:
				li	a0,43
				call	_imp_printsymbol
		.LVL156:
		.L92:
		.LDL5:
				add	s1,s1,16
				addw	s0,s0,1
		.LVL157:
		.LBE332:
		.LBE331:
  891                  PRINTSYMBOL(' ')
  892                Q = Q+1
  893             %REPEAT
  894             PRINTSTRING("!
				add	s8,s8,1152
				j	.L95
		.LVL153:
		.L103:
		.LBE328:
				li	a2,256
				mv	a1,s8
				add	a0,sp,1544
				call	memcpy
		.LVL171:
				li	a2,256
				add	a1,sp,1544
				add	a0,sp,520
				call	memcpy
		.LVL172:
				li	a2,256
				add	a1,sp,520
				add	a0,sp,1288
				call	memcpy
		.LVL173:
		.LBE342:
		.LBB343:
		.LBB344:
				li	a2,256
				add	a1,sp,1288
				mv	a0,sp
				call	memcpy
		.LVL174:
				mv	a0,sp
				call	_imp_printstring
		.LVL175:
		.LDL6:
				add	s6,s6,-128
				sext.w	s0,s0
		.LBE344:
		.LBE343:
  895 ")
  896          %REPEAT
  897          LINE
				call	LINE.6584
		.LVL181:
		.LBB345:
  898          PRINTSTRING("    A   B   C   D   E   F   G   H
				li	a2,256
				lui	a1,%hi(.LANCHOR1+1408)
				addi	a1,a1,%lo(.LANCHOR1+1408)
				add	a0,sp,1544
				call	memcpy
		.LVL182:
				li	a2,256
				add	a1,sp,1544
				add	a0,sp,776
				call	memcpy
		.LVL183:
				li	a2,256
				add	a1,sp,776
				add	a0,sp,1544
				call	memcpy
		.LVL184:
		.LBE345:
		.LBB346:
		.LBB347:
				li	a2,256
				add	a1,sp,1544
				mv	a0,sp
				call	memcpy
		.LVL185:
				mv	a0,sp
				call	_imp_printstring
		.LVL186:
		.LBE347:
		.LBE346:
  899 ")
  900       %END
?I unused
  901       !!
				ld	a4,1880(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L106
				ld	ra,1960(sp)
				ld	s0,1952(sp)
		.LVL187:
				ld	s1,1944(sp)
				ld	s2,1936(sp)
		.LVL188:
				ld	s3,1928(sp)
				ld	s4,1920(sp)
				ld	s5,1912(sp)
				ld	s6,1904(sp)
				ld	s7,1896(sp)
				ld	s8,1888(sp)
				add	sp,sp,1968
				jr	ra
		.LVL189:
		.L106:
				call	__stack_chk_fail
		.LVL190:
		.LFE200:
				.align	1
		TELL.6114:
		.LFB199:
  902          !!
  903       %ROUTINE PRINTMOVE(%RECORD(LISTF)%NAME LIST)
		.LVL144:
				add	sp,sp,-16
				sd	ra,8(sp)
				sd	s0,0(sp)
				mv	s0,a0
  904          %INTEGER I,J,K
  905          %ROUTINE BURP(%INTEGER X)
		.LVL138:
				add	sp,sp,-16
				sd	ra,8(sp)
				sd	s0,0(sp)
				mv	s0,a0
		.LVL139:
  906             PRINTSYMBOL((X>>4)+'A'-1)
				srlw	a0,a0,4
		.LVL140:
				addw	a0,a0,64
		.LBB319:
		.LBB320:
				and	a0,a0,0xff
				call	_imp_printsymbol
		.LVL141:
		.LBE320:
		.LBE319:
  907             PRINTSYMBOL(X&15+'0')
				and	a0,s0,15
		.LBB321:
		.LBB322:
				add	a0,a0,48
				call	_imp_printsymbol
		.LVL142:
		.LBE322:
		.LBE321:
		.LBB323:
		.LBB324:
				call	_imp_space
		.LVL143:
		.LBE324:
		.LBE323:
  908             SPACE
  909          %END
  910          !!
				ld	ra,8(sp)
				ld	s0,0(sp)
				add	sp,sp,16
				jr	ra
		.LFE203:
				.align	1
		PRINTMOVE.6118:
		.LFB202:
  911          BURP(LIST_FR); BURP(LIST_TO)
				lbu	a0,4(a0)
		.LVL145:
				call	BURP.6618
		.LVL146:
  912          %IF LIST_CHK # 0 %THEN PRINTSYMBOL('+')
				lbu	a0,5(s0)
				call	BURP.6618
		.LVL147:
				lw	a5,12(s0)
				bnez	a5,.L85
		.L83:
  913          WRITE(LIST_SCORE, 5)
				li	a1,5
				lw	a0,8(s0)
				call	_imp_writeint
		.LVL148:
  914       %END
?K unused
?J unused
?I unused
  915       !!
				ld	ra,8(sp)
				ld	s0,0(sp)
		.LVL149:
				add	sp,sp,16
				jr	ra
		.LVL150:
		.L85:
		.LBB325:
		.LBB326:
				li	a0,43
				call	_imp_printsymbol
		.LVL151:
				j	.L83
		.LBE326:
		.LBE325:
		.LFE202:
				.align	1
		PRINTBOARD.6116:
		.LFB200:
  916       %INTEGER %FN CHECK YOUR MOVE(%RECORD(LISTF)%NAME LIST)
  917          %RECORD(LISTF)%NAME L2, MM
  918          %INTEGER I
  919          MM == MMOVE_L
  920          L2 == LIST
  921          %WHILE ADDR(LIST) # 0 %CYCLE
  922             %IF LIST_FR = MM_FR %AND LIST_TO = MM_TO %C
				beqz	s7,.L412
				lbu	a3,-268(s3)
				beqz	a5,.L412
		.L416:
				lbu	a4,4(a5)
				bne	a4,a3,.L415
  923                %START
				lbu	a2,-267(s3)
				mv	a5,s8
				j	.L416
		.LVL714:
		.L425:
		.L406:
		.LBE709:
		.LBE708:
		.LBB711:
		.LBB712:
				add	a0,s0,968
				li	s1,69632
				add	a5,s1,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_readsymbol
		.LVL715:
		.LBE712:
		.LBE711:
				lbu	a4,5(a5)
				bne	a4,a2,.L415
  924                   MM_SCORE = LIST_SCORE;  MM_CHK = LIST_CHK
				lw	a4,8(a5)
				li	a2,4096
				add	a3,a2,-968
				add	a1,sp,16
				add	a3,a3,a1
				sw	a4,0(a3)
  925                   %RESULT = 1
				lw	a5,12(a5)
		.LVL724:
				add	a4,a2,-964
				add	a4,a4,a1
				sw	a5,0(a4)
		.LDL27:
		.LVL725:
		.LBE710:
		.LBE725:
		.LBB726:
		.LBB727:
				call	_imp_skipsymbol
		.LVL726:
		.LBE727:
		.LBE726:
  926             %FINISH
  927             LIST == LIST_L
				ld	a5,0(a5)
		.LVL723:
		.LDL26:
  928          %REPEAT
  929          %RESULT = 0
  930       %END
?I unused
  931       !!
  932       %INTEGERFN PRINT MOVES(%RECORD(LISTF)%NAME LIST)
  933          %RECORD(LISTF)%NAME L
  934          SELECT OUTPUT(2)
  935          LIST == RECORD(SORT AND PRUNE(LIST, 100, -1))
				mv	t2,s6
				li	a2,-1
				li	a1,100
				mv	a0,s0
				call	SORTANDPRUNE.6095
		.LVL739:
				mv	s7,a0
		.LVL740:
				mv	s8,a0
		.LVL741:
  936          L == LIST
				mv	s0,a0
		.L396:
		.LVL742:
		.L422:
		.L397:
  937          %CYCLE
  938             PRINTMOVE(L); NEWLINE
				mv	a0,s0
				call	PRINTMOVE.6118
		.LVL743:
		.LBB661:
		.LBB662:
				call	_imp_newline
		.LVL744:
		.LBE662:
		.LBE661:
  939             L == L_L
				ld	s0,0(s0)
		.LVL745:
  940             %EXIT %IF ADDR(L) = 0
				bnez	s0,.L422
		.L398:
		.LVL746:
		.LBB663:
		.LBB664:
				lui	a5,%hi(_imp_OutStream)
				sw	zero,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+8)
				ld	a4,%lo(_imp_outfile+8)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				add	a0,s4,-1152
				call	check_outstream
		.LVL747:
		.LBE664:
		.LBE663:
		.LBE665:
		.LBE728:
  941          %REPEAT
  942          SELECT OUTPUT(0)
  943          %RESULT = ADDR(LIST)
  944       %END
  945
  946       %ROUTINE YOUR MOVE
  947          %INTEGER %FN READM(%INTEGERNAME X, Y)
		.LVL241:
				add	sp,sp,-48
				sd	ra,40(sp)
				sd	s0,32(sp)
				sd	s1,24(sp)
				sd	s2,16(sp)
				mv	s2,a0
				mv	s1,a1
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				sd	a5,8(sp)
  948             %INTEGER I,J
  949             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  950             READSYMBOL(I)
				li	s0,10
		.LVL242:
		.L119:
		.LBB373:
		.LBB374:
				call	_imp_nextsymbol
		.LVL243:
		.LBE374:
		.LBE373:
				bne	a0,s0,.L120
		.LBB375:
		.LBB376:
				call	_imp_skipsymbol
		.LVL244:
				j	.L119
		.L120:
		.LVL245:
		.LBE376:
		.LBE375:
		.LBB377:
		.LBB378:
				mv	a0,sp
				call	_imp_readsymbol
		.LVL246:
		.LBE378:
		.LBE377:
  951             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  952             READSYMBOL(J)
				li	s0,10
		.L121:
		.LBB379:
		.LBB380:
				call	_imp_nextsymbol
		.LVL247:
		.LBE380:
		.LBE379:
				bne	a0,s0,.L122
		.LBB381:
		.LBB382:
				call	_imp_skipsymbol
		.LVL248:
				j	.L121
		.L122:
		.LVL249:
		.LBE382:
		.LBE381:
		.LBB383:
		.LBB384:
				add	a0,sp,4
		.LVL250:
				call	_imp_readsymbol
		.LVL251:
		.LBE384:
		.LBE383:
  953             X = I-'A'+1;  Y = J-'0'
				lw	a5,0(sp)
				addw	a5,a5,-64
				sw	a5,0(s2)
  954             %RESULT = 0
				lw	a5,4(sp)
				addw	a5,a5,-48
				sw	a5,0(s1)
  955          %END
				li	a0,0
				ld	a4,8(sp)
				lui	a5,%hi(__stack_chk_guard)
				ld	a5,%lo(__stack_chk_guard)(a5)
				bne	a4,a5,.L125
				ld	ra,40(sp)
				ld	s0,32(sp)
				ld	s1,24(sp)
		.LVL252:
				ld	s2,16(sp)
		.LVL253:
				add	sp,sp,48
		.LVL254:
				jr	ra
		.LVL255:
		.L125:
				call	__stack_chk_fail
		.LVL256:
		.LFE207:
				.align	1
		DOM.6359:
		.LFB194:
  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)
				lui	s1,%hi(JUSTONEPLY.6082)
				li	a5,1
				sw	a5,%lo(JUSTONEPLY.6082)(s1)
  961          LIST == RECORD(MOVES(-1, 0));     ! GET OPPS LEGAL MOVES
				li	s9,-65536
				add	s6,s9,-272
				add	a5,s5,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	s6,a5,s6
		.LBB655:
		.LBB656:
		.LBB657:
		.LBB658:
				lui	s4,%hi(.LANCHOR2)
				addi	s4,s4,%lo(.LANCHOR2)
		.LBE658:
		.LBE657:
		.LBE656:
		.LBE655:
		.LBE654:
		.LBE653:
				mv	t2,s6
				li	a1,0
				li	a0,-1
				call	MOVES.6101
		.LVL736:
				mv	s0,a0
  962          JUST ONE PLY = 0
				sw	zero,%lo(JUSTONEPLY.6082)(s1)
  963          %IF ADDR(LIST) = 0 %THEN TELL(LIST, -1); ! CHECKMATE
				beqz	a0,.L433
		.L395:
		.LVL737:
		.LBB728:
		.LBB665:
		.LBB660:
		.LBB659:
				lui	a5,%hi(_imp_OutStream)
				li	a4,2
				sw	a4,%lo(_imp_OutStream)(a5)
				lui	a5,%hi(_imp_outfile+584)
				ld	a4,%lo(_imp_outfile+584)(a5)
				lui	a5,%hi(_imp_OutFile)
				sd	a4,%lo(_imp_OutFile)(a5)
				add	a0,s4,-1152
				call	check_outstream
		.LVL738:
		.LBE659:
		.LBE660:
  964          %IF MON&1#0 %THEN LIST == RECORD(PRINT MOVES(LIST))
				li	a1,-1
				li	a0,0
				call	TELL.6114
		.LVL666:
				j	.L395
		.L426:
		.LBB667:
		.LBB668:
				call	_imp_skipsymbol
		.LVL667:
		.LBE668:
		.LBE667:
		.LBB669:
  965 AGAIN:
  966          LM_SPEC = 0
				sw	zero,-264(s3)
		.LBB694:
		.LBB695:
				call	_imp_nextsymbol
		.LVL700:
		.LBE695:
		.LBE694:
				li	a5,69632
				add	a5,a5,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	s3,a5,s9
		.LBB729:
  967          %IF NEXTSYMBOL='M' %START;     ! MONITOR
				li	a5,77
				beq	a0,a5,.L426
		.L400:
		.LBB696:
		.LBB697:
				call	_imp_nextsymbol
		.LVL701:
		.LBE697:
		.LBE696:
  968             SKIPSYMBOL
  969             PROMPT("MON?"); READ(MON); SKIPSYMBOL
				li	a2,256
				add	a1,s4,1264
				mv	a0,s2
				call	memcpy
		.LVL668:
				add	s10,s3,-528
				li	a2,256
				mv	a1,s2
				mv	a0,s10
				call	memcpy
		.LVL669:
		.LBE669:
				li	s0,-69632
				add	s1,sp,16
				li	a2,256
				mv	a1,s10
				mv	a0,s1
				call	memcpy
		.LVL670:
				add	s0,s0,704
				li	a5,69632
				add	a5,a5,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	s0,a5,s0
				mv	a0,s0
				call	PROMPT
		.LVL671:
  970             PROMPT("Move?")
				lui	a0,%hi(MON.6081)
				addi	a0,a0,%lo(MON.6081)
				call	_imp_readint
		.LVL672:
		.LBB670:
		.LBB671:
				call	_imp_skipsymbol
		.LVL673:
		.LBE671:
		.LBE670:
		.LBB672:
				li	a2,256
				add	a1,s4,1008
				mv	a0,s2
				call	memcpy
		.LVL674:
				add	s10,s3,-784
				li	a2,256
				mv	a1,s2
				mv	a0,s10
				call	memcpy
		.LVL675:
		.LBE672:
				li	a2,256
				mv	a1,s10
				mv	a0,s1
				call	memcpy
		.LVL676:
				mv	a0,s0
				call	PROMPT
		.LVL677:
				j	.L399
		.L427:
		.LBB673:
		.LBB674:
				call	_imp_skipsymbol
		.LVL678:
		.LBE674:
		.LBE673:
		.LBB675:
		.LBB676:
				call	_imp_skipsymbol
		.LVL679:
				j	.L402
		.L428:
		.LBE676:
		.LBE675:
		.LBB677:
  971             ->AGAIN
  972          %FINISH
  973          %IF NEXTSYMBOL='X' %START
				li	a5,88
				beq	a0,a5,.L427
		.L402:
		.LBB698:
		.LBB699:
				call	_imp_nextsymbol
		.LVL702:
		.LBE699:
		.LBE698:
  974             SKIPSYMBOL; SKIPSYMBOL; !PPROFILE
  975          %FINISH
  976          %IF NEXTSYMBOL = 'P' %START
				li	a5,80
				beq	a0,a5,.L428
		.L403:
		.LBB700:
		.LBB701:
				call	_imp_nextsymbol
		.LVL703:
		.LBE701:
		.LBE700:
  977             PROMPT("NEW PLY?");  SKIPSYMBOL
				li	a2,256
				add	a1,s4,1520
				mv	a0,s2
				call	memcpy
		.LVL680:
				add	s10,s3,-1040
				li	a2,256
				mv	a1,s2
				mv	a0,s10
				call	memcpy
		.LVL681:
		.LBE677:
				li	s0,-69632
				add	s1,sp,16
				li	a2,256
				mv	a1,s10
				mv	a0,s1
				call	memcpy
		.LVL682:
				add	s0,s0,704
				li	a5,69632
				add	a5,a5,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	s0,a5,s0
				mv	a0,s0
				call	PROMPT
		.LVL683:
		.LBB678:
		.LBB679:
				call	_imp_skipsymbol
		.LVL684:
		.LBE679:
		.LBE678:
  978             READ(PDEPTH); SKIPSYMBOL
				lui	a0,%hi(PDEPTH.6080)
				addi	a0,a0,%lo(PDEPTH.6080)
				call	_imp_readint
		.LVL685:
		.LBB680:
		.LBB681:
				call	_imp_skipsymbol
		.LVL686:
		.LBE681:
		.LBE680:
		.LBB682:
  979             PROMPT("Move?")
				li	a2,256
				add	a1,s4,1008
				mv	a0,s2
				call	memcpy
		.LVL687:
				add	s10,s3,-1296
				li	a2,256
				mv	a1,s2
				mv	a0,s10
				call	memcpy
		.LVL688:
		.LBE682:
				li	a2,256
				mv	a1,s10
				mv	a0,s1
				call	memcpy
		.LVL689:
				mv	a0,s0
				call	PROMPT
		.LVL690:
				j	.L399
		.L429:
  980             -> AGAIN
  981          %FINISH
  982          %IF NEXTSYMBOL='O' %START;     ! CASTLE
				li	a5,79
				beq	a0,a5,.L429
		.L404:
  983             X = 0
				li	s0,-69632
				sw	zero,284(sp)
		.LBB683:
		.LBB684:
				call	_imp_skipsymbol
		.LVL691:
		.LBE684:
		.LBE683:
		.LBB685:
		.LBB686:
				add	a0,s0,968
				li	a5,69632
				add	a5,a5,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_readsymbol
		.LVL692:
		.LBE686:
		.LBE685:
  984             SKIPSYMBOL; READSYMBOL(I)
  985             %IF I # '-' %THEN -> NO
				lw	a4,280(sp)
				li	a5,45
				beq	a4,a5,.L425
		.L405:
		.L412:
		.LBB687:
				li	a2,256
				mv	a1,s5
				mv	a0,s2
				call	memcpy
		.LVL693:
				add	s1,s3,-1552
				li	a2,256
				mv	a1,s2
				mv	a0,s1
				call	memcpy
		.LVL694:
				li	s0,-69632
				add	s10,sp,1344
				li	a2,256
				mv	a1,s1
				mv	a0,s10
				call	memcpy
		.LVL695:
		.LBE687:
		.LBB688:
		.LBB689:
				li	a2,256
				mv	a1,s10
				add	a0,sp,16
				call	memcpy
		.LVL696:
				add	a0,s0,704
				li	s1,69632
				add	a5,s1,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_printstring
		.LVL697:
		.LBE689:
		.LBE688:
		.LBB690:
		.LBB691:
				li	a5,-69632
				add	s0,a5,968
				add	a3,s1,-704
				add	a2,sp,16
				add	a3,a3,a2
				add	s0,a3,s0
		.LBE691:
		.LBE690:
  986             READSYMBOL(I); -> NO %IF I#'O'
  987             %IF NEXTSYMBOL = '-' %START; ! QUEEN SIDE
				add	a5,s1,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a5,a5,s0
				sd	a5,8(sp)
				lw	a4,968(a5)
				li	a5,79
				bne	a4,a5,.L412
		.L407:
		.LBB713:
		.LBB714:
				call	_imp_nextsymbol
		.LVL716:
		.LBE714:
		.LBE713:
				li	a5,45
				beq	a0,a5,.L431
		.L408:
  988                X = 1; SKIPSYMBOL; SKIPSYMBOL
				li	a5,-69632
				li	a4,69632
				add	a4,a4,-704
				add	a3,sp,16
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,8(sp)
				li	a5,1
				ld	a4,8(sp)
				sw	a5,972(a4)
		.LBB715:
		.LBB716:
				call	_imp_skipsymbol
		.LVL717:
		.LBE716:
		.LBE715:
		.LBB717:
		.LBB718:
				call	_imp_skipsymbol
		.LVL718:
				j	.L408
		.L430:
		.LBE718:
		.LBE717:
		.LBB719:
		.LBB720:
				call	_imp_skipsymbol
		.LVL719:
		.LBE720:
		.LBE719:
		.LBB721:
		.LBB722:
				add	a0,s0,988
				add	a5,s1,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a0,a5,a0
				call	_imp_readsymbol
		.LVL720:
		.LBE722:
		.LBE721:
		.LBB723:
		.LBB724:
				call	_imp_skipsymbol
		.LVL721:
		.LBE724:
		.LBE723:
  989             %FINISH
  990             LM_SPEC = 6+X
				li	a5,-69632
				li	a4,69632
				add	a4,a4,-704
				add	a3,sp,16
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,8(sp)
				lw	a5,972(a5)
				addw	a5,a5,6
				sw	a5,-264(s3)
  991             LM_FR = 5<<4+1
				li	a5,81
				sb	a5,-268(s3)
  992             LM_TO = 5<<4+1
				sb	a5,-267(s3)
				j	.L409
		.L431:
  993          %FINISHELSESTART
  994             I = READM(X, Y);  I=READM(X0, Y0)
				li	s0,-69632
				add	a1,s0,976
				add	a0,s0,972
				li	s1,69632
				add	a5,s1,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a1,a5,a1
				add	a5,s1,-704
				add	a5,a5,a4
				add	a0,a5,a0
				call	READM.6642
		.LVL704:
				sw	a0,280(sp)
  995             %IF NEXTSYMBOL='(' %START
				add	a1,s0,984
				add	a0,s0,980
				add	a5,s1,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a1,a5,a1
				add	a5,s1,-704
				add	a5,a5,a4
				add	a0,a5,a0
				call	READM.6642
		.LVL705:
				sw	a0,280(sp)
		.LBB702:
		.LBB703:
				call	_imp_nextsymbol
		.LVL706:
		.LBE703:
		.LBE702:
				li	a5,40
				beq	a0,a5,.L430
		.L410:
		.LBB704:
  996                SKIPSYMBOL;  READSYMBOL(K); SKIPSYMBOL
  997                LM_SPEC = (K-'0')*(-1)
				add	a5,s1,-704
				add	a4,sp,16
				add	a5,a5,a4
				add	a5,a5,s0
				sd	a5,8(sp)
				lw	a4,988(a5)
				li	a5,48
				subw	a5,a5,a4
				sw	a5,-264(s3)
				j	.L410
		.LVL722:
		.L415:
		.LBB725:
		.LBB710:
  998             %FINISH
  999
 1000             %UNLESS 0<X<9 %AND 0<X0<9 %AND %C
 1001                     0<Y<9 %AND 0<Y0<9 %START
 1002 NO:            PRINTSTRING("INVALID MOVE - MY FORMAT IS D2D4
 1003 ")
				add	s5,s4,1776
				j	.L392
		.L432:
		.LBE666:
		.LBE730:
		.LBE733:
				li	a5,-69632
				li	a0,69632
				add	a4,a0,-704
				add	a3,sp,16
				add	a4,a4,a3
				add	a5,a4,a5
				sd	a5,8(sp)
				lw	a5,972(a5)
		.LVL707:
				addw	a3,a5,-1
				li	a4,7
				bgtu	a3,a4,.L412
		.LBE704:
		.LBB705:
				add	s2,s3,-1808
				j	.L399
		.LBE729:
		.LBE732:
		.LBE739:
		.LFE185:
				.section	.rodata
				.align	3
				.set	.LANCHOR1,. + 0
				.set	.LANCHOR2,. + 4096
		.LC4:
				.byte	19
				.string	"test-new/chess9.imp"
				.zero	235
		.LC24:
				.word	3
				.word	2
				.word	2
				.word	2
				.word	2
				.word	2
				.word	2
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.word	1
				.zero	4
		.LC25:
				.byte	40
				.string	"PROGRAM ERROR, NEXT MOVE MAY BE STUPID!\n"
				.zero	214
		.LC16:
				.byte	36
				.string	"  !---!---!---!---!---!---!---!---!\n"
				.zero	218
		.LC13:
				.byte	2
				.string	"! "
				.zero	252
		.LC14:
				.byte	2
				.string	"!\n"
				.zero	252
		.LC15:
				.byte	34
				.string	"    A   B   C   D   E   F   G   H\n"
				.zero	220
		.LC17:
				.byte	6
				.string	"I Win\n"
				.zero	248
		.LC18:
				.byte	8
				.string	"YOU WIN\n"
				.zero	246
		.LC19:
				.byte	1
				.string	"("
				.zero	253
		.LC20:
				.byte	7
				.string	" Secs)\n"
				.zero	247
		.LC21:
				.byte	21
				.string	"OUT OF FREE CELLS!!!\n"
				.zero	233
		__PRETTY_FUNCTION__.5605:
				.string	"_imp_SELECTOUTPUT"
				.zero	6
		.LC23:
				.byte	6
				.string	"SCORE:"
				.zero	248
		.LC22:
				.byte	3
				.string	"---"
				.zero	251
		KCASCH.6346:
				.word	1
				.word	0
				.word	8
				.zero	4
		PINX.6046:
				.zero	128
		PINY.6047:
				.zero	128
		MOVE.6350:
				.dword	.L256
				.dword	.L259
				.dword	.L263
				.dword	.L274
				.dword	.L264
				.dword	.L282
		.LC27:
				.byte	7
				.string	" FORCED"
				.zero	247
		.LC28:
				.byte	28
				.string	"FORCED TO INCREASE PLYWIDTH\n"
				.zero	226
		.LC0:
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	0
				.word	5
				.word	0
				.word	0
				.word	3
				.word	3
				.word	3
				.word	20
				.word	20
				.word	3
				.word	3
				.word	3
				.word	4
				.word	6
				.word	6
				.word	50
				.word	50
				.word	6
				.word	6
				.word	4
				.word	8
				.word	9
				.word	30
				.word	55
				.word	55
				.word	30
				.word	9
				.word	8
				.word	10
				.word	10
				.word	35
				.word	60
				.word	60
				.word	35
				.word	10
				.word	10
				.word	100
				.word	100
				.word	100
				.word	100
				.word	100
				.word	100
				.word	100
				.word	100
				.word	500
				.word	500
				.word	500
				.word	500
				.word	500
				.word	500
				.word	500
				.word	500
		__PRETTY_FUNCTION__.5601:
				.string	"_imp_SELECTINPUT"
				.zero	7
		.LC5:
				.byte	92
				.string	"Version 2.5\nHOW DIFFICULT A GAME DO YOU WANT?\n      2 = NORMAL STRENGTH, 3 = MORE DIFFI
				.zero	162
		.LC6:
				.byte	4
				.string	"2-4?"
				.zero	250
		.LC7:
				.byte	5
				.string	"Move?"
				.zero	249
		.LC8:
				.byte	4
				.string	"MON?"
				.zero	250
		.LC9:
				.byte	8
				.string	"NEW PLY?"
				.zero	246
		.LC10:
				.byte	33
				.string	"INVALID MOVE - MY FORMAT IS D2D4\n"
				.zero	221
				.bss
				.align	3
				.set	.LANCHOR0,. + 0
		BRD.6018:
				.zero	1024
		KCAS.6067:
				.zero	12
				.section	.rodata.str1.8,"aMS",@progbits,1
				.align	3
		.LC29:
				.string	"Illegal cycle I = 1, 1, WIDTH"
				.zero	2
		.LC30:
				.string	"Illegal cycle I = 1, 1, PINPT"
				.zero	2
		.LC31:
				.string	"test-new/chess9.imp"
				.zero	4
		.LC32:
				.string	"->MOVE(%d) out of bounds at %s line %d"
				.zero	1
		.LC33:
				.string	"Illegal cycle J = 1, 1, I - 1"
				.section	.sbss,"aw",@nobits
				.align	3
		PINPT.6050:
				.zero	4
		PX.6051:
				.zero	4
		PY.6052:
				.zero	4
				.zero	4
		KMOVE.6066:
				.zero	3
				.zero	1
		SCOREA.6078:
				.zero	4
		XDEPTH.6079:
				.zero	4
		JUSTONEPLY.6082:
				.zero	4
		LASTCHK.6084:
				.zero	4
				.zero	4
		TIME.6074:
				.zero	8
		TIME2.6075:
				.zero	8
		MON.6081:
				.zero	4
		PDEPTH.6080:
				.zero	4
				.section	.sdata,"aw",@progbits
				.align	2
		NO.6077:
				.word	1
		.Letext0:
 1004                %CYCLE
 1005                   READSYMBOL(I)
 1006                   %EXIT %IF I=NL
				add	a4,s1,-704
				add	a4,a4,a2
				add	a5,a4,a5
				sd	a5,8(sp)
				li	s1,10
		.L413:
		.L423:
		.L414:
		.LVL698:
		.LBB693:
		.LBB692:
				mv	a0,s0
				call	_imp_readsymbol
		.LVL699:
		.LBE692:
		.LBE693:
				ld	a5,8(sp)
				lw	a5,968(a5)
				bne	a5,s1,.L423
		.L399:
 1007                %REPEAT
 1008                ->AGAIN
 1009             %FINISH
 1010
				li	a4,-69632
				add	a3,a0,-704
				add	a2,sp,16
				add	a3,a3,a2
				add	a4,a3,a4
				lw	a4,980(a4)
		.LVL708:
				addw	a2,a4,-1
				li	a3,7
				bgtu	a2,a3,.L412
		.LBE705:
		.LBB706:
 1011             !!
 1012             LM_FR = X<<4+Y
				sllw	a5,a5,4
		.LVL711:
				addw	a5,a5,a3
				sb	a5,-268(s3)
 1013             LM_TO = X0<<4+Y0
				sllw	a5,a4,4
				addw	a5,a5,a2
				sb	a5,-267(s3)
		.LVL712:
		.L409:
 1014          %FINISH
 1015          MMOVE_L == LM
				sd	s6,-256(s3)
		.LVL713:
		.LBB708:
		.LBB709:
 1016          %IF CHECK YOUR MOVE(LIST) = 0 %THEN ->NO
 1017          SKIPSYMBOL
				li	a3,-69632
				add	a2,a0,-704
				add	a1,sp,16
				add	a2,a2,a1
				add	a3,a2,a3
				lw	a3,976(a3)
		.LVL709:
				addw	a1,a3,-1
				li	a2,7
				bgtu	a1,a2,.L412
		.LBE706:
		.LBB707:
 1018          RELEASE CHAIN(LIST)
				mv	t2,s6
				mv	a0,s7
				call	RELEASECHAIN.6158
		.LVL727:
		.LBE731:
		.LBE734:
 1019       %END
 1020 %ENDOFPROGRAM
?CHK unused
?BRDOLD unused
?PLYWIDTH unused
  879 Statements compiled
				li	a2,-69632
				add	a1,a0,-704
				add	a0,sp,16
				add	a1,a1,a0
				add	a2,a1,a2
				lw	a2,984(a2)
		.LVL710:
				addw	a0,a2,-1
				li	a1,7
				bgtu	a0,a1,.L412
		.L411:
		.LBE707:
