// File: YSRKEN[P]Shioi/I401/./Board_helper.hpp
// Function: Board_helper::IsChorenB(std::array<std::array<PackedStone, 5ul>, 2ul> const&)
constexpr bool IsChorenB(const Pattern &pattern) {
		return (
			    (pattern[Side::Right][4] == Stone::Black**5_pack)
			|| ((pattern[Side::Right][3] == Stone::Black**4_pack) && (pattern[Side::Left][0]  == Stone::Black))
			|| ((pattern[Side::Right][2] == Stone::Black**3_pack) && (pattern[Side::Left][1]  == Stone::Black**2_pack))
			||  (pattern[Side::Left][4]  == Stone::Black**5_pack)
			|| ((pattern[Side::Left][3]  == Stone::Black**4_pack) && (pattern[Side::Right][0] == Stone::Black))
			|| ((pattern[Side::Left][2]  == Stone::Black**3_pack) && (pattern[Side::Right][1] == Stone::Black**2_pack))
		);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x11900
movq %rax, %rdi
movl $0x4, %esi
callq 0x11930
movq %rax, %rsi
leaq -0x18(%rbp), %rdi
callq 0x117e0
movl $0x5, %edi
callq 0x119a0
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x119e0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdx
leaq -0x28(%rbp), %rdi
movl $0x1, %esi
callq 0x11960
leaq -0x18(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x11890
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1a9(%rbp)
jne 0xf417
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x11900
movq %rax, %rdi
movl $0x3, %esi
callq 0x11930
movq %rax, %rsi
leaq -0x48(%rbp), %rdi
callq 0x117e0
movl $0x4, %edi
callq 0x119a0
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x119e0
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdx
leaq -0x58(%rbp), %rdi
movl $0x1, %esi
callq 0x11960
leaq -0x48(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x11890
testb $0x1, %al
jne 0xf05a
jmp 0xf0a0
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11900
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11930
movq %rax, %rsi
leaq -0x78(%rbp), %rdi
callq 0x117e0
leaq -0x78(%rbp), %rdi
movl $0x1, %esi
callq 0x11a00
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1a9(%rbp)
jne 0xf417
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x11900
movq %rax, %rdi
movl $0x2, %esi
callq 0x11930
movq %rax, %rsi
leaq -0x88(%rbp), %rdi
callq 0x117e0
movl $0x3, %edi
callq 0x119a0
movq %rax, -0xa8(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x119e0
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdx
leaq -0x98(%rbp), %rdi
movl $0x1, %esi
callq 0x11960
leaq -0x88(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x11890
testb $0x1, %al
jne 0xf122
jmp 0xf1ad
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11900
movq %rax, %rdi
movl $0x1, %esi
callq 0x11930
movq %rax, %rsi
leaq -0xb8(%rbp), %rdi
callq 0x117e0
movl $0x2, %edi
callq 0x119a0
movq %rax, -0xd8(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x119e0
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
movl $0x1, %esi
callq 0x11960
leaq -0xb8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x11890
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1a9(%rbp)
jne 0xf417
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11900
movq %rax, %rdi
movl $0x4, %esi
callq 0x11930
movq %rax, %rsi
leaq -0xe8(%rbp), %rdi
callq 0x117e0
movl $0x5, %edi
callq 0x119a0
movq %rax, -0x108(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x119e0
movq %rax, -0x100(%rbp)
movq -0x100(%rbp), %rdx
leaq -0xf8(%rbp), %rdi
movl $0x1, %esi
callq 0x11960
leaq -0xe8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x11890
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1a9(%rbp)
jne 0xf417
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11900
movq %rax, %rdi
movl $0x3, %esi
callq 0x11930
movq %rax, %rsi
leaq -0x118(%rbp), %rdi
callq 0x117e0
movl $0x4, %edi
callq 0x119a0
movq %rax, -0x138(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x119e0
movq %rax, -0x130(%rbp)
movq -0x130(%rbp), %rdx
leaq -0x128(%rbp), %rdi
movl $0x1, %esi
callq 0x11960
leaq -0x118(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x11890
testb $0x1, %al
jne 0xf2b6
jmp 0xf303
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x11900
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11930
movq %rax, %rsi
leaq -0x148(%rbp), %rdi
callq 0x117e0
leaq -0x148(%rbp), %rdi
movl $0x1, %esi
callq 0x11a00
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1a9(%rbp)
jne 0xf417
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11900
movq %rax, %rdi
movl $0x2, %esi
callq 0x11930
movq %rax, %rsi
leaq -0x158(%rbp), %rdi
callq 0x117e0
movl $0x3, %edi
callq 0x119a0
movq %rax, -0x178(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x119e0
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rdx
leaq -0x168(%rbp), %rdi
movl $0x1, %esi
callq 0x11960
leaq -0x158(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x11890
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x1aa(%rbp)
jne 0xf38c
jmp 0xf40b
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x11900
movq %rax, %rdi
movl $0x1, %esi
callq 0x11930
movq %rax, %rsi
leaq -0x188(%rbp), %rdi
callq 0x117e0
movl $0x2, %edi
callq 0x119a0
movq %rax, -0x1a8(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x119e0
movq %rax, -0x1a0(%rbp)
movq -0x1a0(%rbp), %rdx
leaq -0x198(%rbp), %rdi
movl $0x1, %esi
callq 0x11960
leaq -0x188(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x11890
movb %al, -0x1aa(%rbp)
movb -0x1aa(%rbp), %al
movb %al, -0x1a9(%rbp)
movb -0x1a9(%rbp), %al
andb $0x1, %al
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
nopl (%rax,%rax)