// File: readmapping[P]alfalfa/src/dp.cpp
// Function: dynProg::print_matrices(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, boundaries const&, bool)
void  dynProg::print_matrices(const string& ref, 
        const string& query, const boundaries& offset, bool gapMatrices )
{
        cout << "        ";
        for( int j = 0; j < L1; j++ )
        {
                cout << ref[ offset.refB+j ] << "   ";
        }
        cout << "\n  ";

        for( int i = 0; i <= L2; i++ )
        {
                if( i > 0 )
                {
                        cout << query[ offset.queryB+i-1 ] << " ";
                }
                for( int j = 0; j <= L1; j++ )
                {
                        cout.width( 3 );
                        cout << M[ i ][ j ] << " ";
                }
                cout << endl;
        }
        cout << endl;
        if(gapMatrices){
            cout << "        ";
            for( int j = 0; j < L1; j++ )
            {
                    cout << ref[ offset.refB+j ] << "   ";
            }
            cout << "\n  ";

            for( int i = 0; i <= L2; i++ )
            {
                    if( i > 0 )
                    {
                            cout << query[ offset.queryB+i-1 ] << " ";
                    }
                    for( int j = 0; j <= L1; j++ )
                    {
                            cout.width( 3 );
                            cout << LEFT[ i ][ j ] << " ";
                    }
                    cout << endl;
            }
            cout << endl;
            cout << "        ";
            for( int j = 0; j < L1; j++ )
            {
                    cout << ref[ offset.refB+j ] << "   ";
            }
            cout << "\n  ";

            for( int i = 0; i <= L2; i++ )
            {
                    if( i > 0 )
                    {
                            cout << query[ offset.queryB+i-1 ] << " ";
                    }
                    for( int j = 0; j <= L1; j++ )
                    {
                            cout.width( 3 );
                            cout << UP[ i ][ j ] << " ";
                    }
                    cout << endl;
            }
            cout << endl;
        }
        cout << "        ";
        for( int j = 0; j < L1; j++ )
        {
                cout << ref[ offset.refB+j ] << "   ";
        }
        cout << "\n  ";

        cout << endl;
}

// Assembly:
subq $0x58, %rsp
movb %r8b, %al
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq %rdx, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
andb $0x1, %al
movb %al, 0x37(%rsp)
movq 0x50(%rsp), %rax
movq %rax, (%rsp)
movq 0x60eb7(%rip), %rdi     # 0x96fc8
leaq 0x47817(%rip), %rsi     # 0x7d92f
callq 0x8360
movl $0x0, 0x30(%rsp)
movq (%rsp), %rcx
movl 0x30(%rsp), %eax
cmpl 0x20(%rcx), %eax
jge 0x36177
movq 0x48(%rsp), %rdi
movq 0x38(%rsp), %rax
movq (%rax), %rsi
movslq 0x30(%rsp), %rax
addq %rax, %rsi
callq 0x8410
movq 0x60e75(%rip), %rdi     # 0x96fc8
movsbl (%rax), %esi
callq 0x8440
movq %rax, %rdi
leaq 0x477cf(%rip), %rsi     # 0x7d934
callq 0x8360
movl 0x30(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x36125
movq 0x60e4a(%rip), %rdi     # 0x96fc8
leaq 0x477b3(%rip), %rsi     # 0x7d938
callq 0x8360
movl $0x0, 0x2c(%rsp)
movq (%rsp), %rcx
movl 0x2c(%rsp), %eax
cmpl 0x24(%rcx), %eax
jg 0x3627b
cmpl $0x0, 0x2c(%rsp)
jle 0x361e4
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rax
movl 0x10(%rax), %eax
addl 0x2c(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x8410
movq 0x60dfb(%rip), %rdi     # 0x96fc8
movsbl (%rax), %esi
callq 0x8440
movq %rax, %rdi
leaq 0x49233(%rip), %rsi     # 0x7f412
callq 0x8360
movl $0x0, 0x28(%rsp)
movq (%rsp), %rcx
movl 0x28(%rsp), %eax
cmpl 0x20(%rcx), %eax
jg 0x36258
movq 0x60dc8(%rip), %rax     # 0x96fc8
movq (%rax), %rax
movq 0x60dbe(%rip), %rdi     # 0x96fc8
addq -0x18(%rax), %rdi
movl $0x3, %esi
callq 0x39030
movq (%rsp), %rax
movq (%rax), %rax
movslq 0x2c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x28(%rsp), %rcx
movl (%rax,%rcx,4), %esi
movq 0x60d91(%rip), %rdi     # 0x96fc8
callq 0x8710
movq %rax, %rdi
leaq 0x491cc(%rip), %rsi     # 0x7f412
callq 0x8360
movl 0x28(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x28(%rsp)
jmp 0x361ec
movq 0x60d69(%rip), %rdi     # 0x96fc8
movq 0x60d4a(%rip), %rsi     # 0x96fb0
callq 0x83b0
movl 0x2c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2c(%rsp)
jmp 0x36192
movq 0x60d46(%rip), %rdi     # 0x96fc8
movq 0x60d27(%rip), %rsi     # 0x96fb0
callq 0x83b0
testb $0x1, 0x37(%rsp)
je 0x365a3
movq 0x60d28(%rip), %rdi     # 0x96fc8
leaq 0x47688(%rip), %rsi     # 0x7d92f
callq 0x8360
movl $0x0, 0x24(%rsp)
movq (%rsp), %rcx
movl 0x24(%rsp), %eax
cmpl 0x20(%rcx), %eax
jge 0x36306
movq 0x48(%rsp), %rdi
movq 0x38(%rsp), %rax
movq (%rax), %rsi
movslq 0x24(%rsp), %rax
addq %rax, %rsi
callq 0x8410
movq 0x60ce6(%rip), %rdi     # 0x96fc8
movsbl (%rax), %esi
callq 0x8440
movq %rax, %rdi
leaq 0x47640(%rip), %rsi     # 0x7d934
callq 0x8360
movl 0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x362b4
movq 0x60cbb(%rip), %rdi     # 0x96fc8
leaq 0x47624(%rip), %rsi     # 0x7d938
callq 0x8360
movl $0x0, 0x20(%rsp)
movq (%rsp), %rcx
movl 0x20(%rsp), %eax
cmpl 0x24(%rcx), %eax
jg 0x3640b
cmpl $0x0, 0x20(%rsp)
jle 0x36373
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rax
movl 0x10(%rax), %eax
addl 0x20(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x8410
movq 0x60c6c(%rip), %rdi     # 0x96fc8
movsbl (%rax), %esi
callq 0x8440
movq %rax, %rdi
leaq 0x490a4(%rip), %rsi     # 0x7f412
callq 0x8360
movl $0x0, 0x1c(%rsp)
movq (%rsp), %rcx
movl 0x1c(%rsp), %eax
cmpl 0x20(%rcx), %eax
jg 0x363e8
movq 0x60c39(%rip), %rax     # 0x96fc8
movq (%rax), %rax
movq 0x60c2f(%rip), %rdi     # 0x96fc8
addq -0x18(%rax), %rdi
movl $0x3, %esi
callq 0x39030
movq (%rsp), %rax
movq 0x10(%rax), %rax
movslq 0x20(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x1c(%rsp), %rcx
movl (%rax,%rcx,4), %esi
movq 0x60c01(%rip), %rdi     # 0x96fc8
callq 0x8710
movq %rax, %rdi
leaq 0x4903c(%rip), %rsi     # 0x7f412
callq 0x8360
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x3637b
movq 0x60bd9(%rip), %rdi     # 0x96fc8
movq 0x60bba(%rip), %rsi     # 0x96fb0
callq 0x83b0
movl 0x20(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x20(%rsp)
jmp 0x36321
movq 0x60bb6(%rip), %rdi     # 0x96fc8
movq 0x60b97(%rip), %rsi     # 0x96fb0
callq 0x83b0
movq 0x60ba3(%rip), %rdi     # 0x96fc8
leaq 0x47503(%rip), %rsi     # 0x7d92f
callq 0x8360
movl $0x0, 0x18(%rsp)
movq (%rsp), %rcx
movl 0x18(%rsp), %eax
cmpl 0x20(%rcx), %eax
jge 0x3648b
movq 0x48(%rsp), %rdi
movq 0x38(%rsp), %rax
movq (%rax), %rsi
movslq 0x18(%rsp), %rax
addq %rax, %rsi
callq 0x8410
movq 0x60b61(%rip), %rdi     # 0x96fc8
movsbl (%rax), %esi
callq 0x8440
movq %rax, %rdi
leaq 0x474bb(%rip), %rsi     # 0x7d934
callq 0x8360
movl 0x18(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x18(%rsp)
jmp 0x36439
movq 0x60b36(%rip), %rdi     # 0x96fc8
leaq 0x4749f(%rip), %rsi     # 0x7d938
callq 0x8360
movl $0x0, 0x14(%rsp)
movq (%rsp), %rcx
movl 0x14(%rsp), %eax
cmpl 0x24(%rcx), %eax
jg 0x36590
cmpl $0x0, 0x14(%rsp)
jle 0x364f8
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rax
movl 0x10(%rax), %eax
addl 0x14(%rsp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x8410
movq 0x60ae7(%rip), %rdi     # 0x96fc8
movsbl (%rax), %esi
callq 0x8440
movq %rax, %rdi
leaq 0x48f1f(%rip), %rsi     # 0x7f412
callq 0x8360
movl $0x0, 0x10(%rsp)
movq (%rsp), %rcx
movl 0x10(%rsp), %eax
cmpl 0x20(%rcx), %eax
jg 0x3656d
movq 0x60ab4(%rip), %rax     # 0x96fc8
movq (%rax), %rax
movq 0x60aaa(%rip), %rdi     # 0x96fc8
addq -0x18(%rax), %rdi
movl $0x3, %esi
callq 0x39030
movq (%rsp), %rax
movq 0x8(%rax), %rax
movslq 0x14(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x10(%rsp), %rcx
movl (%rax,%rcx,4), %esi
movq 0x60a7c(%rip), %rdi     # 0x96fc8
callq 0x8710
movq %rax, %rdi
leaq 0x48eb7(%rip), %rsi     # 0x7f412
callq 0x8360
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0x36500
movq 0x60a54(%rip), %rdi     # 0x96fc8
movq 0x60a35(%rip), %rsi     # 0x96fb0
callq 0x83b0
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x364a6
movq 0x60a31(%rip), %rdi     # 0x96fc8
movq 0x60a12(%rip), %rsi     # 0x96fb0
callq 0x83b0
movq 0x60a1e(%rip), %rdi     # 0x96fc8
leaq 0x4737e(%rip), %rsi     # 0x7d92f
callq 0x8360
movl $0x0, 0xc(%rsp)
movq (%rsp), %rcx
movl 0xc(%rsp), %eax
cmpl 0x20(%rcx), %eax
jge 0x36610
movq 0x48(%rsp), %rdi
movq 0x38(%rsp), %rax
movq (%rax), %rsi
movslq 0xc(%rsp), %rax
addq %rax, %rsi
callq 0x8410
movq 0x609dc(%rip), %rdi     # 0x96fc8
movsbl (%rax), %esi
callq 0x8440
movq %rax, %rdi
leaq 0x47336(%rip), %rsi     # 0x7d934
callq 0x8360
movl 0xc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xc(%rsp)
jmp 0x365be
movq 0x609b1(%rip), %rdi     # 0x96fc8
leaq 0x4731a(%rip), %rsi     # 0x7d938
callq 0x8360
movq 0x6099e(%rip), %rdi     # 0x96fc8
movq 0x6097f(%rip), %rsi     # 0x96fb0
callq 0x83b0
addq $0x58, %rsp
retq
nopl (%rax,%rax)