         Edinburgh IMP77 Compiler - Version 8.4
    1 %BEGIN
		.Ltext0:
				.align	1
				.thumb
				.thumb_func
		RELEASECHAIN.10182:
		.LFB186:
				@ args = 0, pretend = 0, frame = 68176
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL623:
				push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
				sub	sp, sp, #68096
				sub	sp, sp, #324
				ldr	r3, .L451
		.LPIC147:
				add	r3, pc
				mov	r2, r3
				str	r3, [sp, #268]
				ldr	r3, .L451+4
				ldr	r3, [r2, r3]
				ldr	r3, [r3]
				add	r2, sp, #68096
				add	r2, r2, #316
				str	r3, [r2]
				add	r6, sp, #3136
				add	r3, sp, #68096
				add	r3, r3, #360
				str	r3, [r6, #1256]
				mov	r6, r4
		.LVL636:
		.L405:
    2       %CONSTINTEGER BIT = X'80000000'
				bl	_imp_initialise(PLT)
		.LVL624:
    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
				add	r5, r6, #640
				ldr	r4, .L451+8
		.LPIC148:
				add	r4, pc
				add	r4, r4, #392
				ldmia	r4!, {r0, r1, r2, r3}
				stmia	r5!, {r0, r1, r2, r3}
				ldm	r4, {r0, r1}
				stm	r5, {r0, r1}
   51       !!
   52       %CONSTINTEGERARRAY PAWN 2D(9:72) = %C
				ldr	r7, .L451+12
		.LPIC149:
				add	r7, pc
				mov	r2, #256
				add	r1, r7, #80
				add	r0, r6, #384
				bl	memcpy(PLT)
		.LVL625:
   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
				addw	r3, r6, #1244
				add	r2, r7, #336
				ldm	r2, {r0, r1, r2}
				stm	r3, {r0, r1, r2}
   63          2, 3, 6, 7, 58, 59, 62, 63, 1, 8, 57, 64
   64       %CONSTINTEGERARRAY POSP(1:12) = %C
				add	r4, r6, #336
				add	r5, r7, #348
				ldmia	r5!, {r0, r1, r2, r3}
				stmia	r4!, {r0, r1, r2, r3}
				ldmia	r5!, {r0, r1, r2, r3}
				stmia	r4!, {r0, r1, r2, r3}
				ldm	r5, {r0, r1, r2, r3}
				stm	r4, {r0, r1, r2, r3}
   65          -2, -3, -3, -2, 2, 3, 3, 2, -4, -4, 4, 4
   66       %CONSTINTEGERARRAY POSPP(1:12) = %C
				add	r4, r6, #32
				add	r5, r7, #396
				ldmia	r5!, {r0, r1, r2, r3}
				stmia	r4!, {r0, r1, r2, r3}
				ldmia	r5!, {r0, r1, r2, r3}
				stmia	r4!, {r0, r1, r2, r3}
				ldm	r5, {r0, r1, r2, r3}
				stm	r4, {r0, r1, r2, r3}
   67          -7(4), 7(4), -10(2), 10(2)
   68       !!
   69       %CONSTINTEGERARRAY NOLEG MOVE(-1:1) = -24000, 0, 24000
				addw	r6, r6, #1228
				add	r7, r7, #444
				ldm	r7, {r0, r1, r2}
				stm	r6, {r0, r1, r2}
		.LVL626:
				add	r3, sp, #4416
				subs	r2, r3, #4
				add	r3, r3, #63744
				adds	r3, r3, #252
		.LVL627:
		.L401:
		.LBB636:
   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)
				str	r2, [r2, #-16]
		.LDL21:
				adds	r2, r2, #16
  105       %REPEAT
  106       FREELIST == LISTA(0)
				add	r3, sp, #4384
				adds	r3, r3, #12
				add	r4, sp, #3136
				str	r3, [r4, #1240]
		.LVL628:
		.LBB637:
		.LBB638:
				ldr	r3, .L451+16
				ldr	r1, [sp, #268]
				ldr	r3, [r1, r3]
				movs	r2, #1
				str	r2, [r3]
				ldr	r3, .L451+20
				ldr	r3, [r1, r3]
				ldr	r2, .L451+24
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #280]
				str	r2, [r3]
				ldr	r0, .L451+28
		.LPIC154:
				add	r0, pc
				add	r0, r0, #456
				bl	check_instream(PLT)
		.LVL629:
				add	r5, r4, #1176
				mov	r7, r4
				addw	r4, r4, #1228
		.LVL630:
		.L403:
		.LBE638:
		.LBE637:
  107       !!
  108       SELECTINPUT(1)
				cmp	r2, r3
				bne	.L401
		.L402:
		.LBE636:
  109       %CYCLE I = -6, 1, 6
  110          READ(VAL(I))
				mov	r0, r5
				bl	_imp_readint(PLT)
		.LVL631:
		.LDL22:
				adds	r5, r5, #4
  111       %REPEAT
  112       READ(PDEPTH)
				cmp	r5, r4
				bne	.L403
		.L404:
				ldr	r4, .L451+32
		.LPIC155:
				add	r4, pc
				addw	r0, r4, #1092
				bl	_imp_readint(PLT)
		.LVL632:
  113       READ(MON);  READ(PLAY)
				add	r0, r4, #1088
				bl	_imp_readint(PLT)
		.LVL633:
  114       I = 1
				add	r0, sp, #276
				bl	_imp_readint(PLT)
		.LVL634:
				addw	r5, sp, #3212
				add	r7, r7, #332
		.LVL635:
		.L407:
				add	r8, r5, #32
  115       %CYCLE Y = 1,1,8
  116          %CYCLE X = 1,1,8
  117             SQ == BRD(Y)_R(X)
  118             READ(SQ_P)
				mov	r0, r6
				bl	_imp_readint(PLT)
		.LVL637:
				cmp	r5, r7
				bne	.L407
		.L406:
		.LVL639:
		.LBB639:
		.LBB640:
				ldr	r3, .L451+16
				ldr	r2, [sp, #268]
				mov	r1, r2
				ldr	r3, [r2, r3]
				movs	r4, #0
				str	r4, [r3]
				ldr	r3, .L451+20
				ldr	r3, [r2, r3]
				ldr	r2, .L451+24
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #4]
				str	r2, [r3]
				ldr	r8, .L451+36
		.LPIC158:
				add	r8, pc
				add	r0, r8, #456
				bl	check_instream(PLT)
		.LVL640:
		.LBE640:
		.LBE639:
  119             SQI(I)_SQ == SQ
				str	r6, [r5, #716]
				cmp	r5, r8
				bne	.L405
		.LDL24:
		.LDL25:
				adds	r4, r4, #128
  120             PT(I)_P == SQ_P; I = I+1
				str	r6, [r5, #4]!
		.LDL23:
				adds	r6, r6, #16
		.LVL638:
  121          %REPEAT
  122       %REPEAT
  123       SELECT INPUT(0)
  124       MMOVE_HOLD = 0;  MOVE_HOLD = 0
  125       LM_SCORE = 0;  LM_CHK = 0
				add	r7, sp, #320
				str	r4, [sp, #304]
				add	r3, sp, #3136
				str	r4, [sp, #3140]
  126       MMOVE_L == LM
				str	r4, [sp, #3148]
				str	r3, [r3, #16]
		.LBB641:
  127       PRINTSTRING("Version 2.5
				mov	r6, #256
		.LVL641:
				mov	r2, r6
				add	r1, r8, #476
				add	r5, sp, #2880
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL642:
				mov	r2, r6
				mov	r1, r5
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL643:
				add	r10, sp, #1344
				add	r4, sp, #1088
				mov	r2, r6
				mov	r1, r7
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL644:
		.LBE641:
		.LBB642:
		.LBB643:
				mov	r9, #240
				mov	r2, r9
				sub	r1, r10, #240
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL645:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL646:
		.LBE643:
		.LBE642:
		.LBB644:
  128 HOW DIFFICULT A GAME DO YOU WANT?
  129       2 = NORMAL STRENGTH, 3 = MORE DIFFICULT
  130 ")
  131       PROMPT("2-4?")
				mov	r2, r6
				add	r1, r8, #732
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL647:
				add	r4, sp, #832
				add	r7, sp, #576
				mov	r2, r6
				mov	r1, r5
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL648:
		.LBE644:
				mov	r2, r9
				sub	r1, r4, #240
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL649:
				ldm	r7, {r0, r1, r2, r3}
				bl	PROMPT(PLT)
		.LVL650:
  132       READ(PDEPTH); SKIPSYMBOL
				ldr	r7, .L451+40
		.LPIC161:
				add	r7, pc
				addw	r0, r7, #1092
				bl	_imp_readint(PLT)
		.LVL651:
		.LBB645:
		.LBB646:
				bl	_imp_skipsymbol(PLT)
		.LVL652:
		.LBE646:
		.LBE645:
		.LBB647:
  133       PROMPT("Move?")
				mov	r2, r6
				add	r1, r8, #988
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL653:
				mov	r2, r6
				mov	r1, r5
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL654:
		.LBE647:
				mov	r2, r9
				add	r1, r4, #16
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL655:
				ldm	r4, {r0, r1, r2, r3}
				bl	PROMPT(PLT)
		.LVL656:
  134       PRINTBOARD
				bl	PRINTBOARD.10140(PLT)
		.LVL657:
  135       !!
  136       !!
  137       !! N B     WHITE PIECES ARE -VE, BLACK ARE +VE
  138       !!
  139       !**** MAIN LOOP
  140          TIME2 = CPUTIME
				bl	CPUTIME(PLT)
		.LVL658:
				add	r7, r7, #1048
				vstr.64	d0, [r7]
		.LBB648:
		.LBB649:
		.LBB650:
  141       %CYCLE
  142          %IF PLAY = 1 %START
				ldr	r3, [sp, #276]
				cmp	r3, #1
				beq	.L449
		.L410:
		.LBB729:
		.LBB723:
  143             MOVE_L == RECORD(N PLY(-1, 0, MOVE))
				add	r5, sp, #320
				add	r4, sp, #304
				add	ip, sp, #3136
				mov	r2, r4
				movs	r1, #0
				mov	r0, #-1
				bl	NPLY.10115(PLT)
		.LVL659:
				str	r0, [r5, #-16]
  144             TELL(MOVE_L, -1)
				mov	r1, #-1
				bl	TELL.10138(PLT)
		.LVL660:
  145             I =CHANGE BOARD(MOVE)
				mov	r0, r4
				bl	CHANGEBOARD.10130(PLT)
		.LVL661:
  146          %FINISHELSESTART
				b	.L411
		.L450:
		.LBB724:
		.LBB722:
  147             YOURMOVE
  148             BURP(MMOVE, -1)
				mov	r1, #-1
				add	r0, r4, #16
				bl	BURP.10135(PLT)
		.LVL728:
		.L411:
  149          %FINISH
  150          TIME = CPUTIME
				bl	CPUTIME(PLT)
		.LVL729:
				ldr	r3, .L451+60
		.LPIC175:
				add	r3, pc
				add	r3, r3, #1040
				vstr.64	d0, [r3]
  151          MOVE_L == RECORD(N PLY(+1, 0, MMOVE_L))
				add	r3, sp, #3136
				mov	ip, r3
				ldr	r2, [sp, #3152]
				movs	r1, #0
				movs	r0, #1
				bl	NPLY.10115(PLT)
		.LVL730:
				str	r0, [sp, #304]
  152          BURP(MOVE, +1)
				movs	r1, #1
				add	r0, sp, #304
				bl	BURP.10135(PLT)
		.LVL731:
  153          PRINTBOARD
				bl	PRINTBOARD.10140(PLT)
		.LVL732:
		.LBB725:
		.LBB726:
				ldr	r3, .L451+64
				ldr	r2, [sp, #268]
				ldr	r7, [r2, r3]
				movs	r3, #2
				str	r3, [r7]
				ldr	r3, .L451+68
				ldr	r5, [r2, r3]
				ldr	r3, .L451+72
				ldr	r6, [r2, r3]
				ldr	r3, [r6, #556]
				str	r3, [r5]
				ldr	r4, .L451+76
		.LPIC176:
				add	r4, pc
				add	r4, r4, #3056
				mov	r0, r4
				bl	check_outstream(PLT)
		.LVL733:
		.LBE726:
		.LBE725:
  154          SELECT OUTPUT(2); PRINTBOARD; SELECT OUTPUT(0)
  155          NO = NO+1
				bl	PRINTBOARD.10140(PLT)
		.LVL734:
		.LBB727:
		.LBB728:
				movs	r3, #0
				str	r3, [r7]
				ldr	r3, [r6, #4]
				str	r3, [r5]
				mov	r0, r4
				bl	check_outstream(PLT)
		.LVL735:
		.LBE728:
		.LBE727:
				ldr	r2, .L451+80
		.LPIC178:
				add	r2, pc
				ldr	r3, [r2]
				adds	r3, r3, #1
				str	r3, [r2]
		.L409:
  156       %REPEAT
  157
  158       !!
  159       %ROUTINE RELEASE CHAIN(%RECORD(LISTF)%NAME L)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				@ link register save eliminated.
		.LVL0:
				mov	r2, r0
				b	.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
				mov	r2, r3
		.LVL2:
		.L2:
				ldr	r3, [r2]
				cmp	r3, #0
				bne	.L4
		.L3:
  165          %REPEAT
  166          L_L == FREELIST
				ldr	r3, [ip, #1240]
				str	r3, [r2]
  167          FREELIST == RECORD(ADDR(L2))
				str	r0, [ip, #1240]
  168       %END
  169       !!
				bx	lr
		.LFE186:
				.align	1
				.thumb
				.thumb_func
		CHANGEBOARD.10130:
		.LFB196:
  170       %INTEGERFN N PLY(%INTEGER WHICH, DEPTH, %RECORD(LISTF)%NAME CHAIN)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 2528
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL549:
				push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
				subw	sp, sp, #3044
				mov	lr, r0
				str	r0, [sp, #520]
				mov	r10, r1
				mov	r8, r2
				str	r2, [sp, #540]
				str	ip, [sp, #516]
				ldr	r5, .L392
		.LPIC125:
				add	r5, pc
				ldr	r3, .L392+4
				ldr	r3, [r5, r3]
				ldr	r3, [r3]
				str	r3, [sp, #3036]
  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)
				add	r7, sp, #560
				mov	r6, r7
				ldr	r4, .L392+8
		.LPIC126:
				add	r4, pc
				addw	r4, r4, #3868
				ldmia	r4!, {r0, r1, r2, r3}
		.LVL550:
				stmia	r6!, {r0, r1, r2, r3}
				ldmia	r4!, {r0, r1, r2, r3}
				stmia	r6!, {r0, r1, r2, r3}
				ldm	r4, {r0, r1, r2}
				stm	r6, {r0, r1, r2}
  177          !!
  178          XDEPTH = DEPTH;                ! HOLD FOR GLOBAL USE
				ldr	r3, .L392+12
		.LPIC127:
				add	r3, pc
				str	r10, [r3, #1064]
  179          DEPTH = DEPTH+1
				add	r10, r10, #1
		.LVL551:
  180          SWIDTH = XWIDTH(DEPTH)
				ldr	r7, [r7, r10, lsl #2]
		.LVL552:
  181          %IF DEPTH=PDEPTH %THEN SWIDTH=1
				ldr	r3, [r3, #1092]
  182          LAST CHK = CHAIN_CHK
				cmp	r3, r10
				it	eq
				moveq	r7, #1
		.LVL553:
		.L358:
				ldr	r2, [r8, #12]
				ldr	r3, .L392+16
		.LPIC129:
				add	r3, pc
				str	r2, [r3, #1076]
		.LVL554:
		.LBB508:
		.LBB509:
  183          LIST == RECORD(ONE PLY(WHICH, SWIDTH))
  184          I = 1
				mov	r9, #1
  185          B(1)_L == RECORD(0)
				movs	r2, #0
				str	r2, [sp, #2396]
		.LVL557:
  186          FLAG = 0
				str	r2, [sp, #512]
  187          %WHILE ADDR(LIST)#0 %CYCLE
  188             BPT == B(I)
				cmp	r0, #0
				beq	.L357
				cmp	r6, #0
				beq	.L361
  189             BPT_L == LIST
				str	r6, [r4, #-16]
  190             LIST == LIST_L
				ldr	r6, [r6]
		.LVL562:
  191             %IF MON#0 %START
				ldr	fp, .L392+20
		.LPIC130:
				add	fp, pc
		.LBB510:
		.LBB511:
				ldr	r3, .L392+24
		.LPIC131:
				add	r3, pc
				add	r3, r3, #3056
				str	r3, [sp, #528]
		.LBE511:
		.LBE510:
				ldr	r3, [fp, #1088]
				cmp	r3, #0
				bne	.L386
		.L362:
  192                SELECT OUTPUT(2)
  193                SPACES(DEPTH*3)
				add	r3, r10, r10, lsl #1
				str	r3, [sp, #524]
  194                WRITE(DEPTH, 1);  SPACES(2);   PRINTMOVE(BPT_L)
				movs	r1, #1
				mov	r0, r8
				bl	_imp_writeint(PLT)
		.LVL575:
		.LBB526:
		.LBB527:
				movs	r0, #2
				bl	_imp_spaces(PLT)
		.LVL576:
		.LBE527:
		.LBE526:
  195                %IF LAST CHK#0 %THEN PRINTSTRING(" FORCED")
				ldr	r3, .L392+28
		.LPIC132:
				add	r3, pc
				str	r3, [sp, #532]
		.LBB513:
		.LBB514:
				ldr	r3, .L392+32
		.LPIC134:
				add	r3, pc
				add	r3, r3, #3056
				str	r3, [sp, #536]
				mov	r6, r0
				mov	r8, r10
		.LVL558:
				mov	r10, r7
		.LVL559:
				b	.L360
		.LVL560:
		.L367:
		.LBE514:
		.LBE513:
				ldr	r3, [sp, #532]
				ldr	r3, [r3, #1076]
				cbnz	r3, .L388
		.L363:
		.LBB528:
		.LBB529:
				bl	_imp_newline(PLT)
		.LVL578:
		.LBE529:
		.LBE528:
		.LBB530:
		.LBB515:
				ldr	r3, .L392+44
				ldr	r3, [r5, r3]
				movs	r2, #0
				str	r2, [r3]
				ldr	r3, .L392+48
				ldr	r3, [r5, r3]
				ldr	r2, .L392+52
				ldr	r2, [r5, r2]
				ldr	r2, [r2, #4]
				str	r2, [r3]
				ldr	r0, [sp, #536]
				bl	check_outstream(PLT)
		.LVL579:
				b	.L362
		.LVL580:
		.L388:
		.LBE515:
		.LBE530:
		.LBB531:
  196                NEWLINE
				ldr	r0, [r4, #-16]
				bl	PRINTMOVE.10142(PLT)
		.LVL577:
				mov	r4, #256
				mov	r2, r4
				ldr	r1, .L392+64
		.LPIC133:
				add	r1, pc
				addw	r1, r1, #3912
				addw	r3, sp, #1628
				str	r3, [sp, #544]
				mov	r0, r3
				bl	memcpy(PLT)
		.LVL581:
				mov	r2, r4
				ldr	r1, [sp, #544]
				add	r3, sp, #604
				str	r3, [sp, #544]
				mov	r0, r3
				bl	memcpy(PLT)
		.LVL582:
				mov	r2, r4
				ldr	r1, [sp, #544]
				addw	r4, sp, #1884
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL583:
		.LBE531:
		.LBB532:
		.LBB533:
				movs	r2, #240
				addw	r1, sp, #1900
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL584:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL585:
				b	.L363
		.LVL586:
		.L387:
				adds	r7, r7, #16
				addw	r3, sp, #2364
				add	r3, r3, r7
		.LBE533:
		.LBE532:
  197                SELECT OUTPUT(0)
  198             %FINISH
  199             I = I+1
				mov	r9, r4
		.LVL561:
		.L360:
				lsl	r7, r9, #4
				addw	r4, sp, #2396
				add	r4, r4, r7
				add	r4, r9, #1
		.LVL563:
  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
				ldr	r3, .L392+36
		.LPIC135:
				add	r3, pc
				ldr	r3, [r3, #1092]
				cmp	r3, r8
				bgt	.L387
		.L364:
		.L366:
  204
  205                CI = CHANGE BOARD(BPT)
				str	r3, [sp, #548]
				mov	r0, r3
				bl	CHANGEBOARD.10130(PLT)
		.LVL587:
				addw	r3, sp, #2396
				add	r7, r7, r3
  206                LISTX == RECORD(N PLY(XWHICH, DEPTH, BPT_L))
				ldr	ip, [sp, #516]
				ldr	r2, [r7, #-32]
				mov	r1, r8
				ldr	r0, [sp, #520]
				eor	r0, r0, #1
				mvns	r0, r0
				bl	NPLY.10115(PLT)
		.LVL588:
				str	r0, [sp, #544]
  207                LAST CHK = CHAIN_CHK;    ! REALLY FOR MONITORING
				ldr	r2, [sp, #540]
				ldr	r2, [r2, #12]
				ldr	r3, .L392+68
		.LPIC136:
				add	r3, pc
				str	r2, [r3, #1076]
  208                RESTORE BOARD(BPT)
				ldr	r0, [sp, #548]
				bl	RESTOREBOARD.10132(PLT)
		.LVL589:
  209                %UNLESS ADDR(LISTX)=0 %START
				ldr	r3, [sp, #544]
				cbnz	r3, .L389
		.L365:
  210                   BPT_L_SCORE = LISTX_SCORE;    ! GET BEST OPP PIECE SCORE
				ldr	r3, [r7, #-32]
				ldr	r0, [sp, #544]
				ldr	r2, [r0, #4]
				str	r2, [r3, #4]
  211                   RELEASE CHAIN(LISTX); FLAG = FLAG+1
				ldr	ip, [sp, #516]
				bl	RELEASECHAIN.10182(PLT)
		.LVL590:
  212                %FINISHELSESTART
				ldr	r3, [sp, #512]
				adds	r3, r3, #1
				str	r3, [sp, #512]
		.LVL591:
				b	.L366
		.L368:
		.LVL592:
		.L370:
  213                   BPT_L_SCORE = NO LEG MOVE(WHICH)
				ldr	r3, [r7, #-32]
				ldr	r2, [sp, #516]
				ldr	r1, [sp, #520]
				add	r2, r2, r1, lsl #2
				ldr	r2, [r2, #1232]
				str	r2, [r3, #4]
				b	.L366
		.L389:
  214                   ! %IF BPT_L_CHK = 0 %THEN BPT_L_SCORE = 0; ! ????
  215                %FINISH
  216             %FINISH
  217          %IF I > SWIDTH %START
				cmp	r10, r4
				bge	.L367
  218             %IF FLAG # 0 %OR I = 2 %THEN %EXIT;   ! MOVE FOUND
  219             %IF MON # 0 %START
				subs	r3, r4, #2
				it	ne
				movne	r3, #1
				ldr	r2, [sp, #512]
				cmp	r2, #0
				it	ne
				movne	r3, #0
				cmp	r3, #0
				beq	.L370
		.L369:
				ldr	r3, .L392+40
		.LPIC137:
				add	r3, pc
				ldr	r3, [r3, #1088]
				cmp	r3, #0
				beq	.L367
		.LVL564:
		.LBB516:
		.LBB517:
				ldr	r3, .L392+44
				ldr	r3, [r5, r3]
				mov	r2, r3
				movs	r3, #2
				str	r2, [sp, #544]
				str	r3, [r2]
				ldr	r3, .L392+48
				ldr	r1, [r5, r3]
				ldr	r3, .L392+52
				ldr	r7, [r5, r3]
				ldr	r3, [r7, #556]
				str	r1, [sp, #548]
				str	r3, [r1]
				ldr	r3, .L392+56
		.LPIC138:
				add	r3, pc
				add	r3, r3, #3056
				str	r3, [sp, #552]
				mov	r0, r3
				bl	check_outstream(PLT)
		.LVL565:
		.LBE517:
		.LBE516:
		.LBB518:
  220                SELECT OUTPUT(2)
  221                PRINTSTRING("FORCED TO INCREASE PLYWIDTH
				mov	r2, #256
				ldr	r1, .L392+60
		.LPIC139:
				add	r1, pc
				subs	r1, r1, #176
				addw	ip, sp, #1628
				str	ip, [sp, #556]
				mov	r0, ip
				bl	memcpy(PLT)
		.LVL566:
				mov	r2, #256
				ldr	r1, [sp, #556]
				add	ip, sp, #860
				str	ip, [sp, #556]
				mov	r0, ip
				bl	memcpy(PLT)
		.LVL567:
				mov	r2, #256
				ldr	r1, [sp, #556]
				addw	ip, sp, #2140
				str	ip, [sp, #556]
				mov	r0, ip
				bl	memcpy(PLT)
		.LVL568:
		.LBE518:
		.LBB519:
		.LBB520:
				movs	r2, #240
				addw	r1, sp, #2156
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL569:
				ldr	r3, [sp, #556]
				ldm	r3, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL570:
		.LBE520:
		.LBE519:
		.LBB521:
		.LBB522:
				movs	r3, #0
				ldr	r2, [sp, #544]
				str	r3, [r2]
				ldr	r3, [r7, #4]
				ldr	r1, [sp, #548]
				str	r3, [r1]
				ldr	r0, [sp, #552]
				bl	check_outstream(PLT)
		.LVL571:
				b	.L367
		.LVL572:
		.L386:
		.LBE522:
		.LBE521:
		.LBB523:
		.LBB512:
				ldr	r3, .L392+44
				ldr	r3, [r5, r3]
				movs	r2, #2
				str	r2, [r3]
				ldr	r3, .L392+48
				ldr	r3, [r5, r3]
				ldr	r2, .L392+52
				ldr	r2, [r5, r2]
				ldr	r2, [r2, #556]
				str	r2, [r3]
				ldr	r0, [sp, #528]
				bl	check_outstream(PLT)
		.LVL573:
		.LBE512:
		.LBE523:
		.LBB524:
		.LBB525:
				ldr	r0, [sp, #524]
				bl	_imp_spaces(PLT)
		.LVL574:
		.LBE525:
		.LBE524:
  222 ")
  223                SELECT OUTPUT(0)
  224             %FINISH
  225                   !! IF NO LEGAL MOVE, SEARCH ALL MOVES ON THIS LEVEL
  226          %FINISH
  227          %REPEAT
  228          RELEASE CHAIN(LIST) %IF ADDR(LIST)#0
				cbz	r6, .L361
  229          LIST == RECORD(0)
				ldr	ip, [sp, #516]
				mov	r0, r6
				bl	RELEASECHAIN.10182(PLT)
		.LVL593:
		.L361:
  230          %IF I = 1 %THEN %RESULT = 0;   ! NO LEGAL MOVE
				cmp	r4, #1
				beq	.L357
		.L371:
  231          %IF I = 2 %THEN %RESULT = ADDR(B(1)_L); ! SINGLE RESULT
				it	eq
				moveq	r0, #0
				cmp	r4, #2
				beq	.L357
		.L372:
		.LVL594:
		.LBB534:
  232          %CYCLE J = 1, 1, I-1
				it	eq
				ldreq	r0, [sp, #2396]
  233             B(J)_L_L == LIST
				ldr	r2, [r3]
				str	r0, [r2]
  234             LIST == B(J)_L;             ! STACK THE RESULTS
				cmp	r9, #1
				bmi	.L390
		.L373:
		.LVL595:
				ldr	r0, [r3], #16
		.LVL598:
				ldr	r3, .L392+72
				ldr	r3, [r5, r3]
				ldr	r1, [r3]
				cbz	r1, .L374
				addw	r0, sp, #1372
				bl	_imp_c2istr(PLT)
		.LVL602:
		.L375:
				ldr	r3, .L392+76
				ldr	r3, [r5, r3]
				ldr	r6, [r3]
				cmp	r6, #0
				it	eq
				moveq	r6, #234
				ldr	r1, .L392+80
		.LPIC142:
				add	r1, pc
				addw	r7, sp, #1628
				mov	r0, r7
				bl	_imp_c2istr(PLT)
		.LVL603:
				movs	r3, #0
				str	r3, [sp, #508]
				movs	r3, #1
				str	r3, [sp, #504]
				movs	r3, #5
				str	r3, [sp, #500]
				mov	r2, #256
				mov	r1, r7
				add	r0, sp, #244
				bl	memcpy(PLT)
		.LVL604:
				str	r6, [sp, #240]
				movs	r2, #240
				addw	r1, sp, #1388
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL605:
				addw	r3, sp, #1372
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_event(PLT)
		.LVL606:
				b	.L373
		.L374:
		.LBB535:
				mov	r7, #256
				mov	r2, r7
				ldr	r1, .L392+84
		.LPIC141:
				add	r1, pc
				adds	r1, r1, #12
				addw	r6, sp, #1628
				mov	r0, r6
				bl	memcpy(PLT)
		.LVL607:
				mov	r2, r7
				mov	r1, r6
				addw	r6, sp, #1116
				mov	r0, r6
				bl	memcpy(PLT)
		.LVL608:
		.LBE535:
				mov	r2, r7
				mov	r1, r6
				addw	r0, sp, #1372
				bl	memcpy(PLT)
		.LVL609:
				b	.L375
		.LVL610:
		.L391:
		.LBE536:
  235          %REPEAT
  236          %RESULT = SORT AND PRUNE(LIST, 1, WHICH)
				ldr	ip, [sp, #516]
				ldr	r2, [sp, #520]
				movs	r1, #1
				bl	SORTANDPRUNE.10119(PLT)
		.LVL600:
		.L357:
  237                                         ! GET THE 'BEST' RESULT
				movs	r0, #0
				cmp	r9, #0
				beq	.L377
				addw	r3, sp, #2396
				addw	r2, sp, #2380
				add	r4, r2, r4, lsl #4
		.LVL596:
				movs	r0, #0
		.LVL597:
		.L378:
				cmp	r3, r4
				bne	.L378
		.LVL599:
		.L377:
		.LBE534:
  238                                         ! NB RESULT == SORT ON PDP11
  239
  240       %END
				ldr	r3, .L392+4
				ldr	r3, [r5, r3]
				ldr	r2, [sp, #3036]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L391
				addw	sp, sp, #3044
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
		.LVL601:
		.L390:
		.LBB536:
				bl	__stack_chk_fail(PLT)
		.LVL611:
		.L393:
				.align	2
		.L392:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC125+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR1-(.LPIC126+4)
				.word	.LANCHOR0-(.LPIC127+4)
				.word	.LANCHOR0-(.LPIC129+4)
				.word	.LANCHOR0-(.LPIC130+4)
				.word	.LANCHOR1-(.LPIC131+4)
				.word	.LANCHOR0-(.LPIC132+4)
				.word	.LANCHOR1-(.LPIC134+4)
				.word	.LANCHOR0-(.LPIC135+4)
				.word	.LANCHOR0-(.LPIC137+4)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR1-(.LPIC138+4)
				.word	.LANCHOR4-(.LPIC139+4)
				.word	.LANCHOR1-(.LPIC133+4)
				.word	.LANCHOR0-(.LPIC136+4)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC37-(.LPIC142+4)
				.word	.LANCHOR1-(.LPIC141+4)
		.LFE187:
				.align	1
				.thumb
				.thumb_func
		BURP.10135:
		.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))
				mov	r6, ip
				movs	r1, #0
				mov	r4, lr
				mov	r0, lr
				bl	MOVES.10125(PLT)
		.LVL555:
  249          LIST == RECORD (SORT AND PRUNE(LIST, WIDTH, WHICH))
				mov	ip, r6
				mov	r2, r4
				mov	r1, r7
				bl	SORTANDPRUNE.10119(PLT)
		.LVL556:
		.LBE509:
		.LBE508:
  250          %RESULT = ADDR(LIST)
  251       %END
  252
  253       !!
  254       %INTEGERFN EXVAL(%INTEGER OCC,SIDE1,SIDE2)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 664
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL119:
				push	{r4, r5, r6, r7, r8, r9, lr}
				sub	sp, sp, #908
				mov	r5, r0
				mov	r7, r1
				mov	r8, r2
				mov	r9, ip
				ldr	r6, .L84
		.LPIC34:
				add	r6, pc
				ldr	r3, .L84+4
				ldr	r3, [r6, r3]
				ldr	r3, [r3]
				str	r3, [sp, #900]
  255          %INTEGER GAIN,LOSS,NEW
  256          %CONSTINTEGERARRAY PCE(1:31)=3,2(6),1(24)
				ldr	r4, .L84+8
		.LPIC35:
				add	r4, pc
				movs	r2, #124
		.LVL120:
				add	r1, r4, #268
		.LVL121:
				add	r0, sp, #264
		.LVL122:
				bl	memcpy(PLT)
		.LVL123:
  257          !! %CONSTINTEGERARRAY VAL(1:6)=100,300,350,500,900,5000
  258          %CONSTINTEGERARRAY BIT(1:6)=256,64,32,8,2,1
				add	ip, sp, #240
				add	r4, r4, #392
				ldmia	r4!, {r0, r1, r2, r3}
				stmia	ip!, {r0, r1, r2, r3}
				ldm	r4, {r0, r1}
				stm	ip, {r0, r1}
		.LVL124:
  259                      !* +VE RESULT => ATTACKING SIDE HAS GAINED SOMETHING
  260          GAIN=VAL(OCC)
				add	r5, r5, #294
		.LVL126:
				ldr	r4, [r9, r5, lsl #2]
  261          %IF SIDE1<0 %START
				cmp	r7, #0
				blt	.L81
		.L73:
				adds	r5, r5, #6
		.LVL125:
  262             PRINTSTRING("PROGRAM ERROR, NEXT MOVE MAY BE STUPID!
				mov	r7, #256
		.LVL129:
				mov	r2, r7
				ldr	r1, .L84+12
		.LPIC37:
				add	r1, pc
				add	r1, r1, #416
				add	r4, sp, #644
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL130:
				mov	r2, r7
				mov	r1, r4
				add	r5, sp, #388
		.LVL131:
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL132:
				mov	r2, r7
				mov	r1, r5
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL133:
		.LBE312:
		.LBB313:
		.LBB314:
				movs	r2, #240
				add	r1, sp, #660
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL134:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL135:
		.LBE314:
		.LBE313:
  263 ")
  264             %RESULT = 0
				movs	r4, #0
				b	.L72
		.LVL136:
		.L82:
		.L75:
  265          %FINISH
  266          %IF SIDE2=0 %THENRESULT=GAIN
				cmp	r8, #0
				bne	.L82
		.LVL127:
		.L72:
  267          NEW=SIDE1>>5
  268          %IF NEW#0 %THEN NEW=PCE(NEW) %ELSE NEW=PCE(SIDE1)+3
				lsrs	r3, r7, #5
		.LVL137:
  269          LOSS=EXVAL(NEW,SIDE2,SIDE1-BIT(NEW))
				ittte	ne
				addne	r3, r3, #-1
		.LVL138:
				addne	r2, sp, #264
				ldrne	r0, [r2, r3, lsl #2]
		.LVL139:
		.L76:
				subs	r2, r0, #1
				add	r3, sp, #240
				ldr	r2, [r3, r2, lsl #2]
				mov	ip, r9
				subs	r2, r7, r2
				mov	r1, r8
				bl	EXVAL.10237(PLT)
		.LVL142:
  270          %IF LOSS<0 %THENRESULT=GAIN %ELSERESULT=GAIN-LOSS
				cmp	r0, #0
		.L78:
  271       %END
				mov	r0, r4
				ldr	r3, .L84+4
				ldr	r3, [r6, r3]
				ldr	r2, [sp, #900]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L83
				add	sp, sp, #908
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, pc}
		.LVL128:
		.L81:
		.LBB312:
				bl	__stack_chk_fail(PLT)
		.LVL144:
		.L85:
				.align	2
		.L84:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC34+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR1-(.LPIC35+4)
				.word	.LANCHOR1-(.LPIC37+4)
		.LFE189:
				.align	1
				.thumb
				.thumb_func
		LINE.10608:
		.LFB201:
  272       !!
				addeq	r3, r7, #-1
				ittt	eq
				addeq	r2, sp, #264
				ldreq	r0, [r2, r3, lsl #2]
		.LVL140:
				addeq	r0, r0, #3
		.LVL141:
		.L77:
  273       %ROUTINE CHECK PINS(%INTEGER WHICH)
				it	ge
				subge	r4, r4, r0
				b	.L72
		.LVL143:
		.L83:
  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
				ldr	r3, .L343+16
		.LPIC104:
				add	r3, pc
				ldr	r6, [r3, #1056]
		.LVL489:
				cmp	r6, #0
				beq	.L320
		.L312:
		.LBE466:
		.LBE465:
  282          %CYCLE I = 1, 1, PIN PT
  283             PX = PINX(I); PY = PINY(I)
				ldr	r9, .L343+20
		.LPIC107:
				add	r9, pc
				ldr	r10, .L343+24
		.LPIC108:
				add	r10, pc
				add	fp, r10, #3600
				b	.L317
		.LVL493:
		.L297:
		.LBE467:
		.LBE470:
		.LBE472:
				ldr	r3, [fp, r6, lsl #2]
				str	r3, [r9, #1068]
  284             SQ == SQI(PINDX(I))_SQ;     ! ATTACKERS SQUARE
				cmp	r6, #1
				bmi	.L338
		.LVL491:
		.L313:
				add	r7, r5, #660
				str	r6, [sp, #512]
				movs	r6, #0
		.LVL492:
				ldr	r3, .L343+44
		.LVL508:
				ldr	r3, [r4, r3]
				ldr	r1, [r3]
				cbz	r1, .L314
				addw	r0, sp, #1628
				bl	_imp_c2istr(PLT)
		.LVL509:
		.L315:
				ldr	r3, .L343+48
				ldr	r3, [r4, r3]
				ldr	r7, [r3]
				cmp	r7, #0
				it	eq
				moveq	r7, #284
				ldr	r1, .L343+52
		.LPIC106:
				add	r1, pc
				addw	r8, sp, #1116
				mov	r0, r8
				bl	_imp_c2istr(PLT)
		.LVL510:
				movs	r3, #0
				str	r3, [sp, #508]
				movs	r3, #1
				str	r3, [sp, #504]
				movs	r3, #5
				str	r3, [sp, #500]
				mov	r2, #256
				mov	r1, r8
				add	r0, sp, #244
				bl	memcpy(PLT)
		.LVL511:
				str	r7, [sp, #240]
				movs	r2, #240
				addw	r1, sp, #1644
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL512:
				addw	r3, sp, #1628
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_event(PLT)
		.LVL513:
				b	.L313
		.LVL514:
		.L314:
		.LBB468:
				mov	r9, #256
				mov	r2, r9
				ldr	r1, .L343+56
		.LPIC105:
				add	r1, pc
				adds	r1, r1, #12
				addw	r7, sp, #1628
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL515:
				mov	r2, r9
				mov	r1, r7
				addw	r8, sp, #1372
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL516:
		.LBE468:
				mov	r2, r9
				mov	r1, r8
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL517:
				b	.L315
		.LVL518:
		.L318:
				adds	r6, r6, #1
		.LVL519:
				add	r3, r10, #3728
				ldr	r3, [r3, r6, lsl #2]
				str	r3, [r9, #1072]
				ldr	r3, [r7, #388]
				adds	r3, r3, #197
				ldr	r8, [r5, r3, lsl #2]
		.LVL521:
  285             BV = BIT VAL(PINPY(I))
				ldr	r3, [r7, #4]!
		.LVL522:
				adds	r3, r3, #159
  286             %IF SQ_ATT&BV#0 %START
				ldr	r2, [r5, r3, lsl #2]
				ldr	r3, [r8, #4]
				cmp	r2, #0
				ite	ne
				movne	r3, #0
				andeq	r3, r3, #1
				cmp	r3, #0
				beq	.L318
		.L319:
  287                !! NO PIN
				ldr	r3, [sp, #512]
				cmp	r6, r3
				beq	.L320
		.LVL520:
		.L317:
  288             %FINISHELSESTART
  289                PIN REMOVE = PINPY(I);       ! IF ATT>PINNED DEFENSE!
  290                K = MOVES(WHICH, 3)
				mov	ip, r5
				movs	r1, #3
				ldr	r0, [sp, #516]
				bl	MOVES.10125(PLT)
		.LVL523:
  291                SCOREA = SCOREA+SQ_P*5
				ldr	r2, .L343+60
		.LPIC111:
				add	r2, pc
				ldr	r3, [r8]
				add	r3, r3, r3, lsl #2
				ldr	r1, [r2, #1060]
				add	r3, r3, r1
				str	r3, [r2, #1060]
				b	.L318
		.L311:
		.LVL524:
		.L320:
		.LBE469:
		.LBE471:
		.LBE475:
  292             %FINISH
  293          %REPEAT
  294       %END
  295       !!
  296       %INTEGERFN TRY ANOTHER PLY(%INTEGER WHICH)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 16
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL534:
				push	{r4, r5, r6, r7, r8, lr}
				sub	sp, sp, #16
				mov	r7, r0
				ldr	r4, .L355
		.LPIC117:
				add	r4, pc
				ldr	r3, .L355+4
				ldr	r3, [r4, r3]
				ldr	r3, [r3]
				str	r3, [sp, #12]
  297          %RECORD(LISTF)%NAME LIST2
  298          %INTEGER X, WW, XMON
  299          %CONSTINTEGERARRAY WWW(-1:1) = 25, 0, -25
				ldr	r3, .L355+8
		.LPIC118:
				add	r3, pc
				add	r3, r3, #3856
				ldm	r3, {r0, r1, r2}
		.LVL535:
				mov	r3, sp
				stm	r3, {r0, r1, r2}
  300          %RESULT = 0 %IF JUST ONE PLY = 1;   ! ONLY ONE LEVEL
				ldr	r3, .L355+12
		.LPIC119:
				add	r3, pc
				ldr	r3, [r3, #1084]
				cmp	r3, #1
				beq	.L345
				mov	r6, ip
		.L347:
  301          JUST ONE PLY = 1; XMON = MON; MON = 1
				it	eq
				moveq	r0, #0
				ldr	r5, .L355+16
		.LPIC120:
				add	r5, pc
				movs	r3, #1
				str	r3, [r5, #1084]
  302          WW = WHICH!!X'FFFFFFFE'
				ldr	r8, [r5, #1088]
		.LVL536:
				eors	r7, r7, r3
		.LVL537:
				mvns	r7, r7
		.LVL538:
  303          LIST2 == RECORD(MOVES(WW, 0))
				str	r3, [r5, #1088]
				movs	r1, #0
				mov	r0, r7
				bl	MOVES.10125(PLT)
		.LVL539:
  304          JUST ONE PLY = 0; MON = XMON
				movs	r3, #0
				str	r3, [r5, #1084]
  305          %IF ADDR(LIST2) = 0 %START
				str	r8, [r5, #1088]
				cbnz	r0, .L348
  306             %RESULT = -NOLEGMOVE(WW)//2
				add	r6, r6, r7, lsl #2
				ldr	r0, [r6, #1232]
				add	r0, r0, r0, lsr #31
				asrs	r0, r0, #1
				negs	r0, r0
		.LVL540:
		.L345:
  307          %FINISHELSESTART
  308             LIST2 == RECORD(SORT AND PRUNE(LIST2, 1, WW))
				mov	ip, r6
				mov	r2, r7
				movs	r1, #1
				bl	SORTANDPRUNE.10119(PLT)
		.LVL542:
  309             X = LIST2_SCORE
				ldr	r5, [r0, #4]
		.LVL543:
  310          %FINISH
  311          RELEASE CHAIN(LIST2) %UNLESS ADDR(LIST2)=0
				cbnz	r0, .L354
		.L349:
  312          %RESULT = X+WWW(WW)
				add	r3, sp, #16
				add	r7, r3, r7, lsl #2
		.LVL544:
				ldr	r0, [r7, #-12]
				add	r0, r0, r5
				b	.L345
		.LVL545:
		.L354:
				mov	ip, r6
				bl	RELEASECHAIN.10182(PLT)
		.LVL546:
				b	.L349
		.LVL547:
		.L353:
  313       %END
				ldr	r3, .L355+4
				ldr	r3, [r4, r3]
				ldr	r2, [sp, #12]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L353
				add	sp, sp, #16
				@ sp needed
				pop	{r4, r5, r6, r7, r8, pc}
		.LVL541:
		.L348:
				bl	__stack_chk_fail(PLT)
		.LVL548:
		.L356:
				.align	2
		.L355:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC117+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR1-(.LPIC118+4)
				.word	.LANCHOR0-(.LPIC119+4)
				.word	.LANCHOR0-(.LPIC120+4)
		.LFE191:
				.align	1
				.thumb
				.thumb_func
		NPLY.10115:
		.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
				ldr	r3, .L253+16
		.LVL300:
		.LPIC76:
				add	r3, pc
				movs	r2, #0
				str	r2, [r3, #1056]
		.LVL301:
				add	r3, r9, #788
				addw	r0, r9, #1044
		.LVL302:
		.L154:
  325          %CYCLE I = 1, 1, 64
  326             SQI(I)_SQ_ATT = 0; SQI(I)_SQ_DEF = 0
				ldr	r1, [r3, #4]!
				str	r2, [r1, #4]
  327          %REPEAT
				ldr	r1, [r3]
				str	r2, [r1, #8]
		.LDL8:
  328          WHX = WHICH&BIT;               ! GET TYPE
				cmp	r3, r0
				bne	.L154
		.L155:
		.LVL303:
  329          L_CHK = 0;                     ! CLEAR FLAG
				movs	r4, #0
				ldr	r3, [sp, #260]
				str	r4, [r3, #12]
  330          HOLD_L == L;                   ! MAP TO MOVE
				add	r0, sp, #292
				str	r3, [r0]
  331          P = CHANGE BOARD(HOLD);            ! AND MAKE IT
				bl	CHANGEBOARD.10130(PLT)
		.LVL304:
  332          SCOREB = 0; SCOREA = 0;  SCOREC = 0
				mov	r10, r3
  333          P = MOVES(WHICH, 1)
				ldr	r3, .L253+20
		.LPIC77:
				add	r3, pc
				str	r4, [r3, #1060]
		.LVL305:
				mov	ip, r9
				movs	r1, #1
				ldr	r0, [sp, #256]
				bl	MOVES.10125(PLT)
		.LVL306:
  334          SQU = 0
				ldr	r3, [sp, #240]
				mov	r7, r3
  335          BAD = 0; NPH = 0; NPH2 = 0
				str	r3, [sp, #252]
  336          %CYCLE Y = 1, 1, 8
				str	r3, [sp, #264]
  337             %CYCLE X = 1, 1, 8
				str	r3, [sp, #268]
				str	r3, [sp, #248]
  338                SQU = SQU+1
				ldr	r6, [sp, #240]
				adds	r7, r7, #1
		.LVL339:
  339                SQ == SQI(SQU)_SQ
				ldr	r3, [sp, #248]
				cmp	r3, #8
				beq	.L244
		.LVL318:
		.L158:
				add	r3, r9, r7, lsl #2
				ldr	r3, [r3, #788]
		.LVL340:
  340                Q = SQ_P
				ldr	r3, [sp, #248]
				adds	r3, r3, #1
				str	r3, [sp, #248]
		.LVL319:
				cmp	r6, #8
				beq	.L246
		.LVL337:
		.L156:
				ldr	r4, [r3]
		.LVL341:
  341                %IF Q#0 %START;          ! PIECE ON SQUARE
				adds	r6, r6, #1
		.LVL338:
				cmp	r4, #0
				beq	.L159
  342                   %IF Q < 0 %START
				cmp	r4, #0
				blt	.L247
		.L160:
		.L163:
		.LVL342:
  343                      QQ = -Q; W2 = -1
				rsb	r8, r4, #0
		.LVL322:
  344                   %FINISHELSESTART
				moveq	fp, #-1
				mov	fp, #-1
				b	.L161
		.LVL323:
		.L248:
				ldr	r2, [sp, #248]
				rsb	r2, r2, #9
		.LVL324:
  345                      QQ = Q; W2 = 1
				itt	ne
				movne	r8, r4
  346                   %FINISH
				mov	fp, r4
		.L162:
		.LVL325:
		.L164:
				movne	fp, #1
  347
  348                   !!
  349                   P = 0
  350                   %IF QQ = 1 %START;    ! PAWN
				cmp	r8, #1
				beq	.L164
				cmp	r4, #1
				beq	.L248
		.LVL343:
		.L161:
  351                      %IF Q > 0 %THEN PAWNB= 9-Y %ELSE %C
  352                         PAWNB = Y
  353                      P = PAWN 2D(PAWNB*8+X)*Q
				add	r2, r6, r2, lsl #3
		.LVL326:
				adds	r2, r2, #87
				ldr	r5, [r9, r2, lsl #2]
				mul	r5, r5, r4
		.LVL327:
  354                   %FINISH
  355                   !!
				itt	eq
				ldreq	r2, [sp, #248]
  356                   %IF Q&BIT = WHX %START
				ldr	r3, [sp, #256]
		.LVL320:
				mvns	r3, r3
				str	r3, [sp, #244]
				b	.L156
		.LVL321:
		.L247:
				ldr	r2, [sp, #244]
				ands	r8, r4, r2, lsr #31
				it	eq
				moveq	r8, #1
				bne	.L165
		.L166:
		.LVL328:
		.L169:
				ldr	r5, [sp, #240]
		.LVL333:
		.L165:
				ldr	r2, [sp, #244]
				ands	r5, r4, r2, lsr #31
				bne	.L226
  357                                         !*
  358                                         !* 'MY' PIECEON SQU X,Y
  359                                         !*
  360                      %IF QQ=6 %START;  ! 'MY' KING
				cmp	r8, #6
				bne	.L169
  361                         %IF SQ_ATT # 0 %START
				ldr	r5, [r3, #4]
				cmp	r5, #0
				beq	.L178
				ldr	fp, [sp, #280]
				ldr	r5, [sp, #284]
  362                            RESTORE BOARD(HOLD)
				add	r0, sp, #292
				bl	RESTOREBOARD.10132(PLT)
		.LVL344:
  363                            %RESULT = MAX SCORE
				movw	r3, #15536
				movt	r3, 65535
		.LVL345:
				str	r3, [sp, #240]
				b	.L168
		.LVL346:
		.L245:
  364                         %FINISH
  365                                         ! ILLEGAL MOVE
  366                      %FINISH
  367                      %IF SQ_ATT > 0 %START;  ! MY PIECE UNDER ATTACK
				ldr	r1, [r3, #4]
				cmp	r1, #0
				ble	.L178
  368                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				mov	ip, r9
				ldr	r2, [r3, #8]
				mov	r0, r8
				bl	EXVAL.10237(PLT)
		.LVL329:
  369                         %IF GAIN > 0 %START
				cmp	r0, #0
				ble	.L178
  370                            GAIN = GAIN+P
				add	r0, r0, r5
		.LVL330:
  371                            SCOREA = SCOREA-(GAIN*W2)//10
				ldr	r3, .L253+24
		.LPIC78:
				add	r3, pc
				str	r3, [sp, #272]
				movw	r3, #26215
				movt	r3, 26214
				str	r3, [sp, #276]
				str	fp, [sp, #280]
				str	r5, [sp, #284]
				b	.L158
		.LVL307:
		.L242:
		.LDL9:
		.LBE426:
		.LBE425:
				mul	fp, fp, r0
				ldr	r3, [sp, #276]
				smull	r2, r3, fp, r3
				asr	fp, fp, #31
				sub	r3, fp, r3, asr #2
				ldr	r1, [sp, #272]
				ldr	r2, [r1, #1060]
				add	r3, r3, r2
				str	r3, [r1, #1060]
				ldr	r3, [sp, #252]
				cmp	r3, r0
				it	lt
				movlt	r3, r0
				str	r3, [sp, #252]
		.LVL331:
				b	.L178
		.LVL332:
		.L226:
  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
				ldr	r1, [r3, #4]
				cbnz	r1, .L245
		.L167:
		.L174:
		.L175:
		.L176:
		.L177:
		.LVL334:
		.L178:
  383                         GAIN = EXVAL(QQ, SQ_ATT, SQ_DEF)
				mov	ip, r9
				ldr	r2, [r3, #8]
				mov	r0, r8
				bl	EXVAL.10237(PLT)
		.LVL347:
  384                         %IF GAIN > 0 %START
				cmp	r0, #0
				ble	.L173
  385                         %IF GAIN >NPH %START
				ldr	r3, [sp, #264]
				cmp	r0, r3
				bgt	.L227
		.L171:
				ldr	r3, [sp, #268]
				cmp	r3, r0
				it	lt
				movlt	r3, r0
				str	r3, [sp, #268]
		.LVL348:
				b	.L173
		.LVL349:
		.L227:
				ldr	r3, [sp, #264]
				str	r3, [sp, #268]
		.LVL350:
  386                            NPH2 = NPH; NPH = GAIN
  387                         %FINISHELSESTART
				str	r0, [sp, #264]
		.LVL351:
		.L170:
		.L172:
		.L173:
  388                            %IF GAIN > NPH2 %THEN NPH2 = GAIN
  389                         %FINISH
  390                        %FINISH
  391                         %IF QQ = 6 %START
				cmp	r8, #6
  392                             L_CHK = Q
				itt	eq
				ldreq	r3, [sp, #260]
				streq	r4, [r3, #12]
				b	.L178
		.LVL352:
		.L244:
				ldr	fp, [sp, #280]
				ldr	r5, [sp, #284]
		.L157:
		.LVL353:
  393                         %FINISH
  394                      %FINISH
  395                   %FINISH
  396                   SCOREB = SCOREB+P+VAL(Q)
				add	r5, r5, r10
				add	r4, r4, #300
		.LVL335:
				ldr	r3, [r9, r4, lsl #2]
				add	r10, r5, r3
		.LVL336:
		.L159:
  397                %FINISH
  398             %REPEAT
  399          %REPEAT
  400          LOSS = 0
				ldr	r1, [sp, #268]
		.L185:
		.LVL365:
  401          %IF BAD > 0 %START;         ! PLAYER ABOUT TO LOSE
				ldr	r3, [sp, #252]
		.LVL354:
				cmp	r3, #0
				ble	.L179
  402             %IF ((BAD > 300 %AND NPH > 400) %OR NPH>400)  %C
  403               %AND BAD < 500 %THEN SCOREC = TRY ANOTHER PLY(WHICH)
				ldr	r2, [sp, #264]
				cmp	r2, #400
				it	gt
				cmpgt	r3, #300
				bgt	.L180
		.L181:
  404             NPH = NPH//3
				movw	r2, #21846
				movt	r2, 21845
				ldr	r1, [sp, #264]
				smull	r2, r3, r1, r2
				sub	r3, r3, r1, asr #31
				str	r3, [sp, #264]
		.LVL356:
  405             LOSS = BAD
				cmp	r2, #400
				ble	.L182
		.L180:
  406             %IF NPH > BAD %THEN LOSS = NPH2//3 %ELSE %C
				ldr	r2, [sp, #252]
				cmp	r3, r2
  407               LOSS = LOSS-NPH
				ldr	r3, [sp, #252]
				cmp	r3, #500
				blt	.L249
		.LVL355:
		.L182:
				itttt	gt
				movwgt	r2, #21846
				movtgt	r2, 21845
				ldrgt	r1, [sp, #268]
				movgt	r3, r1
		.LVL357:
				ittee	gt
				smullgt	r2, r3, r3, r2
				subgt	r7, r3, r1, asr #31
		.LVL358:
		.L183:
  408          %FINISHELSESTART
				mov	ip, r9
				ldr	r0, [sp, #256]
				bl	TRYANOTHERPLY.10269(PLT)
		.LVL362:
				str	r0, [sp, #240]
		.LVL363:
				b	.L182
		.LVL364:
		.L179:
  409             %IF NPH2 # 0 %THEN LOSS = -NPH2
				ldr	r3, [sp, #268]
				cbnz	r3, .L185
  410             LOSS = LOSS-NPH//6
				ldrle	r3, [sp, #252]
				ldrle	r2, [sp, #264]
				it	le
				suble	r7, r3, r2
		.LVL359:
		.L184:
		.L186:
				negs	r1, r3
				movw	r2, #43691
				movt	r2, 10922
				ldr	r0, [sp, #264]
				smull	r2, r3, r0, r2
				rsb	r3, r3, r0, asr #31
				adds	r7, r3, r1
		.LVL366:
				b	.L186
		.LVL367:
		.L189:
  411          %FINISH
  412          SCOREB = SCOREB+KCAS(-1)+KCAS(1)
				ldr	r3, .L253+32
		.LPIC80:
				add	r3, pc
				ldr	r4, [r3, #1024]
				add	r4, r4, r10
				ldr	r3, [r3, #1032]
				add	r4, r4, r3
		.LVL360:
				addw	r1, r9, #1243
				add	r2, r9, #332
				add	r0, r9, #380
				b	.L187
		.LVL361:
		.L249:
  413          %CYCLE I = 1, 1, 12;            ! CHECK B&N POS
  414             SCOREB = SCOREB+POSPP(I) %IF POSP(I) # PT(POSX(I))_P
				ldrb	r3, [r1, #1]!	@ zero_extendqisi2
		.LVL369:
				adds	r3, r3, #19
				ldr	r3, [r9, r3, lsl #2]
				ldr	r6, [r2, #4]!
				ldr	r3, [r3]
				cmp	r6, r3
				beq	.L189
  415          %REPEAT
				sub	r3, r2, #304
				ldr	r3, [r3]
				add	r4, r4, r3
		.LVL370:
				b	.L189
		.L188:
  416                %IF L_CHK # 0 %START
				cmp	r0, r2
				beq	.L188
		.LVL368:
		.L187:
				ldr	r3, [sp, #260]
				ldr	r2, [r3, #12]
  417                   SCOREC = TRY ANOTHER PLY(WHICH) %UNLESS SCOREC#0
				ldr	r3, [sp, #240]
				adds	r3, r3, #0
				it	ne
				movne	r3, #1
				cmp	r2, #0
				it	eq
				moveq	r3, #1
				cmp	r3, #0
				beq	.L250
		.L190:
		.LVL371:
		.L191:
  418                %FINISH
				mov	ip, r9
				ldr	r0, [sp, #256]
				bl	TRYANOTHERPLY.10269(PLT)
		.LVL404:
				str	r0, [sp, #240]
		.LVL405:
				b	.L191
		.LVL406:
		.L251:
		.LBE437:
		.LBE455:
  419          RESTORE BOARD(HOLD);           ! UNDO THE MOVE
				add	r0, sp, #292
				bl	RESTOREBOARD.10132(PLT)
		.LVL372:
		.LBB427:
		.LBB428:
				ldr	r3, .L253+36
				ldr	r3, [r5, r3]
				mov	r2, r3
				movs	r3, #2
				str	r2, [sp, #244]
				str	r3, [r2]
				ldr	r3, .L253+40
				ldr	r1, [r5, r3]
				ldr	r3, .L253+44
				ldr	r8, [r5, r3]
				ldr	r3, [r8, #556]
				str	r1, [sp, #248]
		.LVL373:
				str	r3, [r1]
				ldr	r6, .L253+48
		.LPIC82:
				add	r6, pc
				add	r10, r6, #3056
				mov	r0, r10
				bl	check_outstream(PLT)
		.LVL374:
		.LBE428:
		.LBE427:
		.LBB429:
  420          %IF MON&64 # 0 %START
  421             SELECT OUTPUT(2)
  422             PRINTSTRING("SCORE:")
				mov	r2, #256
				addw	r1, r6, #3076
				add	r9, sp, #820
				mov	r0, r9
				bl	memcpy(PLT)
		.LVL375:
				mov	r2, #256
				mov	r1, r9
				addw	r6, sp, #1076
				mov	r0, r6
				bl	memcpy(PLT)
		.LVL376:
				mov	r2, #256
				mov	r1, r6
				mov	r0, r9
				bl	memcpy(PLT)
		.LVL377:
		.LBE429:
		.LBB430:
		.LBB431:
				movs	r2, #240
				add	r1, sp, #836
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL378:
				ldm	r9, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL379:
		.LBE431:
		.LBE430:
  423             WRITE(SCOREA, 1); WRITE(SCOREB, 1); WRITE(SCOREC, 1)
				movs	r1, #1
				ldr	r3, .L253+52
		.LPIC84:
				add	r3, pc
				ldr	r0, [r3, #1060]
				bl	_imp_writeint(PLT)
		.LVL380:
  424             WRITE(BAD, 1); WRITE(NPH, 1); WRITE(NPH2, 1)
				movs	r1, #1
				mov	r0, r4
				bl	_imp_writeint(PLT)
		.LVL381:
				movs	r1, #1
				ldr	r0, [sp, #252]
				bl	_imp_writeint(PLT)
		.LVL383:
  425             WRITE(LOSS, 1); NEWLINE
				movs	r1, #1
				ldr	r6, [sp, #240]
				mov	r0, r6
				bl	_imp_writeint(PLT)
		.LVL382:
				movs	r1, #1
				ldr	r0, [sp, #264]
				bl	_imp_writeint(PLT)
		.LVL384:
				movs	r1, #1
				mov	r0, r7
				bl	_imp_writeint(PLT)
		.LVL386:
		.LBB432:
		.LBB433:
				bl	_imp_newline(PLT)
		.LVL387:
		.LBE433:
		.LBE432:
		.LBB434:
		.LBB435:
				movs	r3, #0
				ldr	r2, [sp, #244]
				str	r3, [r2]
				ldr	r3, [r8, #4]
				ldr	r1, [sp, #248]
				str	r3, [r1]
				mov	r0, r10
				bl	check_outstream(PLT)
		.LVL388:
		.LDL12:
		.LBE435:
		.LBE434:
  426             SELECT OUTPUT(0)
				movs	r1, #1
				ldr	r0, [sp, #268]
				bl	_imp_writeint(PLT)
		.LVL385:
  427          %FINISH
  428          %RESULT = SCOREC %IF SCOREC # 0
				cbnz	r6, .L168
		.L192:
  429          %RESULT = SCOREB+SCOREA-LOSS*WHICH
				ldr	r3, .L253+56
		.LPIC86:
				add	r3, pc
				ldr	r3, [r3, #1060]
				add	r4, r4, r3
		.LVL389:
				ldr	r3, [sp, #256]
				mls	r3, r7, r3, r4
				str	r3, [sp, #240]
		.LVL390:
		.L168:
		.LBE436:
		.LBE443:
  430       %END
?LIST2 unused
  431       !!
  432       %INTEGERFN MOVES(%INTEGER WHICH, SCRQ)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 1376
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
				subw	sp, sp, #1892
				mov	r6, r0
				mov	r5, ip
				ldr	r4, .L343
		.LPIC97:
				add	r4, pc
				ldr	r3, .L343+4
				ldr	r3, [r4, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1884]
				add	r3, sp, #524
				add	r2, sp, #1928
				str	r2, [sp, #600]
				str	r0, [sp, #564]
				str	r1, [sp, #596]
				str	ip, [sp, #576]
  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)
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 1096
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL272:
				push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
				subw	sp, sp, #1340
				ldr	r5, .L253
		.LPIC73:
				add	r5, pc
				ldr	r3, .L253+4
				ldr	r3, [r5, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1332]
		.LVL273:
		.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)
				subs	r1, r3, #1
				mov	r4, r2
		.LVL277:
  454            K = SQ_P
				add	r2, r2, r1, lsl #3
				lsls	r2, r2, #4
				ldr	r6, .L253+8
		.LPIC74:
				add	r6, pc
				ldr	r2, [r6, r2]
				str	r2, [sp, #240]
		.LVL278:
  455             %IF SCRQ <= 0 %START
				ldr	r2, [ip, #72]
		.LVL279:
				cmp	r2, #0
				ble	.L239
		.L146:
		.LVL280:
  456                %IF K#0 %AND K&BIT = Q&BIT %THEN %C
				ldr	r2, [sp, #240]
				cmp	r2, #0
				bne	.L222
		.L147:
  457                 %RESULT = 0
				subs	r2, r0, #1
		.LBE418:
		.LBB419:
  458                %IF QQ=PAWN %START
				ldr	r2, [ip, #68]
				cmp	r2, #1
				beq	.L242
		.L148:
		.L149:
		.L150:
		.L151:
				movs	r0, #0
		.LVL420:
				b	.L143
		.LVL421:
		.L238:
  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
				mov	r3, r1
				cmp	r1, #0
				ite	gt
				movgt	r1, #0
		.LVL274:
				movle	r1, #1
				cmp	r2, #7
				it	hi
				orrhi	r1, r1, #1
				eor	r1, r1, #1
				ldr	r2, [ip, #64]
				cmp	r2, #1
				bne	.L151
  463                SPEC = 0
				movs	r2, #0
				str	r2, [fp, #56]
		.LVL290:
  464                N == FREE LIST;  FREE LIST == RECORD(ADDR(N_L))
				cmp	r3, #8
				ite	gt
				movgt	r1, #0
				andle	r1, r1, #1
				cbnz	r1, .L237
		.LBE419:
				ldr	r2, [fp, #52]
				ldr	r1, [r2, #1240]
		.LVL291:
				str	r1, [sp, #260]
		.LVL292:
  465                %IF ADDR(FREE LIST) = 0 %START
				ldr	r1, [r1]
		.LVL293:
				str	r1, [r2, #1240]
		.LVL294:
				ldr	r2, [fp, #52]
				ldr	r2, [r2, #1240]
				cmp	r2, #0
				beq	.L243
		.L152:
				ldr	r0, [sp, #240]
		.LVL308:
		.L144:
		.L218:
				b	.L143
		.LVL309:
		.L243:
		.LBB438:
  466                   PRINTSTRING("OUT OF FREE CELLS!!!
				mov	r6, #256
				mov	r2, r6
				ldr	r1, .L253+28
		.LPIC75:
				add	r1, pc
				add	r1, r1, #2800
				addw	r4, sp, #1076
		.LVL310:
				mov	r0, r4
		.LVL311:
				bl	memcpy(PLT)
		.LVL312:
				mov	r2, r6
				mov	r1, r4
				add	r5, sp, #820
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL313:
				mov	r2, r6
				mov	r1, r5
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL314:
		.LBE438:
		.LBB439:
		.LBB440:
				movs	r2, #240
				addw	r1, sp, #1092
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL315:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL316:
		.LBE440:
		.LBE439:
		.LBB441:
		.LBB442:
				movs	r0, #0
				bl	exit(PLT)
		.LVL317:
		.L246:
		.LDL10:
		.LDL11:
		.LBE442:
		.LBE441:
		.LBB443:
		.LBB436:
  467 ")
				movs	r0, #0
		.LVL275:
		.L143:
  468                   %STOP
  469                %FINISH
  470                N_FR = X<<4+Y
				ldr	r1, [fp, #48]
				ldr	r2, [fp, #44]
				add	r2, r2, r1, lsl #4
				uxtb	r2, r2
				ldr	r1, [sp, #260]
				mov	r4, r1
		.LVL295:
				strb	r2, [r1, #4]
  471                N_TO = X0<<4+Y0
				add	r3, r3, r0, lsl #4
		.LVL296:
				strb	r3, [r1, #5]
  472                N_SPEC = SPEC
				ldr	r3, [fp, #56]
				str	r3, [r1, #8]
		.LBB424:
  473                %IF 6 <= TYPE <= 7 %START
  474                   N_SPEC = TYPE
				ittt	ls
				movls	r1, r4
				strls	r3, [r4, #8]
  475                   N_TO = N_FR
				strbls	r2, [r1, #5]
		.L153:
  476                %FINISH
				ldr	r3, [fp, #64]
		.LVL297:
  477                N_SCORE = SCORE(WHICH, N)
				ldr	r3, [fp, #40]
		.LVL298:
				str	r3, [sp, #256]
				ldr	r9, [fp, #52]
		.LVL299:
		.LBB425:
		.LBB426:
				ldr	r3, [sp, #260]
				mov	r2, r3
				ldr	r3, [sp, #240]
				str	r3, [r2, #4]
  478                !!
				subs	r1, r3, #6
				cmp	r1, #1
		.LBE424:
  479                %IF TYPE = 6 %START;    ! ILLEGAL CASTLE CHECK
				ldr	r3, [fp, #64]
				cmp	r3, #6
				beq	.L251
		.L193:
		.L197:
  480                   %IF ROW_R(6)_ATT # 0 %THEN N_SCORE = MAX SCORE
				ldr	r3, [fp, #36]
				ldr	r3, [r3, #84]
				cmp	r3, #0
				beq	.L198
  481                %FINISH
				movw	r3, #15536
				movt	r3, 65535
				str	r3, [r2, #4]
  482                %IF TYPE = 7 %START;     ! DITTO
				cmp	r3, #7
				beq	.L252
		.L194:
		.L198:
				ldr	r3, [fp, #64]
				cmp	r3, #7
				bne	.L195
  483                   %IF ROW_R(4)_ATT # 0 %THEN N_SCORE = MAX SCORE
				ldr	r3, [fp, #36]
				ldr	r3, [r3, #52]
				cbz	r3, .L195
				b	.L219
		.L252:
				ldr	r3, [fp, #36]
				ldr	r3, [r3, #52]
				cmp	r3, #0
				beq	.L198
		.L219:
  484                %FINISH
				movw	r3, #15536
				movt	r3, 65535
				ldr	r2, [sp, #260]
				str	r3, [r2, #4]
		.L195:
  485                !!
  486 !!
  487                %IF N_SCORE = MAX SCORE %START;  ! WAS ILLEGAL
				movw	r3, #15536
				movt	r3, 65535
				ldr	r2, [sp, #260]
				ldr	r2, [r2, #4]
				cmp	r2, r3
				beq	.L195
		.L199:
		.LVL391:
		.LBB444:
		.LBB445:
				ldr	r3, .L253+36
				ldr	r10, [r5, r3]
				movs	r3, #2
				str	r3, [r10]
				ldr	r3, .L253+40
				ldr	r8, [r5, r3]
				ldr	r3, .L253+44
				ldr	r9, [r5, r3]
				ldr	r3, [r9, #556]
				str	r3, [r8]
				ldr	r4, .L253+60
		.LPIC87:
				add	r4, pc
				add	r7, r4, #3056
				mov	r0, r7
				bl	check_outstream(PLT)
		.LVL392:
		.LBE445:
		.LBE444:
		.LBB446:
		.LBB447:
				movs	r0, #20
				bl	_imp_spaces(PLT)
		.LVL393:
		.LBE447:
		.LBE446:
  488                   N_L == FREE LIST;     ! RE-LINK IT
				ldr	r3, [fp, #52]
				ldr	r3, [r3, #1240]
				ldr	r2, [sp, #260]
				str	r3, [r2]
  489                   FREE LIST == RECORD(ADDR(N))
				ldr	r3, [fp, #52]
				str	r2, [r3, #1240]
		.LDL14:
  490                   %IF K#0 %THEN %RESULT = 0; ! PIECE IN WAY, NO FURTHER
  491                   %RESULT= 1;       ! MUST TRAVERSE ENTIRE B,R OR Q PATH
				movs	r0, #1
				b	.L143
		.LVL407:
		.L240:
  492                %FINISH
  493                !!
  494                !!
  495                %IF MON&2=2 %START
  496                   SELECT OUTPUT(2)
  497                   SPACES(20)
  498                   WRITE(XDEPTH, 5)
				movs	r1, #5
				ldr	r3, .L253+64
		.LPIC88:
				add	r3, pc
				ldr	r0, [r3, #1064]
				bl	_imp_writeint(PLT)
		.LVL394:
		.LBB448:
  499                   PRINTSTRING("---")
				mov	r6, #256
				mov	r2, r6
				addw	r1, r4, #3332
				add	r4, sp, #564
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL395:
				mov	r2, r6
				mov	r1, r4
				add	r3, sp, #308
				str	r3, [sp, #240]
				mov	r0, r3
				bl	memcpy(PLT)
		.LVL396:
				mov	r2, r6
				ldr	r1, [sp, #240]
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL397:
		.LBE448:
		.LBB449:
		.LBB450:
				movs	r2, #240
				add	r1, sp, #580
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL398:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL399:
		.LBE450:
		.LBE449:
  500                   PRINTMOVE(N)
				ldr	r4, [sp, #260]
				mov	r0, r4
				bl	PRINTMOVE.10142(PLT)
		.LVL400:
		.LBB451:
		.LBB452:
				bl	_imp_newline(PLT)
		.LVL401:
		.LBE452:
		.LBE451:
		.LBB453:
		.LBB454:
				movs	r3, #0
				str	r3, [r10]
				ldr	r3, [r9, #4]
				str	r3, [r8]
				mov	r0, r7
				bl	check_outstream(PLT)
		.LVL402:
		.LDL13:
		.LBE454:
		.LBE453:
  501                   NEWLINE
  502                   SELECT OUTPUT(0)
  503                %FINISH
  504                !!
  505                N_L == LIST;  LIST == RECORD(ADDR(N))
				ldr	r3, [fp, #32]
				str	r3, [r4]
  506                %IF K=0 %THEN J=1 %ELSE J=0
				str	r4, [fp, #32]
  507             %FINISHELSESTART
				movs	r0, #1
				b	.L143
		.LVL403:
		.L250:
		.LBB455:
		.LBB437:
  508                J = 2
				movs	r0, #2
		.LVL418:
		.L200:
		.L211:
		.L212:
		.L213:
		.L214:
		.L215:
		.L216:
		.L217:
  509                %IF K # 0 %START
				ldr	r3, [sp, #240]
		.LVL281:
				cmp	r3, #0
				beq	.L229
  510                   %IF QQ=PAWN %AND TYPE=0 %THEN %RESULT = 0
				ldr	r6, [ip, #68]
		.LVL282:
				cmp	r6, #1
				beq	.L240
		.L201:
		.LVL283:
		.LBB420:
		.LBB421:
				ldr	r3, [sp, #240]
				cmp	r3, #0
				it	lt
				rsblt	r3, r3, #0
		.LVL284:
		.LBE421:
		.LBE420:
  511                   J = 0;            ! POSSIBLY NO FURTHER
				eor	r0, r0, #1
		.L204:
		.L206:
		.L207:
		.L208:
		.LVL287:
		.L209:
				ldr	r0, [ip, #64]
		.LVL408:
				cmp	r0, #0
				beq	.L143
		.LVL409:
		.LBB456:
		.LBB422:
				ldr	r3, [sp, #240]
		.LVL410:
				cmp	r3, #0
				it	lt
				rsblt	r3, r3, #0
		.LVL411:
		.LBE422:
		.LBE456:
				eor	r0, r3, #1
  512                   IMODK = IMOD(K)
				str	r3, [ip, #28]
		.LVL285:
				str	r3, [ip, #28]
		.LVL412:
				b	.L203
		.LVL413:
		.L241:
  513                   %IF K&BIT = Q&BIT %START;  ! ITS A DEFENCE
  514                         %IF QQ = 5 %START;            ! Q 'BEHIND'
				cmp	r6, #5
				beq	.L241
		.LVL286:
		.L203:
		.LBB423:
  515                            %IF (DIAG=1 %AND IMODK=3) %OR %C
				ldr	r0, [ip, #24]
		.LVL414:
  516                             (DIAG=0 %AND IMODK=4) %THEN J=1
				cmp	r3, #3
				it	eq
				cmpeq	r0, #1
				beq	.L230
		.L205:
  517                         %FINISHELSESTART
  518                            %IF IMODK=5 %START
  519                               %IF 3<=QQ<=4 %THEN J=1
				cmp	r0, #0
				it	eq
				cmpeq	r3, #4
				ite	ne
				movne	r3, #1
				moveq	r3, #0
  520                            %FINISH
  521                         %FINISH
				movs	r0, #1
				b	.L209
		.LVL415:
		.L210:
  522                         ! IF A PIECE DOUBLES UP, THEN KEEP GOING
				subs	r0, r6, #3
				b	.L209
		.L230:
  523                      %IF SCRQ # 3 %START
				cmp	r2, #3
				beq	.L210
  524                        %IF PINFLAG = 0 %THEN %C
				cmp	r0, #1
				it	ls
				cmpls	r3, #5
				ite	ne
				movne	r0, #1
				moveq	r0, #0
		.LBE423:
				ldr	r3, [fp, #20]
				cmp	r3, #0
				bne	.L217
  525                           SQ_DEF = SQ_DEF+BIT VAL(QQ)
				add	r1, r4, r1, lsl #3
		.LVL288:
				ldr	r3, .L253+12
		.LPIC91:
				add	r3, pc
				add	r3, r3, r1, lsl #4
				ldr	r2, [fp, #52]
				adds	r6, r6, #159
				ldr	r2, [r2, r6, lsl #2]
				ldr	r1, [r3, #8]
				add	r2, r2, r1
				str	r2, [r3, #8]
				b	.L217
		.LVL289:
		.L239:
  526                     %FINISHELSESTART
  527                        SQ_DEF = SQ_DEF-BIT VAL(QQ)
				add	r1, r4, r1, lsl #3
		.LVL416:
				ldr	r3, .L253+68
		.LPIC93:
				add	r3, pc
				add	r3, r3, r1, lsl #4
				ldr	r1, [fp, #52]
				adds	r6, r6, #159
				ldr	r2, [r3, #8]
				ldr	r1, [r1, r6, lsl #2]
				subs	r2, r2, r1
				str	r2, [r3, #8]
				b	.L217
		.LVL417:
		.L229:
  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
				ldr	r2, .L253+72
		.LPIC95:
				add	r2, pc
				ldr	r3, [r2, #1060]
				ldr	r1, [fp]
				add	r3, r3, r1
				str	r3, [r2, #1060]
				b	.L143
		.LVL419:
		.L222:
  560             %FINISH
  561             %RESULT = J
  562          %END
				ldr	r3, .L253+4
				ldr	r3, [r5, r3]
				ldr	r2, [sp, #1332]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L238
				addw	sp, sp, #1340
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
		.LVL276:
		.L237:
				mov	fp, ip
		.L145:
				bl	__stack_chk_fail(PLT)
		.LVL422:
		.L254:
				.align	2
		.L253:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC73+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR0-(.LPIC74+4)
				.word	.LANCHOR0-(.LPIC91+4)
				.word	.LANCHOR0-(.LPIC76+4)
				.word	.LANCHOR0-(.LPIC77+4)
				.word	.LANCHOR0-(.LPIC78+4)
				.word	.LANCHOR1-(.LPIC75+4)
				.word	.LANCHOR0-(.LPIC80+4)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR1-(.LPIC82+4)
				.word	.LANCHOR0-(.LPIC84+4)
				.word	.LANCHOR0-(.LPIC86+4)
				.word	.LANCHOR1-(.LPIC87+4)
				.word	.LANCHOR0-(.LPIC88+4)
				.word	.LANCHOR0-(.LPIC93+4)
				.word	.LANCHOR0-(.LPIC95+4)
		.LFE194:
				.align	1
				.thumb
				.thumb_func
		MOVES.10125:
		.LFB193:
?LIST2 unused
  563          !!
  564          DIAG = 0
				movs	r2, #0
				str	r2, [sp, #548]
  565          LIST == RECORD(0)
				str	r2, [sp, #556]
		.LVL423:
  566          WHICHX = WHICH&BIT
  567          !!
  568          %IF SCRQ = 3 %START;           ! PIN ENTRY
				cmp	r1, #3
				beq	.L335
		.LVL424:
		.L258:
  569             X = PX; Y = PY
				ldr	r2, .L343+8
		.LPIC98:
				add	r2, pc
				ldr	r3, [r2, #1068]
				str	r3, [sp, #572]
  570             SQU = (Y-1)*8+X
				ldr	r2, [r2, #1072]
				str	r2, [sp, #568]
				subs	r2, r2, #1
				add	r3, r3, r2, lsl #3
				str	r3, [sp, #528]
		.LVL426:
		.L257:
  571             -> PIN ENTRY
  572          %FINISH
  573
  574          !!
  575          SQU = 0
				itt	ne
				movne	r3, #0
				strne	r3, [sp, #528]
  576          %CYCLE Y = 1,1, 8
  577
  578             %CYCLE X = 1, 1, 8
  579                TYPE = -1
				mov	r2, #-1
				str	r2, [sp, #588]
				ldr	r3, [sp, #568]
				cmp	r3, #8
				bne	.L258
		.L261:
  580                SQU = SQU+1
				adds	r3, r3, #1
				str	r3, [sp, #568]
				ldr	r2, [sp, #528]
				adds	r2, r2, #1
				str	r2, [sp, #528]
				b	.L257
		.LVL425:
		.L335:
  581 PIN ENTRY:
				movs	r1, #0
		.L262:
				ldr	r1, [sp, #572]
				cmp	r1, #8
				bne	.L262
		.L256:
		.L259:
		.L260:
  582                Q = PT(SQU)_P;           ! PICK UP PIECE(X,Y)
				adds	r1, r1, #1
				str	r1, [sp, #572]
				ldr	r3, [sp, #528]
				adds	r3, r3, #19
				ldr	r3, [r5, r3, lsl #2]
				ldr	r3, [r3]
				str	r3, [sp, #584]
  583                %IF Q # 0 %AND (Q&BIT = WHICHX %OR %C
				cmp	r3, #0
				beq	.L309
  584                  SCRQ > 0) %START
				ands	r2, r3, r6, lsr #31
				bne	.L266
  585                   %IF Q<0 %THEN QQ=-Q %AND W2=-1 %ELSE %C
				ldr	r2, [sp, #596]
				cmp	r2, #0
				ble	.L309
		.L266:
				cmp	r3, #0
  586                     QQ = Q %AND W2 = +1
				ittte	lt
				rsblt	r3, r3, #0
				strlt	r3, [sp, #592]
  587                   -> MOVE(QQ)
				movlt	r3, #-1
		.L267:
				ldr	r7, [sp, #592]
		.LVL428:
		.LDL15:
  588
  589 MOVE(1):                                ! PAWN
  590                   TYPE = 0
				strge	r3, [sp, #592]
				add	r7, sp, #524
		.LVL430:
				mov	r8, #0
				str	r8, [sp, #588]
  591                   PIN FLAG = 0
				it	ge
				movge	r3, #1
				str	r3, [sp, #524]
		.L268:
		.LVL427:
				str	r8, [sp, #544]
  592                   K = DOM(X, Y-W2)
				ldr	r1, [sp, #568]
				ldr	r3, [sp, #524]
				mov	ip, r7
				subs	r1, r1, r3
				ldr	r0, [sp, #572]
				bl	DOM.10383(PLT)
		.LVL431:
  593                   PIN FLAG = 0
				str	r8, [r7, #20]
  594                   K=DOM(X, Y-W2-W2) %IF (Y=2 %OR Y=7) %AND K#0
				ldr	r3, [r7, #44]
  595                   TYPE = 1
				cmp	r3, #2
				it	ne
				cmpne	r3, #7
				bne	.L272
		.L273:
				add	r7, sp, #524
				movs	r3, #1
				str	r3, [sp, #588]
  596                   PIN FLAG = 0
				mov	r8, #0
				str	r8, [sp, #544]
  597                   K = DOM(X-1, Y-W2); PIN FLAG = 0;  K=DOM(X+1, Y-W2)
				cbnz	r0, .L336
		.LVL432:
		.L272:
				ldr	r1, [sp, #568]
				ldr	r3, [sp, #524]
				ldr	r0, [sp, #572]
				mov	ip, r7
				subs	r1, r1, r3
				subs	r0, r0, #1
				bl	DOM.10383(PLT)
		.LVL433:
  598                   ->OUT
				str	r8, [r7, #20]
				b	.L309
		.LVL435:
		.L336:
				add	r2, sp, #524
				ldr	r1, [sp, #524]
				mov	ip, r2
				sub	r1, r3, r1, lsl #1
				ldr	r0, [sp, #572]
		.LVL436:
				bl	DOM.10383(PLT)
		.LVL437:
				b	.L272
		.LVL438:
		.L274:
  599                   !!
				ldr	r1, [r7, #44]
				ldr	r3, [r7]
				ldr	r0, [r7, #48]
				mov	ip, r7
				subs	r1, r1, r3
				adds	r0, r0, #1
				bl	DOM.10383(PLT)
		.LVL434:
  600 MOVE(2):                                ! KNIGHT
  601                   %CYCLE A = -2, 4, 2
  602                      %CYCLE B = -1, 2, 1
				mvn	r9, #5
  603                            PIN FLAG = 0
				add	r7, sp, #524
		.LVL439:
				mov	r10, #0
				mov	fp, r10
				b	.L276
		.LVL440:
		.L337:
		.LDL16:
		.LDL17:
				mvn	r8, #2
		.LVL443:
		.L275:
				str	fp, [r7, #20]
  604                            K = DOM(X+A, Y+B)
				cmp	r9, #2
				beq	.L309
		.LVL441:
		.L276:
				ldr	r1, [r7, #44]
				ldr	r0, [r7, #48]
				mov	ip, r7
				add	r1, r1, r8
				add	r0, r0, r9
				bl	DOM.10383(PLT)
		.LVL445:
  605                             PIN FLAG = 0
				add	r9, r9, #4
		.LVL442:
				str	r10, [r7, #20]
				cmp	r8, #1
				bne	.L275
				b	.L337
		.LVL447:
		.L278:
		.L279:
  606                            K = DOM(X+B, Y+A)
				add	r8, r8, #2
		.LVL444:
				ldr	r1, [r7, #44]
				ldr	r0, [r7, #48]
				mov	ip, r7
				add	r1, r1, r9
				add	r0, r0, r8
				bl	DOM.10383(PLT)
		.LVL446:
		.LDL18:
  607                      %REPEAT
  608                   %REPEAT
  609                   -> OUT
  610                   !!!
  611 MOVE(3):                                ! BISHOP
  612 MOVE(5):                                ! QUEEN
  613                   DIAG = 1
				movs	r3, #1
				add	r2, sp, #524
				str	r3, [sp, #548]
		.LVL448:
  614                   I = 0;  PIN FLAG = 0
				mov	r8, r3
  615                   %CYCLE
				movs	r3, #0
				str	r3, [sp, #544]
  616                      I = I-1
				add	r8, r8, #-1
		.LVL450:
  617                      K = DOM(X+I, Y+I)
				mov	r9, r2
		.LVL449:
		.L280:
				ldr	r1, [r9, #44]
				ldr	r0, [r9, #48]
				mov	ip, r9
				add	r1, r1, r8
				add	r0, r0, r8
				bl	DOM.10383(PLT)
		.LVL451:
  618                   %REPEAT %UNTIL K = 0
				mov	r7, r0
				cmp	r0, #0
				bne	.L280
		.L281:
		.LVL452:
  619                   I = 0;  PIN FLAG = 0
  620                   %CYCLE
				movs	r2, #0
				add	r3, sp, #524
				str	r2, [sp, #544]
  621                      I = I-1
				subs	r7, r7, #1
		.LVL454:
  622                      K = DOM(X-I, Y+I)
				mov	r9, r3
		.LVL453:
		.L282:
				ldr	r1, [r9, #44]
				ldr	r0, [r9, #48]
		.LVL455:
				mov	ip, r9
				add	r1, r1, r7
				subs	r0, r0, r7
				bl	DOM.10383(PLT)
		.LVL456:
  623                   %REPEAT %UNTIL K = 0
				mov	r8, r0
				cmp	r0, #0
				bne	.L282
		.L283:
		.LVL457:
  624                   I = 0;  PIN FLAG = 0
  625                   %CYCLE
				movs	r2, #0
				add	r3, sp, #524
				str	r2, [sp, #544]
  626                      I = I-1
				add	r8, r8, #-1
		.LVL459:
  627                      K = DOM(X+I, Y-I)
				mov	r9, r3
		.LVL458:
		.L284:
				ldr	r1, [r9, #44]
				ldr	r0, [r9, #48]
		.LVL460:
				mov	ip, r9
				sub	r1, r1, r8
				add	r0, r0, r8
				bl	DOM.10383(PLT)
		.LVL461:
  628                   %REPEAT %UNTIL K = 0
				mov	r7, r0
				cmp	r0, #0
				bne	.L284
		.L285:
		.LVL462:
  629                   I = 0;  PIN FLAG = 0
  630                   %CYCLE
				movs	r2, #0
				add	r3, sp, #524
				str	r2, [sp, #544]
  631                      I = I-1
				subs	r7, r7, #1
		.LVL464:
  632                      K = DOM(X-I, Y-I)
				mov	r8, r3
		.LVL463:
		.L286:
				ldr	r1, [r8, #44]
				ldr	r0, [r8, #48]
		.LVL465:
				mov	ip, r8
				subs	r1, r1, r7
				subs	r0, r0, r7
				bl	DOM.10383(PLT)
		.LVL466:
  633                   %REPEAT %UNTIL K = 0
				cmp	r0, #0
				bne	.L286
		.L287:
  634                   -> OUT %IF QQ # QUEEN;     ! THE BISHOP
				ldr	r3, [sp, #592]
				cmp	r3, #5
				bne	.L309
		.L288:
		.LVL467:
		.L289:
  635
  636 MOVE(4):                                ! ROOK
  637                   DIAG = 0
				movs	r3, #0
				add	r2, sp, #524
				str	r3, [sp, #548]
		.LVL468:
  638                   K = 1;  I = 0;  PIN FLAG = 0
  639                   %CYCLE
				mov	r8, r3
  640                      I = I-1
				str	r3, [sp, #544]
				add	r8, r8, #-1
		.LVL470:
  641                      K = DOM(X, Y+I)
				mov	r9, r2
		.LVL469:
		.L290:
				ldr	r1, [r9, #44]
				mov	ip, r9
				add	r1, r1, r8
				ldr	r0, [r9, #48]
				bl	DOM.10383(PLT)
		.LVL471:
  642                   %REPEAT %UNTIL K = 0
				mov	r7, r0
				cmp	r0, #0
				bne	.L290
		.L291:
		.LVL472:
  643                   I = 0;  PIN FLAG = 0
  644                   %CYCLE
				movs	r2, #0
				add	r3, sp, #524
				str	r2, [sp, #544]
  645                      I = I+1
				adds	r7, r7, #1
		.LVL474:
  646                      K = DOM(X+I, Y)
				mov	r9, r3
		.LVL473:
		.L292:
				ldr	r0, [r9, #48]
		.LVL475:
				mov	ip, r9
				ldr	r1, [r9, #44]
				add	r0, r0, r7
				bl	DOM.10383(PLT)
		.LVL476:
  647                   %REPEAT %UNTIL K = 0
				mov	r8, r0
				cmp	r0, #0
				bne	.L292
		.L293:
		.LVL477:
  648                   I = 0;  PIN FLAG = 0
  649                   %CYCLE
				movs	r2, #0
				add	r3, sp, #524
				str	r2, [sp, #544]
  650                      I = I+1
				add	r8, r8, #1
		.LVL479:
  651                      K = DOM(X, Y+I)
				mov	r9, r3
		.LVL478:
		.L294:
				ldr	r1, [r9, #44]
				mov	ip, r9
				add	r1, r1, r8
				ldr	r0, [r9, #48]
		.LVL480:
				bl	DOM.10383(PLT)
		.LVL481:
  652                   %REPEAT %UNTIL K = 0
				mov	r7, r0
				cmp	r0, #0
				bne	.L294
		.L295:
		.LVL482:
  653                   I = 0;  PIN FLAG = 0
  654                   %CYCLE
				movs	r2, #0
				add	r3, sp, #524
				str	r2, [sp, #544]
  655                      I = I-1
				subs	r7, r7, #1
		.LVL484:
  656                      K = DOM(X+I, Y)
				mov	r8, r3
		.LVL483:
		.L296:
				ldr	r0, [r8, #48]
		.LVL485:
				mov	ip, r8
				ldr	r1, [r8, #44]
				add	r0, r0, r7
				bl	DOM.10383(PLT)
		.LVL486:
  657                   %REPEAT %UNTIL K = 0
				cmp	r0, #0
				bne	.L296
		.L265:
		.L305:
		.L306:
		.L307:
		.L308:
		.LVL487:
		.L309:
  658                   -> OUT
  659
  660
  661                   !!
  662 MOVE(6):                                ! KING
  663                   ROW == BRD(Y)
				add	r1, sp, #524
				ldr	r3, [sp, #568]
				subs	r2, r3, #1
				ldr	r3, .L343+28
		.LPIC100:
				add	r3, pc
				add	r3, r3, r2, lsl #7
				str	r3, [sp, #560]
		.LVL494:
  664                   %CYCLE A = -1, 1, 1
  665                      %CYCLE B = -1, 1, 1
				mvn	r9, #1
  666                         %IF A#0 %OR B#0 %START
				mvn	r7, #1
		.LVL498:
		.L298:
  667                           PIN FLAG = 0
				mov	r8, r1
				mov	fp, #0
				mov	r10, r1
				b	.L300
		.LVL495:
		.L340:
		.LDL19:
		.LDL20:
				cmp	r9, #1
				beq	.L339
		.LVL496:
		.L300:
				orrs	r3, r9, r7
				beq	.L298
		.L302:
				str	fp, [r8, #20]
  668                           K = DOM(X+A, Y+B)
				add	r9, r9, #1
		.LVL497:
				ldr	r1, [r8, #44]
				ldr	r0, [r8, #48]
				mov	ip, r10
				add	r1, r1, r7
				add	r0, r0, r9
				bl	DOM.10383(PLT)
		.LVL500:
				cmp	r7, #1
				bne	.L298
				b	.L340
		.L339:
		.L299:
  669                          ! %IF K#0 %AND W2#WHICH %THEN K MOB=K MOB+1
				adds	r7, r7, #1
		.LVL499:
  670                         %FINISH
  671                      %REPEAT
  672                   %REPEAT
  673                   %IF LAST CHK # Q %AND %C
				ldr	r3, .L343+32
		.LPIC101:
				add	r3, pc
				ldr	r2, [r3, #1076]
				ldr	r3, [sp, #584]
				cmp	r2, r3
				beq	.L309
  674                     KCASCH(W2) = Y %AND KMOVE(W2)=0 %START
				add	r2, sp, #524
				ldr	r7, [sp, #524]
		.LVL501:
				adds	r0, r7, #1
				ldr	r3, .L343+36
		.LPIC102:
				add	r3, pc
				add	r3, r3, r0, lsl #2
				ldr	r1, [r3, #3588]
				ldr	r3, [sp, #568]
				cmp	r1, r3
				bne	.L309
  675                                         ! CORRECT ROW AND ABLE TO CASTLE
				ldr	r3, .L343+40
		.LPIC103:
				add	r3, pc
				add	r0, r0, r3
				ldrb	r3, [r0, #1080]	@ zero_extendqisi2
				cmp	r3, #0
				bne	.L309
		.LBB473:
  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
				movs	r3, #6
				add	ip, sp, #524
				str	r3, [ip, #64]
  679                      %FINISH
				ldr	r3, [r2, #36]
		.LVL502:
				ldr	r2, [r3, #80]
				cbnz	r2, .L304
				movs	r0, #7
				bl	DOM.10383(PLT)
		.LVL506:
				b	.L304
		.LVL507:
		.L338:
		.LBB475:
		.LBB471:
		.LBB469:
  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
				ldr	r2, [r3, #96]
				cbnz	r2, .L304
		.LBE473:
  682                        %START
  683                         TYPE = 7; K = DOM(3, Y)
				ldr	r3, [r3, #112]
				cmp	r3, r7, lsl #2
				beq	.L341
		.L304:
		.LBB474:
				ldr	r3, [sp, #560]
		.LVL503:
				ldr	r2, [r3, #48]
				cmp	r2, #0
				bne	.L309
				movs	r2, #7
				add	r3, sp, #524
				str	r2, [sp, #588]
  684                      %FINISH
				mov	ip, r3
				ldr	r1, [sp, #568]
				movs	r0, #3
				bl	DOM.10383(PLT)
		.LVL504:
				b	.L309
		.LVL505:
		.L341:
  685                   %FINISH
				ldr	r2, [r3, #32]
				cmp	r2, #0
				bne	.L309
		.LBE474:
  686                   !!
  687 OUT:
				ldr	r2, [r3, #16]
				cmp	r2, #0
				bne	.L309
  688                %FINISH
				ldr	r2, [sp, #524]
				ldr	r3, [r3]
				cmp	r3, r2, lsl #2
				bne	.L309
  689                %RESULT = 0 %IF SCRQ = 3
				ldr	r2, [sp, #596]
				cmp	r2, #3
				beq	.L255
		.L263:
		.L264:
  690             %REPEAT
				it	eq
				moveq	r0, #0
  691          %REPEAT
  692          CHECK PINS(WHICH) %IF SCRQ > 0
				cmp	r2, #0
				ble	.L320
		.LVL488:
		.LBB465:
		.LBB466:
  693                                         ! ONLY ON SCORE ENTRY
				ldr	r3, [sp, #564]
				str	r3, [sp, #516]
		.LVL490:
		.LBB472:
		.LBB470:
		.LBB467:
  694
  695          %RESULT = ADDR(LIST)
				ldr	r0, [sp, #556]
		.L255:
  696       %END
  697       !!
  698       %INTEGERFN SORT AND PRUNE(%RECORD(LISTF)%NAME LIST, %C
				@ Nested: function declared inside another function.
				@ args = 0, pretend = 0, frame = 792
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL73:
				push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
				subw	sp, sp, #1308
				mov	r6, r0
				mov	r7, r1
				mov	r5, r2
				str	ip, [sp, #516]
				ldr	r8, .L70
		.LPIC30:
				add	r8, pc
				ldr	r3, .L70+4
				ldr	r3, [r8, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1300]
				subs	r3, r7, #1
				cmp	r3, #5
				bhi	.L269
		.L270:
				ldr	r3, .L343+44
				ldr	r3, [r4, r3]
				ldr	r1, [r3]
				cbz	r1, .L321
				add	r0, sp, #860
				bl	_imp_c2istr(PLT)
		.LVL526:
		.L322:
				ldr	r3, .L343+48
				ldr	r3, [r4, r3]
				ldr	r3, [r3]
				movw	r2, #698
				cmp	r3, #0
				it	eq
				moveq	r3, r2
				movw	r2, #587
				str	r2, [sp, #268]
				ldr	r2, .L343+64
		.LPIC114:
				add	r2, pc
				str	r2, [sp, #264]
				str	r7, [sp, #260]
				ldr	r2, .L343+68
		.LPIC115:
				add	r2, pc
				str	r2, [sp, #256]
				str	r7, [sp, #252]
				movs	r2, #3
				str	r2, [sp, #248]
				movs	r2, #6
				str	r2, [sp, #244]
				str	r3, [sp, #240]
				movs	r2, #240
				add	r1, sp, #876
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL527:
				add	r3, sp, #860
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_eventf(PLT)
		.LVL528:
				b	.L270
		.L321:
		.LBB476:
				mov	r9, #256
				mov	r2, r9
				ldr	r1, .L343+72
		.LPIC113:
				add	r1, pc
				adds	r1, r1, #12
				addw	r8, sp, #1628
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL529:
				mov	r2, r9
				mov	r1, r8
				add	r8, sp, #604
				mov	r0, r8
				bl	memcpy(PLT)
		.LVL530:
		.LBE476:
				mov	r2, r9
				mov	r1, r8
				add	r0, sp, #860
				bl	memcpy(PLT)
		.LVL531:
				b	.L322
		.LVL532:
		.L342:
  699          %INTEGER WIDTH, WHICH)
				subs	r7, r7, #1
		.LVL429:
				ldr	r3, .L343+12
		.LPIC116:
				add	r3, pc
				ldr	r3, [r3, r7, lsl #2]
				orr	r3, r3, #1
				bx	r3
		.L271:
  700
				ldr	r3, .L343+4
				ldr	r3, [r4, r3]
				ldr	r2, [sp, #1884]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L342
				addw	sp, sp, #1892
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
		.LVL525:
		.L269:
				bl	__stack_chk_fail(PLT)
		.LVL533:
		.L344:
				.align	2
		.L343:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC97+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR0-(.LPIC98+4)
				.word	.LANCHOR3-(.LPIC116+4)
				.word	.LANCHOR0-(.LPIC104+4)
				.word	.LANCHOR0-(.LPIC107+4)
				.word	.LANCHOR1-(.LPIC108+4)
				.word	.LANCHOR0-(.LPIC100+4)
				.word	.LANCHOR0-(.LPIC101+4)
				.word	.LANCHOR1-(.LPIC102+4)
				.word	.LANCHOR0-(.LPIC103+4)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC34-(.LPIC106+4)
				.word	.LANCHOR1-(.LPIC105+4)
				.word	.LANCHOR0-(.LPIC111+4)
				.word	.LC35-(.LPIC114+4)
				.word	.LC36-(.LPIC115+4)
				.word	.LANCHOR1-(.LPIC113+4)
		.LFE193:
				.align	1
				.thumb
				.thumb_func
		TRYANOTHERPLY.10269:
		.LFB191:
  701
  702          %INTEGER I, MAX
  703          %RECORD(LISTF)%NAME M1, M2, L, LN, RES
  704          %CONSTINTEGERARRAY MAXA(-1:1) = 25000, 0, -25000
				ldr	r3, .L70+8
		.LPIC31:
				add	r3, pc
				ldm	r3, {r0, r1, r2}
		.LVL74:
				add	r3, sp, #520
				stm	r3, {r0, r1, r2}
  705          !!
  706
  707          %RESULT = 0 %IF ADDR(LIST) = 0
				cmp	r6, #0
				beq	.L35
		.L37:
		.LVL75:
		.LBB308:
  708
				movs	r0, #0
  709          RES == RECORD(0)
  710          %CYCLE I = 1, 1, WIDTH
  711             M1 == RECORD(0)
  712             M2 == M1; LN == M1
				cmp	r7, #1
				bmi	.L66
		.L38:
		.LVL76:
				str	r9, [sp, #512]
				ldr	r3, .L70+12
				ldr	r3, [r8, r3]
				ldr	r1, [r3]
				cbz	r1, .L39
				add	r0, sp, #788
				bl	_imp_c2istr(PLT)
		.LVL80:
		.L40:
				ldr	r3, .L70+16
				ldr	r3, [r8, r3]
				ldr	r4, [r3]
				cmp	r4, #0
				it	eq
				moveq	r4, #712
				ldr	r1, .L70+20
		.LPIC33:
				add	r1, pc
				addw	r9, sp, #1044
				mov	r0, r9
				bl	_imp_c2istr(PLT)
		.LVL81:
				movs	r3, #0
				str	r3, [sp, #508]
				movs	r3, #1
				str	r3, [sp, #504]
				movs	r3, #5
				str	r3, [sp, #500]
				mov	r2, #256
				mov	r1, r9
				add	r0, sp, #244
				bl	memcpy(PLT)
		.LVL82:
				str	r4, [sp, #240]
				movs	r2, #240
				add	r1, sp, #804
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL83:
				add	r3, sp, #788
				ldm	r3, {r0, r1, r2, r3}
				bl	_signal_event(PLT)
		.LVL84:
				b	.L38
		.L39:
		.LBB309:
				mov	r9, #256
				mov	r2, r9
				ldr	r1, .L70+24
		.LPIC32:
				add	r1, pc
				adds	r1, r1, #12
				addw	r4, sp, #1044
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL85:
				mov	r2, r9
				mov	r1, r4
				add	r4, sp, #532
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL86:
		.LBE309:
				mov	r2, r9
				mov	r1, r4
				add	r0, sp, #788
				bl	memcpy(PLT)
		.LVL87:
				b	.L40
		.LVL88:
		.L61:
				ldr	r7, [sp, #512]
				mov	r4, r7
				mov	r0, r10
				b	.L50
		.LVL103:
		.L44:
		.LBE308:
				ldr	r4, [sp, #512]
				b	.L52
		.LVL117:
		.L69:
		.LBE311:
  713             MAX = MAXA(WHICH)
				adds	r3, r5, #1
		.LVL78:
				mov	r9, #0
  714
  715             L == LIST
				cmp	r7, #0
				beq	.L59
		.LVL77:
				cmp	ip, lr
				beq	.L44
				movs	r4, #0
				b	.L42
		.LVL108:
		.L63:
		.LBE310:
  716             %%EXIT  %IF ADDR(L) = 0
				mov	lr, #1
				add	lr, lr, #1
		.LVL101:
				mov	r9, r4
				cbz	r6, .L45
		.LVL102:
		.L43:
  717
  718             %WHILE ADDR(L) # 0 %CYCLE
  719                %IF (WHICH<0 %AND L_SCORE<MAX) %OR %C
				add	r2, sp, #520
				ldr	fp, [r2, r3, lsl #2]
				mov	ip, r7
				b	.L43
		.LVL79:
		.L66:
				cbz	r2, .L67
		.LVL95:
				cmp	r5, #0
				blt	.L68
		.L47:
				cbz	r6, .L46
				mov	r3, r6
				mov	r1, fp
  720                  (WHICH>0 %AND L_SCORE>MAX) %START
				ldr	r2, [r3, #4]
				cmp	r2, r1
				bge	.L49
		.L48:
		.LVL91:
  721                   !!
  722                   M2 == L;  M1 == LN;  MAX = L_SCORE
				cmp	r5, #0
				ble	.L49
  723                %FINISH
				ldr	r2, [r3, #4]
				cmp	r2, r1
				ble	.L49
  724                !!
				ldr	r1, [r3, #4]
		.LVL92:
				mov	r4, r3
				mov	r7, r0
		.LVL93:
		.L49:
				b	.L48
		.LVL97:
		.L67:
		.L51:
  725                LN == L;  L == L_L
  726             %REPEAT
				ldr	r2, [r3]
		.LDL1:
		.LDL2:
		.LVL94:
				mov	r0, r3
				mov	r3, r2
		.LVL96:
		.L50:
  727
  728             !!
  729             L == M2_L;                  ! PICKUP ITS POINTER
				mov	r10, r9
				mov	r6, r3
		.LVL89:
				b	.L52
		.LVL90:
		.L68:
				ldr	r3, [r4]
		.LVL98:
				ldr	r6, [r10]
		.LVL115:
  730             M2_L == RES
				str	r9, [r4]
		.LVL99:
				str	r9, [r10]
		.LVL116:
  731             RES == M2;                     ! NOTE LINKS BACKWARDS
  732             %IF ADDR(M1) = 0 %THEN LIST == L %ELSE %C
				cmp	r7, #0
				beq	.L61
		.L53:
  733               M1_L == L
  734          %REPEAT
  735
  736          %IF ADDR(LIST) # 0 %THEN RELEASE CHAIN(LIST)
				str	r3, [r7]
		.LVL100:
		.L52:
				cbz	r6, .L45
		.LVL104:
		.L42:
  737          L == RECORD (0)
				ldr	ip, [sp, #516]
				mov	r0, r6
				bl	RELEASECHAIN.10182(PLT)
		.LVL105:
		.L45:
  738          %WHILE ADDR(RES) # 0 %CYCLE
  739             M1 == RES_L;                ! NEXT LINK
				movs	r2, #0
				cbnz	r4, .L55
				movs	r4, #0
		.LVL106:
				b	.L54
		.LVL107:
		.L59:
		.LBB310:
				ldr	r3, [r4]
		.LVL110:
				cmp	r3, #0
				bne	.L63
		.LVL112:
		.L54:
  740             RES_L == L;                 ! LINK TO NEXT
				str	r2, [r4]
		.LVL111:
				mov	r2, r4
  741             L == RES
  742             RES == M1
				mov	r4, r3
		.LVL109:
		.L55:
  743          %REPEAT
  744          %RESULT = ADDR(L)
				mov	r0, r4
		.LVL113:
		.L35:
  745       %END
				ldr	r3, .L70+4
				ldr	r3, [r8, r3]
				ldr	r2, [sp, #1300]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L69
				addw	sp, sp, #1308
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
		.LVL114:
		.L46:
		.LBB311:
				bl	__stack_chk_fail(PLT)
		.LVL118:
		.L71:
				.align	2
		.L70:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC30+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR1-(.LPIC31+4)
				.word	_imp_current_file(GOT)
				.word	_imp_current_line(GOT)
				.word	.LC33-(.LPIC33+4)
				.word	.LANCHOR1-(.LPIC32+4)
		.LFE195:
				.align	1
				.thumb
				.thumb_func
		EXVAL.10237:
		.LFB189:
  746       !!
  747       %INTEGERFN CHANGE BOARD(%RECORD(LISTF{QHF})%NAME B)
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				@ link register save eliminated.
		.LVL3:
				push	{r4, r5, r6, r7}
  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
				ldr	r5, [r0]
		.LVL4:
  754          FROM = LIST_FR;  TO = LIST_TO
				ldrb	r3, [r5, #4]	@ zero_extendqisi2
		.LVL5:
  755          X = FROM>>4;  X0 = TO>>4
				ldrb	r1, [r5, #5]	@ zero_extendqisi2
		.LVL6:
				lsrs	r2, r3, #4
		.LVL7:
  756          Y = FROM&15; Y0 = TO&15
				and	r6, r3, #15
		.LVL8:
				lsrs	r1, r1, #4
		.LVL10:
				subs	r3, r1, #1
		.LVL11:
  757          SQ == BRD(Y0)_R(X0)
				and	r3, r1, #15
		.LVL9:
				subs	r4, r3, #1
  758          B_HOLD = SQ_P
				add	r1, r3, r4, lsl #3
				lsls	r1, r1, #4
				ldr	r7, .L17
		.LPIC0:
				add	r7, pc
				ldr	r1, [r7, r1]
				str	r1, [r0]
		.LVL12:
  759          %IF LIST_SPEC # 0 %START
				ldr	r1, [r5, #8]
				cmp	r1, #0
				beq	.L6
  760             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				cmp	r1, #5
				ble	.L7
  761                %IF SQ_P<0 %START
				add	r2, r3, r4, lsl #3
		.LVL13:
				lsls	r2, r2, #4
				ldr	r0, .L17+4
		.LVL14:
		.LPIC1:
				add	r0, pc
				ldr	r2, [r0, r2]
				cmp	r2, #0
				blt	.L15
		.L8:
		.LVL15:
  762                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = -30
				movs	r2, #1
  763                %FINISHELSESTART
				mvn	r0, #5
				b	.L9
		.LVL26:
		.L16:
  764                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 30
				movs	r2, #8
				mvn	r5, #3
		.LVL25:
  765                %FINISH
				movs	r0, #6
		.LVL17:
		.L9:
				ldr	r2, .L17+20
		.LPIC2:
				add	r2, pc
				mvn	r0, #29
				str	r0, [r2, #1024]
  766                ROW == BRD(CAS)
				movs	r5, #4
		.LVL16:
				subs	r2, r2, #1
		.LVL18:
				cmp	r1, #6
				beq	.L16
		.L10:
  767                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				ldr	r2, .L17+8
		.LPIC3:
				add	r2, pc
				movs	r0, #30
				str	r0, [r2, #1032]
  768                   ROW_R(7)_P = KING;  ROW_R(6)_P = ROOK
				ldr	r1, .L17+24
		.LPIC4:
				add	r1, pc
				add	r2, r1, r2, lsl #7
		.LVL27:
				str	r0, [r2, #96]
  769                   ROW_R(8)_P = 0
				str	r5, [r2, #80]
				movs	r1, #0
				str	r1, [r2, #112]
  770                %FINISHELSESTART
				b	.L11
		.LVL28:
		.L7:
  771                   ROW_R(3)_P = KING;  ROW_R(4)_P = ROOK
				ldr	r1, .L17+12
		.LPIC7:
				add	r1, pc
				lsls	r2, r2, #7
		.LVL19:
				adds	r6, r1, r2
		.LVL20:
				str	r0, [r6, #32]
  772                   ROW_R(1)_P = 0
				str	r5, [r6, #48]
				movs	r5, #0
		.LVL21:
				str	r5, [r1, r2]
		.LVL22:
		.L11:
  773                %FINISH
  774                SQ_P = 0
				add	r3, r3, r4, lsl #3
		.LVL23:
				lsls	r3, r3, #4
				ldr	r2, .L17+16
		.LPIC10:
				add	r2, pc
				movs	r1, #0
				str	r1, [r2, r3]
  775                %RESULT = KING
				b	.L5
		.LVL24:
		.L15:
  776             %FINISH
  777             SQ_P = LIST_SPEC
				add	r0, r3, r4, lsl #3
		.LVL29:
				lsls	r0, r0, #4
				ldr	r5, .L17+28
		.LVL30:
		.LPIC11:
				add	r5, pc
				str	r1, [r5, r0]
  778          %FINISHELSESTART
				b	.L13
		.LVL31:
		.L6:
  779             SQ_P = BRD(Y)_R(X)_P
				ldr	r1, .L17+32
		.LPIC12:
				add	r1, pc
				add	r0, r2, r6, lsl #3
		.LVL32:
				add	r0, r1, r0, lsl #4
				ldr	r5, [r0, #-144]
		.LVL33:
				add	r0, r3, r4, lsl #3
				lsls	r0, r0, #4
				str	r5, [r1, r0]
		.L13:
  780          %FINISH
  781          BRD(Y)_R(X)_P = 0
				ldr	r1, .L17+36
		.LPIC14:
				add	r1, pc
				add	r2, r2, r6, lsl #3
		.LVL34:
				subs	r2, r2, #9
				lsls	r2, r2, #4
				movs	r0, #0
				str	r0, [r1, r2]
  782          %RESULT = SQ_P
				add	r3, r3, r4, lsl #3
		.LVL35:
				lsls	r3, r3, #4
				ldr	r0, [r1, r3]
		.LVL36:
		.L5:
  783       %END
				pop	{r4, r5, r6, r7}
				bx	lr
		.L18:
				.align	2
		.L17:
				.word	.LANCHOR0-(.LPIC0+4)
				.word	.LANCHOR0-(.LPIC1+4)
				.word	.LANCHOR0-(.LPIC3+4)
				.word	.LANCHOR0-(.LPIC7+4)
				.word	.LANCHOR0-(.LPIC10+4)
				.word	.LANCHOR0-(.LPIC2+4)
				.word	.LANCHOR0-(.LPIC4+4)
				.word	.LANCHOR0-(.LPIC11+4)
				.word	.LANCHOR0-(.LPIC12+4)
				.word	.LANCHOR0-(.LPIC14+4)
		.LFE196:
				.align	1
				.thumb
				.thumb_func
		RESTOREBOARD.10132:
		.LFB197:
  784       !!
  785       %ROUTINE RESTORE BOARD(%RECORD(LISTF{QHF})%NAME B)
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
				@ link register save eliminated.
		.LVL37:
				push	{r4, r5, r6, r7}
  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
				ldr	r1, [r0]
		.LVL38:
  791          FROM = LIST_FR;  TO = LIST_TO
				ldrb	r3, [r1, #4]	@ zero_extendqisi2
		.LVL39:
  792          X = FROM>>4;  X0 = TO>>4
				ldrb	r2, [r1, #5]	@ zero_extendqisi2
		.LVL40:
				lsrs	r5, r3, #4
		.LVL41:
  793          Y = FROM&15; Y0 = TO&15
				and	r6, r3, #15
		.LVL42:
				lsrs	r3, r2, #4
		.LVL44:
				subs	r3, r3, #1
		.LVL45:
  794          SQ == BRD(Y0)_R(X0)
				and	r4, r2, #15
		.LVL43:
				subs	r7, r4, #1
  795          %IF LIST_SPEC # 0 %START
				ldr	r2, [r1, #8]
		.LVL46:
				cmp	r2, #0
				beq	.L28
  796             %IF LIST_SPEC >= 6 %START;  ! CASTLE
				cmp	r2, #5
				ble	.L21
  797                %IF Y0 = 1 %START
				cmp	r4, #1
				beq	.L30
		.L22:
		.LVL47:
  798                   CAS = 1;  KING = -6; ROOK = -4; KCAS(-1) = 0
  799                %FINISHELSESTART
				mvn	r1, #5
				b	.L23
		.LVL60:
		.L31:
  800                   CAS = 8;  KING = 6;  ROOK = 4; KCAS(1) = 0
				movs	r4, #8
		.LVL50:
				mvn	r0, #3
  801                %FINISH
				movs	r1, #6
		.LVL51:
		.L23:
				ldr	r1, .L33+12
		.LVL58:
		.LPIC16:
				add	r1, pc
				movs	r0, #0
		.LVL59:
				str	r0, [r1, #1024]
  802                ROW == BRD(CAS)
				movs	r0, #4
				subs	r4, r4, #1
		.LVL52:
				cmp	r2, #6
				beq	.L31
		.L24:
  803                %IF LIST_SPEC = 6 %START;     ! KING SIDE
				ldr	r1, .L33
		.LVL48:
		.LPIC17:
				add	r1, pc
				movs	r0, #0
		.LVL49:
				str	r0, [r1, #1032]
  804                   ROW_R(8)_P = ROOK
				ldr	r2, .L33+16
		.LPIC18:
				add	r2, pc
				add	r4, r2, r4, lsl #7
		.LVL61:
				str	r0, [r4, #112]
		.LVL62:
  805                   ROW_R(7)_P = 0;  ROW_R(6)_P = 0
				movs	r2, #0
				str	r2, [r4, #96]
  806                %FINISHELSESTART
				str	r2, [r4, #80]
				b	.L25
		.LVL63:
		.L21:
  807                   ROW_R(1)_P = ROOK
				ldr	r2, .L33+4
		.LPIC21:
				add	r2, pc
				lsls	r4, r4, #7
		.LVL53:
				adds	r5, r2, r4
		.LVL54:
				str	r0, [r2, r4]
		.LVL55:
  808                   ROW_R(3)_P = 0;  ROW_R(4)_P = 0
				movs	r2, #0
				str	r2, [r5, #32]
  809                %FINISH
				str	r2, [r5, #48]
		.L25:
  810                SQ_P = KING
				add	r3, r3, r7, lsl #3
		.LVL56:
				lsls	r3, r3, #4
				ldr	r2, .L33+8
		.LPIC24:
				add	r2, pc
				str	r1, [r2, r3]
  811                %RETURN
				b	.L19
		.LVL57:
		.L30:
  812             %FINISH
  813             %IF Y0=8 %THEN SQ_P=-1 %ELSE SQ_P=1
				cmp	r4, #8
				beq	.L32
		.L27:
  814          %FINISH
				ldr	r2, .L33+28
		.LPIC25:
				add	r2, pc
				add	r2, r2, r3, lsl #4
				mov	r1, #-1
		.LVL71:
				str	r1, [r2, #896]
		.LVL72:
  815          BRD(Y)_R(X)_P = SQ_P
				ldr	r1, .L33+24
		.LPIC27:
				add	r1, pc
				add	r3, r3, r7, lsl #3
		.LVL67:
				lsls	r3, r3, #4
				ldr	r4, [r1, r3]
				add	r2, r5, r6, lsl #3
				add	r2, r1, r2, lsl #4
				str	r4, [r2, #-144]
				b	.L28
		.L34:
				.align	2
		.L33:
				.word	.LANCHOR0-(.LPIC17+4)
				.word	.LANCHOR0-(.LPIC21+4)
				.word	.LANCHOR0-(.LPIC24+4)
				.word	.LANCHOR0-(.LPIC16+4)
				.word	.LANCHOR0-(.LPIC18+4)
				.word	.LANCHOR0-(.LPIC26+4)
				.word	.LANCHOR0-(.LPIC27+4)
				.word	.LANCHOR0-(.LPIC25+4)
		.LFE197:
				.align	1
				.thumb
				.thumb_func
		SORTANDPRUNE.10119:
		.LFB195:
  816          SQ_P = B_HOLD
				ldr	r2, [r0]
				str	r2, [r1, r3]
		.LVL68:
		.L19:
  817       %END
				add	r2, r3, r7, lsl #3
				lsls	r2, r2, #4
				ldr	r1, .L33+20
		.LVL64:
		.LPIC26:
				add	r1, pc
				movs	r4, #1
		.LVL65:
				str	r4, [r1, r2]
		.LVL66:
		.L20:
		.L28:
  818       !!
				pop	{r4, r5, r6, r7}
		.LVL69:
				bx	lr
		.LVL70:
		.L32:
  819       !!
  820       %ROUTINE BURP(%RECORD(LISTF{QHF})%NAME X, %INTEGER W)
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL612:
				push	{r3, r4, r5, r6, r7, r8, r9, lr}
				mov	r5, r0
				mov	r6, r1
				ldr	r4, .L398
		.LPIC143:
				add	r4, pc
  821          %INTEGER I
  822          !!
  823          TELL(X_L, W)
				ldr	r0, [r0]
		.LVL613:
				bl	TELL.10138(PLT)
		.LVL614:
		.LBB537:
		.LBB538:
				ldr	r3, .L398+4
				ldr	r9, [r4, r3]
				movs	r3, #2
				str	r3, [r9]
				ldr	r3, .L398+8
				ldr	r7, [r4, r3]
				ldr	r3, .L398+12
				ldr	r8, [r4, r3]
				ldr	r3, [r8, #556]
				str	r3, [r7]
				ldr	r4, .L398+16
		.LPIC144:
				add	r4, pc
				add	r4, r4, #3056
				mov	r0, r4
				bl	check_outstream(PLT)
		.LVL615:
		.LBE538:
		.LBE537:
		.LBB539:
		.LBB540:
				movs	r0, #42
				bl	_imp_printsymbol(PLT)
		.LVL616:
		.LBE540:
		.LBE539:
  824          SELECT OUTPUT(2)
  825          PRINTSYMBOL('*'); TELL(X_L, W)
  826          SELECT OUTPUT(0)
				mov	r1, r6
				ldr	r0, [r5]
				bl	TELL.10138(PLT)
		.LVL617:
		.LBB541:
		.LBB542:
				movs	r3, #0
				str	r3, [r9]
				ldr	r3, [r8, #4]
				str	r3, [r7]
				mov	r0, r4
				bl	check_outstream(PLT)
		.LVL618:
		.LBE542:
		.LBE541:
  827 !         %IF W > 0 %AND TIMTT < 3 %AND PDEPTH#1 %THEN PDEPTH=PDEPTH+1
  828          I = CHANGE BOARD(X)
				mov	r0, r5
				bl	CHANGEBOARD.10130(PLT)
		.LVL619:
  829          %IF I = KING*W %THEN KMOVE(W) = 1
				movs	r3, #6
				mul	r3, r3, r6
				cmp	r3, r0
				beq	.L397
		.L395:
		.LVL620:
		.L394:
  830       %END
				ldr	r3, .L398+20
		.LPIC146:
				add	r3, pc
				add	r6, r6, r3
		.LVL622:
				movs	r3, #1
				strb	r3, [r6, #1081]
				b	.L394
		.L399:
				.align	2
		.L398:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC143+4)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR1-(.LPIC144+4)
				.word	.LANCHOR0-(.LPIC146+4)
		.LFE198:
				.align	1
				.global	main
				.thumb
				.thumb_func
		main:
		.LFB185:
  831       !!
				pop	{r3, r4, r5, r6, r7, r8, r9, pc}
		.LVL621:
		.L397:
  832       %ROUTINE TELL(%RECORD(LISTF)%NAME MOVE, %INTEGER WHICH)
				@ args = 0, pretend = 0, frame = 1032
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL203:
				push	{r4, r5, r6, r7, lr}
				subw	sp, sp, #1276
				mov	r4, r1
				ldr	r5, .L131
		.LPIC63:
				add	r5, pc
				ldr	r3, .L131+4
				ldr	r3, [r5, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1268]
  833
  834          %IF ADDR(MOVE) = 0 %START
				cmp	r0, #0
				beq	.L128
		.L121:
				mov	r6, r0
  835             %IF WHICH < 0 %THEN PRINTSTRING("I Win
				cmp	r1, #0
				blt	.L130
		.L122:
		.LBB359:
  836 ")          %ELSE %C
				mov	r5, #256
				mov	r2, r5
				ldr	r1, .L131+28
		.LVL235:
		.LPIC64:
				add	r1, pc
				add	r1, r1, #1776
				add	r4, sp, #1012
		.LVL236:
				mov	r0, r4
		.LVL237:
				bl	memcpy(PLT)
		.LVL238:
				mov	r2, r5
				mov	r1, r4
				add	r4, sp, #244
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL239:
				mov	r2, r5
				mov	r1, r4
				add	r4, sp, #756
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL240:
		.LBE364:
		.LBB365:
		.LBB366:
				movs	r2, #240
				add	r1, sp, #772
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL241:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL242:
				b	.L123
		.LVL243:
		.L124:
		.LBE366:
		.LBE365:
		.LBB367:
		.LBB368:
				movs	r0, #4
				bl	_imp_spaces(PLT)
		.LVL244:
		.LBE368:
		.LBE367:
  837               PRINTSTRING("YOU WIN
  838 ")
  839             %STOP
				mov	r6, #256
				mov	r2, r6
				ldr	r1, .L131+24
		.LVL226:
		.LPIC65:
				add	r1, pc
				add	r1, r1, #2032
				add	r4, sp, #1012
		.LVL227:
				mov	r0, r4
		.LVL228:
				bl	memcpy(PLT)
		.LVL229:
				mov	r2, r6
				mov	r1, r4
				add	r5, sp, #500
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL230:
				mov	r2, r6
				mov	r1, r5
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL231:
		.LBE359:
		.LBB360:
		.LBB361:
				movs	r2, #240
				addw	r1, sp, #1028
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL232:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL233:
		.L123:
		.LBE361:
		.LBE360:
		.LBB362:
		.LBB363:
				movs	r0, #0
				bl	exit(PLT)
		.LVL234:
		.L130:
		.LBE363:
		.LBE362:
		.LBB364:
  840          %FINISH
  841          !!
  842          WRITE(NO, 1)
				movs	r1, #1
		.LVL204:
				ldr	r3, .L131+8
		.LPIC66:
				add	r3, pc
				ldr	r0, [r3]
		.LVL205:
				bl	_imp_writeint(PLT)
		.LVL206:
  843          %IF WHICH > 0 %THEN SPACES(25) %ELSE SPACES(4)
				cmp	r4, #0
				ble	.L124
		.LVL207:
		.LBB348:
		.LBB349:
				movs	r0, #25
				bl	_imp_spaces(PLT)
		.LVL208:
		.LBE349:
		.LBE348:
  844          PRINTMOVE(MOVE)
				mov	r0, r6
				bl	PRINTMOVE.10142(PLT)
		.LVL209:
		.LBB350:
				mov	r0, r6
				bl	PRINTMOVE.10142(PLT)
		.LVL245:
		.LBB369:
  845          PRINTSTRING("(")
				mov	r6, #256
		.LVL210:
				mov	r2, r6
				ldr	r1, .L131+12
		.LPIC67:
				add	r1, pc
				add	r1, r1, #2288
				add	r4, sp, #1012
		.LVL211:
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL212:
				mov	r2, r6
				mov	r1, r4
				add	r4, sp, #244
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL213:
				mov	r2, r6
				mov	r1, r4
				add	r4, sp, #756
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL214:
		.LBE350:
		.LBB351:
		.LBB352:
				movs	r2, #240
				add	r1, sp, #772
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL215:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL216:
		.LBE352:
		.LBE351:
				mov	r6, #256
		.LVL246:
				mov	r2, r6
				ldr	r1, .L131+32
		.LPIC69:
				add	r1, pc
				add	r1, r1, #2288
				add	r4, sp, #1012
		.LVL247:
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL248:
				mov	r2, r6
				mov	r1, r4
				add	r4, sp, #244
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL249:
				mov	r2, r6
				mov	r1, r4
				add	r4, sp, #756
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL250:
		.LBE369:
		.LBB370:
		.LBB353:
				movs	r2, #240
				add	r1, sp, #772
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL251:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL252:
		.LDL7:
		.LBE353:
		.LBE370:
  846          %IF WHICH > 0 %START
  847             TIMTT = CPUTIME-TIME
				bl	CPUTIME(PLT)
		.LVL217:
				ldr	r3, .L131+16
		.LPIC68:
				add	r3, pc
				add	r3, r3, #1040
				vldr.64	d7, [r3]
		.LBB354:
		.LBB355:
				movs	r1, #2
				movs	r0, #1
				vsub.f64	d0, d0, d7
		.LVL218:
				bl	_imp_print(PLT)
		.LVL219:
		.L125:
		.LBE355:
		.LBE354:
		.LBB356:
  848            PRINT(TIMTT, 1, 2)
  849          %FINISHELSESTART
  850             PRINT(CPUTIME-TIME2, 1, 2)
				bl	CPUTIME(PLT)
		.LVL253:
				ldr	r3, .L131+36
		.LPIC70:
				add	r3, pc
				add	r3, r3, #1048
				vldr.64	d7, [r3]
		.LBB371:
		.LBB372:
				movs	r1, #2
				movs	r0, #1
				vsub.f64	d0, d0, d7
		.LVL254:
				bl	_imp_print(PLT)
		.LVL255:
				b	.L125
		.LVL256:
		.L129:
		.LBE372:
		.LBE371:
  851          %FINISH
  852          PRINTSTRING(" Secs)
				mov	r7, #256
				mov	r2, r7
				ldr	r1, .L131+20
		.LPIC71:
				add	r1, pc
				add	r1, r1, #2544
				add	r4, sp, #1012
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL220:
				mov	r2, r7
				mov	r1, r4
				add	r6, sp, #500
				mov	r0, r6
				bl	memcpy(PLT)
		.LVL221:
				mov	r2, r7
				mov	r1, r6
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL222:
		.LBE356:
		.LBB357:
		.LBB358:
				movs	r2, #240
				addw	r1, sp, #1028
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL223:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL224:
		.LBE358:
		.LBE357:
  853 ")
  854       %END
  855       !!
				ldr	r3, .L131+4
				ldr	r3, [r5, r3]
				ldr	r2, [sp, #1268]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L129
				addw	sp, sp, #1276
				@ sp needed
				pop	{r4, r5, r6, r7, pc}
		.LVL225:
		.L128:
				bl	__stack_chk_fail(PLT)
		.LVL257:
		.L132:
				.align	2
		.L131:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC63+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR2-(.LPIC66+4)
				.word	.LANCHOR1-(.LPIC67+4)
				.word	.LANCHOR0-(.LPIC68+4)
				.word	.LANCHOR1-(.LPIC71+4)
				.word	.LANCHOR1-(.LPIC65+4)
				.word	.LANCHOR1-(.LPIC64+4)
				.word	.LANCHOR1-(.LPIC69+4)
				.word	.LANCHOR0-(.LPIC70+4)
		.LFE199:
				.align	1
				.thumb
				.thumb_func
		READM.10666:
		.LFB207:
  856       %ROUTINE PRINTBOARD
				@ args = 0, pretend = 0, frame = 1632
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
				subw	sp, sp, #1876
				ldr	r3, .L118
		.LPIC56:
				add	r3, pc
				mov	r2, r3
				str	r3, [sp, #244]
				ldr	r3, .L118+4
				ldr	r3, [r2, r3]
				ldr	r3, [r3]
				str	r3, [sp, #1868]
  857          %CONSTBYTEINTEGERARRAY BLACK(1:64) = %C
				ldr	r3, .L118+8
		.LPIC57:
				add	r3, pc
				addw	r4, sp, #1804
				mov	r6, r3
				add	r5, r3, #928
				ldmia	r5!, {r0, r1, r2, r3}
				stmia	r4!, {r0, r1, r2, r3}
				ldmia	r5!, {r0, r1, r2, r3}
				stmia	r4!, {r0, r1, r2, r3}
				ldmia	r5!, {r0, r1, r2, r3}
				stmia	r4!, {r0, r1, r2, r3}
				ldm	r5, {r0, r1, r2, r3}
				stm	r4, {r0, r1, r2, r3}
  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
				@ args = 0, pretend = 0, frame = 520
				@ frame_needed = 0, uses_anonymous_args = 0
				push	{r4, r5, r6, r7, lr}
				sub	sp, sp, #764
				ldr	r3, .L90
		.LPIC38:
				add	r3, pc
				ldr	r2, .L90+4
				ldr	r7, [r3, r2]
				ldr	r3, [r7]
				str	r3, [sp, #756]
		.LBB315:
  868             PRINTSTRING("  !---!---!---!---!---!---!---!---!
				mov	r6, #256
				mov	r2, r6
				ldr	r1, .L90+8
		.LPIC39:
				add	r1, pc
				add	r1, r1, #672
				add	r4, sp, #500
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL145:
				mov	r2, r6
				mov	r1, r4
				add	r5, sp, #244
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL146:
				mov	r2, r6
				mov	r1, r5
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL147:
		.LBE315:
		.LBB316:
		.LBB317:
				movs	r2, #240
				add	r1, sp, #516
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL148:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL149:
		.LBE317:
		.LBE316:
  869 ")
  870          %END
  871          !!
				ldr	r2, [sp, #756]
				ldr	r3, [r7]
				cmp	r2, r3
				bne	.L89
				add	sp, sp, #764
				@ sp needed
				pop	{r4, r5, r6, r7, pc}
		.L89:
				bl	__stack_chk_fail(PLT)
		.LVL150:
		.L91:
				.align	2
		.L90:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC38+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR1-(.LPIC39+4)
		.LFE201:
				.align	1
				.thumb
				.thumb_func
		BURP.10642:
		.LFB203:
  872          %CONSTBYTEINTEGERARRAY PX(-6:6) = %C
				addw	r4, sp, #1788
				add	r3, r6, #992
				ldm	r3, {r0, r1, r2, r3}
				stmia	r4!, {r0, r1, r2}
				strb	r3, [r4]
		.LVL164:
				addw	r10, sp, #1805
				ldr	r8, .L118+12
		.LPIC59:
				add	r8, pc
				add	r8, r8, #896
  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)
				mov	fp, #9
		.LBB326:
  881             LINE
				bl	LINE.10608(PLT)
		.LVL192:
  882             WRITE(Y, 1)
				cmp	fp, #1
				beq	.L116
		.LVL190:
		.L107:
				movs	r1, #1
				mov	r0, fp
				bl	_imp_writeint(PLT)
		.LVL193:
				movs	r5, #0
		.LBB344:
  883             %CYCLE X = 1, 1, 8
				add	fp, fp, #-1
		.LVL191:
  884                PRINTSTRING("! ")
				addw	r7, sp, #1532
				ldr	r9, .L118+16
		.LPIC60:
				add	r9, pc
				add	r9, r9, #1008
		.LBE326:
		.LBB327:
				mov	r2, r6
				mov	r1, r9
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL171:
				mov	r2, r6
				mov	r1, r7
				add	r4, sp, #252
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL172:
				mov	r2, r6
				mov	r1, r4
				add	r4, sp, #1020
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL173:
		.LBE332:
		.LBB333:
		.LBB334:
				movs	r2, #240
				addw	r1, sp, #1036
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL174:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL175:
		.LBE334:
		.LBE333:
				mov	r6, #256
				b	.L105
		.LVL194:
		.L116:
		.L108:
		.LBE344:
  885                P = ROW_R(X)_P
				lsls	r3, r5, #4
				ldr	r4, [r8, r3]
		.LVL176:
  886                %IF P # 0 %THEN PRINTSYMBOL(PX(P)) %ELSE %START
				cmp	r5, #8
				beq	.L114
		.LVL170:
		.L105:
		.LBB332:
				cmp	r4, #0
				bne	.L115
		.L99:
  887                   %IF BLACK(Q) = 1 %THEN PRINTSYMBOL('*') %C
				add	r3, sp, #1872
				add	r3, r3, r4
		.LBB328:
		.LBB329:
				ldrb	r0, [r3, #-78]	@ zero_extendqisi2
				bl	_imp_printsymbol(PLT)
		.LVL166:
		.LDL3:
		.LDL4:
		.LBE329:
		.LBE328:
				add	r3, r10, r5
				ldrb	r3, [r3, #-1]	@ zero_extendqisi2
				cmp	r3, #1
		.LVL177:
		.LBB335:
		.LBB336:
				ite	eq
				moveq	r0, #42
		.L102:
		.LVL178:
		.LBE336:
		.LBE335:
		.LBB337:
		.LBB338:
				movne	r0, #32
				bl	_imp_printsymbol(PLT)
		.LVL179:
		.L100:
		.LBE338:
		.LBE337:
		.LBB339:
		.LBB340:
				movs	r0, #32
				bl	_imp_printsymbol(PLT)
		.LVL180:
				b	.L104
		.LVL181:
		.L114:
		.L106:
		.LBE340:
		.LBE339:
		.LBB341:
  888                   %ELSE PRINTSYMBOL(' ')
  889                %FINISH
  890                %IF P > 0 %THEN PRINTSYMBOL('+') %ELSE %C
				cmp	r4, #0
				ble	.L100
		.LVL167:
		.LBB330:
		.LBB331:
				movs	r0, #43
				bl	_imp_printsymbol(PLT)
		.LVL168:
		.L104:
		.LDL5:
				adds	r5, r5, #1
		.LVL169:
		.LBE331:
		.LBE330:
  891                  PRINTSYMBOL(' ')
  892                Q = Q+1
  893             %REPEAT
  894             PRINTSTRING("!
				ldr	r3, .L118+20
		.LPIC61:
				add	r3, pc
				add	r3, r3, #1264
				str	r3, [sp, #240]
				b	.L107
		.LVL165:
		.L115:
		.LBE327:
				mov	r5, #256
		.LVL182:
				mov	r2, r5
				ldr	r1, [sp, #240]
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL183:
				mov	r2, r5
				mov	r1, r7
				add	r4, sp, #508
		.LVL184:
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL185:
				mov	r2, r5
				mov	r1, r4
				addw	r4, sp, #1276
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL186:
		.LBE341:
		.LBB342:
		.LBB343:
				movs	r2, #240
				addw	r1, sp, #1292
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL187:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL188:
		.LDL6:
				add	r10, r10, #8
		.LVL189:
				sub	r8, r8, #128
		.LBE343:
		.LBE342:
  895 ")
  896          %REPEAT
  897          LINE
				bl	LINE.10608(PLT)
		.LVL195:
		.LBB345:
  898          PRINTSTRING("    A   B   C   D   E   F   G   H
				mov	r6, r5
				mov	r2, r5
				ldr	r1, .L118+24
		.LPIC62:
				add	r1, pc
				add	r1, r1, #1520
				addw	r4, sp, #1532
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL196:
				mov	r2, r5
				mov	r1, r4
				add	r5, sp, #764
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL197:
				mov	r2, r6
				mov	r1, r5
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL198:
		.LBE345:
		.LBB346:
		.LBB347:
				movs	r2, #240
				addw	r1, sp, #1548
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL199:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL200:
		.LBE347:
		.LBE346:
  899 ")
  900       %END
?I unused
  901       !!
				ldr	r3, .L118+4
				ldr	r2, [sp, #244]
				ldr	r3, [r2, r3]
				ldr	r2, [sp, #1868]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L117
				addw	sp, sp, #1876
				@ sp needed
				pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
		.LVL201:
		.L117:
				bl	__stack_chk_fail(PLT)
		.LVL202:
		.L119:
				.align	2
		.L118:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC56+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR1-(.LPIC57+4)
				.word	.LANCHOR0-(.LPIC59+4)
				.word	.LANCHOR1-(.LPIC60+4)
				.word	.LANCHOR1-(.LPIC61+4)
				.word	.LANCHOR1-(.LPIC62+4)
		.LFE200:
				.align	1
				.thumb
				.thumb_func
		TELL.10138:
		.LFB199:
  902          !!
  903       %ROUTINE PRINTMOVE(%RECORD(LISTF)%NAME LIST)
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL157:
				push	{r4, lr}
				mov	r4, r0
  904          %INTEGER I,J,K
  905          %ROUTINE BURP(%INTEGER X)
				@ args = 0, pretend = 0, frame = 0
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL151:
				push	{r4, lr}
				mov	r4, r0
		.LVL152:
  906             PRINTSYMBOL((X>>4)+'A'-1)
				lsrs	r0, r0, #4
		.LVL153:
				adds	r0, r0, #64
		.LBB318:
		.LBB319:
				uxtb	r0, r0
				bl	_imp_printsymbol(PLT)
		.LVL154:
		.LBE319:
		.LBE318:
  907             PRINTSYMBOL(X&15+'0')
				and	r0, r4, #15
		.LBB320:
		.LBB321:
				adds	r0, r0, #48
				bl	_imp_printsymbol(PLT)
		.LVL155:
		.LBE321:
		.LBE320:
		.LBB322:
		.LBB323:
				bl	_imp_space(PLT)
		.LVL156:
		.LBE323:
		.LBE322:
  908             SPACE
  909          %END
  910          !!
				pop	{r4, pc}
		.LFE203:
				.align	1
				.thumb
				.thumb_func
		PRINTMOVE.10142:
		.LFB202:
  911          BURP(LIST_FR); BURP(LIST_TO)
				ldrb	r0, [r0, #4]	@ zero_extendqisi2
		.LVL158:
				bl	BURP.10642(PLT)
		.LVL159:
  912          %IF LIST_CHK # 0 %THEN PRINTSYMBOL('+')
				ldrb	r0, [r4, #5]	@ zero_extendqisi2
				bl	BURP.10642(PLT)
		.LVL160:
				ldr	r3, [r4, #12]
				cbnz	r3, .L97
		.L95:
  913          WRITE(LIST_SCORE, 5)
				movs	r1, #5
				ldr	r0, [r4, #4]
				bl	_imp_writeint(PLT)
		.LVL161:
  914       %END
?K unused
?J unused
?I unused
  915       !!
				pop	{r4, pc}
		.LVL162:
		.L97:
		.LBB324:
		.LBB325:
				movs	r0, #43
				bl	_imp_printsymbol(PLT)
		.LVL163:
				b	.L95
		.LBE325:
		.LBE324:
		.LFE202:
				.align	1
				.thumb
				.thumb_func
		PRINTBOARD.10140:
		.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
				ldr	r3, [sp, #260]
				cmp	r3, #0
				beq	.L429
				ldrb	r1, [r6, #4]	@ zero_extendqisi2
				cmp	r3, #0
				beq	.L429
		.LVL723:
		.L433:
				ldrb	r2, [r3, #4]	@ zero_extendqisi2
				cmp	r2, r1
				bne	.L432
  923                %START
				ldrb	r0, [r6, #5]	@ zero_extendqisi2
				ldr	r3, [sp, #264]
				b	.L433
		.LVL711:
		.L442:
		.L423:
		.LBE693:
		.LBE692:
		.LBB695:
		.LBB696:
				add	r4, sp, #320
				add	r0, sp, #280
		.LVL712:
				bl	_imp_readsymbol(PLT)
		.LVL713:
		.LBE696:
		.LBE695:
				ldrb	r2, [r3, #5]	@ zero_extendqisi2
				cmp	r2, r0
				bne	.L432
  924                   MM_SCORE = LIST_SCORE;  MM_CHK = LIST_CHK
				ldr	r2, [r3, #4]
				add	r4, sp, #3136
				str	r2, [sp, #3140]
  925                   %RESULT = 1
				ldr	r3, [r3, #12]
		.LVL724:
				str	r3, [sp, #3148]
		.LDL27:
		.LVL725:
		.LBE694:
		.LBE709:
		.LBB710:
		.LBB711:
				bl	_imp_skipsymbol(PLT)
		.LVL726:
		.LBE711:
		.LBE710:
  926             %FINISH
  927             LIST == LIST_L
				ldr	r3, [r3]
		.LVL722:
		.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))
				add	ip, sp, #3136
				mov	r2, #-1
				movs	r1, #100
				mov	r0, r4
				bl	SORTANDPRUNE.10119(PLT)
		.LVL739:
				mov	r4, r0
		.LVL740:
				str	r0, [sp, #260]
		.LVL741:
		.LBB716:
		.LBB717:
				str	r0, [sp, #264]
		.LVL742:
		.L413:
		.L439:
		.L414:
		.LBE717:
		.LBE716:
  936          L == LIST
  937          %CYCLE
  938             PRINTMOVE(L); NEWLINE
				mov	r0, r4
				bl	PRINTMOVE.10142(PLT)
		.LVL743:
		.LBB718:
		.LBB719:
				bl	_imp_newline(PLT)
		.LVL744:
		.LBE719:
		.LBE718:
  939             L == L_L
				ldr	r4, [r4]
		.LVL745:
  940             %EXIT %IF ADDR(L) = 0
				cmp	r4, #0
				bne	.L439
		.L415:
		.LVL746:
		.LBB720:
		.LBB721:
				ldr	r3, .L451+64
				ldr	r1, [sp, #268]
				ldr	r3, [r1, r3]
				movs	r2, #0
				str	r2, [r3]
				ldr	r3, .L451+68
				ldr	r3, [r1, r3]
				ldr	r2, .L451+72
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #4]
				str	r2, [r3]
				ldr	r0, .L451+92
		.LPIC167:
				add	r0, pc
				add	r0, r0, #3056
				bl	check_outstream(PLT)
		.LVL747:
		.LBE721:
		.LBE720:
		.LBE713:
		.LBE712:
  941          %REPEAT
  942          SELECT OUTPUT(0)
  943          %RESULT = ADDR(LIST)
  944       %END
  945
  946       %ROUTINE YOUR MOVE
  947          %INTEGER %FN READM(%INTEGERNAME X, Y)
				@ args = 0, pretend = 0, frame = 16
				@ frame_needed = 0, uses_anonymous_args = 0
		.LVL258:
				push	{r4, r5, r6, lr}
				sub	sp, sp, #16
				mov	r6, r0
				mov	r5, r1
				ldr	r4, .L141
		.LPIC72:
				add	r4, pc
				ldr	r3, .L141+4
				ldr	r3, [r4, r3]
				ldr	r3, [r3]
				str	r3, [sp, #12]
		.LVL259:
		.L134:
		.LBB373:
		.LBB374:
				bl	_imp_nextsymbol(PLT)
		.LVL260:
		.LBE374:
		.LBE373:
  948             %INTEGER I,J
  949             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  950             READSYMBOL(I)
				cmp	r0, #10
				bne	.L135
		.LBB375:
		.LBB376:
				bl	_imp_skipsymbol(PLT)
		.LVL261:
				b	.L134
		.L135:
		.LVL262:
		.LBE376:
		.LBE375:
		.LBB377:
		.LBB378:
				add	r0, sp, #4
		.LVL263:
				bl	_imp_readsymbol(PLT)
		.LVL264:
		.L136:
		.LBE378:
		.LBE377:
		.LBB379:
		.LBB380:
				bl	_imp_nextsymbol(PLT)
		.LVL265:
		.LBE380:
		.LBE379:
  951             SKIPSYMBOL %WHILE NEXTSYMBOL=NL
  952             READSYMBOL(J)
				cmp	r0, #10
				bne	.L137
		.LBB381:
		.LBB382:
				bl	_imp_skipsymbol(PLT)
		.LVL266:
				b	.L136
		.L137:
		.LVL267:
		.LBE382:
		.LBE381:
		.LBB383:
		.LBB384:
				add	r0, sp, #8
		.LVL268:
				bl	_imp_readsymbol(PLT)
		.LVL269:
		.LBE384:
		.LBE383:
  953             X = I-'A'+1;  Y = J-'0'
				ldr	r3, [sp, #4]
				subs	r3, r3, #64
				str	r3, [r6]
  954             %RESULT = 0
				ldr	r3, [sp, #8]
				subs	r3, r3, #48
				str	r3, [r5]
  955          %END
				movs	r0, #0
				ldr	r3, .L141+4
				ldr	r3, [r4, r3]
				ldr	r2, [sp, #12]
				ldr	r3, [r3]
				cmp	r2, r3
				bne	.L140
				add	sp, sp, #16
				@ sp needed
				pop	{r4, r5, r6, pc}
		.LVL270:
		.L140:
				bl	__stack_chk_fail(PLT)
		.LVL271:
		.L142:
				.align	2
		.L141:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC72+4)
				.word	__stack_chk_guard(GOT)
		.LFE207:
				.align	1
				.thumb
				.thumb_func
		DOM.10383:
		.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)
				ldr	r4, .L451+84
		.LPIC164:
				add	r4, pc
				movs	r3, #1
				str	r3, [r4, #1084]
  961          LIST == RECORD(MOVES(-1, 0));     ! GET OPPS LEGAL MOVES
				add	ip, sp, #3136
				movs	r1, #0
				mov	r0, #-1
				bl	MOVES.10125(PLT)
		.LVL736:
  962          JUST ONE PLY = 0
				movs	r3, #0
				str	r3, [r4, #1084]
  963          %IF ADDR(LIST) = 0 %THEN TELL(LIST, -1); ! CHECKMATE
				mov	r4, r0
				cmp	r0, #0
				beq	.L450
		.L412:
		.LVL737:
		.LBB712:
		.LBB713:
		.LBB714:
		.LBB715:
				ldr	r3, .L451+64
				ldr	r1, [sp, #268]
				ldr	r3, [r1, r3]
				movs	r2, #2
				str	r2, [r3]
				ldr	r3, .L451+68
				ldr	r3, [r1, r3]
				ldr	r2, .L451+72
				ldr	r2, [r1, r2]
				ldr	r2, [r2, #556]
				str	r2, [r3]
				ldr	r0, .L451+88
		.LPIC166:
				add	r0, pc
				add	r0, r0, #3056
				bl	check_outstream(PLT)
		.LVL738:
		.LBE715:
		.LBE714:
  964          %IF MON&1#0 %THEN LIST == RECORD(PRINT MOVES(LIST))
				mov	r1, #-1
				mov	r0, r3
				bl	TELL.10138(PLT)
		.LVL662:
				b	.L412
		.L443:
		.LBB653:
		.LBB654:
				bl	_imp_skipsymbol(PLT)
		.LVL663:
		.LBE654:
		.LBE653:
		.LBB655:
  965 AGAIN:
  966          LM_SPEC = 0
				str	r8, [r6, #8]
		.LBB678:
		.LBB679:
				bl	_imp_nextsymbol(PLT)
		.LVL696:
		.LBE679:
		.LBE678:
				add	r6, sp, #3136
				mov	r9, #0
				mov	r8, r9
  967          %IF NEXTSYMBOL='M' %START;     ! MONITOR
				cmp	r0, #77
				beq	.L443
		.L417:
		.LBB680:
		.LBB681:
				bl	_imp_nextsymbol(PLT)
		.LVL697:
		.LBE681:
		.LBE680:
  968             SKIPSYMBOL
  969             PROMPT("MON?"); READ(MON); SKIPSYMBOL
				ldr	fp, .L451+52
		.LPIC168:
				add	fp, pc
				mov	r7, #256
				mov	r2, r7
				addw	r1, fp, #1244
				add	r5, sp, #1600
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL664:
				mov	r2, r7
				mov	r1, r5
				add	r4, sp, #2880
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL665:
		.LBE655:
				mov	r10, #240
				mov	r2, r10
				add	r1, r4, #16
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL666:
				ldm	r4, {r0, r1, r2, r3}
				bl	PROMPT(PLT)
		.LVL667:
  970             PROMPT("Move?")
				ldr	r0, .L451+56
		.LPIC169:
				add	r0, pc
				add	r0, r0, #1088
				bl	_imp_readint(PLT)
		.LVL668:
		.LBB656:
		.LBB657:
				bl	_imp_skipsymbol(PLT)
		.LVL669:
		.LBE657:
		.LBE656:
		.LBB658:
				mov	r2, r7
				add	r1, fp, #988
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL670:
				mov	r2, r7
				mov	r1, r5
				add	r4, sp, #2624
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL671:
		.LBE658:
				mov	r2, r10
				add	r1, r4, #16
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL672:
				ldm	r4, {r0, r1, r2, r3}
				bl	PROMPT(PLT)
		.LVL673:
				b	.L416
		.L444:
		.LBB659:
		.LBB660:
				bl	_imp_skipsymbol(PLT)
		.LVL674:
		.LBE660:
		.LBE659:
		.LBB661:
		.LBB662:
				bl	_imp_skipsymbol(PLT)
		.LVL675:
				b	.L419
		.L445:
		.LBE662:
		.LBE661:
		.LBB663:
  971             ->AGAIN
  972          %FINISH
  973          %IF NEXTSYMBOL='X' %START
				cmp	r0, #88
				beq	.L444
		.L419:
		.LBB682:
		.LBB683:
				bl	_imp_nextsymbol(PLT)
		.LVL698:
		.LBE683:
		.LBE682:
  974             SKIPSYMBOL; SKIPSYMBOL; !PPROFILE
  975          %FINISH
  976          %IF NEXTSYMBOL = 'P' %START
				cmp	r0, #80
				beq	.L445
		.L420:
		.LBB684:
		.LBB685:
				bl	_imp_nextsymbol(PLT)
		.LVL699:
		.LBE685:
		.LBE684:
  977             PROMPT("NEW PLY?");  SKIPSYMBOL
				ldr	r2, .L451+44
		.LPIC171:
				add	r2, pc
				str	r2, [sp, #252]
		.LBE650:
		.LBB651:
				addw	r3, r2, #1500
				str	r3, [sp, #256]
				b	.L409
		.L449:
		.LBE652:
		.LBE649:
		.LBE648:
				mov	r10, #256
				mov	r2, r10
				ldr	r1, [sp, #256]
				add	r5, sp, #1600
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL676:
				mov	r2, r10
				mov	r1, r5
				add	r4, sp, #2368
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL677:
		.LBE663:
				mov	fp, #240
				mov	r2, fp
				add	r1, r4, #16
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL678:
				ldm	r4, {r0, r1, r2, r3}
				bl	PROMPT(PLT)
		.LVL679:
		.LBB664:
		.LBB665:
				bl	_imp_skipsymbol(PLT)
		.LVL680:
		.LBE665:
		.LBE664:
  978             READ(PDEPTH); SKIPSYMBOL
				ldr	r3, [sp, #248]
				addw	r0, r3, #1092
				bl	_imp_readint(PLT)
		.LVL681:
		.LBB666:
		.LBB667:
				bl	_imp_skipsymbol(PLT)
		.LVL682:
		.LBE667:
		.LBE666:
		.LBB668:
				ldr	r3, .L451+96
		.LPIC172:
				add	r3, pc
				str	r3, [sp, #248]
				b	.L416
		.L452:
				.align	2
		.L451:
				.word	_GLOBAL_OFFSET_TABLE_-(.LPIC147+4)
				.word	__stack_chk_guard(GOT)
				.word	.LANCHOR1-(.LPIC148+4)
				.word	.LANCHOR4-(.LPIC149+4)
				.word	_imp_InStream(GOT)
				.word	_imp_InFile(GOT)
				.word	_imp_infile(GOT)
				.word	.LANCHOR4-(.LPIC154+4)
				.word	.LANCHOR0-(.LPIC155+4)
				.word	.LANCHOR4-(.LPIC158+4)
				.word	.LANCHOR0-(.LPIC161+4)
				.word	.LANCHOR4-(.LPIC171+4)
				.word	.LANCHOR4-(.LPIC174+4)
				.word	.LANCHOR4-(.LPIC168+4)
				.word	.LANCHOR0-(.LPIC169+4)
				.word	.LANCHOR0-(.LPIC175+4)
				.word	_imp_OutStream(GOT)
				.word	_imp_OutFile(GOT)
				.word	_imp_outfile(GOT)
				.word	.LANCHOR1-(.LPIC176+4)
				.word	.LANCHOR2-(.LPIC178+4)
				.word	.LANCHOR0-(.LPIC164+4)
				.word	.LANCHOR1-(.LPIC166+4)
				.word	.LANCHOR1-(.LPIC167+4)
				.word	.LANCHOR0-(.LPIC172+4)
		.LBE723:
		.LBE729:
		.LFE185:
				.section	.rodata
				.align	2
				.set	.LANCHOR1,. + 0
				.set	.LANCHOR4,. + 4344
		.LC23:
				.word	25000
				.word	0
				.word	-25000
		.LC6:
				.byte	19
				.ascii	"test-new/chess9.imp\000"
				.space	235
		.LC28:
				.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
		.LC0:
				.word	256
				.word	64
				.word	32
				.word	8
				.word	2
				.word	1
		.LC29:
				.byte	40
				.ascii	"PROGRAM ERROR, NEXT MOVE MAY BE STUPID!\012\000"
				.space	214
		.LC18:
				.byte	36
				.ascii	"  !---!---!---!---!---!---!---!---!\012\000"
				.space	218
		.LC13:
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
				.byte	1
				.byte	0
		.LC14:
				.byte	107
				.byte	113
				.byte	114
				.byte	98
				.byte	110
				.byte	112
				.byte	32
				.byte	80
				.byte	78
				.byte	66
				.byte	82
				.byte	81
				.byte	75
				.space	3
		.LC15:
				.byte	2
				.ascii	"! \000"
				.space	252
		.LC16:
				.byte	2
				.ascii	"!\012\000"
				.space	252
		.LC17:
				.byte	34
				.ascii	"    A   B   C   D   E   F   G   H\012\000"
				.space	220
		.LC19:
				.byte	6
				.ascii	"I Win\012\000"
				.space	248
		.LC20:
				.byte	8
				.ascii	"YOU WIN\012\000"
				.space	246
		.LC21:
				.byte	1
				.ascii	"(\000"
				.space	253
		.LC22:
				.byte	7
				.ascii	" Secs)\012\000"
				.space	247
		.LC24:
				.byte	21
				.ascii	"OUT OF FREE CELLS!!!\012\000"
				.space	233
		__PRETTY_FUNCTION__.9629:
				.ascii	"_imp_SELECTOUTPUT\000"
				.space	2
		.LC26:
				.byte	6
				.ascii	"SCORE:\000"
				.space	248
		.LC25:
				.byte	3
				.ascii	"---\000"
				.space	251
		KCASCH.10370:
				.word	1
				.word	0
				.word	8
		PINX.10070:
				.space	128
		PINY.10071:
				.space	128
		.LC27:
				.word	25
				.word	0
				.word	-25
		.LC30:
				.word	8
				.word	8
				.word	3
				.word	3
				.word	3
				.word	3
				.word	3
				.word	3
				.word	3
				.word	3
				.word	3
		.LC31:
				.byte	7
				.ascii	" FORCED\000"
				.space	247
		.LC32:
				.byte	28
				.ascii	"FORCED TO INCREASE PLYWIDTH\012\000"
				.space	226
		.LC1:
				.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
		.LC2:
				.byte	2
				.byte	3
				.byte	6
				.byte	7
				.byte	58
				.byte	59
				.byte	62
				.byte	63
				.byte	1
				.byte	8
				.byte	57
				.byte	64
		.LC3:
				.word	-2
				.word	-3
				.word	-3
				.word	-2
				.word	2
				.word	3
				.word	3
				.word	2
				.word	-4
				.word	-4
				.word	4
				.word	4
		.LC4:
				.word	-7
				.word	-7
				.word	-7
				.word	-7
				.word	7
				.word	7
				.word	7
				.word	7
				.word	-10
				.word	-10
				.word	10
				.word	10
		.LC5:
				.word	-24000
				.word	0
				.word	24000
		__PRETTY_FUNCTION__.9625:
				.ascii	"_imp_SELECTINPUT\000"
				.space	3
		.LC7:
				.byte	92
				.ascii	"Version 2.5\012HOW DIFFICULT A GAME DO YOU WANT?\012"
				.ascii	"      2 = NORMAL STRENGTH, 3 = MORE DIFFICULT\012\000"
				.space	162
		.LC8:
				.byte	4
				.ascii	"2-4?\000"
				.space	250
		.LC9:
				.byte	5
				.ascii	"Move?\000"
				.space	249
		.LC10:
				.byte	4
				.ascii	"MON?\000"
				.space	250
		.LC11:
				.byte	8
				.ascii	"NEW PLY?\000"
				.space	246
		.LC12:
				.byte	33
				.ascii	"INVALID MOVE - MY FORMAT IS D2D4\012\000"
				.space	221
				.data
				.align	2
				.set	.LANCHOR2,. + 0
		NO.10101:
				.word	1
				.bss
				.align	3
				.set	.LANCHOR0,. + 0
		BRD.10042:
				.space	1024
		KCAS.10091:
				.space	12
				.space	4
		TIME.10098:
				.space	8
		TIME2.10099:
				.space	8
		PINPT.10074:
				.space	4
		SCOREA.10102:
				.space	4
		XDEPTH.10103:
				.space	4
		PX.10075:
				.space	4
		PY.10076:
				.space	4
		LASTCHK.10108:
				.space	4
		KMOVE.10090:
				.space	3
				.space	1
		JUSTONEPLY.10106:
				.space	4
		MON.10105:
				.space	4
		PDEPTH.10104:
				.space	4
				.section	.data.rel.ro.local,"aw",%progbits
				.align	2
				.set	.LANCHOR3,. + 0
		MOVE.10374:
				.word	.L271
				.word	.L274
				.word	.L278
				.word	.L289
				.word	.L279
				.word	.L297
				.section	.rodata.str1.4,"aMS",%progbits,1
				.align	2
		.LC33:
				.ascii	"Illegal cycle I = 1, 1, WIDTH\000"
				.space	2
		.LC34:
				.ascii	"Illegal cycle I = 1, 1, PINPT\000"
				.space	2
		.LC35:
				.ascii	"test-new/chess9.imp\000"
		.LC36:
				.ascii	"->MOVE(%d) out of bounds at %s line %d\000"
				.space	1
		.LC37:
				.ascii	"Illegal cycle J = 1, 1, I - 1\000"
		.Letext0:
  979             PROMPT("Move?")
				mov	r2, r10
				ldr	r3, [sp, #252]
				add	r1, r3, #988
				mov	r0, r5
				bl	memcpy(PLT)
		.LVL683:
				sub	r7, r4, #256
				mov	r2, r10
				mov	r1, r5
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL684:
		.LBE668:
				mov	r2, fp
				sub	r1, r4, #240
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL685:
				ldm	r7, {r0, r1, r2, r3}
				bl	PROMPT(PLT)
		.LVL686:
				b	.L416
		.L446:
  980             -> AGAIN
  981          %FINISH
  982          %IF NEXTSYMBOL='O' %START;     ! CASTLE
				cmp	r0, #79
				beq	.L446
		.L421:
  983             X = 0
				add	r4, sp, #320
				str	r9, [sp, #284]
		.LBB669:
		.LBB670:
				bl	_imp_skipsymbol(PLT)
		.LVL687:
		.LBE670:
		.LBE669:
		.LBB671:
		.LBB672:
				sub	r0, r4, #40
				bl	_imp_readsymbol(PLT)
		.LVL688:
		.LBE672:
		.LBE671:
  984             SKIPSYMBOL; READSYMBOL(I)
  985             %IF I # '-' %THEN -> NO
				ldr	r3, [r4, #-40]
				cmp	r3, #45
				beq	.L442
		.L422:
		.L429:
		.LBB673:
				add	r4, sp, #1856
				add	r7, sp, #1600
				mov	r5, #256
				mov	r2, r5
				ldr	r1, [sp, #244]
				mov	r0, r7
				bl	memcpy(PLT)
		.LVL689:
				mov	r2, r5
				mov	r1, r7
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL690:
				mov	r2, r5
				mov	r1, r4
				add	r4, sp, #1344
				mov	r0, r4
				bl	memcpy(PLT)
		.LVL691:
		.LBE673:
		.LBB674:
		.LBB675:
				movs	r2, #240
				add	r1, r4, #16
				mov	r0, sp
				bl	memcpy(PLT)
		.LVL692:
				ldm	r4, {r0, r1, r2, r3}
				bl	_imp_printstring(PLT)
		.LVL693:
		.LBE675:
		.LBE674:
		.LBB676:
		.LBB677:
				add	r4, sp, #280
		.L430:
		.L440:
		.L431:
		.LVL694:
				mov	r0, r4
				bl	_imp_readsymbol(PLT)
		.LVL695:
		.LBE677:
		.LBE676:
  986             READSYMBOL(I); -> NO %IF I#'O'
  987             %IF NEXTSYMBOL = '-' %START; ! QUEEN SIDE
				ldr	r3, [r4, #-40]
				cmp	r3, #79
				bne	.L429
		.L424:
		.LBB697:
		.LBB698:
				bl	_imp_nextsymbol(PLT)
		.LVL714:
		.LBE698:
		.LBE697:
				cmp	r0, #45
				beq	.L448
		.L425:
  988                X = 1; SKIPSYMBOL; SKIPSYMBOL
				movs	r2, #1
				str	r2, [sp, #284]
		.LBB699:
		.LBB700:
				bl	_imp_skipsymbol(PLT)
		.LVL715:
		.LBE700:
		.LBE699:
		.LBB701:
		.LBB702:
				bl	_imp_skipsymbol(PLT)
		.LVL716:
				b	.L425
		.L447:
		.LBE702:
		.LBE701:
		.LBB703:
		.LBB704:
				bl	_imp_skipsymbol(PLT)
		.LVL717:
		.LBE704:
		.LBE703:
		.LBB705:
		.LBB706:
				add	r4, sp, #320
				add	r0, sp, #300
		.LVL718:
				bl	_imp_readsymbol(PLT)
		.LVL719:
		.LBE706:
		.LBE705:
		.LBB707:
		.LBB708:
				bl	_imp_skipsymbol(PLT)
		.LVL720:
		.LBE708:
		.LBE707:
  989             %FINISH
  990             LM_SPEC = 6+X
				ldr	r3, [sp, #284]
				adds	r3, r3, #6
				str	r3, [r6, #8]
  991             LM_FR = 5<<4+1
				movs	r3, #81
				strb	r3, [r6, #4]
  992             LM_TO = 5<<4+1
				strb	r3, [r6, #5]
				b	.L426
		.L448:
  993          %FINISHELSESTART
  994             I = READM(X, Y);  I=READM(X0, Y0)
				add	r4, sp, #320
				add	r1, sp, #288
				add	r0, sp, #284
				bl	READM.10666(PLT)
		.LVL700:
				str	r0, [r4, #-40]
  995             %IF NEXTSYMBOL='(' %START
				sub	r1, r4, #24
				sub	r0, r4, #28
				bl	READM.10666(PLT)
		.LVL701:
				str	r0, [r4, #-40]
		.LBB686:
		.LBB687:
				bl	_imp_nextsymbol(PLT)
		.LVL702:
		.LBE687:
		.LBE686:
				cmp	r0, #40
				beq	.L447
		.L427:
		.LBB688:
  996                SKIPSYMBOL;  READSYMBOL(K); SKIPSYMBOL
  997                LM_SPEC = (K-'0')*(-1)
				ldr	r3, [r4, #-20]
				rsb	r3, r3, #48
				str	r3, [r6, #8]
				b	.L427
		.LVL721:
		.L432:
		.LBB709:
		.LBB694:
  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 ")
				ldr	r3, .L451+48
		.LPIC174:
				add	r3, pc
				addw	r3, r3, #1756
				str	r3, [sp, #244]
		.LBE651:
		.LBB652:
				ldr	r3, [sp, #284]
		.LVL703:
 1004                %CYCLE
 1005                   READSYMBOL(I)
				subs	r2, r3, #1
				cmp	r2, #7
				bhi	.L429
		.LBE688:
		.LBB689:
 1006                   %EXIT %IF I=NL
				ldr	r3, [r4]
				cmp	r3, #10
				bne	.L440
		.L416:
 1007                %REPEAT
 1008                ->AGAIN
 1009             %FINISH
 1010
				ldr	r2, [sp, #292]
		.LVL704:
 1011             !!
 1012             LM_FR = X<<4+Y
				subs	r1, r2, #1
				cmp	r1, #7
				bhi	.L429
		.LBE689:
		.LBB690:
				add	r3, r1, r3, lsl #4
		.LVL707:
				strb	r3, [r6, #4]
 1013             LM_TO = X0<<4+Y0
				add	r2, r0, r2, lsl #4
		.LVL708:
				strb	r2, [r6, #5]
		.LVL709:
		.L426:
 1014          %FINISH
 1015          MMOVE_L == LM
				str	r6, [r6, #16]
		.LVL710:
		.LBB692:
		.LBB693:
 1016          %IF CHECK YOUR MOVE(LIST) = 0 %THEN ->NO
 1017          SKIPSYMBOL
				ldr	r1, [sp, #288]
		.LVL705:
 1018          RELEASE CHAIN(LIST)
				mov	ip, r4
				ldr	r0, [sp, #260]
				bl	RELEASECHAIN.10182(PLT)
		.LVL727:
		.LBE722:
		.LBE724:
 1019       %END
				subs	r0, r1, #1
				cmp	r0, #7
				bhi	.L429
		.LBE690:
		.LBB691:
 1020 %ENDOFPROGRAM
?CHK unused
?BRDOLD unused
?PLYWIDTH unused
  879 Statements compiled
				ldr	r0, [sp, #296]
		.LVL706:
				subs	r4, r0, #1
				cmp	r4, #7
				bhi	.L429
		.L428:
		.LBE691:
