// File: /workspace/github_cpp_makefile_star2_O3/ATOMIC-LICHESS[P]ATOMKRAFT/atomicdata.cpp
// Function: generate_squaresTouch()
void generate_squaresTouch() {
	for (int i = 0; i < 64; ++i) {
		for (int j = 0; j < 64; ++j) {
			if (explBB[i] & ((Bitboard)1 << j)) {
				squares_touch[i][j] = 1;
			} else {
				squares_touch[i][j] = 0;
			}
			square_dist_arr[i][j] = square_distance(Square(i), Square(j));
		}
	}
}

// Assembly:
subq $0x48, %rsp
xorl %eax, %eax
leaq 0x27ba7(%rip), %rcx     # 0x2f140
movdqa 0x27b2f(%rip), %xmm5    # 0x2f0d0
leaq 0x371e8(%rip), %rdx     # 0x3e790
leaq 0x381e1(%rip), %rsi     # 0x3f790
xorl %edi, %edi
movd %edi, %xmm0
movl %edi, %r8d
andl $0x7, %r8d
movq (%rcx,%rdi,8), %xmm1
pshufd $0x44, %xmm1, %xmm1     # xmm1 = xmm1[0,1,0,1]
movdqa %xmm1, -0x40(%rsp)
movd %r8d, %xmm1
pshufd $0x0, %xmm1, %xmm1      # xmm1 = xmm1[0,0,0,0]
movdqa %xmm1, -0x50(%rsp)
pshufd $0x0, %xmm0, %xmm0      # xmm0 = xmm0[0,0,0,0]
psrld $0x3, %xmm0
movdqa %xmm0, -0x60(%rsp)
xorl %r8d, %r8d
movdqa 0x27ac9(%rip), %xmm7    # 0x2f0c0
movdqa 0x27ab0(%rip), %xmm8    # 0x2f0b0
movdqa 0x27a97(%rip), %xmm10   # 0x2f0a0
movdqa 0x27a7e(%rip), %xmm14   # 0x2f090
movdqa 0x27a65(%rip), %xmm15   # 0x2f080
movdqa 0x27a4c(%rip), %xmm11   # 0x2f070
movaps 0x27a35(%rip), %xmm0    # 0x2f060
movaps %xmm0, -0x70(%rsp)
movaps 0x27a19(%rip), %xmm2    # 0x2f050
movaps %xmm2, -0x80(%rsp)
movdqa 0x279fc(%rip), %xmm4    # 0x2f040
movdqa 0x279e3(%rip), %xmm13   # 0x2f030
movdqa 0x279cb(%rip), %xmm1    # 0x2f020
movaps 0x279b4(%rip), %xmm3    # 0x2f010
movaps %xmm3, -0x20(%rsp)
movdqa %xmm15, -0x10(%rsp)
movdqa %xmm14, (%rsp)
movdqa %xmm10, 0x10(%rsp)
movdqa %xmm8, 0x20(%rsp)
movdqa %xmm7, 0x30(%rsp)
movdqa %xmm5, %xmm0
psllq %xmm7, %xmm5
pshufd $0xee, %xmm7, %xmm6     # xmm6 = xmm7[2,3,2,3]
movdqa %xmm0, %xmm7
psllq %xmm6, %xmm7
movsd %xmm5, %xmm7            # xmm7 = xmm5[0],xmm7[1]
movdqa %xmm0, %xmm5
psllq %xmm8, %xmm5
pshufd $0xee, %xmm8, %xmm6     # xmm6 = xmm8[2,3,2,3]
movdqa %xmm0, %xmm9
psllq %xmm6, %xmm9
movsd %xmm5, %xmm9            # xmm9 = xmm5[0],xmm9[1]
movdqa %xmm0, %xmm5
psllq %xmm10, %xmm5
pshufd $0xee, %xmm10, %xmm6    # xmm6 = xmm10[2,3,2,3]
movdqa %xmm0, %xmm12
psllq %xmm6, %xmm12
movsd %xmm5, %xmm12           # xmm12 = xmm5[0],xmm12[1]
movdqa %xmm0, %xmm5
psllq %xmm14, %xmm5
pshufd $0xee, %xmm14, %xmm6    # xmm6 = xmm14[2,3,2,3]
movdqa %xmm0, %xmm8
psllq %xmm6, %xmm8
movsd %xmm5, %xmm8            # xmm8 = xmm5[0],xmm8[1]
movdqa %xmm0, %xmm6
psllq %xmm15, %xmm6
pshufd $0xee, %xmm15, %xmm10   # xmm10 = xmm15[2,3,2,3]
movdqa %xmm0, %xmm5
psllq %xmm10, %xmm5
movsd %xmm6, %xmm5            # xmm5 = xmm6[0],xmm5[1]
movdqa %xmm0, %xmm6
movdqa %xmm11, -0x30(%rsp)
psllq %xmm11, %xmm6
pshufd $0xee, %xmm11, %xmm10   # xmm10 = xmm11[2,3,2,3]
movdqa 0x279d1(%rip), %xmm2    # 0x2f100
movdqa %xmm0, %xmm11
psllq %xmm10, %xmm11
movsd %xmm6, %xmm11           # xmm11 = xmm6[0],xmm11[1]
movdqa %xmm0, %xmm10
movdqa -0x70(%rsp), %xmm3
psllq %xmm3, %xmm10
pshufd $0xee, %xmm3, %xmm15    # xmm15 = xmm3[2,3,2,3]
movdqa %xmm0, %xmm6
psllq %xmm15, %xmm6
movsd %xmm10, %xmm6           # xmm6 = xmm10[0],xmm6[1]
movdqa %xmm0, %xmm15
movdqa -0x80(%rsp), %xmm3
psllq %xmm3, %xmm15
pshufd $0xee, %xmm3, %xmm14    # xmm14 = xmm3[2,3,2,3]
movdqa %xmm0, %xmm10
psllq %xmm14, %xmm10
movsd %xmm15, %xmm10          # xmm10 = xmm15[0],xmm10[1]
movapd -0x40(%rsp), %xmm14
andpd %xmm14, %xmm10
andpd %xmm14, %xmm6
andpd %xmm14, %xmm11
andpd %xmm14, %xmm5
andpd %xmm14, %xmm8
andpd %xmm14, %xmm12
andpd %xmm14, %xmm9
andpd %xmm14, %xmm7
xorpd %xmm14, %xmm14
pcmpeqd %xmm14, %xmm7
pshufd $0xb1, %xmm7, %xmm15    # xmm15 = xmm7[1,0,3,2]
pand %xmm7, %xmm15
pcmpeqd %xmm14, %xmm9
pshufd $0xb1, %xmm9, %xmm7     # xmm7 = xmm9[1,0,3,2]
pand %xmm9, %xmm7
packssdw %xmm7, %xmm15
movdqa %xmm1, %xmm3
movdqa %xmm13, %xmm1
movdqa %xmm4, %xmm13
pcmpeqd %xmm4, %xmm4
pxor %xmm4, %xmm15
pcmpeqd %xmm14, %xmm12
pshufd $0xb1, %xmm12, %xmm7    # xmm7 = xmm12[1,0,3,2]
pand %xmm12, %xmm7
pcmpeqd %xmm14, %xmm8
pshufd $0xb1, %xmm8, %xmm9     # xmm9 = xmm8[1,0,3,2]
pand %xmm8, %xmm9
packssdw %xmm9, %xmm7
pxor %xmm4, %xmm7
packssdw %xmm7, %xmm15
pcmpeqd %xmm14, %xmm5
pshufd $0xb1, %xmm5, %xmm7     # xmm7 = xmm5[1,0,3,2]
pand %xmm5, %xmm7
pcmpeqd %xmm14, %xmm11
pshufd $0xb1, %xmm11, %xmm5    # xmm5 = xmm11[1,0,3,2]
pand %xmm11, %xmm5
packssdw %xmm5, %xmm7
pxor %xmm4, %xmm7
pcmpeqd %xmm14, %xmm6
pshufd $0xb1, %xmm6, %xmm5     # xmm5 = xmm6[1,0,3,2]
pand %xmm6, %xmm5
pcmpeqd %xmm14, %xmm10
pshufd $0xb1, %xmm10, %xmm6    # xmm6 = xmm10[1,0,3,2]
pand %xmm10, %xmm6
packssdw %xmm6, %xmm5
pxor %xmm4, %xmm5
movdqa %xmm13, %xmm4
movdqa %xmm1, %xmm13
movdqa %xmm3, %xmm1
movdqa -0x20(%rsp), %xmm3
packssdw %xmm5, %xmm7
packsswb %xmm7, %xmm15
pand 0x27849(%rip), %xmm15   # 0x2f0e0
leaq (%rax,%r8), %r9
movdqa %xmm15, (%rdx,%r9)
movdqa %xmm4, %xmm8
movdqa 0x27842(%rip), %xmm5    # 0x2f0f0
pand %xmm5, %xmm8
movdqa %xmm13, %xmm6
pand %xmm5, %xmm6
movdqa %xmm1, %xmm7
pand %xmm5, %xmm7
movdqa %xmm3, %xmm9
pand %xmm5, %xmm9
movdqa -0x50(%rsp), %xmm10
movdqa %xmm10, %xmm5
psubd %xmm9, %xmm5
movdqa %xmm10, %xmm12
psubd %xmm7, %xmm12
movdqa %xmm10, %xmm7
psubd %xmm6, %xmm7
movdqa %xmm10, %xmm6
psubd %xmm8, %xmm6
movdqa %xmm6, %xmm8
psrad $0x1f, %xmm8
pxor %xmm8, %xmm6
psubd %xmm8, %xmm6
movdqa %xmm7, %xmm8
psrad $0x1f, %xmm8
pxor %xmm8, %xmm7
psubd %xmm8, %xmm7
movdqa %xmm12, %xmm8
psrad $0x1f, %xmm8
pxor %xmm8, %xmm12
psubd %xmm8, %xmm12
movdqa %xmm5, %xmm8
psrad $0x1f, %xmm8
pxor %xmm8, %xmm5
psubd %xmm8, %xmm5
movdqa %xmm4, %xmm10
psrld $0x3, %xmm10
movdqa %xmm13, %xmm8
psrld $0x3, %xmm8
movdqa %xmm1, %xmm9
psrld $0x3, %xmm9
movdqa %xmm3, %xmm11
psrld $0x3, %xmm11
movdqa -0x60(%rsp), %xmm14
movdqa %xmm14, %xmm15
psubd %xmm11, %xmm15
movdqa %xmm14, %xmm11
psubd %xmm9, %xmm11
movdqa %xmm14, %xmm9
psubd %xmm8, %xmm9
movdqa %xmm14, %xmm8
psubd %xmm10, %xmm8
movdqa %xmm8, %xmm10
psrad $0x1f, %xmm10
pxor %xmm10, %xmm8
psubd %xmm10, %xmm8
movdqa %xmm9, %xmm10
psrad $0x1f, %xmm10
pxor %xmm10, %xmm9
psubd %xmm10, %xmm9
movdqa %xmm11, %xmm10
psrad $0x1f, %xmm10
pxor %xmm10, %xmm11
psubd %xmm10, %xmm11
movdqa %xmm15, %xmm10
psrad $0x1f, %xmm10
pxor %xmm10, %xmm15
psubd %xmm10, %xmm15
movdqa %xmm15, %xmm14
pxor %xmm2, %xmm14
movdqa %xmm5, %xmm10
pxor %xmm2, %xmm10
pcmpgtd %xmm14, %xmm10
pand %xmm10, %xmm5
pandn %xmm15, %xmm10
movdqa -0x10(%rsp), %xmm15
por %xmm5, %xmm10
movdqa %xmm11, %xmm14
pxor %xmm2, %xmm14
movdqa %xmm12, %xmm5
pxor %xmm2, %xmm5
pcmpgtd %xmm14, %xmm5
movdqa (%rsp), %xmm14
pand %xmm5, %xmm12
pandn %xmm11, %xmm5
por %xmm12, %xmm5
movdqa %xmm9, %xmm11
pxor %xmm2, %xmm11
movdqa %xmm7, %xmm12
pxor %xmm2, %xmm12
pcmpgtd %xmm11, %xmm12
pand %xmm12, %xmm7
pandn %xmm9, %xmm12
por %xmm7, %xmm12
movdqa %xmm8, %xmm7
pxor %xmm2, %xmm7
movdqa %xmm6, %xmm9
pxor %xmm2, %xmm9
pcmpgtd %xmm7, %xmm9
movdqa 0x30(%rsp), %xmm7
pand %xmm9, %xmm6
pandn %xmm8, %xmm9
movdqa 0x20(%rsp), %xmm8
por %xmm6, %xmm9
movdqa 0x27661(%rip), %xmm6    # 0x2f120
movdqa 0x27649(%rip), %xmm2    # 0x2f110
pand %xmm2, %xmm9
pand %xmm2, %xmm12
packuswb %xmm12, %xmm9
pand %xmm2, %xmm5
pand %xmm2, %xmm10
packuswb %xmm10, %xmm5
movdqa 0x10(%rsp), %xmm10
packuswb %xmm5, %xmm9
movdqa %xmm0, %xmm5
movdqa %xmm9, (%rsi,%r9)
addq $0x10, %r8
paddq %xmm6, %xmm7
paddq %xmm6, %xmm8
paddq %xmm6, %xmm10
paddq %xmm6, %xmm14
paddq %xmm6, %xmm15
movdqa -0x30(%rsp), %xmm11
paddq %xmm6, %xmm11
movdqa -0x70(%rsp), %xmm0
paddq %xmm6, %xmm0
movdqa %xmm0, -0x70(%rsp)
movdqa -0x80(%rsp), %xmm0
paddq %xmm6, %xmm0
movdqa %xmm0, -0x80(%rsp)
movdqa 0x275e6(%rip), %xmm0    # 0x2f130
paddd %xmm0, %xmm4
paddd %xmm0, %xmm13
paddd %xmm0, %xmm1
paddd %xmm0, %xmm3
cmpq $0x40, %r8
jne 0x765c
incq %rdi
addq $0x40, %rax
cmpq $0x40, %rdi
jne 0x75b1
addq $0x48, %rsp
retq