// File: jswaff[P]prophet3/test/evalp__test.cpp
// Function: test_botvinnik_capablanca38()
void test_botvinnik_capablanca38() {
    position pos;
    set_pos(&pos,"8/p3q1kp/1p2Pnp1/3pQ3/2pP4/1nP3N1/1B4PP/6K1 w - -");

    assert(is_passed(&pos,A7,false));
    assert(!is_passed(&pos,H7,false));
    assert(!is_passed(&pos,B6,false));
    assert(!is_passed(&pos,G6,false));
    assert(!is_passed(&pos,D5,false));
    assert(!is_passed(&pos,C4,false));
    assert(!is_passed(&pos,D4,true));
    assert(!is_passed(&pos,C3,true));
    assert(!is_passed(&pos,G2,true));
    assert(!is_passed(&pos,H2,true));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
leaq -0x1c8(%rbp), %rdi
leaq 0x2189d(%rip), %rsi     # 0x3d9b6
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x7c70
testb $0x1, %al
jne 0x1c137
jmp 0x1c139
jmp 0x1c158
leaq 0x219f9(%rip), %rdi     # 0x3db39
leaq 0x21399(%rip), %rsi     # 0x3d4e0
movl $0x67, %edx
leaq 0x21895(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0xf, %esi
xorl %edx, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c173
jmp 0x1c175
jmp 0x1c194
leaq 0x21584(%rip), %rdi     # 0x3d700
leaq 0x2135d(%rip), %rsi     # 0x3d4e0
movl $0x68, %edx
leaq 0x21859(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x11, %esi
xorl %edx, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c1af
jmp 0x1c1b1
jmp 0x1c1d0
leaq 0x21853(%rip), %rdi     # 0x3da0b
leaq 0x21321(%rip), %rsi     # 0x3d4e0
movl $0x69, %edx
leaq 0x2181d(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x16, %esi
xorl %edx, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c1eb
jmp 0x1c1ed
jmp 0x1c20c
leaq 0x216ec(%rip), %rdi     # 0x3d8e0
leaq 0x212e5(%rip), %rsi     # 0x3d4e0
movl $0x6a, %edx
leaq 0x217e1(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x1b, %esi
xorl %edx, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c227
jmp 0x1c229
jmp 0x1c248
leaq 0x217f5(%rip), %rdi     # 0x3da25
leaq 0x212a9(%rip), %rsi     # 0x3d4e0
movl $0x6b, %edx
leaq 0x217a5(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x22, %esi
xorl %edx, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c263
jmp 0x1c265
jmp 0x1c284
leaq 0x217d3(%rip), %rdi     # 0x3da3f
leaq 0x2126d(%rip), %rsi     # 0x3d4e0
movl $0x6c, %edx
leaq 0x21769(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x23, %esi
movl $0x1, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c2a2
jmp 0x1c2a4
jmp 0x1c2c3
leaq 0x217ae(%rip), %rdi     # 0x3da59
leaq 0x2122e(%rip), %rsi     # 0x3d4e0
movl $0x6d, %edx
leaq 0x2172a(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x2a, %esi
movl $0x1, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c2e1
jmp 0x1c2e3
jmp 0x1c302
leaq 0x21788(%rip), %rdi     # 0x3da72
leaq 0x211ef(%rip), %rsi     # 0x3d4e0
movl $0x6e, %edx
leaq 0x216eb(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x36, %esi
movl $0x1, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c320
jmp 0x1c322
jmp 0x1c341
leaq 0x21762(%rip), %rdi     # 0x3da8b
leaq 0x211b0(%rip), %rsi     # 0x3d4e0
movl $0x6f, %edx
leaq 0x216ac(%rip), %rcx     # 0x3d9e8
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x37, %esi
movl $0x1, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c35f
jmp 0x1c361
jmp 0x1c380
leaq 0x21635(%rip), %rdi     # 0x3d99d
leaq 0x21171(%rip), %rsi     # 0x3d4e0
movl $0x70, %edx
leaq 0x2166d(%rip), %rcx     # 0x3d9e8
callq 0x20c0
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
nopl (%rax)