// File: /workspace/github_cpp_makefile_star2_O1/jswaff[P]prophet3/test/pos__test.cpp
// Function: test_pos_consistency(position*)
bool test_pos_consistency(position *pos) {

    assert(pos);

    // king placement
    square_t wkingsq=NO_SQUARE;
    for (int32 sq=0;sq<64;sq++) {
        if (pos->piece[sq]==KING) {
            wkingsq=(square_t)sq;
            break;
        }
    }
    if (wkingsq != pos->white_king) {
        print("wkingsq: %d, %d\n",wkingsq,pos->white_king);
        return false;
    }

    square_t bkingsq=NO_SQUARE;
    for (int32 sq=0;sq<64;sq++) {
        if (pos->piece[sq]==-KING) {
            bkingsq=(square_t)sq;
            break;
        }
    }
    if (bkingsq != pos->black_king) {
        print("bkingsq: %d, %d\n",bkingsq,pos->black_king);
        return false;
    }

    // ep square
    if (pos->ep_sq!=NO_SQUARE) {
        if (pos->player==BLACK) {
            assert(get_rank(pos->ep_sq)==RANK_3);
            assert(pos->piece[pos->ep_sq-8]==PAWN);
        } else {
            assert(get_rank(pos->ep_sq)==RANK_6);
            assert(pos->piece[pos->ep_sq+8]==-PAWN);
        }
    }

    // piece counts and bitmaps
    uint32 num_wpawns=0,num_wrooks=0,num_wknights=0,num_wbishops=0,num_wqueens=0;
    uint32 num_bpawns=0,num_brooks=0,num_bknights=0,num_bbishops=0,num_bqueens=0;

    uint64 bb_wpawns=0,bb_wrooks=0,bb_wknights=0,bb_wbishops=0,bb_wqueens=0,bb_wpieces=0;
    uint64 bb_bpawns=0,bb_brooks=0,bb_bknights=0,bb_bbishops=0,bb_bqueens=0,bb_bpieces=0;

    for (int32 sq=0;sq<64;sq++) {
        if (pos->piece[sq] > NO_PIECE) {
            bb_wpieces |= bb_squares[sq];
        } else if (pos->piece[sq] < NO_PIECE) {
            bb_bpieces |= bb_squares[sq];
        }

        if (pos->piece[sq]==PAWN) {
            num_wpawns++;
            bb_wpawns |= bb_squares[sq];
        } else if (pos->piece[sq]==-PAWN) {
            num_bpawns++;
            bb_bpawns |= bb_squares[sq];
        } else if (pos->piece[sq]==ROOK) {
            num_wrooks++;
            bb_wrooks |= bb_squares[sq];
        } else if (pos->piece[sq]==-ROOK) {
            num_brooks++;
            bb_brooks |= bb_squares[sq];
        } else if (pos->piece[sq]==KNIGHT) {
            num_wknights++;
            bb_wknights |= bb_squares[sq];
        } else if (pos->piece[sq]==-KNIGHT) {
            num_bknights++;
            bb_bknights |= bb_squares[sq];
        } else if (pos->piece[sq]==BISHOP) {
            num_wbishops++;
            bb_wbishops |= bb_squares[sq];
        } else if (pos->piece[sq]==-BISHOP) {
            num_bbishops++;
            bb_bbishops |= bb_squares[sq];
        } else if (pos->piece[sq]==QUEEN) {
            num_wqueens++;
            bb_wqueens |= bb_squares[sq];
        } else if (pos->piece[sq]==-QUEEN) {
            num_bqueens++;
            bb_bqueens |= bb_squares[sq];
        }
    }

    assert(bb_wpawns==pos->white_pawns);
    assert(get_num_bits(bb_wpawns)==num_wpawns);
    assert(num_wpawns==pos->piece_counts[WHITE][PAWN]);

    assert(bb_bpawns==pos->black_pawns);
    assert(get_num_bits(bb_bpawns)==num_bpawns);
    assert(num_bpawns==pos->piece_counts[BLACK][PAWN]);

    assert(bb_wknights==pos->white_knights);
    assert(get_num_bits(bb_wknights)==num_wknights);
    assert(num_wknights==pos->piece_counts[WHITE][KNIGHT]);

    assert(bb_bknights==pos->black_knights);
    assert(get_num_bits(bb_bknights)==num_bknights);
    assert(num_bknights==pos->piece_counts[BLACK][KNIGHT]);

    assert(bb_wbishops==pos->white_bishops);
    assert(get_num_bits(bb_wbishops)==num_wbishops);
    assert(num_wbishops==pos->piece_counts[WHITE][BISHOP]);

    assert(bb_bbishops==pos->black_bishops);
    assert(get_num_bits(bb_bbishops)==num_bbishops);
    assert(num_bbishops==pos->piece_counts[BLACK][BISHOP]);

    assert(bb_wrooks==pos->white_rooks);
    assert(get_num_bits(bb_wrooks)==num_wrooks);
    assert(num_wrooks==pos->piece_counts[WHITE][ROOK]);

    assert(bb_brooks==pos->black_rooks);
    assert(get_num_bits(bb_brooks)==num_brooks);
    assert(num_brooks==pos->piece_counts[BLACK][ROOK]);

    assert(bb_wqueens==pos->white_queens);
    assert(get_num_bits(bb_wqueens)==num_wqueens);
    assert(num_wqueens==pos->piece_counts[WHITE][QUEEN]);

    assert(bb_bqueens==pos->black_queens);
    assert(get_num_bits(bb_bqueens)==num_bqueens);
    assert(num_bqueens==pos->piece_counts[BLACK][QUEEN]);

    assert(bb_wpieces==pos->white_pieces);
    assert(bb_bpieces==pos->black_pieces);

    // assert casting rights make sense
    if (can_castle_bq(pos)) {
        assert(pos->piece[E8]==-KING);
        assert(pos->piece[A8]==-ROOK);
    }
    if (can_castle_bk(pos)) {
        assert(pos->piece[E8]==-KING);
        assert(pos->piece[H8]==-ROOK);
    }
    if (can_castle_wq(pos)) {
        assert(pos->piece[E1]==KING);
        assert(pos->piece[A1]==ROOK);
    }
    if (can_castle_wk(pos)) {
        assert(pos->piece[E1]==KING);
        assert(pos->piece[H1]==ROOK);
    }

    assert(pos->hash_key==build_hash_key(pos));
    assert(pos->pawn_key==build_pawn_key(pos));

    return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
testq %rdi, %rdi
je 0x23858
movq %rdi, %rbx
xorl %esi, %esi
cmpl $0x6, (%rbx,%rsi,4)
je 0x23384
incq %rsi
cmpq $0x40, %rsi
jne 0x23370
movl $0x40, %esi
movl 0x14c(%rbx), %edx
cmpl %edx, %esi
jne 0x233fe
xorl %esi, %esi
cmpl $-0x6, (%rbx,%rsi,4)
je 0x233a4
incq %rsi
cmpq $0x40, %rsi
jne 0x23390
movl $0x40, %esi
movl 0x150(%rbx), %edx
cmpl %edx, %esi
jne 0x23407
movl 0x13c(%rbx), %edi
cmpl $0x40, %edi
je 0x23437
movl 0x138(%rbx), %ebp
callq 0xca75
testl %ebp, %ebp
je 0x2341c
cmpl $0x2, %eax
jne 0x23d8d
movslq 0x13c(%rbx), %rax
cmpl $-0x1, 0x20(%rbx,%rax,4)
je 0x23437
leaq 0x12c14(%rip), %rdi     # 0x35ffa
leaq 0x1229b(%rip), %rsi     # 0x35688
leaq 0x12b65(%rip), %rcx     # 0x35f59
movl $0x13c, %edx            # imm = 0x13C
callq 0x20d0
leaq 0x12b7a(%rip), %rdi     # 0x35f7f
jmp 0x2340e
leaq 0x12b82(%rip), %rdi     # 0x35f90
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x640d
jmp 0x23847
cmpl $0x5, %eax
jne 0x23dac
movslq 0x13c(%rbx), %rax
cmpl $0x1, -0x20(%rbx,%rax,4)
jne 0x23dcb
xorl %eax, %eax
leaq 0xd7070(%rip), %rcx     # 0xfa4b0
leaq 0x12201(%rip), %rdx     # 0x35648
xorl %r8d, %r8d
xorl %r9d, %r9d
movq $0x0, 0x30(%rsp)
movq $0x0, 0x40(%rsp)
movq $0x0, 0x20(%rsp)
xorl %r13d, %r13d
xorl %r14d, %r14d
xorl %r11d, %r11d
movq $0x0, 0x38(%rsp)
xorl %r12d, %r12d
movq $0x0, 0x28(%rsp)
xorl %edi, %edi
xorl %r10d, %r10d
movl $0x0, 0x10(%rsp)
movl $0x0, 0x18(%rsp)
movl $0x0, 0x8(%rsp)
xorl %r15d, %r15d
movl $0x0, 0x4(%rsp)
movl $0x0, 0x14(%rsp)
movl $0x0, 0x1c(%rsp)
movl $0x0, 0xc(%rsp)
xorl %ebp, %ebp
movl (%rbx,%rax,4), %esi
testl %esi, %esi
jle 0x234d5
orq (%rcx,%rax,8), %r14
jmp 0x234db
jns 0x234db
orq (%rcx,%rax,8), %r8
addl $0x5, %esi
cmpl $0xa, %esi
ja 0x23583
movslq (%rdx,%rsi,4), %rsi
addq %rdx, %rsi
jmpq *%rsi
incl %r10d
orq (%rcx,%rax,8), %r9
jmp 0x23583
incl 0x10(%rsp)
movq 0x30(%rsp), %rsi
orq (%rcx,%rax,8), %rsi
movq %rsi, 0x30(%rsp)
jmp 0x23583
incl %ebp
orq (%rcx,%rax,8), %rdi
jmp 0x23583
incl 0x8(%rsp)
movq 0x20(%rsp), %rsi
orq (%rcx,%rax,8), %rsi
movq %rsi, 0x20(%rsp)
jmp 0x23583
incl 0x1c(%rsp)
orq (%rcx,%rax,8), %r12
jmp 0x23583
incl 0x14(%rsp)
movq 0x38(%rsp), %rsi
orq (%rcx,%rax,8), %rsi
movq %rsi, 0x38(%rsp)
jmp 0x23583
incl 0x18(%rsp)
movq 0x40(%rsp), %rsi
orq (%rcx,%rax,8), %rsi
movq %rsi, 0x40(%rsp)
jmp 0x23583
incl %r15d
orq (%rcx,%rax,8), %r13
jmp 0x23583
incl 0x4(%rsp)
orq (%rcx,%rax,8), %r11
jmp 0x23583
incl 0xc(%rsp)
movq 0x28(%rsp), %rsi
orq (%rcx,%rax,8), %rsi
movq %rsi, 0x28(%rsp)
incq %rax
cmpq $0x40, %rax
jne 0x234c8
movq %r11, 0x60(%rsp)
movl %r10d, 0x4c(%rsp)
movq %r9, 0x58(%rsp)
movq %r8, 0x50(%rsp)
cmpq 0x158(%rbx), %rdi
jne 0x23877
callq 0x3b08
cmpl %ebp, %eax
jne 0x23896
cmpl 0x120(%rbx), %ebp
jne 0x238b5
cmpq 0x160(%rbx), %r13
jne 0x238d4
movq %r13, %rdi
callq 0x3b08
cmpl %r15d, %eax
jne 0x238f3
cmpl 0x104(%rbx), %r15d
jne 0x23912
cmpq 0x168(%rbx), %r12
jne 0x23931
movq %r12, %rdi
callq 0x3b08
movl 0x1c(%rsp), %ecx
cmpl %ecx, %eax
jne 0x23950
cmpl 0x124(%rbx), %ecx
movq 0x40(%rsp), %rdi
jne 0x2396f
cmpq 0x170(%rbx), %rdi
jne 0x2398e
callq 0x3b08
movl 0x18(%rsp), %ecx
cmpl %ecx, %eax
jne 0x239ad
cmpl 0x108(%rbx), %ecx
movq 0x38(%rsp), %rdi
jne 0x239cc
cmpq 0x178(%rbx), %rdi
jne 0x239eb
callq 0x3b08
movl 0x14(%rsp), %ecx
cmpl %ecx, %eax
jne 0x23a0a
cmpl 0x128(%rbx), %ecx
movq 0x30(%rsp), %rdi
jne 0x23a29
cmpq 0x180(%rbx), %rdi
jne 0x23a48
callq 0x3b08
movl 0x10(%rsp), %ecx
cmpl %ecx, %eax
jne 0x23a67
cmpl 0x10c(%rbx), %ecx
movq 0x28(%rsp), %rdi
jne 0x23a86
cmpq 0x188(%rbx), %rdi
jne 0x23aa5
callq 0x3b08
movl 0xc(%rsp), %ecx
cmpl %ecx, %eax
jne 0x23ac4
cmpl 0x12c(%rbx), %ecx
movq 0x20(%rsp), %rdi
jne 0x23ae3
cmpq 0x190(%rbx), %rdi
jne 0x23b02
callq 0x3b08
movl 0x8(%rsp), %ecx
cmpl %ecx, %eax
jne 0x23b21
cmpl 0x110(%rbx), %ecx
movq 0x60(%rsp), %rdi
jne 0x23b40
cmpq 0x198(%rbx), %rdi
jne 0x23b5f
callq 0x3b08
movl 0x4(%rsp), %ecx
cmpl %ecx, %eax
jne 0x23b7e
cmpl 0x130(%rbx), %ecx
movq 0x58(%rsp), %rdi
jne 0x23b9d
cmpq 0x1a0(%rbx), %rdi
jne 0x23bbc
callq 0x3b08
movl 0x4c(%rsp), %ecx
cmpl %ecx, %eax
jne 0x23bdb
cmpl 0x114(%rbx), %ecx
movq 0x50(%rsp), %rax
jne 0x23bfa
cmpq 0x1a8(%rbx), %r14
jne 0x23c19
cmpq 0x1b0(%rbx), %rax
jne 0x23c38
movq %rbx, %rdi
callq 0xa986
testb %al, %al
je 0x237a9
cmpl $-0x6, 0x10(%rbx)
jne 0x23c95
cmpl $-0x4, (%rbx)
jne 0x23cb4
movq %rbx, %rdi
callq 0xa97a
testb %al, %al
je 0x237c9
cmpl $-0x6, 0x10(%rbx)
jne 0x23cd3
cmpl $-0x4, 0x1c(%rbx)
jne 0x23cf2
movq %rbx, %rdi
callq 0xa96f
testb %al, %al
je 0x237ef
cmpl $0x6, 0xf0(%rbx)
jne 0x23d11
cmpl $0x4, 0xe0(%rbx)
jne 0x23d30
movq %rbx, %rdi
callq 0xa966
testb %al, %al
je 0x23815
cmpl $0x6, 0xf0(%rbx)
jne 0x23d4f
cmpl $0x4, 0xfc(%rbx)
jne 0x23d6e
movq 0x1b8(%rbx), %r14
movq %rbx, %rdi
callq 0x5e40
cmpq %rax, %r14
jne 0x23c57
movq 0x1c0(%rbx), %r14
movq %rbx, %rdi
callq 0x5f0f
movb $0x1, %bl
cmpq %rax, %r14
jne 0x23c76
movl %ebx, %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5ce2(%rip), %rdi      # 0x29541
leaq 0x11e22(%rip), %rsi     # 0x35688
leaq 0x126ec(%rip), %rcx     # 0x35f59
movl $0x11a, %edx            # imm = 0x11A
callq 0x20d0
leaq 0x1279c(%rip), %rdi     # 0x3601a
leaq 0x11e03(%rip), %rsi     # 0x35688
leaq 0x126cd(%rip), %rcx     # 0x35f59
movl $0x16f, %edx            # imm = 0x16F
callq 0x20d0
leaq 0x12799(%rip), %rdi     # 0x36036
leaq 0x11de4(%rip), %rsi     # 0x35688
leaq 0x126ae(%rip), %rcx     # 0x35f59
movl $0x170, %edx            # imm = 0x170
callq 0x20d0
leaq 0x1279e(%rip), %rdi     # 0x3605a
leaq 0x11dc5(%rip), %rsi     # 0x35688
leaq 0x1268f(%rip), %rcx     # 0x35f59
movl $0x171, %edx            # imm = 0x171
callq 0x20d0
leaq 0x127aa(%rip), %rdi     # 0x36085
leaq 0x11da6(%rip), %rsi     # 0x35688
leaq 0x12670(%rip), %rcx     # 0x35f59
movl $0x173, %edx            # imm = 0x173
callq 0x20d0
leaq 0x127a7(%rip), %rdi     # 0x360a1
leaq 0x11d87(%rip), %rsi     # 0x35688
leaq 0x12651(%rip), %rcx     # 0x35f59
movl $0x174, %edx            # imm = 0x174
callq 0x20d0
leaq 0x127ac(%rip), %rdi     # 0x360c5
leaq 0x11d68(%rip), %rsi     # 0x35688
leaq 0x12632(%rip), %rcx     # 0x35f59
movl $0x175, %edx            # imm = 0x175
callq 0x20d0
leaq 0x127b8(%rip), %rdi     # 0x360f0
leaq 0x11d49(%rip), %rsi     # 0x35688
leaq 0x12613(%rip), %rcx     # 0x35f59
movl $0x177, %edx            # imm = 0x177
callq 0x20d0
leaq 0x127b9(%rip), %rdi     # 0x36110
leaq 0x11d2a(%rip), %rsi     # 0x35688
leaq 0x125f4(%rip), %rcx     # 0x35f59
movl $0x178, %edx            # imm = 0x178
callq 0x20d0
leaq 0x127c2(%rip), %rdi     # 0x36138
leaq 0x11d0b(%rip), %rsi     # 0x35688
leaq 0x125d5(%rip), %rcx     # 0x35f59
movl $0x179, %edx            # imm = 0x179
callq 0x20d0
leaq 0x127d2(%rip), %rdi     # 0x36167
leaq 0x11cec(%rip), %rsi     # 0x35688
leaq 0x125b6(%rip), %rcx     # 0x35f59
movl $0x17b, %edx            # imm = 0x17B
callq 0x20d0
leaq 0x127d3(%rip), %rdi     # 0x36187
leaq 0x11ccd(%rip), %rsi     # 0x35688
leaq 0x12597(%rip), %rcx     # 0x35f59
movl $0x17c, %edx            # imm = 0x17C
callq 0x20d0
leaq 0x127dc(%rip), %rdi     # 0x361af
leaq 0x11cae(%rip), %rsi     # 0x35688
leaq 0x12578(%rip), %rcx     # 0x35f59
movl $0x17d, %edx            # imm = 0x17D
callq 0x20d0
leaq 0x127ec(%rip), %rdi     # 0x361de
leaq 0x11c8f(%rip), %rsi     # 0x35688
leaq 0x12559(%rip), %rcx     # 0x35f59
movl $0x17f, %edx            # imm = 0x17F
callq 0x20d0
leaq 0x127ed(%rip), %rdi     # 0x361fe
leaq 0x11c70(%rip), %rsi     # 0x35688
leaq 0x1253a(%rip), %rcx     # 0x35f59
movl $0x180, %edx            # imm = 0x180
callq 0x20d0
leaq 0x127f6(%rip), %rdi     # 0x36226
leaq 0x11c51(%rip), %rsi     # 0x35688
leaq 0x1251b(%rip), %rcx     # 0x35f59
movl $0x181, %edx            # imm = 0x181
callq 0x20d0
leaq 0x12806(%rip), %rdi     # 0x36255
leaq 0x11c32(%rip), %rsi     # 0x35688
leaq 0x124fc(%rip), %rcx     # 0x35f59
movl $0x183, %edx            # imm = 0x183
callq 0x20d0
leaq 0x12807(%rip), %rdi     # 0x36275
leaq 0x11c13(%rip), %rsi     # 0x35688
leaq 0x124dd(%rip), %rcx     # 0x35f59
movl $0x184, %edx            # imm = 0x184
callq 0x20d0
leaq 0x12810(%rip), %rdi     # 0x3629d
leaq 0x11bf4(%rip), %rsi     # 0x35688
leaq 0x124be(%rip), %rcx     # 0x35f59
movl $0x185, %edx            # imm = 0x185
callq 0x20d0
leaq 0x12820(%rip), %rdi     # 0x362cc
leaq 0x11bd5(%rip), %rsi     # 0x35688
leaq 0x1249f(%rip), %rcx     # 0x35f59
movl $0x187, %edx            # imm = 0x187
callq 0x20d0
leaq 0x1281d(%rip), %rdi     # 0x362e8
leaq 0x11bb6(%rip), %rsi     # 0x35688
leaq 0x12480(%rip), %rcx     # 0x35f59
movl $0x188, %edx            # imm = 0x188
callq 0x20d0
leaq 0x12822(%rip), %rdi     # 0x3630c
leaq 0x11b97(%rip), %rsi     # 0x35688
leaq 0x12461(%rip), %rcx     # 0x35f59
movl $0x189, %edx            # imm = 0x189
callq 0x20d0
leaq 0x1282e(%rip), %rdi     # 0x36337
leaq 0x11b78(%rip), %rsi     # 0x35688
leaq 0x12442(%rip), %rcx     # 0x35f59
movl $0x18b, %edx            # imm = 0x18B
callq 0x20d0
leaq 0x1282b(%rip), %rdi     # 0x36353
leaq 0x11b59(%rip), %rsi     # 0x35688
leaq 0x12423(%rip), %rcx     # 0x35f59
movl $0x18c, %edx            # imm = 0x18C
callq 0x20d0
leaq 0x12830(%rip), %rdi     # 0x36377
leaq 0x11b3a(%rip), %rsi     # 0x35688
leaq 0x12404(%rip), %rcx     # 0x35f59
movl $0x18d, %edx            # imm = 0x18D
callq 0x20d0
leaq 0x1283c(%rip), %rdi     # 0x363a2
leaq 0x11b1b(%rip), %rsi     # 0x35688
leaq 0x123e5(%rip), %rcx     # 0x35f59
movl $0x18f, %edx            # imm = 0x18F
callq 0x20d0
leaq 0x1283b(%rip), %rdi     # 0x363c0
leaq 0x11afc(%rip), %rsi     # 0x35688
leaq 0x123c6(%rip), %rcx     # 0x35f59
movl $0x190, %edx            # imm = 0x190
callq 0x20d0
leaq 0x12842(%rip), %rdi     # 0x363e6
leaq 0x11add(%rip), %rsi     # 0x35688
leaq 0x123a7(%rip), %rcx     # 0x35f59
movl $0x191, %edx            # imm = 0x191
callq 0x20d0
leaq 0x12850(%rip), %rdi     # 0x36413
leaq 0x11abe(%rip), %rsi     # 0x35688
leaq 0x12388(%rip), %rcx     # 0x35f59
movl $0x193, %edx            # imm = 0x193
callq 0x20d0
leaq 0x1284f(%rip), %rdi     # 0x36431
leaq 0x11a9f(%rip), %rsi     # 0x35688
leaq 0x12369(%rip), %rcx     # 0x35f59
movl $0x194, %edx            # imm = 0x194
callq 0x20d0
leaq 0x12856(%rip), %rdi     # 0x36457
leaq 0x11a80(%rip), %rsi     # 0x35688
leaq 0x1234a(%rip), %rcx     # 0x35f59
movl $0x195, %edx            # imm = 0x195
callq 0x20d0
leaq 0x12864(%rip), %rdi     # 0x36484
leaq 0x11a61(%rip), %rsi     # 0x35688
leaq 0x1232b(%rip), %rcx     # 0x35f59
movl $0x197, %edx            # imm = 0x197
callq 0x20d0
leaq 0x12863(%rip), %rdi     # 0x364a2
leaq 0x11a42(%rip), %rsi     # 0x35688
leaq 0x1230c(%rip), %rcx     # 0x35f59
movl $0x198, %edx            # imm = 0x198
callq 0x20d0
leaq 0x59cc(%rip), %rdi      # 0x2962a
leaq 0x11a23(%rip), %rsi     # 0x35688
leaq 0x122ed(%rip), %rcx     # 0x35f59
movl $0x1ac, %edx            # imm = 0x1AC
callq 0x20d0
leaq 0x128c4(%rip), %rdi     # 0x36541
leaq 0x11a04(%rip), %rsi     # 0x35688
leaq 0x122ce(%rip), %rcx     # 0x35f59
movl $0x1ad, %edx            # imm = 0x1AD
callq 0x20d0
leaq 0x12824(%rip), %rdi     # 0x364c0
leaq 0x119e5(%rip), %rsi     # 0x35688
leaq 0x122af(%rip), %rcx     # 0x35f59
movl $0x19c, %edx            # imm = 0x19C
callq 0x20d0
leaq 0x1281b(%rip), %rdi     # 0x364d6
leaq 0x119c6(%rip), %rsi     # 0x35688
leaq 0x12290(%rip), %rcx     # 0x35f59
movl $0x19d, %edx            # imm = 0x19D
callq 0x20d0
leaq 0x127e6(%rip), %rdi     # 0x364c0
leaq 0x119a7(%rip), %rsi     # 0x35688
leaq 0x12271(%rip), %rcx     # 0x35f59
movl $0x1a0, %edx            # imm = 0x1A0
callq 0x20d0
leaq 0x127f3(%rip), %rdi     # 0x364ec
leaq 0x11988(%rip), %rsi     # 0x35688
leaq 0x12252(%rip), %rcx     # 0x35f59
movl $0x1a1, %edx            # imm = 0x1A1
callq 0x20d0
leaq 0x127ea(%rip), %rdi     # 0x36502
leaq 0x11969(%rip), %rsi     # 0x35688
leaq 0x12233(%rip), %rcx     # 0x35f59
movl $0x1a4, %edx            # imm = 0x1A4
callq 0x20d0
leaq 0x127e0(%rip), %rdi     # 0x36517
leaq 0x1194a(%rip), %rsi     # 0x35688
leaq 0x12214(%rip), %rcx     # 0x35f59
movl $0x1a5, %edx            # imm = 0x1A5
callq 0x20d0
leaq 0x127ac(%rip), %rdi     # 0x36502
leaq 0x1192b(%rip), %rsi     # 0x35688
leaq 0x121f5(%rip), %rcx     # 0x35f59
movl $0x1a8, %edx            # imm = 0x1A8
callq 0x20d0
leaq 0x127b7(%rip), %rdi     # 0x3652c
leaq 0x1190c(%rip), %rsi     # 0x35688
leaq 0x121d6(%rip), %rcx     # 0x35f59
movl $0x1a9, %edx            # imm = 0x1A9
callq 0x20d0
leaq 0x12249(%rip), %rdi     # 0x35fdd
leaq 0x118ed(%rip), %rsi     # 0x35688
leaq 0x121b7(%rip), %rcx     # 0x35f59
movl $0x13b, %edx            # imm = 0x13B
callq 0x20d0
leaq 0x121ee(%rip), %rdi     # 0x35fa1
leaq 0x118ce(%rip), %rsi     # 0x35688
leaq 0x12198(%rip), %rcx     # 0x35f59
movl $0x138, %edx            # imm = 0x138
callq 0x20d0
leaq 0x121ec(%rip), %rdi     # 0x35fbe
leaq 0x118af(%rip), %rsi     # 0x35688
leaq 0x12179(%rip), %rcx     # 0x35f59
movl $0x139, %edx            # imm = 0x139
callq 0x20d0