summaryrefslogtreecommitdiff
path: root/src/see.s
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2016-06-01 18:58:58 -0700
committerScott Gasch <[email protected]>2016-06-01 18:58:58 -0700
commit3fd43cd5fcb22bb65bf2a92a25d95d801b11c9e0 (patch)
tree9b6443235d16ba17f094a1a1c7ae53d2bcb9267b /src/see.s
Initial checkin for typhoon chess engine.
Diffstat (limited to 'src/see.s')
-rw-r--r--src/see.s1538
1 files changed, 1538 insertions, 0 deletions
diff --git a/src/see.s b/src/see.s
new file mode 100644
index 0000000..72c63f5
--- /dev/null
+++ b/src/see.s
@@ -0,0 +1,1538 @@
+# GNU C version 4.0.1 (Apple Inc. build 5465) (i686-apple-darwin9)
+# compiled by GNU C version 4.0.1 (Apple Inc. build 5465).
+# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+# options passed: -D__DYNAMIC__ -fPIC -mmacosx-version-min=10.5.1 -m64
+# -mtune=generic -march=apple -auxbase -fverbose-asm
+# options enabled: -fPIC -falign-jumps-max-skip -falign-loops
+# -falign-loops-max-skip -fargument-alias -fasynchronous-unwind-tables
+# -fbranch-count-reg -fcommon -feliminate-unused-debug-types -ffunction-cse
+# -fgcse-lm -fident -fivopts -fkeep-static-consts -fleading-underscore
+# -flocal-alloc -floop-optimize2 -fpeephole -freg-struct-return
+# -fsched-interblock -fsched-spec -fsched-stalled-insns-dep
+# -fsplit-ivs-in-unroller -ftree-loop-im -ftree-loop-ivcanon
+# -ftree-loop-optimize -funwind-tables -fverbose-asm
+# -fzero-initialized-in-bss -m80387 -mhard-float -mno-soft-float -mieee-fp
+# -mfp-ret-in-387 -maccumulate-outgoing-args -mmmx -msse -msse2 -msse3
+# -m128bit-long-double -m64 -mtune=generic64 -march=apple
+# -mmacosx-version-min=10.5.1
+
+# Compiler executable checksum: 0a7d9e41e786877ed5cbeb90e063cdab
+
+ .data
+ .align 2
+_iSeeDelta.5028:
+ .long -17
+ .long 15
+ .align 2
+_pPawn.5027:
+ .long 2
+ .long 3
+ .text
+.globl _SlowGetAttacks
+_SlowGetAttacks:
+LFB33:
+ pushq %rbp #
+LCFI0:
+ movq %rsp, %rbp #,
+LCFI1:
+ movq %rdi, -40(%rbp) # pList, pList
+ movq %rsi, -48(%rbp) # pos, pos
+ movl %edx, -52(%rbp) # cSquare, cSquare
+ movl %ecx, -56(%rbp) # uSide, uSide
+ movq -40(%rbp), %rax # pList, pList
+ movl $0, (%rax) #, <variable>.uCount
+ movl -56(%rbp), %eax # uSide, uSide.5
+ mov %eax, %eax # uSide.5, uSide.5
+ leaq 0(,%rax,4), %rdx #, tmp125
+ leaq _iSeeDelta.5028(%rip), %rax #, tmp126
+ movl (%rdx,%rax), %eax # iSeeDelta, D.5038
+ addl -52(%rbp), %eax # cSquare, tmp127
+ movl %eax, -16(%rbp) # tmp127, c
+ movl -16(%rbp), %eax # c, D.5040
+ andl $136, %eax #, D.5040
+ testl %eax, %eax # D.5040
+ jne L2 #,
+ movl -16(%rbp), %eax # c, c.6
+ movq -48(%rbp), %rdx # pos, pos
+ mov %eax, %eax # c.6, c.6
+ movl (%rdx,%rax,8), %eax # <variable>.D.2182.pPiece, <variable>.D.2182.pPiece
+ movl %eax, -20(%rbp) # <variable>.D.2182.pPiece, p
+ movl -56(%rbp), %eax # uSide, uSide.7
+ mov %eax, %eax # uSide.7, uSide.7
+ leaq 0(,%rax,4), %rdx #, tmp132
+ leaq _pPawn.5027(%rip), %rax #, tmp133
+ movl (%rdx,%rax), %eax # pPawn, D.5043
+ cmpl -20(%rbp), %eax # p, D.5043
+ jne L2 #,
+ movq -40(%rbp), %rdx # pList, pList
+ movl -20(%rbp), %eax # p, p
+ movl %eax, 4(%rdx) # p, <variable>.pPiece
+ movq -40(%rbp), %rdx # pList, pList
+ movl -16(%rbp), %eax # c, c
+ movl %eax, 8(%rdx) # c, <variable>.cLoc
+ movq -40(%rbp), %rax # pList, pList
+ movl $100, 12(%rax) #, <variable>.uVal
+ movq -40(%rbp), %rax # pList, pList
+ movl $1, (%rax) #, <variable>.uCount
+L2:
+ leaq -16(%rbp), %rax #, tmp258
+ addl $2, (%rax) #, c
+ movl -16(%rbp), %eax # c, D.5044
+ andl $136, %eax #, D.5044
+ testl %eax, %eax # D.5044
+ jne L5 #,
+ movl -16(%rbp), %eax # c, c.8
+ movq -48(%rbp), %rdx # pos, pos
+ mov %eax, %eax # c.8, c.8
+ movl (%rdx,%rax,8), %eax # <variable>.D.2182.pPiece, <variable>.D.2182.pPiece
+ movl %eax, -20(%rbp) # <variable>.D.2182.pPiece, p
+ movl -56(%rbp), %eax # uSide, uSide.9
+ mov %eax, %eax # uSide.9, uSide.9
+ leaq 0(,%rax,4), %rdx #, tmp144
+ leaq _pPawn.5027(%rip), %rax #, tmp145
+ movl (%rdx,%rax), %eax # pPawn, D.5047
+ cmpl -20(%rbp), %eax # p, D.5047
+ jne L5 #,
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5048
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # D.5048, D.5048
+ movq %rdx, %rax # D.5048, D.5048
+ addq %rax, %rax # D.5048
+ addq %rdx, %rax # D.5048, D.5048
+ salq $2, %rax #, tmp150
+ addq %rcx, %rax # pList, tmp151
+ leaq 4(%rax), %rdx #, tmp152
+ movl -20(%rbp), %eax # p, p
+ movl %eax, (%rdx) # p, <variable>.pPiece
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5049
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # D.5049, D.5049
+ movq %rdx, %rax # D.5049, D.5049
+ addq %rax, %rax # D.5049
+ addq %rdx, %rax # D.5049, D.5049
+ salq $2, %rax #, tmp158
+ addq %rcx, %rax # pList, tmp159
+ leaq 8(%rax), %rdx #, tmp160
+ movl -16(%rbp), %eax # c, c
+ movl %eax, (%rdx) # c, <variable>.cLoc
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5050
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # D.5050, D.5050
+ movq %rdx, %rax # D.5050, D.5050
+ addq %rax, %rax # D.5050
+ addq %rdx, %rax # D.5050, D.5050
+ salq $2, %rax #, tmp166
+ addq %rcx, %rax # pList, tmp167
+ addq $12, %rax #, tmp168
+ movl $100, (%rax) #, <variable>.uVal
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5051
+ leal 1(%rax), %edx #, D.5052
+ movq -40(%rbp), %rax # pList, pList
+ movl %edx, (%rax) # D.5052, <variable>.uCount
+L5:
+ movl -56(%rbp), %eax # uSide, uSide.10
+ movq -48(%rbp), %rdx # pos, pos
+ mov %eax, %eax # uSide.10, uSide.10
+ salq $5, %rax #, tmp173
+ addq %rdx, %rax # pos, tmp174
+ addq $1280, %rax #, tmp175
+ movl (%rax), %eax # <variable>.uNonPawnCount, D.5054
+ decl %eax #
+ movl %eax, -60(%rbp) #, x
+ jmp L8 #
+L9:
+ movl -56(%rbp), %eax # uSide, uSide.11
+ movl -60(%rbp), %edx # x, x.12
+ movq -48(%rbp), %rcx # pos, pos
+ mov %eax, %eax # uSide.11, uSide.11
+ mov %edx, %edx # x.12, x.12
+ salq $4, %rax #, tmp179
+ addq %rdx, %rax # x.12, tmp180
+ movl 1144(%rcx,%rax,4), %eax # <variable>.cNonPawns, tmp181
+ movl %eax, -16(%rbp) # tmp181, c
+ movl -16(%rbp), %eax # c, c.13
+ movq -48(%rbp), %rdx # pos, pos
+ mov %eax, %eax # c.13, c.13
+ movl (%rdx,%rax,8), %eax # <variable>.D.2182.pPiece, <variable>.D.2182.pPiece
+ movl %eax, -20(%rbp) # <variable>.D.2182.pPiece, p
+ movl -16(%rbp), %edx # c, c.14
+ movl -52(%rbp), %eax # cSquare, cSquare.15
+ movl %edx, %ecx # c.14,
+ subl %eax, %ecx # cSquare.15,
+ movl %ecx, %eax #, tmp185
+ movl %eax, -12(%rbp) # tmp185, iIndex
+ movl -12(%rbp), %eax # iIndex, iIndex
+ cltq
+ salq $2, %rax #, D.5061
+ movq %rax, %rdx # D.5061, D.5062
+ movq _g_pVectorDelta@GOTPCREL(%rip), %rax #, tmp187
+ movq (%rax), %rax # g_pVectorDelta, g_pVectorDelta.16
+ addq %rax, %rdx # g_pVectorDelta.16, D.5064
+ movl -20(%rbp), %eax # p, D.5065
+ andl $1, %eax #, D.5065
+ mov %eax, %eax # D.5065, D.5065
+ movzbl (%rdx,%rax), %eax # <variable>.iVector, D.5066
+ movzbl %al, %edx # D.5066, D.5067
+ movl -20(%rbp), %eax # p, p
+ shrl %eax # D.5068
+ movl %eax, %ecx # D.5068, D.5069
+ movl %edx, %eax # D.5067, D.5070
+ sarl %cl, %eax # D.5069, D.5070
+ xorl $1, %eax #, D.5072
+ andl $1, %eax #, D.5074
+ testb %al, %al # D.5075
+ jne L10 #,
+ movl -20(%rbp), %eax # p, D.5076
+ andl $6, %eax #, D.5076
+ cmpl $4, %eax #, D.5076
+ jne L12 #,
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5077
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # D.5077, D.5077
+ movq %rdx, %rax # D.5077, D.5077
+ addq %rax, %rax # D.5077
+ addq %rdx, %rax # D.5077, D.5077
+ salq $2, %rax #, tmp194
+ addq %rcx, %rax # pList, tmp195
+ leaq 4(%rax), %rdx #, tmp196
+ movl -20(%rbp), %eax # p, p
+ movl %eax, (%rdx) # p, <variable>.pPiece
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5078
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # D.5078, D.5078
+ movq %rdx, %rax # D.5078, D.5078
+ addq %rax, %rax # D.5078
+ addq %rdx, %rax # D.5078, D.5078
+ salq $2, %rax #, tmp202
+ addq %rcx, %rax # pList, tmp203
+ leaq 8(%rax), %rdx #, tmp204
+ movl -16(%rbp), %eax # c, c
+ movl %eax, (%rdx) # c, <variable>.cLoc
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %edi # <variable>.uCount, D.5079
+ movl -20(%rbp), %eax # p, p
+ shrl %eax # D.5080
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp208
+ mov %eax, %edx # D.5080, D.5080
+ movq %rdx, %rax # D.5080, D.5080
+ addq %rax, %rax # D.5080
+ addq %rdx, %rax # D.5080, D.5080
+ salq $3, %rax #, tmp211
+ movl (%rax,%rcx), %ecx # <variable>.uValue, D.5081
+ movq -40(%rbp), %rsi # pList, pList
+ mov %edi, %edx # D.5079, D.5079
+ movq %rdx, %rax # D.5079, D.5079
+ addq %rax, %rax # D.5079
+ addq %rdx, %rax # D.5079, D.5079
+ salq $2, %rax #, tmp215
+ addq %rsi, %rax # pList, tmp216
+ addq $12, %rax #, tmp217
+ movl %ecx, (%rax) # D.5081, <variable>.uVal
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5082
+ leal 1(%rax), %edx #, D.5083
+ movq -40(%rbp), %rax # pList, pList
+ movl %edx, (%rax) # D.5083, <variable>.uCount
+ jmp L10 #
+L12:
+ movl -12(%rbp), %eax # iIndex, iIndex
+ cltq
+ salq $2, %rax #, D.5085
+ movq %rax, %rdx # D.5085, D.5086
+ movq _g_pVectorDelta@GOTPCREL(%rip), %rax #, tmp221
+ movq (%rax), %rax # g_pVectorDelta, g_pVectorDelta.17
+ leaq (%rdx,%rax), %rax #, D.5088
+ movzbl 3(%rax), %eax # <variable>.iNegDelta, D.5089
+ movsbl %al,%eax # D.5089, D.5089
+ movl %eax, -4(%rbp) # D.5089, iDelta
+ movl -4(%rbp), %eax # iDelta, iDelta.18
+ addl -52(%rbp), %eax # cSquare, tmp223
+ movl %eax, -8(%rbp) # tmp223, cBlockIndex
+ jmp L14 #
+L15:
+ movl -8(%rbp), %eax # cBlockIndex, cBlockIndex.19
+ movq -48(%rbp), %rdx # pos, pos
+ mov %eax, %eax # cBlockIndex.19, cBlockIndex.19
+ movl (%rdx,%rax,8), %eax # <variable>.D.2182.pPiece, D.5092
+ testl %eax, %eax # D.5092
+ jne L10 #,
+ movl -4(%rbp), %edx # iDelta, iDelta.20
+ leaq -8(%rbp), %rax #, tmp260
+ addl %edx, (%rax) # iDelta.20, cBlockIndex
+L14:
+ movl -8(%rbp), %eax # cBlockIndex, cBlockIndex
+ cmpl -16(%rbp), %eax # c, cBlockIndex
+ jne L15 #,
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5094
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # D.5094, D.5094
+ movq %rdx, %rax # D.5094, D.5094
+ addq %rax, %rax # D.5094
+ addq %rdx, %rax # D.5094, D.5094
+ salq $2, %rax #, tmp231
+ addq %rcx, %rax # pList, tmp232
+ leaq 4(%rax), %rdx #, tmp233
+ movl -20(%rbp), %eax # p, p
+ movl %eax, (%rdx) # p, <variable>.pPiece
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5095
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # D.5095, D.5095
+ movq %rdx, %rax # D.5095, D.5095
+ addq %rax, %rax # D.5095
+ addq %rdx, %rax # D.5095, D.5095
+ salq $2, %rax #, tmp239
+ addq %rcx, %rax # pList, tmp240
+ leaq 8(%rax), %rdx #, tmp241
+ movl -16(%rbp), %eax # c, c
+ movl %eax, (%rdx) # c, <variable>.cLoc
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %edi # <variable>.uCount, D.5096
+ movl -20(%rbp), %eax # p, p
+ shrl %eax # D.5097
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp245
+ mov %eax, %edx # D.5097, D.5097
+ movq %rdx, %rax # D.5097, D.5097
+ addq %rax, %rax # D.5097
+ addq %rdx, %rax # D.5097, D.5097
+ salq $3, %rax #, tmp248
+ movl (%rax,%rcx), %ecx # <variable>.uValue, D.5098
+ movq -40(%rbp), %rsi # pList, pList
+ mov %edi, %edx # D.5096, D.5096
+ movq %rdx, %rax # D.5096, D.5096
+ addq %rax, %rax # D.5096
+ addq %rdx, %rax # D.5096, D.5096
+ salq $2, %rax #, tmp252
+ addq %rsi, %rax # pList, tmp253
+ addq $12, %rax #, tmp254
+ movl %ecx, (%rax) # D.5098, <variable>.uVal
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5099
+ leal 1(%rax), %edx #, D.5100
+ movq -40(%rbp), %rax # pList, pList
+ movl %edx, (%rax) # D.5100, <variable>.uCount
+L10:
+ decl -60(%rbp) # x
+L8:
+ cmpl $-1, -60(%rbp) #, x
+ jne L9 #,
+ leave
+ ret
+LFE33:
+__PushDown:
+LFB34:
+ pushq %rbp #
+LCFI2:
+ movq %rsp, %rbp #,
+LCFI3:
+ subq $48, %rsp #,
+LCFI4:
+ movq %rdi, -40(%rbp) # p, p
+ movl %esi, -44(%rbp) # u, u
+ movl -44(%rbp), %eax # u, u
+ addl %eax, %eax # D.5121
+ incl %eax # tmp74
+ movl %eax, -12(%rbp) # tmp74, l
+ movq -40(%rbp), %rax # p, p
+ movl (%rax), %eax # <variable>.uCount, D.5122
+ cmpl -12(%rbp), %eax # l, D.5122
+ jbe L29 #,
+ movl -12(%rbp), %eax # l, tmp76
+ incl %eax # tmp76
+ movl %eax, -8(%rbp) # tmp76, r
+ movl -44(%rbp), %eax # u, u
+ movl %eax, -4(%rbp) # u, uSmallest
+ movl -12(%rbp), %eax # l, l.21
+ movq -40(%rbp), %rcx # p, p
+ mov %eax, %edx # l.21, l.21
+ movq %rdx, %rax # l.21, l.21
+ addq %rax, %rax # l.21
+ addq %rdx, %rax # l.21, l.21
+ salq $2, %rax #, tmp81
+ addq %rcx, %rax # p, tmp82
+ addq $12, %rax #, tmp83
+ movl (%rax), %esi # <variable>.uVal, D.5124
+ movl -44(%rbp), %eax # u, u.22
+ movq -40(%rbp), %rcx # p, p
+ mov %eax, %edx # u.22, u.22
+ movq %rdx, %rax # u.22, u.22
+ addq %rax, %rax # u.22
+ addq %rdx, %rax # u.22, u.22
+ salq $2, %rax #, tmp87
+ addq %rcx, %rax # p, tmp88
+ addq $12, %rax #, tmp89
+ movl (%rax), %eax # <variable>.uVal, D.5126
+ cmpl %eax, %esi # D.5126, D.5124
+ jae L23 #,
+ movl -12(%rbp), %eax # l, l
+ movl %eax, -4(%rbp) # l, uSmallest
+L23:
+ movq -40(%rbp), %rax # p, p
+ movl (%rax), %eax # <variable>.uCount, D.5127
+ cmpl -8(%rbp), %eax # r, D.5127
+ jbe L25 #,
+ movl -8(%rbp), %eax # r, r.23
+ movq -40(%rbp), %rcx # p, p
+ mov %eax, %edx # r.23, r.23
+ movq %rdx, %rax # r.23, r.23
+ addq %rax, %rax # r.23
+ addq %rdx, %rax # r.23, r.23
+ salq $2, %rax #, tmp95
+ addq %rcx, %rax # p, tmp96
+ addq $12, %rax #, tmp97
+ movl (%rax), %esi # <variable>.uVal, D.5129
+ movl -4(%rbp), %eax # uSmallest, uSmallest.24
+ movq -40(%rbp), %rcx # p, p
+ mov %eax, %edx # uSmallest.24, uSmallest.24
+ movq %rdx, %rax # uSmallest.24, uSmallest.24
+ addq %rax, %rax # uSmallest.24
+ addq %rdx, %rax # uSmallest.24, uSmallest.24
+ salq $2, %rax #, tmp101
+ addq %rcx, %rax # p, tmp102
+ addq $12, %rax #, tmp103
+ movl (%rax), %eax # <variable>.uVal, D.5131
+ cmpl %eax, %esi # D.5131, D.5129
+ jae L25 #,
+ movl -8(%rbp), %eax # r, r
+ movl %eax, -4(%rbp) # r, uSmallest
+L25:
+ movl -4(%rbp), %eax # uSmallest, uSmallest
+ cmpl -44(%rbp), %eax # u, uSmallest
+ je L29 #,
+ movl -4(%rbp), %eax # uSmallest, uSmallest.25
+ movq -40(%rbp), %rcx # p, p
+ mov %eax, %edx # uSmallest.25, uSmallest.25
+ movq %rdx, %rax # uSmallest.25, uSmallest.25
+ addq %rax, %rax # uSmallest.25
+ addq %rdx, %rax # uSmallest.25, uSmallest.25
+ leaq 0(,%rax,4), %rdx #, tmp109
+ movq 4(%rdx,%rcx), %rax # <variable>.data, tmp110
+ movq %rax, -32(%rbp) # tmp110, temp
+ movl 12(%rdx,%rcx), %eax # <variable>.data, tmp111
+ movl %eax, -24(%rbp) # tmp111, temp
+ movl -4(%rbp), %eax # uSmallest, uSmallest.26
+ movl -44(%rbp), %ecx # u, u.27
+ movq -40(%rbp), %rsi # p, p
+ mov %eax, %edx # uSmallest.26, uSmallest.26
+ movq %rdx, %rax # uSmallest.26, uSmallest.26
+ addq %rax, %rax # uSmallest.26
+ addq %rdx, %rax # uSmallest.26, uSmallest.26
+ leaq 0(,%rax,4), %rdi #, tmp115
+ movq -40(%rbp), %r8 # p, p
+ mov %ecx, %edx # u.27, u.27
+ movq %rdx, %rax # u.27, u.27
+ addq %rax, %rax # u.27
+ addq %rdx, %rax # u.27, u.27
+ leaq 0(,%rax,4), %rdx #, tmp119
+ movq 4(%rdx,%r8), %rax # <variable>.data, tmp120
+ movq %rax, 4(%rdi,%rsi) # tmp120, <variable>.data
+ movl 12(%rdx,%r8), %eax # <variable>.data, tmp121
+ movl %eax, 12(%rdi,%rsi) # tmp121, <variable>.data
+ movl -44(%rbp), %eax # u, u.28
+ movq -40(%rbp), %rcx # p, p
+ mov %eax, %edx # u.28, u.28
+ movq %rdx, %rax # u.28, u.28
+ addq %rax, %rax # u.28
+ addq %rdx, %rax # u.28, u.28
+ leaq 0(,%rax,4), %rdx #, tmp125
+ movq -32(%rbp), %rax # temp, temp
+ movq %rax, 4(%rdx,%rcx) # temp, <variable>.data
+ movl -24(%rbp), %eax # temp, temp
+ movl %eax, 12(%rdx,%rcx) # temp, <variable>.data
+ movl -4(%rbp), %esi # uSmallest, uSmallest
+ movq -40(%rbp), %rdi # p, p
+ call __PushDown #
+L29:
+ leave
+ ret
+LFE34:
+__BuildHeap:
+LFB35:
+ pushq %rbp #
+LCFI5:
+ movq %rsp, %rbp #,
+LCFI6:
+ subq $32, %rsp #,
+LCFI7:
+ movq %rdi, -24(%rbp) # p, p
+ movq -24(%rbp), %rax # p, p
+ movl (%rax), %eax # <variable>.uCount, D.5154
+ shrl %eax # D.5155
+ decl %eax # D.5156
+ movl %eax, -8(%rbp) # D.5156, iStart
+ movl -8(%rbp), %eax # iStart, iStart
+ movl %eax, -4(%rbp) # iStart, i
+ jmp L31 #
+L32:
+ movl -4(%rbp), %esi # i, i.29
+ movq -24(%rbp), %rdi # p, p
+ call __PushDown #
+ leaq -4(%rbp), %rax #, tmp66
+ decl (%rax) # i
+L31:
+ cmpl $-1, -4(%rbp) #, i
+ jg L32 #,
+ leave
+ ret
+LFE35:
+__BubbleUp:
+LFB36:
+ pushq %rbp #
+LCFI8:
+ movq %rsp, %rbp #,
+LCFI9:
+ subq $32, %rsp #,
+LCFI10:
+ movq %rdi, -24(%rbp) # p, p
+ movl %esi, -28(%rbp) # u, u
+ cmpl $0, -28(%rbp) #, u
+ je L39 #,
+ movl -28(%rbp), %eax # u, D.5164
+ decl %eax # D.5164
+ shrl %eax # tmp67
+ movl %eax, -4(%rbp) # tmp67, uParent
+ movl -4(%rbp), %eax # uParent, uParent.30
+ movq -24(%rbp), %rcx # p, p
+ mov %eax, %edx # uParent.30, uParent.30
+ movq %rdx, %rax # uParent.30, uParent.30
+ addq %rax, %rax # uParent.30
+ addq %rdx, %rax # uParent.30, uParent.30
+ salq $2, %rax #, tmp71
+ addq %rcx, %rax # p, tmp72
+ addq $12, %rax #, tmp73
+ movl (%rax), %esi # <variable>.uVal, D.5166
+ movl -28(%rbp), %eax # u, u.31
+ movq -24(%rbp), %rcx # p, p
+ mov %eax, %edx # u.31, u.31
+ movq %rdx, %rax # u.31, u.31
+ addq %rax, %rax # u.31
+ addq %rdx, %rax # u.31, u.31
+ salq $2, %rax #, tmp77
+ addq %rcx, %rax # p, tmp78
+ addq $12, %rax #, tmp79
+ movl (%rax), %eax # <variable>.uVal, D.5168
+ cmpl %eax, %esi # D.5168, D.5166
+ jbe L39 #,
+ movl -4(%rbp), %eax # uParent, uParent.32
+ movq -24(%rbp), %rcx # p, p
+ mov %eax, %edx # uParent.32, uParent.32
+ movq %rdx, %rax # uParent.32, uParent.32
+ addq %rax, %rax # uParent.32
+ addq %rdx, %rax # uParent.32, uParent.32
+ leaq 0(,%rax,4), %rdx #, tmp83
+ movq 4(%rdx,%rcx), %rax # <variable>.data, tmp84
+ movq %rax, -16(%rbp) # tmp84, temp
+ movl 12(%rdx,%rcx), %eax # <variable>.data, tmp85
+ movl %eax, -8(%rbp) # tmp85, temp
+ movl -4(%rbp), %eax # uParent, uParent.33
+ movl -28(%rbp), %ecx # u, u.34
+ movq -24(%rbp), %rsi # p, p
+ mov %eax, %edx # uParent.33, uParent.33
+ movq %rdx, %rax # uParent.33, uParent.33
+ addq %rax, %rax # uParent.33
+ addq %rdx, %rax # uParent.33, uParent.33
+ leaq 0(,%rax,4), %rdi #, tmp89
+ movq -24(%rbp), %r8 # p, p
+ mov %ecx, %edx # u.34, u.34
+ movq %rdx, %rax # u.34, u.34
+ addq %rax, %rax # u.34
+ addq %rdx, %rax # u.34, u.34
+ leaq 0(,%rax,4), %rdx #, tmp93
+ movq 4(%rdx,%r8), %rax # <variable>.data, tmp94
+ movq %rax, 4(%rdi,%rsi) # tmp94, <variable>.data
+ movl 12(%rdx,%r8), %eax # <variable>.data, tmp95
+ movl %eax, 12(%rdi,%rsi) # tmp95, <variable>.data
+ movl -28(%rbp), %eax # u, u.35
+ movq -24(%rbp), %rcx # p, p
+ mov %eax, %edx # u.35, u.35
+ movq %rdx, %rax # u.35, u.35
+ addq %rax, %rax # u.35
+ addq %rdx, %rax # u.35, u.35
+ leaq 0(,%rax,4), %rdx #, tmp99
+ movq -16(%rbp), %rax # temp, temp
+ movq %rax, 4(%rdx,%rcx) # temp, <variable>.data
+ movl -8(%rbp), %eax # temp, temp
+ movl %eax, 12(%rdx,%rcx) # temp, <variable>.data
+ movl -4(%rbp), %esi # uParent, uParent
+ movq -24(%rbp), %rdi # p, p
+ call __BubbleUp #
+L39:
+ leave
+ ret
+LFE36:
+__ClearPieceByLocation:
+LFB38:
+ pushq %rbp #
+LCFI11:
+ movq %rsp, %rbp #,
+LCFI12:
+ subq $32, %rsp #,
+LCFI13:
+ movq %rdi, -24(%rbp) # pList, pList
+ movl %esi, -28(%rbp) # cLoc, cLoc
+ movl $0, -4(%rbp) #, x
+ jmp L41 #
+L42:
+ movl -4(%rbp), %eax # x, x.37
+ movq -24(%rbp), %rcx # pList, pList
+ mov %eax, %edx # x.37, x.37
+ movq %rdx, %rax # x.37, x.37
+ addq %rax, %rax # x.37
+ addq %rdx, %rax # x.37, x.37
+ salq $2, %rax #, tmp64
+ addq %rcx, %rax # pList, tmp65
+ addq $8, %rax #, tmp66
+ movl (%rax), %eax # <variable>.cLoc, D.5199
+ cmpl -28(%rbp), %eax # cLoc, D.5199
+ jne L43 #,
+ movl -4(%rbp), %esi # x, x
+ movq -24(%rbp), %rdi # pList, pList
+ call __RemoveItem #
+ jmp L46 #
+L43:
+ leaq -4(%rbp), %rax #, tmp71
+ incl (%rax) # x
+L41:
+ movq -24(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5200
+ cmpl -4(%rbp), %eax # x, D.5200
+ ja L42 #,
+L46:
+ leave
+ ret
+LFE38:
+__RemoveItem:
+LFB37:
+ pushq %rbp #
+LCFI14:
+ movq %rsp, %rbp #,
+LCFI15:
+ subq $16, %rsp #,
+LCFI16:
+ movq %rdi, -8(%rbp) # pList, pList
+ movl %esi, -12(%rbp) # x, x
+ movq -8(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5181
+ decl %eax # D.5182
+ cmpl -12(%rbp), %eax # x, D.5182
+ je L48 #,
+ movl -12(%rbp), %edx # x, x.36
+ movq -8(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5184
+ leal -1(%rax), %ecx #, D.5185
+ movq -8(%rbp), %rsi # pList, pList
+ mov %edx, %edx # x.36, x.36
+ movq %rdx, %rax # x.36, x.36
+ addq %rax, %rax # x.36
+ addq %rdx, %rax # x.36, x.36
+ leaq 0(,%rax,4), %rdi #, tmp72
+ movq -8(%rbp), %r8 # pList, pList
+ mov %ecx, %edx # D.5185, D.5185
+ movq %rdx, %rax # D.5185, D.5185
+ addq %rax, %rax # D.5185
+ addq %rdx, %rax # D.5185, D.5185
+ leaq 0(,%rax,4), %rdx #, tmp76
+ movq 4(%rdx,%r8), %rax # <variable>.data, tmp77
+ movq %rax, 4(%rdi,%rsi) # tmp77, <variable>.data
+ movl 12(%rdx,%r8), %eax # <variable>.data, tmp78
+ movl %eax, 12(%rdi,%rsi) # tmp78, <variable>.data
+ movq -8(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5186
+ leal -1(%rax), %edx #, D.5187
+ movq -8(%rbp), %rax # pList, pList
+ movl %edx, (%rax) # D.5187, <variable>.uCount
+ movq -8(%rbp), %rdi # pList, pList
+ movl $0, %esi #,
+ call __PushDown #
+ jmp L51 #
+L48:
+ movq -8(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5188
+ leal -1(%rax), %edx #, D.5189
+ movq -8(%rbp), %rax # pList, pList
+ movl %edx, (%rax) # D.5189, <variable>.uCount
+L51:
+ leave
+ ret
+LFE37:
+__MinLegalPiece:
+LFB39:
+ pushq %rbp #
+LCFI17:
+ movq %rsp, %rbp #,
+LCFI18:
+ subq $80, %rsp #,
+LCFI19:
+ movq %rdi, -24(%rbp) # pos, pos
+ movl %esi, -28(%rbp) # uColor, uColor
+ movq %rdx, -40(%rbp) # pList, pList
+ movq %rcx, -48(%rbp) # pOther, pOther
+ movq %r8, -56(%rbp) # pc, pc
+ movl %r9d, -60(%rbp) # cIgnore, cIgnore
+ movl $0, -64(%rbp) #, x
+ jmp L53 #
+L54:
+ movl -64(%rbp), %eax # x, x.38
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # x.38, x.38
+ movq %rdx, %rax # x.38, x.38
+ addq %rax, %rax # x.38
+ addq %rdx, %rax # x.38, x.38
+ salq $2, %rax #, tmp76
+ addq %rcx, %rax # pList, tmp77
+ addq $4, %rax #, tmp78
+ movl (%rax), %eax # <variable>.pPiece, <variable>.pPiece
+ movl %eax, -8(%rbp) # <variable>.pPiece, p
+ movl -8(%rbp), %eax # p, D.5223
+ andl $14, %eax #, D.5223
+ cmpl $12, %eax #, D.5223
+ jne L55 #,
+ movq -48(%rbp), %rax # pOther, pOther
+ movl (%rax), %eax # <variable>.uCount, D.5224
+ testl %eax, %eax # D.5224
+ jne L57 #,
+ movq -40(%rbp), %rax # pList, pList
+ movl 8(%rax), %edx # <variable>.cLoc, D.5225
+ movq -56(%rbp), %rax # pc, pc
+ movl %edx, (%rax) # D.5225,* pc
+ movq -40(%rbp), %rax # pList, pList
+ movl $0, (%rax) #, <variable>.uCount
+ movl -8(%rbp), %eax # p,
+ movl %eax, -68(%rbp) #, D.5226
+ jmp L59 #
+L55:
+ movl -28(%rbp), %eax # uColor, uColor.39
+ movq -24(%rbp), %rdx # pos, pos
+ mov %eax, %eax # uColor.39, uColor.39
+ salq $6, %rax #, tmp86
+ addq %rdx, %rax # pos, tmp87
+ addq $1136, %rax #, tmp88
+ movl 8(%rax), %eax # <variable>.cNonPawns, tmp89
+ movl %eax, -12(%rbp) # tmp89, cKing
+ movl -64(%rbp), %eax # x, x.40
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # x.40, x.40
+ movq %rdx, %rax # x.40, x.40
+ addq %rax, %rax # x.40
+ addq %rdx, %rax # x.40, x.40
+ salq $2, %rax #, tmp93
+ addq %rcx, %rax # pList, tmp94
+ addq $8, %rax #, tmp95
+ movl (%rax), %esi # <variable>.cLoc, D.5229
+ movl -12(%rbp), %edx # cKing, cKing
+ movq -24(%rbp), %rdi # pos, pos
+ call _ExposesCheck #
+ movl %eax, -4(%rbp) # D.5230, c
+ movl -4(%rbp), %eax # c, D.5233
+ andl $136, %eax #, D.5233
+ testl %eax, %eax # D.5233
+ jne L60 #,
+ movl -4(%rbp), %eax # c, c
+ cmpl -60(%rbp), %eax # cIgnore, c
+ jne L57 #,
+L60:
+ movl -64(%rbp), %eax # x, x.41
+ movq -40(%rbp), %rcx # pList, pList
+ mov %eax, %edx # x.41, x.41
+ movq %rdx, %rax # x.41, x.41
+ addq %rax, %rax # x.41
+ addq %rdx, %rax # x.41, x.41
+ salq $2, %rax #, tmp102
+ addq %rcx, %rax # pList, tmp103
+ addq $8, %rax #, tmp104
+ movl (%rax), %edx # <variable>.cLoc, D.5235
+ movq -56(%rbp), %rax # pc, pc
+ movl %edx, (%rax) # D.5235,* pc
+ movq -40(%rbp), %rdi # pList, pList
+ movl -64(%rbp), %esi # x, x
+ call __RemoveItem #
+ movl -8(%rbp), %eax # p,
+ movl %eax, -68(%rbp) #, D.5226
+ jmp L59 #
+L57:
+ incl -64(%rbp) # x
+L53:
+ movq -40(%rbp), %rax # pList, pList
+ movl (%rax), %eax # <variable>.uCount, D.5236
+ cmpl -64(%rbp), %eax # x, D.5236
+ ja L54 #,
+ movl $0, -68(%rbp) #, D.5226
+L59:
+ movl -68(%rbp), %eax # D.5226, <result>
+ leave
+ ret
+LFE39:
+__AddXRays:
+LFB40:
+ pushq %rbp #
+LCFI20:
+ movq %rsp, %rbp #,
+LCFI21:
+ subq $64, %rsp #,
+LCFI22:
+ movq %rdi, -24(%rbp) # pos, pos
+ movl %esi, -28(%rbp) # iAttackerColor, iAttackerColor
+ movl %edx, -32(%rbp) # cTarget, cTarget
+ movl %ecx, -36(%rbp) # cObstacle, cObstacle
+ movq %r8, -48(%rbp) # pAttacks, pAttacks
+ movq %r9, -56(%rbp) # pDefends, pDefends
+ movl -32(%rbp), %edx # cTarget, cTarget.42
+ movl -36(%rbp), %eax # cObstacle, cObstacle.43
+ movl %edx, %ecx # cTarget.42,
+ subl %eax, %ecx # cObstacle.43,
+ movl %ecx, %eax #, tmp118
+ movl %eax, -4(%rbp) # tmp118, iIndex
+ movl -4(%rbp), %eax # iIndex, iIndex
+ cltq
+ salq $2, %rax #, D.5262
+ movq %rax, %rdx # D.5262, D.5263
+ movq _g_pVectorDelta@GOTPCREL(%rip), %rax #, tmp120
+ movq (%rax), %rax # g_pVectorDelta, g_pVectorDelta.44
+ leaq (%rdx,%rax), %rax #, D.5265
+ movzbl (%rax), %eax # <variable>.iVector, D.5266
+ movzbl %al, %eax # D.5266, D.5267
+ shrl $5, %eax #, D.5268
+ xorl $1, %eax #, D.5269
+ andl $1, %eax #, D.5271
+ testb %al, %al # D.5272
+ jne L74 #,
+ movl -4(%rbp), %eax # iIndex, iIndex
+ cltq
+ salq $2, %rax #, D.5274
+ movq %rax, %rdx # D.5274, D.5275
+ movq _g_pVectorDelta@GOTPCREL(%rip), %rax #, tmp122
+ movq (%rax), %rax # g_pVectorDelta, g_pVectorDelta.45
+ leaq (%rdx,%rax), %rax #, D.5277
+ movzbl 2(%rax), %eax # <variable>.iDelta, D.5278
+ movsbl %al,%eax # D.5278, D.5278
+ movl %eax, -16(%rbp) # D.5278, iDelta
+ movl -16(%rbp), %eax # iDelta, iDelta.46
+ addl -36(%rbp), %eax # cObstacle, tmp124
+ movl %eax, -12(%rbp) # tmp124, cIndex
+ jmp L67 #
+L68:
+ movl -12(%rbp), %eax # cIndex, cIndex.47
+ movq -24(%rbp), %rdx # pos, pos
+ mov %eax, %eax # cIndex.47, cIndex.47
+ movl (%rdx,%rax,8), %eax # <variable>.D.2182.pPiece, <variable>.D.2182.pPiece
+ movl %eax, -8(%rbp) # <variable>.D.2182.pPiece, xPiece
+ cmpl $0, -8(%rbp) #, xPiece
+ je L69 #,
+ movl -12(%rbp), %edx # cIndex, cIndex.48
+ movl -32(%rbp), %eax # cTarget, cTarget.49
+ movl %edx, %ecx # cIndex.48,
+ subl %eax, %ecx # cTarget.49,
+ movl %ecx, %eax #, D.5283
+ cltq
+ salq $2, %rax #, D.5285
+ movq %rax, %rdx # D.5285, D.5286
+ movq _g_pVectorDelta@GOTPCREL(%rip), %rax #, tmp128
+ movq (%rax), %rax # g_pVectorDelta, g_pVectorDelta.50
+ addq %rax, %rdx # g_pVectorDelta.50, D.5288
+ movl -8(%rbp), %eax # xPiece, D.5289
+ andl $1, %eax #, D.5289
+ mov %eax, %eax # D.5289, D.5289
+ movzbl (%rdx,%rax), %eax # <variable>.iVector, D.5290
+ movzbl %al, %edx # D.5290, D.5291
+ movl -8(%rbp), %eax # xPiece, xPiece
+ shrl %eax # D.5292
+ movl %eax, %ecx # D.5292, D.5293
+ movl %edx, %eax # D.5291, D.5294
+ sarl %cl, %eax # D.5293, D.5294
+ andl $1, %eax #, D.5295
+ testb %al, %al # D.5296
+ je L74 #,
+ movl -8(%rbp), %edx # xPiece, D.5297
+ andl $1, %edx #, D.5297
+ movl -28(%rbp), %eax # iAttackerColor, iAttackerColor.51
+ cmpl %eax, %edx # iAttackerColor.51, D.5297
+ jne L72 #,
+ movq -48(%rbp), %rax # pAttacks, pAttacks
+ movl (%rax), %eax # <variable>.uCount, D.5299
+ movq -48(%rbp), %rcx # pAttacks, pAttacks
+ mov %eax, %edx # D.5299, D.5299
+ movq %rdx, %rax # D.5299, D.5299
+ addq %rax, %rax # D.5299
+ addq %rdx, %rax # D.5299, D.5299
+ salq $2, %rax #, tmp135
+ addq %rcx, %rax # pAttacks, tmp136
+ leaq 4(%rax), %rdx #, tmp137
+ movl -8(%rbp), %eax # xPiece, xPiece
+ movl %eax, (%rdx) # xPiece, <variable>.pPiece
+ movq -48(%rbp), %rax # pAttacks, pAttacks
+ movl (%rax), %eax # <variable>.uCount, D.5300
+ movq -48(%rbp), %rcx # pAttacks, pAttacks
+ mov %eax, %edx # D.5300, D.5300
+ movq %rdx, %rax # D.5300, D.5300
+ addq %rax, %rax # D.5300
+ addq %rdx, %rax # D.5300, D.5300
+ salq $2, %rax #, tmp143
+ addq %rcx, %rax # pAttacks, tmp144
+ leaq 8(%rax), %rdx #, tmp145
+ movl -12(%rbp), %eax # cIndex, cIndex
+ movl %eax, (%rdx) # cIndex, <variable>.cLoc
+ movq -48(%rbp), %rax # pAttacks, pAttacks
+ movl (%rax), %edi # <variable>.uCount, D.5301
+ movl -8(%rbp), %eax # xPiece, xPiece
+ shrl %eax # D.5302
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp149
+ mov %eax, %edx # D.5302, D.5302
+ movq %rdx, %rax # D.5302, D.5302
+ addq %rax, %rax # D.5302
+ addq %rdx, %rax # D.5302, D.5302
+ salq $3, %rax #, tmp152
+ movl (%rax,%rcx), %ecx # <variable>.uValue, D.5303
+ movq -48(%rbp), %rsi # pAttacks, pAttacks
+ mov %edi, %edx # D.5301, D.5301
+ movq %rdx, %rax # D.5301, D.5301
+ addq %rax, %rax # D.5301
+ addq %rdx, %rax # D.5301, D.5301
+ salq $2, %rax #, tmp156
+ addq %rsi, %rax # pAttacks, tmp157
+ addq $12, %rax #, tmp158
+ movl %ecx, (%rax) # D.5303, <variable>.uVal
+ movq -48(%rbp), %rax # pAttacks, pAttacks
+ movl (%rax), %eax # <variable>.uCount, D.5304
+ leal 1(%rax), %edx #, D.5305
+ movq -48(%rbp), %rax # pAttacks, pAttacks
+ movl %edx, (%rax) # D.5305, <variable>.uCount
+ movq -48(%rbp), %rax # pAttacks, pAttacks
+ movl (%rax), %eax # <variable>.uCount, D.5306
+ leal -1(%rax), %esi #, D.5307
+ movq -48(%rbp), %rdi # pAttacks, pAttacks
+ call __BubbleUp #
+ jmp L74 #
+L72:
+ movq -56(%rbp), %rax # pDefends, pDefends
+ movl (%rax), %eax # <variable>.uCount, D.5308
+ movq -56(%rbp), %rcx # pDefends, pDefends
+ mov %eax, %edx # D.5308, D.5308
+ movq %rdx, %rax # D.5308, D.5308
+ addq %rax, %rax # D.5308
+ addq %rdx, %rax # D.5308, D.5308
+ salq $2, %rax #, tmp167
+ addq %rcx, %rax # pDefends, tmp168
+ leaq 4(%rax), %rdx #, tmp169
+ movl -8(%rbp), %eax # xPiece, xPiece
+ movl %eax, (%rdx) # xPiece, <variable>.pPiece
+ movq -56(%rbp), %rax # pDefends, pDefends
+ movl (%rax), %eax # <variable>.uCount, D.5309
+ movq -56(%rbp), %rcx # pDefends, pDefends
+ mov %eax, %edx # D.5309, D.5309
+ movq %rdx, %rax # D.5309, D.5309
+ addq %rax, %rax # D.5309
+ addq %rdx, %rax # D.5309, D.5309
+ salq $2, %rax #, tmp175
+ addq %rcx, %rax # pDefends, tmp176
+ leaq 8(%rax), %rdx #, tmp177
+ movl -12(%rbp), %eax # cIndex, cIndex
+ movl %eax, (%rdx) # cIndex, <variable>.cLoc
+ movq -56(%rbp), %rax # pDefends, pDefends
+ movl (%rax), %edi # <variable>.uCount, D.5310
+ movl -8(%rbp), %eax # xPiece, xPiece
+ shrl %eax # D.5311
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp181
+ mov %eax, %edx # D.5311, D.5311
+ movq %rdx, %rax # D.5311, D.5311
+ addq %rax, %rax # D.5311
+ addq %rdx, %rax # D.5311, D.5311
+ salq $3, %rax #, tmp184
+ movl (%rax,%rcx), %ecx # <variable>.uValue, D.5312
+ movq -56(%rbp), %rsi # pDefends, pDefends
+ mov %edi, %edx # D.5310, D.5310
+ movq %rdx, %rax # D.5310, D.5310
+ addq %rax, %rax # D.5310
+ addq %rdx, %rax # D.5310, D.5310
+ salq $2, %rax #, tmp188
+ addq %rsi, %rax # pDefends, tmp189
+ addq $12, %rax #, tmp190
+ movl %ecx, (%rax) # D.5312, <variable>.uVal
+ movq -56(%rbp), %rax # pDefends, pDefends
+ movl (%rax), %eax # <variable>.uCount, D.5313
+ leal 1(%rax), %edx #, D.5314
+ movq -56(%rbp), %rax # pDefends, pDefends
+ movl %edx, (%rax) # D.5314, <variable>.uCount
+ movq -56(%rbp), %rax # pDefends, pDefends
+ movl (%rax), %eax # <variable>.uCount, D.5315
+ leal -1(%rax), %esi #, D.5316
+ movq -56(%rbp), %rdi # pDefends, pDefends
+ call __BubbleUp #
+ jmp L74 #
+L69:
+ movl -16(%rbp), %edx # iDelta, iDelta.52
+ leaq -12(%rbp), %rax #, tmp196
+ addl %edx, (%rax) # iDelta.52, cIndex
+L67:
+ movl -12(%rbp), %eax # cIndex, D.5318
+ andl $136, %eax #, D.5318
+ testl %eax, %eax # D.5318
+ je L68 #,
+L74:
+ leave
+ ret
+LFE40:
+ .data
+ .align 4
+__Table.5343:
+ .long 0
+ .long 0
+ .long 1
+ .long 1
+ .long 0
+ .long 0
+ .text
+.globl _SEE
+_SEE:
+LFB41:
+ pushq %rbp #
+LCFI23:
+ movq %rsp, %rbp #,
+LCFI24:
+ subq $592, %rsp #,
+LCFI25:
+ movq %rdi, -584(%rbp) # pos, pos
+ movl %esi, -588(%rbp) # mv, mv
+ movl -588(%rbp), %eax #, tmp194
+ shrl $16, %eax #, tmp193
+ andl $15, %eax #, D.5349
+ movzbl %al, %eax # D.5349, D.5350
+ andl $1, %eax #, tmp195
+ movl %eax, -20(%rbp) # tmp195, uWhoseTurn
+ movl -20(%rbp), %eax # uWhoseTurn, uWhoseTurn
+ movl %eax, -16(%rbp) # uWhoseTurn, uOrig
+ movl $1, -12(%rbp) #, iSign
+ movzbl -588(%rbp), %eax # mv.D.2138.cFrom, D.5351
+ movzbl %al, %eax # D.5351, D.5352
+ movl %eax, -564(%rbp) # D.5352, cFrom
+ movzbl -587(%rbp), %eax # mv.D.2138.cTo, D.5353
+ movzbl %al, %edx # D.5353, D.5354
+ mov -20(%rbp), %eax # uWhoseTurn, D.5355
+ imulq $196, %rax, %rax #, D.5355, D.5356
+ leaq -432(%rbp), %rdi #, D.5358
+ addq %rax, %rdi # D.5357, D.5358
+ movl -20(%rbp), %ecx # uWhoseTurn, uWhoseTurn
+ movq -584(%rbp), %rsi # pos, pos
+ call _GetAttacks #
+ movl -20(%rbp), %ecx # uWhoseTurn, D.5359
+ xorl $1, %ecx #, D.5359
+ movzbl -587(%rbp), %eax # mv.D.2138.cTo, D.5360
+ movzbl %al, %edx # D.5360, D.5361
+ movl -20(%rbp), %eax # uWhoseTurn, D.5362
+ xorl $1, %eax #, D.5362
+ mov %eax, %eax # D.5362, D.5363
+ imulq $196, %rax, %rax #, D.5363, D.5364
+ leaq -432(%rbp), %rdi #, D.5366
+ addq %rax, %rdi # D.5365, D.5366
+ movq -584(%rbp), %rsi # pos, pos
+ call _GetAttacks #
+ movl -20(%rbp), %eax # uWhoseTurn, D.5367
+ xorl $1, %eax #, D.5367
+ mov %eax, %eax # D.5367, D.5368
+ imulq $196, %rax, %rax #, D.5368, D.5369
+ leaq -432(%rbp), %rdi #, D.5371
+ addq %rax, %rdi # D.5370, D.5371
+ call __BuildHeap #
+ mov -20(%rbp), %eax # uWhoseTurn, D.5372
+ imulq $196, %rax, %rax #, D.5372, D.5373
+ leaq -432(%rbp), %rdi #, D.5375
+ addq %rax, %rdi # D.5374, D.5375
+ call __BuildHeap #
+ movl -588(%rbp), %eax #, tmp202
+ shrl $20, %eax #, tmp201
+ andl $15, %eax #, D.5376
+ movzbl %al, %eax # D.5376, D.5377
+ sarl %eax # D.5378
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp203
+ movslq %eax,%rdx # D.5378, D.5378
+ movq %rdx, %rax # D.5378, D.5378
+ addq %rax, %rax # D.5378
+ addq %rdx, %rax # D.5378, D.5378
+ salq $3, %rax #, tmp206
+ movl (%rax,%rcx), %esi # <variable>.uValue, D.5379
+ movl -588(%rbp), %eax #, tmp209
+ shrl $24, %eax #, tmp208
+ andl $15, %eax #, D.5380
+ movzbl %al, %eax # D.5380, D.5381
+ sarl %eax # D.5382
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp210
+ movslq %eax,%rdx # D.5382, D.5382
+ movq %rdx, %rax # D.5382, D.5382
+ addq %rax, %rax # D.5382
+ addq %rdx, %rax # D.5382, D.5382
+ salq $3, %rax #, tmp213
+ movl (%rax,%rcx), %eax # <variable>.uValue, D.5383
+ leal (%rsi,%rax), %eax #, D.5384
+ movl %eax, -560(%rbp) # D.5385, rgiList
+ movl -588(%rbp), %eax #, tmp216
+ shrl $16, %eax #, tmp215
+ andl $15, %eax #, D.5386
+ movzbl %al, %eax # D.5386, D.5387
+ sarl %eax # D.5388
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp217
+ movslq %eax,%rdx # D.5388, D.5388
+ movq %rdx, %rax # D.5388, D.5388
+ addq %rax, %rax # D.5388
+ addq %rdx, %rax # D.5388, D.5388
+ salq $3, %rax #, tmp220
+ movl (%rax,%rcx), %esi # <variable>.uValue, D.5389
+ movl -588(%rbp), %eax #, tmp223
+ shrl $24, %eax #, tmp222
+ andl $15, %eax #, D.5390
+ movzbl %al, %eax # D.5390, D.5391
+ sarl %eax # D.5392
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp224
+ movslq %eax,%rdx # D.5392, D.5392
+ movq %rdx, %rax # D.5392, D.5392
+ addq %rax, %rax # D.5392
+ addq %rdx, %rax # D.5392, D.5392
+ salq $3, %rax #, tmp227
+ movl (%rax,%rcx), %eax # <variable>.uValue, D.5393
+ leal (%rsi,%rax), %eax #, tmp228
+ movl %eax, -28(%rbp) # tmp228, uInPeril
+ movl $1, -24(%rbp) #, uListIndex
+ movzbl -588(%rbp), %eax # mv.D.2138.cFrom, D.5394
+ movzbl %al, %esi # D.5394, D.5395
+ mov -20(%rbp), %eax # uWhoseTurn, D.5396
+ imulq $196, %rax, %rax #, D.5396, D.5397
+ leaq -432(%rbp), %rdi #, D.5399
+ addq %rax, %rdi # D.5398, D.5399
+ call __ClearPieceByLocation #
+ movl -20(%rbp), %eax # uWhoseTurn, D.5400
+ xorl $1, %eax #, D.5400
+ mov %eax, %eax # D.5400, D.5401
+ imulq $196, %rax, %rax #, D.5401, D.5402
+ leaq -432(%rbp), %rcx #, D.5404
+ addq %rax, %rcx # D.5403, D.5404
+ mov -20(%rbp), %eax # uWhoseTurn, D.5405
+ imulq $196, %rax, %rax #, D.5405, D.5406
+ leaq -432(%rbp), %rdx #, D.5408
+ addq %rax, %rdx # D.5407, D.5408
+ movzbl -588(%rbp), %eax # mv.D.2138.cFrom, D.5409
+ movzbl %al, %esi # D.5409, D.5410
+ movzbl -587(%rbp), %eax # mv.D.2138.cTo, D.5411
+ movzbl %al, %eax # D.5411, D.5412
+ movl -20(%rbp), %edi # uWhoseTurn, uWhoseTurn.53
+ movq -584(%rbp), %r10 # pos, pos
+ movq %rcx, %r9 # D.5404, D.5404
+ movq %rdx, %r8 # D.5408, D.5408
+ movl %esi, %ecx # D.5410, D.5410
+ movl %eax, %edx # D.5412, D.5412
+ movl %edi, %esi # uWhoseTurn.53, uWhoseTurn.53
+ movq %r10, %rdi # pos, pos
+ call __AddXRays #
+ jmp L76 #
+L85:
+ movl -32(%rbp), %eax # pPiece, D.5425
+ andl $14, %eax #, D.5425
+ cmpl $2, %eax #, D.5425
+ sete %al #, tmp233
+ movzbl %al, %ecx # tmp233, D.5426
+ movzbl -587(%rbp), %eax # mv.D.2138.cTo, D.5427
+ movzbl %al, %eax # D.5427, D.5428
+ andl $240, %eax #, D.5429
+ cmpl $112, %eax #, D.5429
+ sete %dl #, D.5430
+ movzbl -587(%rbp), %eax # mv.D.2138.cTo, D.5431
+ movzbl %al, %eax # D.5431, D.5432
+ andl $240, %eax #, D.5433
+ testl %eax, %eax # D.5433
+ sete %al #, D.5434
+ orl %edx, %eax # D.5430, D.5435
+ movzbl %al, %eax # D.5435, D.5436
+ andl %ecx, %eax # D.5426, D.5437
+ movl %eax, -8(%rbp) # D.5437, uPromValue
+ movl -8(%rbp), %edx # uPromValue, uPromValue
+ movl %edx, %eax # uPromValue, uPromValue
+ sall $4, %eax #, tmp236
+ subl %edx, %eax # uPromValue, tmp236
+ movl %eax, %edx # tmp236, tmp237
+ sall $6, %edx #, tmp237
+ addl %edx, %eax # tmp237, tmp238
+ movl %eax, -8(%rbp) # tmp238, uPromValue
+ movl -24(%rbp), %esi # uListIndex, uListIndex.55
+ movl -24(%rbp), %eax # uListIndex, D.5439
+ decl %eax # D.5439
+ mov %eax, %eax # D.5439, D.5439
+ movl -560(%rbp,%rax,4), %eax # rgiList, D.5440
+ movl %eax, %ecx # D.5440, D.5441
+ movl -8(%rbp), %eax # uPromValue, uPromValue
+ movl -28(%rbp), %edx # uInPeril, D.5442
+ addl %eax, %edx # uPromValue, D.5442
+ movl -12(%rbp), %eax # iSign, iSign.56
+ imull %edx, %eax # D.5442, D.5444
+ leal (%rcx,%rax), %eax #, D.5445
+ movl %eax, %edx # D.5445, D.5446
+ mov %esi, %eax # uListIndex.55, uListIndex.55
+ movl %edx, -560(%rbp,%rax,4) # D.5446, rgiList
+ leaq -24(%rbp), %rax #, tmp274
+ incl (%rax) # uListIndex
+ movl -32(%rbp), %eax # pPiece, pPiece
+ shrl %eax # D.5447
+ movq _g_PieceData@GOTPCREL(%rip), %rcx #, tmp243
+ mov %eax, %edx # D.5447, D.5447
+ movq %rdx, %rax # D.5447, D.5447
+ addq %rax, %rax # D.5447
+ addq %rdx, %rax # D.5447, D.5447
+ salq $3, %rax #, tmp246
+ movl (%rax,%rcx), %eax # <variable>.uValue, D.5448
+ addl -8(%rbp), %eax # uPromValue, tmp247
+ movl %eax, -28(%rbp) # tmp247, uInPeril
+ movl -16(%rbp), %eax # uOrig, D.5449
+ xorl $1, %eax #, D.5449
+ mov %eax, %eax # D.5449, D.5450
+ imulq $196, %rax, %rax #, D.5450, D.5451
+ leaq -432(%rbp), %rcx #, D.5453
+ addq %rax, %rcx # D.5452, D.5453
+ mov -16(%rbp), %eax # uOrig, D.5454
+ imulq $196, %rax, %rax #, D.5454, D.5455
+ leaq -432(%rbp), %rdx #, D.5457
+ addq %rax, %rdx # D.5456, D.5457
+ movl -564(%rbp), %r10d # cFrom, cFrom.57
+ movzbl -587(%rbp), %eax # mv.D.2138.cTo, D.5459
+ movzbl %al, %esi # D.5459, D.5460
+ movl -588(%rbp), %eax #, tmp250
+ shrl $16, %eax #, tmp249
+ andl $15, %eax #, D.5461
+ movzbl %al, %eax # D.5461, D.5462
+ andl $1, %eax #, D.5463
+ movq -584(%rbp), %rdi # pos, pos
+ movq %rcx, %r9 # D.5453, D.5453
+ movq %rdx, %r8 # D.5457, D.5457
+ movl %r10d, %ecx # cFrom.57, cFrom.57
+ movl %esi, %edx # D.5460, D.5460
+ movl %eax, %esi # D.5463, D.5463
+ call __AddXRays #
+L76:
+ leaq -20(%rbp), %rax #, tmp270
+ xorl $1, (%rax) #, uWhoseTurn
+ leaq -12(%rbp), %rax #, tmp272
+ negl (%rax) # iSign
+ movl -564(%rbp), %r8d # cFrom, cFrom.54
+ movl -20(%rbp), %eax # uWhoseTurn, D.5415
+ xorl $1, %eax #, D.5415
+ mov %eax, %eax # D.5415, D.5416
+ imulq $196, %rax, %rax #, D.5416, D.5417
+ leaq -432(%rbp), %rcx #, D.5419
+ addq %rax, %rcx # D.5418, D.5419
+ mov -20(%rbp), %eax # uWhoseTurn, D.5420
+ imulq $196, %rax, %rax #, D.5420, D.5421
+ leaq -432(%rbp), %rdx #, D.5423
+ addq %rax, %rdx # D.5422, D.5423
+ leaq -564(%rbp), %rax #, tmp230
+ movl -20(%rbp), %esi # uWhoseTurn, uWhoseTurn
+ movq -584(%rbp), %rdi # pos, pos
+ movl %r8d, %r9d # cFrom.54, cFrom.54
+ movq %rax, %r8 # tmp230,
+ call __MinLegalPiece #
+ movl %eax, -32(%rbp) # D.5424, pPiece
+ cmpl $0, -32(%rbp) #, pPiece
+ jne L85 #,
+L77:
+ leaq -24(%rbp), %rax #, tmp276
+ decl (%rax) # uListIndex
+ jmp L79 #
+L80:
+ movl -24(%rbp), %eax # uListIndex, tmp252
+ andl $1, %eax #, tmp252
+ movl %eax, -4(%rbp) # tmp252, uVal
+ movl -24(%rbp), %eax # uListIndex, uListIndex.58
+ mov %eax, %eax # uListIndex.58, uListIndex.58
+ movl -560(%rbp,%rax,4), %edx # rgiList, D.5465
+ movl -24(%rbp), %eax # uListIndex, D.5466
+ decl %eax # D.5466
+ mov %eax, %eax # D.5466, D.5466
+ movl -560(%rbp,%rax,4), %eax # rgiList, D.5467
+ cmpl %eax, %edx # D.5467, D.5465
+ setg %al #, tmp255
+ movzbl %al, %ecx # tmp255, D.5468
+ movl -24(%rbp), %eax # uListIndex, uListIndex.59
+ mov %eax, %eax # uListIndex.59, uListIndex.59
+ movl -560(%rbp,%rax,4), %edx # rgiList, D.5470
+ movl -24(%rbp), %eax # uListIndex, D.5471
+ decl %eax # D.5471
+ mov %eax, %eax # D.5471, D.5471
+ movl -560(%rbp,%rax,4), %eax # rgiList, D.5472
+ cmpl %eax, %edx # D.5472, D.5470
+ setl %al #, tmp258
+ movzbl %al, %eax # tmp258, D.5473
+ movl %ecx, %edx # D.5468,
+ subl %eax, %edx # D.5473,
+ movl %edx, %eax #, D.5474
+ incl %eax # tmp259
+ movl %eax, -12(%rbp) # tmp259, iSign
+ movl -4(%rbp), %eax # uVal, uVal.60
+ movl -12(%rbp), %edx # iSign, iSign.61
+ mov %eax, %ecx # uVal.60, uVal.60
+ movslq %edx,%rdx # iSign.61, iSign.61
+ movq %rcx, %rax # uVal.60, uVal.60
+ addq %rax, %rax # uVal.60
+ addq %rcx, %rax # uVal.60, uVal.60
+ addq %rdx, %rax # iSign.61, tmp263
+ leaq 0(,%rax,4), %rdx #, tmp264
+ leaq __Table.5343(%rip), %rax #, tmp265
+ movl (%rdx,%rax), %eax # _Table, D.5477
+ cmpl $1, %eax #, D.5477
+ jne L81 #,
+ movl -24(%rbp), %ecx # uListIndex, D.5478
+ decl %ecx # D.5478
+ movl -24(%rbp), %eax # uListIndex, uListIndex.62
+ mov %eax, %eax # uListIndex.62, uListIndex.62
+ movl -560(%rbp,%rax,4), %edx # rgiList, D.5480
+ mov %ecx, %eax # D.5478, D.5478
+ movl %edx, -560(%rbp,%rax,4) # D.5480, rgiList
+L81:
+ leaq -24(%rbp), %rax #, tmp278
+ decl (%rax) # uListIndex
+L79:
+ cmpl $0, -24(%rbp) #, uListIndex
+ jne L80 #,
+ movl -560(%rbp), %eax # rgiList, D.5481
+ leave
+ ret
+LFE41:
+ .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
+EH_frame1:
+ .set L$set$0,LECIE1-LSCIE1
+ .long L$set$0
+LSCIE1:
+ .long 0x0
+ .byte 0x1
+ .ascii "zR\0"
+ .byte 0x1
+ .byte 0x78
+ .byte 0x10
+ .byte 0x1
+ .byte 0x10
+ .byte 0xc
+ .byte 0x7
+ .byte 0x8
+ .byte 0x90
+ .byte 0x1
+ .align 3
+LECIE1:
+ .globl _SlowGetAttacks.eh
+_SlowGetAttacks.eh:
+LSFDE1:
+ .set L$set$1,LEFDE1-LASFDE1
+ .long L$set$1
+LASFDE1:
+ .long LASFDE1-EH_frame1
+ .quad LFB33-.
+ .set L$set$2,LFE33-LFB33
+ .quad L$set$2
+ .byte 0x0
+ .byte 0x4
+ .set L$set$3,LCFI0-LFB33
+ .long L$set$3
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$4,LCFI1-LCFI0
+ .long L$set$4
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE1:
+__PushDown.eh:
+LSFDE3:
+ .set L$set$5,LEFDE3-LASFDE3
+ .long L$set$5
+LASFDE3:
+ .long LASFDE3-EH_frame1
+ .quad LFB34-.
+ .set L$set$6,LFE34-LFB34
+ .quad L$set$6
+ .byte 0x0
+ .byte 0x4
+ .set L$set$7,LCFI2-LFB34
+ .long L$set$7
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$8,LCFI3-LCFI2
+ .long L$set$8
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE3:
+__BuildHeap.eh:
+LSFDE5:
+ .set L$set$9,LEFDE5-LASFDE5
+ .long L$set$9
+LASFDE5:
+ .long LASFDE5-EH_frame1
+ .quad LFB35-.
+ .set L$set$10,LFE35-LFB35
+ .quad L$set$10
+ .byte 0x0
+ .byte 0x4
+ .set L$set$11,LCFI5-LFB35
+ .long L$set$11
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$12,LCFI6-LCFI5
+ .long L$set$12
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE5:
+__BubbleUp.eh:
+LSFDE7:
+ .set L$set$13,LEFDE7-LASFDE7
+ .long L$set$13
+LASFDE7:
+ .long LASFDE7-EH_frame1
+ .quad LFB36-.
+ .set L$set$14,LFE36-LFB36
+ .quad L$set$14
+ .byte 0x0
+ .byte 0x4
+ .set L$set$15,LCFI8-LFB36
+ .long L$set$15
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$16,LCFI9-LCFI8
+ .long L$set$16
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE7:
+__ClearPieceByLocation.eh:
+LSFDE9:
+ .set L$set$17,LEFDE9-LASFDE9
+ .long L$set$17
+LASFDE9:
+ .long LASFDE9-EH_frame1
+ .quad LFB38-.
+ .set L$set$18,LFE38-LFB38
+ .quad L$set$18
+ .byte 0x0
+ .byte 0x4
+ .set L$set$19,LCFI11-LFB38
+ .long L$set$19
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$20,LCFI12-LCFI11
+ .long L$set$20
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE9:
+__RemoveItem.eh:
+LSFDE11:
+ .set L$set$21,LEFDE11-LASFDE11
+ .long L$set$21
+LASFDE11:
+ .long LASFDE11-EH_frame1
+ .quad LFB37-.
+ .set L$set$22,LFE37-LFB37
+ .quad L$set$22
+ .byte 0x0
+ .byte 0x4
+ .set L$set$23,LCFI14-LFB37
+ .long L$set$23
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$24,LCFI15-LCFI14
+ .long L$set$24
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE11:
+__MinLegalPiece.eh:
+LSFDE13:
+ .set L$set$25,LEFDE13-LASFDE13
+ .long L$set$25
+LASFDE13:
+ .long LASFDE13-EH_frame1
+ .quad LFB39-.
+ .set L$set$26,LFE39-LFB39
+ .quad L$set$26
+ .byte 0x0
+ .byte 0x4
+ .set L$set$27,LCFI17-LFB39
+ .long L$set$27
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$28,LCFI18-LCFI17
+ .long L$set$28
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE13:
+__AddXRays.eh:
+LSFDE15:
+ .set L$set$29,LEFDE15-LASFDE15
+ .long L$set$29
+LASFDE15:
+ .long LASFDE15-EH_frame1
+ .quad LFB40-.
+ .set L$set$30,LFE40-LFB40
+ .quad L$set$30
+ .byte 0x0
+ .byte 0x4
+ .set L$set$31,LCFI20-LFB40
+ .long L$set$31
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$32,LCFI21-LCFI20
+ .long L$set$32
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE15:
+ .globl _SEE.eh
+_SEE.eh:
+LSFDE17:
+ .set L$set$33,LEFDE17-LASFDE17
+ .long L$set$33
+LASFDE17:
+ .long LASFDE17-EH_frame1
+ .quad LFB41-.
+ .set L$set$34,LFE41-LFB41
+ .quad L$set$34
+ .byte 0x0
+ .byte 0x4
+ .set L$set$35,LCFI23-LFB41
+ .long L$set$35
+ .byte 0xe
+ .byte 0x10
+ .byte 0x86
+ .byte 0x2
+ .byte 0x4
+ .set L$set$36,LCFI24-LCFI23
+ .long L$set$36
+ .byte 0xd
+ .byte 0x6
+ .align 3
+LEFDE17:
+ .subsections_via_symbols