// File: jswaff[P]prophet3/test/next__test.cpp
// Function: test_winning_caps_before_noncaps()
void test_winning_caps_before_noncaps() {
    position pos;
    set_pos(&pos,"5b2/p4PPk/1p6/8/K7/1R6/1p6/8 w - -");
    move moves[MAX_MOVES_PER_PLY];
    move *endp = gen_legal_moves(moves,&pos,true,true);

    move b3f3 = to_move(ROOK,B3,F3);
    move b3a3 = to_move(ROOK,B3,A3);
    move b3c3 = to_move(ROOK,B3,C3);

    assert(is_in_move_list(b3f3,moves,endp));
    assert(is_in_move_list(b3a3,moves,endp));
    assert(is_in_move_list(b3c3,moves,endp));

    //// capturing promotions
    move g7f8q = to_capture(PAWN,G7,F8,BISHOP);
    set_promopiece(&g7f8q,QUEEN);

    move g7f8r = to_capture(PAWN,G7,F8,BISHOP);
    set_promopiece(&g7f8r,ROOK);

    move g7f8b = to_capture(PAWN,G7,F8,BISHOP);
    set_promopiece(&g7f8b,BISHOP);

    move g7f8n = to_capture(PAWN,G7,F8,BISHOP);
    set_promopiece(&g7f8n,KNIGHT);

    assert(is_in_move_list(g7f8q,moves,endp));
    assert(is_in_move_list(g7f8r,moves,endp));
    assert(is_in_move_list(g7f8b,moves,endp));
    assert(is_in_move_list(g7f8n,moves,endp));

    /// non-capturing promotions
    move g7g8q = to_move(PAWN,G7,G8);
    set_promopiece(&g7g8q,QUEEN);

    move g7g8r = to_move(PAWN,G7,G8);
    set_promopiece(&g7g8r,ROOK);

    move g7g8b = to_move(PAWN,G7,G8);
    set_promopiece(&g7g8b,BISHOP);

    move g7g8n = to_move(PAWN,G7,G8);
    set_promopiece(&g7g8n,KNIGHT);

    assert(is_in_move_list(g7g8q,moves,endp));
    assert(is_in_move_list(g7g8r,moves,endp));
    assert(is_in_move_list(g7g8b,moves,endp));
    assert(is_in_move_list(g7g8n,moves,endp));

    ///
    move b3b6 = to_capture(ROOK,B3,B6,PAWN);
    move b3b2 = to_capture(ROOK,B3,B2,PAWN);

    assert(is_in_move_list(b3b6,moves,endp));
    assert(is_in_move_list(b3b2,moves,endp));

    /////////

    move_order_dto mo_dto;
    mo_dto.startp = mo_dto.currentp = mo_dto.endp = moves;
    mo_dto.pv_move = b3f3;
    mo_dto.hash_move = b3a3;
    mo_dto.killer1 = b3f3;
    mo_dto.killer2 = b3c3;
    mo_dto.next_stage = PVMOVE;

    move *nextp;
    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==b3f3);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==b3a3);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==g7f8q);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==g7f8r);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==g7f8b);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==g7f8n);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==g7g8q);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==g7g8r);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==g7g8b);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==g7g8n);

    ///////////////
    // in MVV/LVA
    // these two moves are interchangeable
    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==b3b2);

    assert(next(&pos,&nextp,&mo_dto));
    assert(clear_score(*nextp)==b3b6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xbf0, %rsp            # imm = 0xBF0
leaq -0x1c8(%rbp), %rdi
leaq 0x16ff9(%rip), %rsi     # 0x41642
callq 0xf3e0
leaq -0xb30(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
movl $0x1, %ecx
movl %ecx, %edx
callq 0xac70
movq %rax, -0xb38(%rbp)
movl $0x4, %edi
movl $0x29, %esi
movl $0x2d, %edx
callq 0xa830
movq %rax, -0xb40(%rbp)
movl $0x4, %edi
movl $0x29, %esi
movl $0x28, %edx
callq 0xa830
movq %rax, -0xb48(%rbp)
movl $0x4, %edi
movl $0x29, %esi
movl $0x2a, %edx
callq 0xa830
movq %rax, -0xb50(%rbp)
movq -0xb40(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2a6e0
jmp 0x2a6e2
jmp 0x2a701
leaq 0x16f7c(%rip), %rdi     # 0x41665
leaq 0x16b5a(%rip), %rsi     # 0x4124a
movl $0x10a, %edx            # imm = 0x10A
leaq 0x16f8a(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xb48(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2a721
jmp 0x2a723
jmp 0x2a742
leaq 0x16f84(%rip), %rdi     # 0x416ae
leaq 0x16b19(%rip), %rsi     # 0x4124a
movl $0x10b, %edx            # imm = 0x10B
leaq 0x16f49(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xb50(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2a762
jmp 0x2a764
jmp 0x2a783
leaq 0x16f64(%rip), %rdi     # 0x416cf
leaq 0x16ad8(%rip), %rsi     # 0x4124a
movl $0x10c, %edx            # imm = 0x10C
leaq 0x16f08(%rip), %rcx     # 0x41686
callq 0x20c0
movl $0x1, %edi
movl $0xe, %esi
movl $0x5, %edx
movl $0x3, %ecx
callq 0xa890
movq %rax, -0xb58(%rbp)
leaq -0xb58(%rbp), %rdi
movl $0x5, %esi
callq 0xa9e0
movl $0x1, %edi
movl $0xe, %esi
movl $0x5, %edx
movl $0x3, %ecx
callq 0xa890
movq %rax, -0xb60(%rbp)
leaq -0xb60(%rbp), %rdi
movl $0x4, %esi
callq 0xa9e0
movl $0x1, %edi
movl $0xe, %esi
movl $0x5, %edx
movl $0x3, %ecx
callq 0xa890
movq %rax, -0xb68(%rbp)
leaq -0xb68(%rbp), %rdi
movl $0x3, %esi
callq 0xa9e0
movl $0x1, %edi
movl $0xe, %esi
movl $0x5, %edx
movl $0x3, %ecx
callq 0xa890
movq %rax, -0xb70(%rbp)
leaq -0xb70(%rbp), %rdi
movl $0x2, %esi
callq 0xa9e0
movq -0xb58(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2a867
jmp 0x2a869
jmp 0x2a888
leaq 0x16e80(%rip), %rdi     # 0x416f0
leaq 0x169d3(%rip), %rsi     # 0x4124a
movl $0x11b, %edx            # imm = 0x11B
leaq 0x16e03(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xb60(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2a8a8
jmp 0x2a8aa
jmp 0x2a8c9
leaq 0x16e61(%rip), %rdi     # 0x41712
leaq 0x16992(%rip), %rsi     # 0x4124a
movl $0x11c, %edx            # imm = 0x11C
leaq 0x16dc2(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xb68(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2a8e9
jmp 0x2a8eb
jmp 0x2a90a
leaq 0x16e42(%rip), %rdi     # 0x41734
leaq 0x16951(%rip), %rsi     # 0x4124a
movl $0x11d, %edx            # imm = 0x11D
leaq 0x16d81(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xb70(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2a92a
jmp 0x2a92c
jmp 0x2a94b
leaq 0x16e23(%rip), %rdi     # 0x41756
leaq 0x16910(%rip), %rsi     # 0x4124a
movl $0x11e, %edx            # imm = 0x11E
leaq 0x16d40(%rip), %rcx     # 0x41686
callq 0x20c0
movl $0x1, %edi
movl $0xe, %esi
movl $0x6, %edx
callq 0xa830
movq %rax, -0xb78(%rbp)
leaq -0xb78(%rbp), %rdi
movl $0x5, %esi
callq 0xa9e0
movl $0x1, %edi
movl $0xe, %esi
movl $0x6, %edx
callq 0xa830
movq %rax, -0xb80(%rbp)
leaq -0xb80(%rbp), %rdi
movl $0x4, %esi
callq 0xa9e0
movl $0x1, %edi
movl $0xe, %esi
movl $0x6, %edx
callq 0xa830
movq %rax, -0xb88(%rbp)
leaq -0xb88(%rbp), %rdi
movl $0x3, %esi
callq 0xa9e0
movl $0x1, %edi
movl $0xe, %esi
movl $0x6, %edx
callq 0xa830
movq %rax, -0xb90(%rbp)
leaq -0xb90(%rbp), %rdi
movl $0x2, %esi
callq 0xa9e0
movq -0xb78(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2aa1b
jmp 0x2aa1d
jmp 0x2aa3c
leaq 0x16d54(%rip), %rdi     # 0x41778
leaq 0x1681f(%rip), %rsi     # 0x4124a
movl $0x12d, %edx            # imm = 0x12D
leaq 0x16c4f(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xb80(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2aa5c
jmp 0x2aa5e
jmp 0x2aa7d
leaq 0x16d35(%rip), %rdi     # 0x4179a
leaq 0x167de(%rip), %rsi     # 0x4124a
movl $0x12e, %edx            # imm = 0x12E
leaq 0x16c0e(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xb88(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2aa9d
jmp 0x2aa9f
jmp 0x2aabe
leaq 0x16d16(%rip), %rdi     # 0x417bc
leaq 0x1679d(%rip), %rsi     # 0x4124a
movl $0x12f, %edx            # imm = 0x12F
leaq 0x16bcd(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xb90(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2aade
jmp 0x2aae0
jmp 0x2aaff
leaq 0x16cf7(%rip), %rdi     # 0x417de
leaq 0x1675c(%rip), %rsi     # 0x4124a
movl $0x130, %edx            # imm = 0x130
leaq 0x16b8c(%rip), %rcx     # 0x41686
callq 0x20c0
movl $0x4, %edi
movl $0x29, %esi
movl $0x11, %edx
movl $0x1, %ecx
callq 0xa890
movq %rax, -0xb98(%rbp)
movl $0x4, %edi
movl $0x29, %esi
movl $0x31, %edx
movl $0x1, %ecx
callq 0xa890
movq %rax, -0xba0(%rbp)
movq -0xb98(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2ab5f
jmp 0x2ab61
jmp 0x2ab80
leaq 0x16c98(%rip), %rdi     # 0x41800
leaq 0x166db(%rip), %rsi     # 0x4124a
movl $0x136, %edx            # imm = 0x136
leaq 0x16b0b(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xba0(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
movq -0xb38(%rbp), %rdx
callq 0x14c10
testb $0x1, %al
jne 0x2aba0
jmp 0x2aba2
jmp 0x2abc1
leaq 0x16c78(%rip), %rdi     # 0x41821
leaq 0x1669a(%rip), %rsi     # 0x4124a
movl $0x137, %edx            # imm = 0x137
leaq 0x16aca(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0xb30(%rbp), %rax
movq %rax, -0xbb0(%rbp)
movq %rax, -0xba8(%rbp)
movq %rax, -0xbb8(%rbp)
movq -0xb40(%rbp), %rax
movq %rax, -0xbd8(%rbp)
movq -0xb48(%rbp), %rax
movq %rax, -0xbd0(%rbp)
movq -0xb40(%rbp), %rax
movq %rax, -0xbc8(%rbp)
movq -0xb50(%rbp), %rax
movq %rax, -0xbc0(%rbp)
movl $0x0, -0xbe0(%rbp)
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2ac3f
jmp 0x2ac41
jmp 0x2ac60
leaq 0x16890(%rip), %rdi     # 0x414d8
leaq 0x165fb(%rip), %rsi     # 0x4124a
movl $0x144, %edx            # imm = 0x144
leaq 0x16a2b(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb40(%rbp), %rax
jne 0x2ac7a
jmp 0x2ac99
leaq 0x16bc1(%rip), %rdi     # 0x41842
leaq 0x165c2(%rip), %rsi     # 0x4124a
movl $0x145, %edx            # imm = 0x145
leaq 0x169f2(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2acb9
jmp 0x2acbb
jmp 0x2acda
leaq 0x16816(%rip), %rdi     # 0x414d8
leaq 0x16581(%rip), %rsi     # 0x4124a
movl $0x147, %edx            # imm = 0x147
leaq 0x169b1(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb48(%rbp), %rax
jne 0x2acf4
jmp 0x2ad13
leaq 0x16b61(%rip), %rdi     # 0x4185c
leaq 0x16548(%rip), %rsi     # 0x4124a
movl $0x148, %edx            # imm = 0x148
leaq 0x16978(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2ad33
jmp 0x2ad35
jmp 0x2ad54
leaq 0x1679c(%rip), %rdi     # 0x414d8
leaq 0x16507(%rip), %rsi     # 0x4124a
movl $0x14a, %edx            # imm = 0x14A
leaq 0x16937(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb58(%rbp), %rax
jne 0x2ad6e
jmp 0x2ad8d
leaq 0x16b01(%rip), %rdi     # 0x41876
leaq 0x164ce(%rip), %rsi     # 0x4124a
movl $0x14b, %edx            # imm = 0x14B
leaq 0x168fe(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2adad
jmp 0x2adaf
jmp 0x2adce
leaq 0x16722(%rip), %rdi     # 0x414d8
leaq 0x1648d(%rip), %rsi     # 0x4124a
movl $0x14d, %edx            # imm = 0x14D
leaq 0x168bd(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb60(%rbp), %rax
jne 0x2ade8
jmp 0x2ae07
leaq 0x16aa2(%rip), %rdi     # 0x41891
leaq 0x16454(%rip), %rsi     # 0x4124a
movl $0x14e, %edx            # imm = 0x14E
leaq 0x16884(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2ae27
jmp 0x2ae29
jmp 0x2ae48
leaq 0x166a8(%rip), %rdi     # 0x414d8
leaq 0x16413(%rip), %rsi     # 0x4124a
movl $0x150, %edx            # imm = 0x150
leaq 0x16843(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb68(%rbp), %rax
jne 0x2ae62
jmp 0x2ae81
leaq 0x16a43(%rip), %rdi     # 0x418ac
leaq 0x163da(%rip), %rsi     # 0x4124a
movl $0x151, %edx            # imm = 0x151
leaq 0x1680a(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2aea1
jmp 0x2aea3
jmp 0x2aec2
leaq 0x1662e(%rip), %rdi     # 0x414d8
leaq 0x16399(%rip), %rsi     # 0x4124a
movl $0x153, %edx            # imm = 0x153
leaq 0x167c9(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb70(%rbp), %rax
jne 0x2aedc
jmp 0x2aefb
leaq 0x169e4(%rip), %rdi     # 0x418c7
leaq 0x16360(%rip), %rsi     # 0x4124a
movl $0x154, %edx            # imm = 0x154
leaq 0x16790(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2af1b
jmp 0x2af1d
jmp 0x2af3c
leaq 0x165b4(%rip), %rdi     # 0x414d8
leaq 0x1631f(%rip), %rsi     # 0x4124a
movl $0x156, %edx            # imm = 0x156
leaq 0x1674f(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb78(%rbp), %rax
jne 0x2af56
jmp 0x2af75
leaq 0x16985(%rip), %rdi     # 0x418e2
leaq 0x162e6(%rip), %rsi     # 0x4124a
movl $0x157, %edx            # imm = 0x157
leaq 0x16716(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2af95
jmp 0x2af97
jmp 0x2afb6
leaq 0x1653a(%rip), %rdi     # 0x414d8
leaq 0x162a5(%rip), %rsi     # 0x4124a
movl $0x159, %edx            # imm = 0x159
leaq 0x166d5(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb80(%rbp), %rax
jne 0x2afd0
jmp 0x2afef
leaq 0x16926(%rip), %rdi     # 0x418fd
leaq 0x1626c(%rip), %rsi     # 0x4124a
movl $0x15a, %edx            # imm = 0x15A
leaq 0x1669c(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2b00f
jmp 0x2b011
jmp 0x2b030
leaq 0x164c0(%rip), %rdi     # 0x414d8
leaq 0x1622b(%rip), %rsi     # 0x4124a
movl $0x15c, %edx            # imm = 0x15C
leaq 0x1665b(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb88(%rbp), %rax
jne 0x2b04a
jmp 0x2b069
leaq 0x168c7(%rip), %rdi     # 0x41918
leaq 0x161f2(%rip), %rsi     # 0x4124a
movl $0x15d, %edx            # imm = 0x15D
leaq 0x16622(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2b089
jmp 0x2b08b
jmp 0x2b0aa
leaq 0x16446(%rip), %rdi     # 0x414d8
leaq 0x161b1(%rip), %rsi     # 0x4124a
movl $0x15f, %edx            # imm = 0x15F
leaq 0x165e1(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb90(%rbp), %rax
jne 0x2b0c4
jmp 0x2b0e3
leaq 0x16868(%rip), %rdi     # 0x41933
leaq 0x16178(%rip), %rsi     # 0x4124a
movl $0x160, %edx            # imm = 0x160
leaq 0x165a8(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2b103
jmp 0x2b105
jmp 0x2b124
leaq 0x163cc(%rip), %rdi     # 0x414d8
leaq 0x16137(%rip), %rsi     # 0x4124a
movl $0x165, %edx            # imm = 0x165
leaq 0x16567(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xba0(%rbp), %rax
jne 0x2b13e
jmp 0x2b15d
leaq 0x16809(%rip), %rdi     # 0x4194e
leaq 0x160fe(%rip), %rsi     # 0x4124a
movl $0x166, %edx            # imm = 0x166
leaq 0x1652e(%rip), %rcx     # 0x41686
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
leaq -0xbe8(%rbp), %rsi
leaq -0xbe0(%rbp), %rdx
callq 0xc670
testb $0x1, %al
jne 0x2b17d
jmp 0x2b17f
jmp 0x2b19e
leaq 0x16352(%rip), %rdi     # 0x414d8
leaq 0x160bd(%rip), %rsi     # 0x4124a
movl $0x168, %edx            # imm = 0x168
leaq 0x164ed(%rip), %rcx     # 0x41686
callq 0x20c0
movq -0xbe8(%rbp), %rax
movq (%rax), %rdi
callq 0xac50
cmpq -0xb98(%rbp), %rax
jne 0x2b1b8
jmp 0x2b1d7
leaq 0x167a9(%rip), %rdi     # 0x41968
leaq 0x16084(%rip), %rsi     # 0x4124a
movl $0x169, %edx            # imm = 0x169
leaq 0x164b4(%rip), %rcx     # 0x41686
callq 0x20c0
addq $0xbf0, %rsp            # imm = 0xBF0
popq %rbp
retq