	.file	"5426.c"
	.intel_syntax noprefix
	.text
	.globl	random_uint64
	.type	random_uint64, @function
random_uint64:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	call	random@PLT
	and	eax, 65535
	mov	QWORD PTR -32[rbp], rax
	call	random@PLT
	and	eax, 65535
	mov	QWORD PTR -24[rbp], rax
	call	random@PLT
	and	eax, 65535
	mov	QWORD PTR -16[rbp], rax
	call	random@PLT
	and	eax, 65535
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	sal	rax, 16
	or	rax, QWORD PTR -32[rbp]
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	sal	rax, 32
	or	rdx, rax
	mov	rax, QWORD PTR -8[rbp]
	sal	rax, 48
	or	rax, rdx
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	random_uint64, .-random_uint64
	.globl	random_uint64_fewbits
	.type	random_uint64_fewbits, @function
random_uint64_fewbits:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 8
	.cfi_offset 3, -24
	mov	eax, 0
	call	random_uint64
	mov	rbx, rax
	mov	eax, 0
	call	random_uint64
	and	rbx, rax
	mov	eax, 0
	call	random_uint64
	and	rax, rbx
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	random_uint64_fewbits, .-random_uint64_fewbits
	.globl	count_1s
	.type	count_1s, @function
count_1s:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L6
.L7:
	add	DWORD PTR -4[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	sub	rax, 1
	and	QWORD PTR -24[rbp], rax
.L6:
	cmp	QWORD PTR -24[rbp], 0
	jne	.L7
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	count_1s, .-count_1s
	.globl	BitTable
	.section	.rodata
	.align 32
	.type	BitTable, @object
	.size	BitTable, 256
BitTable:
	.long	63
	.long	30
	.long	3
	.long	32
	.long	25
	.long	41
	.long	22
	.long	33
	.long	15
	.long	50
	.long	42
	.long	13
	.long	11
	.long	53
	.long	19
	.long	34
	.long	61
	.long	29
	.long	2
	.long	51
	.long	21
	.long	43
	.long	45
	.long	10
	.long	18
	.long	47
	.long	1
	.long	54
	.long	9
	.long	57
	.long	0
	.long	35
	.long	62
	.long	31
	.long	40
	.long	4
	.long	49
	.long	5
	.long	52
	.long	26
	.long	60
	.long	6
	.long	23
	.long	44
	.long	46
	.long	27
	.long	56
	.long	16
	.long	7
	.long	39
	.long	48
	.long	24
	.long	59
	.long	14
	.long	12
	.long	55
	.long	38
	.long	28
	.long	58
	.long	20
	.long	37
	.long	17
	.long	36
	.long	8
	.text
	.globl	pop_1st_bit
	.type	pop_1st_bit, @function
pop_1st_bit:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	sub	rax, 1
	xor	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	shr	rax, 32
	xor	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	sub	rax, 1
	and	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -12[rbp]
	imul	eax, eax, 2017106723
	shr	eax, 26
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, BitTable[rip]
	mov	eax, DWORD PTR [rdx+rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	pop_1st_bit, .-pop_1st_bit
	.globl	index_to_uint64
	.type	index_to_uint64, @function
index_to_uint64:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	QWORD PTR -32[rbp], rdx
	mov	QWORD PTR -8[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	jmp	.L12
.L14:
	lea	rax, -32[rbp]
	mov	rdi, rax
	call	pop_1st_bit
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	and	eax, 1
	test	eax, eax
	je	.L13
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
.L13:
	add	DWORD PTR -16[rbp], 1
.L12:
	mov	eax, DWORD PTR -16[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jl	.L14
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	index_to_uint64, .-index_to_uint64
	.globl	rook_potential_blockers
	.type	rook_potential_blockers, @function
rook_potential_blockers:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -8[rbp], 0
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cdq
	shr	edx, 29
	add	eax, edx
	and	eax, 7
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 1
	mov	DWORD PTR -24[rbp], eax
	jmp	.L17
.L18:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	add	DWORD PTR -24[rbp], 1
.L17:
	cmp	DWORD PTR -24[rbp], 6
	jle	.L18
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	jmp	.L19
.L20:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	sub	DWORD PTR -24[rbp], 1
.L19:
	cmp	DWORD PTR -24[rbp], 0
	jg	.L20
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L21
.L22:
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	add	DWORD PTR -20[rbp], 1
.L21:
	cmp	DWORD PTR -20[rbp], 6
	jle	.L22
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L23
.L24:
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	sub	DWORD PTR -20[rbp], 1
.L23:
	cmp	DWORD PTR -20[rbp], 0
	jg	.L24
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	rook_potential_blockers, .-rook_potential_blockers
	.globl	bishop_potential_blockers
	.type	bishop_potential_blockers, @function
bishop_potential_blockers:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -8[rbp], 0
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cdq
	shr	edx, 29
	add	eax, edx
	and	eax, 7
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L27
.L29:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	add	DWORD PTR -24[rbp], 1
	add	DWORD PTR -20[rbp], 1
.L27:
	cmp	DWORD PTR -24[rbp], 6
	jg	.L28
	cmp	DWORD PTR -20[rbp], 6
	jle	.L29
.L28:
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L30
.L32:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	add	DWORD PTR -24[rbp], 1
	sub	DWORD PTR -20[rbp], 1
.L30:
	cmp	DWORD PTR -24[rbp], 6
	jg	.L31
	cmp	DWORD PTR -20[rbp], 0
	jg	.L32
.L31:
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L33
.L35:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	sub	DWORD PTR -24[rbp], 1
	add	DWORD PTR -20[rbp], 1
.L33:
	cmp	DWORD PTR -24[rbp], 0
	jle	.L34
	cmp	DWORD PTR -20[rbp], 6
	jle	.L35
.L34:
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L36
.L38:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	sub	DWORD PTR -24[rbp], 1
	sub	DWORD PTR -20[rbp], 1
.L36:
	cmp	DWORD PTR -24[rbp], 0
	jle	.L37
	cmp	DWORD PTR -20[rbp], 0
	jg	.L38
.L37:
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	bishop_potential_blockers, .-bishop_potential_blockers
	.globl	rook_attacked_squares
	.type	rook_attacked_squares, @function
rook_attacked_squares:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -8[rbp], 0
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cdq
	shr	edx, 29
	add	eax, edx
	and	eax, 7
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 1
	mov	DWORD PTR -24[rbp], eax
	jmp	.L41
.L44:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 1
	test	rax, rax
	jne	.L58
	add	DWORD PTR -24[rbp], 1
.L41:
	cmp	DWORD PTR -24[rbp], 7
	jle	.L44
	jmp	.L43
.L58:
	nop
.L43:
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	jmp	.L45
.L48:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -12[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 1
	test	rax, rax
	jne	.L59
	sub	DWORD PTR -24[rbp], 1
.L45:
	cmp	DWORD PTR -24[rbp], 0
	jns	.L48
	jmp	.L47
.L59:
	nop
.L47:
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L49
.L52:
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 1
	test	rax, rax
	jne	.L60
	add	DWORD PTR -20[rbp], 1
.L49:
	cmp	DWORD PTR -20[rbp], 7
	jle	.L52
	jmp	.L51
.L60:
	nop
.L51:
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L53
.L56:
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -16[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 1
	test	rax, rax
	jne	.L61
	sub	DWORD PTR -20[rbp], 1
.L53:
	cmp	DWORD PTR -20[rbp], 0
	jns	.L56
	jmp	.L55
.L61:
	nop
.L55:
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	rook_attacked_squares, .-rook_attacked_squares
	.globl	bishop_attacked_squares
	.type	bishop_attacked_squares, @function
bishop_attacked_squares:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -8[rbp], 0
	mov	eax, DWORD PTR -36[rbp]
	lea	edx, 7[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 3
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cdq
	shr	edx, 29
	add	eax, edx
	and	eax, 7
	sub	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L63
.L66:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 1
	test	rax, rax
	jne	.L80
	add	DWORD PTR -24[rbp], 1
	add	DWORD PTR -20[rbp], 1
.L63:
	cmp	DWORD PTR -24[rbp], 7
	jg	.L65
	cmp	DWORD PTR -20[rbp], 7
	jle	.L66
	jmp	.L65
.L80:
	nop
.L65:
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L67
.L70:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 1
	test	rax, rax
	jne	.L81
	add	DWORD PTR -24[rbp], 1
	sub	DWORD PTR -20[rbp], 1
.L67:
	cmp	DWORD PTR -24[rbp], 7
	jg	.L69
	cmp	DWORD PTR -20[rbp], 0
	jns	.L70
	jmp	.L69
.L81:
	nop
.L69:
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L71
.L74:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 1
	test	rax, rax
	jne	.L82
	sub	DWORD PTR -24[rbp], 1
	add	DWORD PTR -20[rbp], 1
.L71:
	cmp	DWORD PTR -24[rbp], 0
	js	.L73
	cmp	DWORD PTR -20[rbp], 7
	jle	.L74
	jmp	.L73
.L82:
	nop
.L73:
	mov	eax, DWORD PTR -16[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	jmp	.L75
.L78:
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	edx, 1
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR -24[rbp]
	lea	edx, 0[0+rax*8]
	mov	eax, DWORD PTR -20[rbp]
	add	eax, edx
	mov	rdx, QWORD PTR -48[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 1
	test	rax, rax
	jne	.L83
	sub	DWORD PTR -24[rbp], 1
	sub	DWORD PTR -20[rbp], 1
.L75:
	cmp	DWORD PTR -24[rbp], 0
	js	.L77
	cmp	DWORD PTR -20[rbp], 0
	jns	.L78
	jmp	.L77
.L83:
	nop
.L77:
	mov	rax, QWORD PTR -8[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	bishop_attacked_squares, .-bishop_attacked_squares
	.globl	transform
	.type	transform, @function
transform:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -20[rbp], edx
	mov	rax, QWORD PTR -8[rbp]
	imul	rax, QWORD PTR -16[rbp]
	mov	rdx, rax
	mov	eax, 64
	sub	eax, DWORD PTR -20[rbp]
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	transform, .-transform
	.section	.rodata
.LC0:
	.string	"***Failed***"
	.text
	.globl	find_magic
	.type	find_magic, @function
find_magic:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	r11, -98304[rsp]
.LPSRL0:
	sub	rsp, 4096
	or	DWORD PTR [rsp], 0
	cmp	rsp, r11
	jne	.LPSRL0
	sub	rsp, 80
	mov	DWORD PTR -98372[rbp], edi
	mov	DWORD PTR -98376[rbp], esi
	mov	DWORD PTR -98380[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -98380[rbp], 0
	je	.L87
	mov	eax, DWORD PTR -98372[rbp]
	mov	edi, eax
	call	bishop_potential_blockers
	jmp	.L88
.L87:
	mov	eax, DWORD PTR -98372[rbp]
	mov	edi, eax
	call	rook_potential_blockers
.L88:
	mov	QWORD PTR -98336[rbp], rax
	mov	rax, QWORD PTR -98336[rbp]
	mov	rdi, rax
	call	count_1s
	mov	DWORD PTR -98344[rbp], eax
	mov	DWORD PTR -98356[rbp], 0
	jmp	.L89
.L92:
	mov	rdx, QWORD PTR -98336[rbp]
	mov	ecx, DWORD PTR -98344[rbp]
	mov	eax, DWORD PTR -98356[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	index_to_uint64
	mov	edx, DWORD PTR -98356[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -98320[rbp+rdx*8], rax
	cmp	DWORD PTR -98380[rbp], 0
	je	.L90
	mov	eax, DWORD PTR -98356[rbp]
	cdqe
	mov	rdx, QWORD PTR -98320[rbp+rax*8]
	mov	eax, DWORD PTR -98372[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	bishop_attacked_squares
	jmp	.L91
.L90:
	mov	eax, DWORD PTR -98356[rbp]
	cdqe
	mov	rdx, QWORD PTR -98320[rbp+rax*8]
	mov	eax, DWORD PTR -98372[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	rook_attacked_squares
.L91:
	mov	edx, DWORD PTR -98356[rbp]
	movsx	rdx, edx
	mov	QWORD PTR -65552[rbp+rdx*8], rax
	add	DWORD PTR -98356[rbp], 1
.L89:
	mov	eax, DWORD PTR -98344[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -98356[rbp], eax
	jl	.L92
	mov	DWORD PTR -98352[rbp], 0
	jmp	.L93
.L104:
	mov	eax, 0
	call	random_uint64_fewbits
	mov	QWORD PTR -98328[rbp], rax
	mov	rax, QWORD PTR -98336[rbp]
	imul	rax, QWORD PTR -98328[rbp]
	movabs	rdx, -72057594037927936
	and	rax, rdx
	mov	rdi, rax
	call	count_1s
	cmp	eax, 5
	jle	.L107
	mov	DWORD PTR -98356[rbp], 0
	jmp	.L96
.L97:
	mov	eax, DWORD PTR -98356[rbp]
	cdqe
	mov	QWORD PTR -32784[rbp+rax*8], 0
	add	DWORD PTR -98356[rbp], 1
.L96:
	cmp	DWORD PTR -98356[rbp], 4095
	jle	.L97
	mov	DWORD PTR -98356[rbp], 0
	mov	DWORD PTR -98348[rbp], 0
	jmp	.L98
.L102:
	mov	eax, DWORD PTR -98356[rbp]
	cdqe
	mov	rax, QWORD PTR -98320[rbp+rax*8]
	mov	edx, DWORD PTR -98376[rbp]
	mov	rcx, QWORD PTR -98328[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	transform
	mov	DWORD PTR -98340[rbp], eax
	mov	eax, DWORD PTR -98340[rbp]
	cdqe
	mov	rax, QWORD PTR -32784[rbp+rax*8]
	test	rax, rax
	jne	.L99
	mov	eax, DWORD PTR -98356[rbp]
	cdqe
	mov	rdx, QWORD PTR -65552[rbp+rax*8]
	mov	eax, DWORD PTR -98340[rbp]
	cdqe
	mov	QWORD PTR -32784[rbp+rax*8], rdx
	jmp	.L100
.L99:
	mov	DWORD PTR -98348[rbp], 1
.L100:
	add	DWORD PTR -98356[rbp], 1
.L98:
	cmp	DWORD PTR -98348[rbp], 0
	jne	.L101
	mov	eax, DWORD PTR -98344[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	DWORD PTR -98356[rbp], eax
	jl	.L102
.L101:
	cmp	DWORD PTR -98348[rbp], 0
	jne	.L95
	mov	rax, QWORD PTR -98328[rbp]
	jmp	.L105
.L107:
	nop
.L95:
	add	DWORD PTR -98352[rbp], 1
.L93:
	cmp	DWORD PTR -98352[rbp], 99999999
	jle	.L104
	lea	rdi, .LC0[rip]
	call	puts@PLT
	mov	eax, 0
.L105:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L106
	call	__stack_chk_fail@PLT
.L106:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	find_magic, .-find_magic
	.globl	RBits
	.data
	.align 32
	.type	RBits, @object
	.size	RBits, 256
RBits:
	.long	12
	.long	11
	.long	11
	.long	11
	.long	11
	.long	11
	.long	11
	.long	12
	.long	11
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	11
	.long	11
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	11
	.long	11
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	11
	.long	11
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	11
	.long	11
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	11
	.long	11
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	10
	.long	11
	.long	12
	.long	11
	.long	11
	.long	11
	.long	11
	.long	11
	.long	11
	.long	12
	.globl	BBits
	.align 32
	.type	BBits, @object
	.size	BBits, 256
BBits:
	.long	6
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	6
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	7
	.long	7
	.long	7
	.long	7
	.long	5
	.long	5
	.long	5
	.long	5
	.long	7
	.long	9
	.long	9
	.long	7
	.long	5
	.long	5
	.long	5
	.long	5
	.long	7
	.long	9
	.long	9
	.long	7
	.long	5
	.long	5
	.long	5
	.long	5
	.long	7
	.long	7
	.long	7
	.long	7
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	6
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	5
	.long	6
	.section	.rodata
.LC1:
	.string	"const uint64 RMagic[64] = {"
.LC2:
	.string	"  0x%llxULL,\n"
.LC3:
	.string	"};\n"
.LC4:
	.string	"const uint64 BMagic[64] = {"
	.text
	.globl	main
	.type	main, @function
main:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	lea	rdi, .LC1[rip]
	call	puts@PLT
	mov	DWORD PTR -4[rbp], 0
	jmp	.L109
.L110:
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, 0
	mov	esi, 12
	mov	edi, eax
	call	find_magic
	mov	rsi, rax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	add	DWORD PTR -4[rbp], 1
.L109:
	cmp	DWORD PTR -4[rbp], 63
	jle	.L110
	lea	rdi, .LC3[rip]
	call	puts@PLT
	lea	rdi, .LC4[rip]
	call	puts@PLT
	mov	DWORD PTR -4[rbp], 0
	jmp	.L111
.L112:
	mov	eax, DWORD PTR -4[rbp]
	mov	edx, 1
	mov	esi, 9
	mov	edi, eax
	call	find_magic
	mov	rsi, rax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	printf@PLT
	add	DWORD PTR -4[rbp], 1
.L111:
	cmp	DWORD PTR -4[rbp], 63
	jle	.L112
	lea	rdi, .LC3[rip]
	call	puts@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"5426.c"
	.text
	.align	2
	.global	random_uint64
	.syntax unified
	.arm
	.fpu softvfp
	.type	random_uint64, %function
random_uint64:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #64
	bl	random
	mov	r3, r0
	mov	r0, r3
	asr	r1, r0, #31
	ldr	r2, .L3
	mov	r3, #0
	and	r8, r0, r2
	and	r9, r1, r3
	str	r8, [fp, #-60]
	str	r9, [fp, #-56]
	bl	random
	mov	r3, r0
	mov	r0, r3
	asr	r1, r0, #31
	ldr	r2, .L3
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-76]
	and	r3, r1, r3
	str	r3, [fp, #-72]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	bl	random
	mov	r3, r0
	mov	r2, r3
	asr	r3, r2, #31
	ldr	r0, .L3
	mov	r1, #0
	and	ip, r2, r0
	str	ip, [fp, #-84]
	and	r3, r3, r1
	str	r3, [fp, #-80]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	bl	random
	mov	r3, r0
	mov	r2, r3
	asr	r3, r2, #31
	ldr	r0, .L3
	mov	r1, #0
	and	ip, r2, r0
	str	ip, [fp, #-92]
	and	r3, r3, r1
	str	r3, [fp, #-88]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r1, #16
	orr	r3, r3, r0, lsr #16
	lsl	r2, r0, #16
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	orr	r6, r2, r0
	orr	r7, r3, r1
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r3, r0
	mov	r2, #0
	orr	r4, r6, r2
	orr	r5, r7, r3
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsl	r3, r0, #16
	mov	r2, #0
	orr	r1, r4, r2
	str	r1, [fp, #-68]
	orr	r3, r5, r3
	str	r3, [fp, #-64]
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L4:
	.align	2
.L3:
	.word	65535
	.size	random_uint64, .-random_uint64
	.align	2
	.global	random_uint64_fewbits
	.syntax unified
	.arm
	.fpu softvfp
	.type	random_uint64_fewbits, %function
random_uint64_fewbits:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	bl	random_uint64
	mov	r6, r0
	mov	r7, r1
	bl	random_uint64
	mov	r2, r0
	mov	r3, r1
	and	r4, r6, r2
	and	r5, r7, r3
	bl	random_uint64
	mov	r2, r0
	mov	r3, r1
	and	r8, r4, r2
	and	r9, r5, r3
	mov	r2, r8
	mov	r3, r9
	mov	r0, r2
	mov	r1, r3
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	random_uint64_fewbits, .-random_uint64_fewbits
	.align	2
	.global	count_1s
	.syntax unified
	.arm
	.fpu softvfp
	.type	count_1s, %function
count_1s:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-28]
	str	r1, [fp, #-24]
	mov	r1, #0
	str	r1, [fp, #-16]
	b	.L8
.L9:
	ldr	r1, [fp, #-16]
	add	r1, r1, #1
	str	r1, [fp, #-16]
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	subs	r2, r0, #1
	sbc	r3, r1, #0
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	and	r4, r0, r2
	and	r5, r1, r3
	str	r4, [fp, #-28]
	str	r5, [fp, #-24]
.L8:
	sub	r1, fp, #28
	ldmia	r1, {r0-r1}
	orrs	r1, r0, r1
	bne	.L9
	ldr	r3, [fp, #-16]
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
	.size	count_1s, .-count_1s
	.global	BitTable
	.section	.rodata
	.align	2
	.type	BitTable, %object
	.size	BitTable, 256
BitTable:
	.word	63
	.word	30
	.word	3
	.word	32
	.word	25
	.word	41
	.word	22
	.word	33
	.word	15
	.word	50
	.word	42
	.word	13
	.word	11
	.word	53
	.word	19
	.word	34
	.word	61
	.word	29
	.word	2
	.word	51
	.word	21
	.word	43
	.word	45
	.word	10
	.word	18
	.word	47
	.word	1
	.word	54
	.word	9
	.word	57
	.word	0
	.word	35
	.word	62
	.word	31
	.word	40
	.word	4
	.word	49
	.word	5
	.word	52
	.word	26
	.word	60
	.word	6
	.word	23
	.word	44
	.word	46
	.word	27
	.word	56
	.word	16
	.word	7
	.word	39
	.word	48
	.word	24
	.word	59
	.word	14
	.word	12
	.word	55
	.word	38
	.word	28
	.word	58
	.word	20
	.word	37
	.word	17
	.word	36
	.word	8
	.text
	.align	2
	.global	pop_1st_bit
	.syntax unified
	.arm
	.fpu softvfp
	.type	pop_1st_bit, %function
pop_1st_bit:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, r6, r7, r8, r9, fp}
	add	fp, sp, #24
	sub	sp, sp, #36
	str	r0, [fp, #-48]
	ldr	r1, [fp, #-48]
	ldmia	r1, {r0-r1}
	str	r0, [fp, #-60]
	str	r1, [fp, #-56]
	ldr	r1, [fp, #-48]
	ldmia	r1, {r0-r1}
	subs	r4, r0, #1
	sbc	r5, r1, #0
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	mov	ip, r0
	eor	r8, ip, r4
	eor	r9, r1, r5
	str	r8, [fp, #-36]
	str	r9, [fp, #-32]
	ldr	ip, [fp, #-36]
	sub	r5, fp, #36
	ldmia	r5, {r4-r5}
	mov	r0, #0
	mov	r1, #0
	mov	r0, r5
	mov	r1, #0
	mov	r1, r0
	eor	r1, r1, ip
	str	r1, [fp, #-40]
	ldr	r1, [fp, #-48]
	ldmia	r1, {r4-r5}
	ldr	r1, [fp, #-48]
	ldmia	r1, {r0-r1}
	subs	r2, r0, #1
	sbc	r3, r1, #0
	and	r6, r4, r2
	and	r7, r5, r3
	ldr	r3, [fp, #-48]
	stm	r3, {r6-r7}
	ldr	r3, [fp, #-40]
	ldr	r2, .L13
	mul	r3, r2, r3
	lsr	r3, r3, #26
	ldr	r2, .L13+4
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	sub	sp, fp, #24
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp}
	bx	lr
.L14:
	.align	2
.L13:
	.word	2017106723
	.word	BitTable
	.size	pop_1st_bit, .-pop_1st_bit
	.align	2
	.global	index_to_uint64
	.syntax unified
	.arm
	.fpu softvfp
	.type	index_to_uint64, %function
index_to_uint64:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #32
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-36]
	b	.L16
.L18:
	sub	r3, fp, #52
	mov	r0, r3
	bl	pop_1st_bit
	str	r0, [fp, #-32]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-36]
	asr	r3, r2, r3
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L17
	mov	r2, #1
	mov	r3, #0
	ldr	r1, [fp, #-32]
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r5, r3, r1
	orr	r5, r5, r2, lsl ip
	orr	r5, r5, r2, lsr r0
	lsl	r4, r2, r1
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	orr	r6, r2, r4
	orr	r7, r3, r5
	str	r6, [fp, #-28]
	str	r7, [fp, #-24]
.L17:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
.L16:
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	blt	.L18
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
	.size	index_to_uint64, .-index_to_uint64
	.align	2
	.global	rook_potential_blockers
	.syntax unified
	.arm
	.fpu softvfp
	.type	rook_potential_blockers, %function
rook_potential_blockers:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #72
	str	r0, [fp, #-56]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-56]
	rsbs	r1, r3, #0
	and	r2, r3, #7
	and	r3, r1, #7
	rsbpl	r2, r3, #0
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	b	.L21
.L22:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-40]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	lr, r3, r1
	str	lr, [fp, #-64]
	ldr	lr, [fp, #-64]
	orr	ip, lr, r2, lsl ip
	str	ip, [fp, #-64]
	ldr	ip, [fp, #-64]
	orr	r0, ip, r2, lsr r0
	str	r0, [fp, #-64]
	lsl	r3, r2, r1
	str	r3, [fp, #-68]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, r2, ip
	str	ip, [fp, #-76]
	orr	r3, r3, r1
	str	r3, [fp, #-72]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L21:
	ldr	r3, [fp, #-52]
	cmp	r3, #6
	ble	.L22
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	b	.L23
.L24:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-40]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r9, r3, r1
	orr	r9, r9, r2, lsl ip
	orr	r9, r9, r2, lsr r0
	lsl	r8, r2, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orr	r1, r2, r8
	str	r1, [fp, #-84]
	orr	r3, r3, r9
	str	r3, [fp, #-80]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
.L23:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bgt	.L24
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L25
.L26:
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r7, r3, r1
	orr	r7, r7, r2, lsl ip
	orr	r7, r7, r2, lsr r0
	lsl	r6, r2, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orr	r1, r2, r6
	str	r1, [fp, #-92]
	orr	r3, r3, r7
	str	r3, [fp, #-88]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L25:
	ldr	r3, [fp, #-48]
	cmp	r3, #6
	ble	.L26
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L27
.L28:
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r5, r3, r1
	orr	r5, r5, r2, lsl ip
	orr	r5, r5, r2, lsr r0
	lsl	r4, r2, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orr	r1, r2, r4
	str	r1, [fp, #-100]
	orr	r3, r3, r5
	str	r3, [fp, #-96]
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
.L27:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bgt	.L28
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	rook_potential_blockers, .-rook_potential_blockers
	.align	2
	.global	bishop_potential_blockers
	.syntax unified
	.arm
	.fpu softvfp
	.type	bishop_potential_blockers, %function
bishop_potential_blockers:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #72
	str	r0, [fp, #-56]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-56]
	rsbs	r1, r3, #0
	and	r2, r3, #7
	and	r3, r1, #7
	rsbpl	r2, r3, #0
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L31
.L33:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	lr, r3, r1
	str	lr, [fp, #-64]
	ldr	lr, [fp, #-64]
	orr	ip, lr, r2, lsl ip
	str	ip, [fp, #-64]
	ldr	ip, [fp, #-64]
	orr	r0, ip, r2, lsr r0
	str	r0, [fp, #-64]
	lsl	r3, r2, r1
	str	r3, [fp, #-68]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, r2, ip
	str	ip, [fp, #-76]
	orr	r3, r3, r1
	str	r3, [fp, #-72]
	sub	r3, fp, #76
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L31:
	ldr	r3, [fp, #-52]
	cmp	r3, #6
	bgt	.L32
	ldr	r3, [fp, #-48]
	cmp	r3, #6
	ble	.L33
.L32:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L34
.L36:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r9, r3, r1
	orr	r9, r9, r2, lsl ip
	orr	r9, r9, r2, lsr r0
	lsl	r8, r2, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orr	r1, r2, r8
	str	r1, [fp, #-84]
	orr	r3, r3, r9
	str	r3, [fp, #-80]
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
.L34:
	ldr	r3, [fp, #-52]
	cmp	r3, #6
	bgt	.L35
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bgt	.L36
.L35:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L37
.L39:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r7, r3, r1
	orr	r7, r7, r2, lsl ip
	orr	r7, r7, r2, lsr r0
	lsl	r6, r2, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orr	r1, r2, r6
	str	r1, [fp, #-92]
	orr	r3, r3, r7
	str	r3, [fp, #-88]
	sub	r3, fp, #92
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L37:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	ble	.L38
	ldr	r3, [fp, #-48]
	cmp	r3, #6
	ble	.L39
.L38:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L40
.L42:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r5, r3, r1
	orr	r5, r5, r2, lsl ip
	orr	r5, r5, r2, lsr r0
	lsl	r4, r2, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orr	r1, r2, r4
	str	r1, [fp, #-100]
	orr	r3, r3, r5
	str	r3, [fp, #-96]
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
.L40:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	ble	.L41
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bgt	.L42
.L41:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	bishop_potential_blockers, .-bishop_potential_blockers
	.align	2
	.global	rook_attacked_squares
	.syntax unified
	.arm
	.fpu softvfp
	.type	rook_attacked_squares, %function
rook_attacked_squares:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #144
	str	r0, [fp, #-56]
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-56]
	rsbs	r1, r3, #0
	and	r2, r3, #7
	and	r3, r1, #7
	rsbpl	r2, r3, #0
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	b	.L45
.L48:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-40]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r7, r3, r1
	orr	r7, r7, r2, lsl ip
	orr	r7, r7, r2, lsr r0
	lsl	r6, r2, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orr	r1, r2, r6
	str	r1, [fp, #-148]
	orr	r3, r3, r7
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-40]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	r4, r2, r1
	orr	r4, r4, r3, lsl ip
	orr	r4, r4, r3, lsr r0
	lsr	r5, r3, r1
	mov	r2, #1
	mov	r3, #0
	and	r1, r4, r2
	str	r1, [fp, #-116]
	and	r3, r5, r3
	str	r3, [fp, #-112]
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	bne	.L62
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
.L45:
	ldr	r3, [fp, #-52]
	cmp	r3, #7
	ble	.L48
	b	.L47
.L62:
	nop
.L47:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	b	.L49
.L52:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-40]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	lr, r3, r1
	str	lr, [fp, #-72]
	ldr	lr, [fp, #-72]
	orr	ip, lr, r2, lsl ip
	str	ip, [fp, #-72]
	ldr	ip, [fp, #-72]
	orr	r0, ip, r2, lsr r0
	str	r0, [fp, #-72]
	lsl	r3, r2, r1
	str	r3, [fp, #-76]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, r2, ip
	str	ip, [fp, #-156]
	orr	r3, r3, r1
	str	r3, [fp, #-152]
	sub	r4, fp, #156
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-40]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	r8, r2, r1
	orr	r8, r8, r3, lsl ip
	orr	r8, r8, r3, lsr r0
	lsr	r9, r3, r1
	mov	r2, #1
	mov	r3, #0
	and	r1, r8, r2
	str	r1, [fp, #-124]
	and	r3, r9, r3
	str	r3, [fp, #-120]
	sub	r4, fp, #124
	ldmia	r4, {r3-r4}
	orrs	r3, r3, r4
	bne	.L63
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
.L49:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bge	.L52
	b	.L51
.L63:
	nop
.L51:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L53
.L56:
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	lr, r3, r1
	str	lr, [fp, #-80]
	ldr	lr, [fp, #-80]
	orr	ip, lr, r2, lsl ip
	str	ip, [fp, #-80]
	ldr	ip, [fp, #-80]
	orr	r0, ip, r2, lsr r0
	str	r0, [fp, #-80]
	lsl	r3, r2, r1
	str	r3, [fp, #-84]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, r2, ip
	str	ip, [fp, #-164]
	orr	r3, r3, r1
	str	r3, [fp, #-160]
	sub	r4, fp, #164
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	lr, r2, r1
	str	lr, [fp, #-92]
	ldr	lr, [fp, #-92]
	orr	ip, lr, r3, lsl ip
	str	ip, [fp, #-92]
	ldr	ip, [fp, #-92]
	orr	r0, ip, r3, lsr r0
	str	r0, [fp, #-92]
	lsr	r3, r3, r1
	str	r3, [fp, #-88]
	mov	r2, #1
	mov	r3, #0
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	mov	ip, r0
	and	ip, ip, r2
	str	ip, [fp, #-132]
	and	r3, r1, r3
	str	r3, [fp, #-128]
	sub	r4, fp, #132
	ldmia	r4, {r3-r4}
	orrs	r3, r3, r4
	bne	.L64
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L53:
	ldr	r3, [fp, #-48]
	cmp	r3, #7
	ble	.L56
	b	.L55
.L64:
	nop
.L55:
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L57
.L60:
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	lr, r3, r1
	str	lr, [fp, #-96]
	ldr	lr, [fp, #-96]
	orr	ip, lr, r2, lsl ip
	str	ip, [fp, #-96]
	ldr	ip, [fp, #-96]
	orr	r0, ip, r2, lsr r0
	str	r0, [fp, #-96]
	lsl	r3, r2, r1
	str	r3, [fp, #-100]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, r2, ip
	str	ip, [fp, #-172]
	orr	r3, r3, r1
	str	r3, [fp, #-168]
	sub	r4, fp, #172
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r3, [fp, #-44]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	lr, r2, r1
	str	lr, [fp, #-108]
	ldr	lr, [fp, #-108]
	orr	ip, lr, r3, lsl ip
	str	ip, [fp, #-108]
	ldr	ip, [fp, #-108]
	orr	r0, ip, r3, lsr r0
	str	r0, [fp, #-108]
	lsr	r3, r3, r1
	str	r3, [fp, #-104]
	mov	r2, #1
	mov	r3, #0
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	mov	ip, r0
	and	ip, ip, r2
	str	ip, [fp, #-140]
	and	r3, r1, r3
	str	r3, [fp, #-136]
	sub	r4, fp, #140
	ldmia	r4, {r3-r4}
	orrs	r3, r3, r4
	bne	.L65
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
.L57:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bge	.L60
	b	.L59
.L65:
	nop
.L59:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	rook_attacked_squares, .-rook_attacked_squares
	.align	2
	.global	bishop_attacked_squares
	.syntax unified
	.arm
	.fpu softvfp
	.type	bishop_attacked_squares, %function
bishop_attacked_squares:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #144
	str	r0, [fp, #-56]
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	add	r2, r3, #7
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-56]
	rsbs	r1, r3, #0
	and	r2, r3, #7
	and	r3, r1, #7
	rsbpl	r2, r3, #0
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L67
.L70:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	r7, r3, r1
	orr	r7, r7, r2, lsl ip
	orr	r7, r7, r2, lsr r0
	lsl	r6, r2, r1
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orr	r1, r2, r6
	str	r1, [fp, #-148]
	orr	r3, r3, r7
	str	r3, [fp, #-144]
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	r4, r2, r1
	orr	r4, r4, r3, lsl ip
	orr	r4, r4, r3, lsr r0
	lsr	r5, r3, r1
	mov	r2, #1
	mov	r3, #0
	and	r1, r4, r2
	str	r1, [fp, #-116]
	and	r3, r5, r3
	str	r3, [fp, #-112]
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	bne	.L84
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L67:
	ldr	r3, [fp, #-52]
	cmp	r3, #7
	bgt	.L69
	ldr	r3, [fp, #-48]
	cmp	r3, #7
	ble	.L70
	b	.L69
.L84:
	nop
.L69:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L71
.L74:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	lr, r3, r1
	str	lr, [fp, #-72]
	ldr	lr, [fp, #-72]
	orr	ip, lr, r2, lsl ip
	str	ip, [fp, #-72]
	ldr	ip, [fp, #-72]
	orr	r0, ip, r2, lsr r0
	str	r0, [fp, #-72]
	lsl	r3, r2, r1
	str	r3, [fp, #-76]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, r2, ip
	str	ip, [fp, #-156]
	orr	r3, r3, r1
	str	r3, [fp, #-152]
	sub	r4, fp, #156
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	r8, r2, r1
	orr	r8, r8, r3, lsl ip
	orr	r8, r8, r3, lsr r0
	lsr	r9, r3, r1
	mov	r2, #1
	mov	r3, #0
	and	r1, r8, r2
	str	r1, [fp, #-124]
	and	r3, r9, r3
	str	r3, [fp, #-120]
	sub	r4, fp, #124
	ldmia	r4, {r3-r4}
	orrs	r3, r3, r4
	bne	.L85
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
.L71:
	ldr	r3, [fp, #-52]
	cmp	r3, #7
	bgt	.L73
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bge	.L74
	b	.L73
.L85:
	nop
.L73:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L75
.L78:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	lr, r3, r1
	str	lr, [fp, #-80]
	ldr	lr, [fp, #-80]
	orr	ip, lr, r2, lsl ip
	str	ip, [fp, #-80]
	ldr	ip, [fp, #-80]
	orr	r0, ip, r2, lsr r0
	str	r0, [fp, #-80]
	lsl	r3, r2, r1
	str	r3, [fp, #-84]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #84
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, r2, ip
	str	ip, [fp, #-164]
	orr	r3, r3, r1
	str	r3, [fp, #-160]
	sub	r4, fp, #164
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	lr, r2, r1
	str	lr, [fp, #-92]
	ldr	lr, [fp, #-92]
	orr	ip, lr, r3, lsl ip
	str	ip, [fp, #-92]
	ldr	ip, [fp, #-92]
	orr	r0, ip, r3, lsr r0
	str	r0, [fp, #-92]
	lsr	r3, r3, r1
	str	r3, [fp, #-88]
	mov	r2, #1
	mov	r3, #0
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	mov	ip, r0
	and	ip, ip, r2
	str	ip, [fp, #-132]
	and	r3, r1, r3
	str	r3, [fp, #-128]
	sub	r4, fp, #132
	ldmia	r4, {r3-r4}
	orrs	r3, r3, r4
	bne	.L86
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	str	r3, [fp, #-48]
.L75:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	blt	.L77
	ldr	r3, [fp, #-48]
	cmp	r3, #7
	ble	.L78
	b	.L77
.L86:
	nop
.L77:
	ldr	r3, [fp, #-44]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-40]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
	b	.L79
.L82:
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	mov	r2, #1
	mov	r3, #0
	sub	ip, r1, #32
	rsb	r0, r1, #32
	lsl	lr, r3, r1
	str	lr, [fp, #-96]
	ldr	lr, [fp, #-96]
	orr	ip, lr, r2, lsl ip
	str	ip, [fp, #-96]
	ldr	ip, [fp, #-96]
	orr	r0, ip, r2, lsr r0
	str	r0, [fp, #-96]
	lsl	r3, r2, r1
	str	r3, [fp, #-100]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	sub	r1, fp, #100
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, r2, ip
	str	ip, [fp, #-172]
	orr	r3, r3, r1
	str	r3, [fp, #-168]
	sub	r4, fp, #172
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	ldr	r3, [fp, #-52]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-48]
	add	r1, r2, r3
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	lr, r2, r1
	str	lr, [fp, #-108]
	ldr	lr, [fp, #-108]
	orr	ip, lr, r3, lsl ip
	str	ip, [fp, #-108]
	ldr	ip, [fp, #-108]
	orr	r0, ip, r3, lsr r0
	str	r0, [fp, #-108]
	lsr	r3, r3, r1
	str	r3, [fp, #-104]
	mov	r2, #1
	mov	r3, #0
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	mov	ip, r0
	and	ip, ip, r2
	str	ip, [fp, #-140]
	and	r3, r1, r3
	str	r3, [fp, #-136]
	sub	r4, fp, #140
	ldmia	r4, {r3-r4}
	orrs	r3, r3, r4
	bne	.L87
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-48]
	sub	r3, r3, #1
	str	r3, [fp, #-48]
.L79:
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	blt	.L81
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bge	.L82
	b	.L81
.L87:
	nop
.L81:
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	bishop_attacked_squares, .-bishop_attacked_squares
	.align	2
	.global	transform
	.syntax unified
	.arm
	.fpu softvfp
	.type	transform, %function
transform:
	@ args = 4, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	push	{r4, r5, fp}
	add	fp, sp, #8
	sub	sp, sp, #20
	str	r0, [fp, #-20]
	str	r1, [fp, #-16]
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	mul	r2, r3, r2
	ldr	r3, [fp, #-24]
	ldr	r1, [fp, #-20]
	mul	r3, r1, r3
	add	r1, r2, r3
	ldr	ip, [fp, #-20]
	ldr	r0, [fp, #-28]
	umull	r2, r3, ip, r0
	add	r1, r1, r3
	mov	r3, r1
	ldr	r1, [fp, #4]
	rsb	r1, r1, #64
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	r4, r2, r1
	orr	r4, r4, r3, lsl ip
	orr	r4, r4, r3, lsr r0
	lsr	r5, r3, r1
	mov	r3, r4
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, r5, fp}
	bx	lr
	.size	transform, .-transform
	.section	.rodata
	.align	2
.LC0:
	.ascii	"***Failed***\000"
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	find_magic
	.syntax unified
	.arm
	.fpu softvfp
	.type	find_magic, %function
find_magic:
	@ args = 0, pretend = 0, frame = 98368
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #98304
	sub	sp, sp, #76
	sub	r3, fp, #98304
	sub	r3, r3, #20
	str	r0, [r3, #-52]
	sub	r3, fp, #98304
	sub	r3, r3, #20
	str	r1, [r3, #-56]
	sub	r3, fp, #98304
	sub	r3, r3, #20
	str	r2, [r3, #-60]
	ldr	r3, .L112
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-60]
	cmp	r3, #0
	beq	.L91
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r0, [r3, #-52]
	bl	bishop_potential_blockers
	mov	r2, r0
	mov	r3, r1
	b	.L92
.L91:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r0, [r3, #-52]
	bl	rook_potential_blockers
	mov	r2, r0
	mov	r3, r1
.L92:
	sub	r1, fp, #98304
	sub	r1, r1, #20
	sub	r1, r1, #16
	stmdb	r1, {r2-r3}
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r6, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	sub	r3, r3, #16
	ldmdb	r3, {r0-r1}
	bl	count_1s
	str	r0, [r6, #-32]
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-44]
	b	.L93
.L96:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	sub	r3, r3, #16
	sub	r2, fp, #98304
	sub	r2, r2, #20
	mov	r1, r2
	sub	r2, fp, #98304
	sub	r2, r2, #20
	mov	r0, r2
	ldmdb	r3, {r2-r3}
	ldr	r1, [r1, #-32]
	ldr	r0, [r0, #-44]
	bl	index_to_uint64
	mov	r2, r0
	mov	r3, r1
	sub	r1, fp, #98304
	sub	r1, r1, #20
	mov	r0, r1
	sub	r1, fp, #98304
	sub	r1, r1, #20
	ldr	r1, [r1, #-44]
	lsl	r1, r1, #3
	add	r1, r0, r1
	sub	r1, r1, #8
	stm	r1, {r2-r3}
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-60]
	cmp	r3, #0
	beq	.L94
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #98304
	sub	r1, r1, #20
	ldr	r0, [r1, #-52]
	bl	bishop_attacked_squares
	mov	r2, r0
	mov	r3, r1
	b	.L95
.L94:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #98304
	sub	r1, r1, #20
	ldr	r0, [r1, #-52]
	bl	rook_attacked_squares
	mov	r2, r0
	mov	r3, r1
.L95:
	sub	r1, fp, #65536
	sub	r1, r1, #20
	mov	r0, r1
	sub	r1, fp, #98304
	sub	r1, r1, #20
	ldr	r1, [r1, #-44]
	lsl	r1, r1, #3
	add	r1, r0, r1
	sub	r1, r1, #8
	stm	r1, {r2-r3}
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	add	r3, r3, #1
	str	r3, [r2, #-44]
.L93:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, #1
	ldr	r3, [r3, #-32]
	lsl	r3, r2, r3
	sub	r2, fp, #98304
	sub	r2, r2, #20
	ldr	r2, [r2, #-44]
	cmp	r2, r3
	blt	.L96
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-40]
	b	.L97
.L108:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	sub	r3, r3, #16
	mov	r6, r3
	bl	random_uint64_fewbits
	stm	r6, {r0-r1}
	sub	r3, fp, #98304
	sub	r3, r3, #20
	sub	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	sub	r3, r3, #16
	ldr	r1, [r2, #-4]
	ldr	r0, [r3]
	mul	r0, r1, r0
	ldr	r1, [r3, #4]
	ldr	ip, [r2, #-8]
	mul	r1, ip, r1
	add	r1, r0, r1
	ldr	ip, [r2, #-8]
	ldr	r0, [r3]
	umull	r2, r3, ip, r0
	add	r1, r1, r3
	mov	r3, r1
	mov	r0, #0
	mov	r1, #-16777216
	and	r4, r2, r0
	and	r5, r3, r1
	mov	r0, r4
	mov	r1, r5
	bl	count_1s
	mov	r3, r0
	cmp	r3, #5
	ble	.L111
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-44]
	b	.L100
.L101:
	sub	r3, fp, #32768
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r1, r3, #8
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	add	r3, r3, #1
	str	r3, [r2, #-44]
.L100:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	cmp	r3, #4096
	blt	.L101
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-44]
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #0
	str	r3, [r2, #-36]
	b	.L102
.L106:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #8
	ldmia	r3, {r0-r1}
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r6, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	sub	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-56]
	str	r3, [sp]
	ldmia	r2, {r2-r3}
	bl	transform
	str	r0, [r6, #-28]
	sub	r3, fp, #32768
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-28]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	bne	.L103
	sub	r3, fp, #65536
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	lsl	r3, r3, #3
	add	r3, r2, r3
	sub	r3, r3, #8
	ldmia	r3, {r2-r3}
	sub	r1, fp, #32768
	sub	r1, r1, #20
	mov	r0, r1
	sub	r1, fp, #98304
	sub	r1, r1, #20
	ldr	r1, [r1, #-28]
	lsl	r1, r1, #3
	add	r1, r0, r1
	sub	r1, r1, #8
	stm	r1, {r2-r3}
	b	.L104
.L103:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	mov	r3, #1
	str	r3, [r2, #-36]
.L104:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-44]
	add	r3, r3, #1
	str	r3, [r2, #-44]
.L102:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-36]
	cmp	r3, #0
	bne	.L105
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, #1
	ldr	r3, [r3, #-32]
	lsl	r3, r2, r3
	sub	r2, fp, #98304
	sub	r2, r2, #20
	ldr	r2, [r2, #-44]
	cmp	r2, r3
	blt	.L106
.L105:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-36]
	cmp	r3, #0
	bne	.L99
	sub	r3, fp, #98304
	sub	r3, r3, #20
	sub	r3, r3, #16
	ldmia	r3, {r2-r3}
	b	.L109
.L111:
	nop
.L99:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	mov	r2, r3
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-40]
	add	r3, r3, #1
	str	r3, [r2, #-40]
.L97:
	sub	r3, fp, #98304
	sub	r3, r3, #20
	ldr	r3, [r3, #-40]
	ldr	r2, .L112+4
	cmp	r3, r2
	ble	.L108
	ldr	r0, .L112+8
	bl	puts
	mov	r2, #0
	mov	r3, #0
.L109:
	ldr	r1, .L112
	ldr	r0, [r1]
	ldr	r1, [fp, #-24]
	eors	r0, r1, r0
	mov	r1, #0
	beq	.L110
	bl	__stack_chk_fail
.L110:
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L113:
	.align	2
.L112:
	.word	.LC1
	.word	99999999
	.word	.LC0
	.size	find_magic, .-find_magic
	.global	RBits
	.data
	.align	2
	.type	RBits, %object
	.size	RBits, 256
RBits:
	.word	12
	.word	11
	.word	11
	.word	11
	.word	11
	.word	11
	.word	11
	.word	12
	.word	11
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	11
	.word	11
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	11
	.word	11
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	11
	.word	11
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	11
	.word	11
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	11
	.word	11
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	10
	.word	11
	.word	12
	.word	11
	.word	11
	.word	11
	.word	11
	.word	11
	.word	11
	.word	12
	.global	BBits
	.align	2
	.type	BBits, %object
	.size	BBits, 256
BBits:
	.word	6
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	6
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	7
	.word	7
	.word	7
	.word	7
	.word	5
	.word	5
	.word	5
	.word	5
	.word	7
	.word	9
	.word	9
	.word	7
	.word	5
	.word	5
	.word	5
	.word	5
	.word	7
	.word	9
	.word	9
	.word	7
	.word	5
	.word	5
	.word	5
	.word	5
	.word	7
	.word	7
	.word	7
	.word	7
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	6
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	5
	.word	6
	.section	.rodata
	.align	2
.LC2:
	.ascii	"const uint64 RMagic[64] = {\000"
	.align	2
.LC3:
	.ascii	"  0x%llxULL,\012\000"
	.align	2
.LC4:
	.ascii	"};\012\000"
	.align	2
.LC5:
	.ascii	"const uint64 BMagic[64] = {\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r0, .L120
	bl	puts
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L115
.L116:
	mov	r2, #0
	mov	r1, #12
	ldr	r0, [fp, #-8]
	bl	find_magic
	mov	r2, r0
	mov	r3, r1
	ldr	r0, .L120+4
	bl	printf
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L115:
	ldr	r3, [fp, #-8]
	cmp	r3, #63
	ble	.L116
	ldr	r0, .L120+8
	bl	puts
	ldr	r0, .L120+12
	bl	puts
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L117
.L118:
	mov	r2, #1
	mov	r1, #9
	ldr	r0, [fp, #-8]
	bl	find_magic
	mov	r2, r0
	mov	r3, r1
	ldr	r0, .L120+4
	bl	printf
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L117:
	ldr	r3, [fp, #-8]
	cmp	r3, #63
	ble	.L118
	ldr	r0, .L120+8
	bl	puts
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L121:
	.align	2
.L120:
	.word	.LC2
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
