// File: /workspace/github_cpp_makefile_star2_O1/davidjosepha[P]slitherlink/src/shared/export.cpp
// Function: Export::print() const
void Export::print() const {
    int m = lattice_->getHeight();
    int n = lattice_->getWidth();

    for (int i = 1; i < m-1; i++) {
        /* print points/lines/Xs/nothing above the row of numbers */
        for (int j = 1; j < n-1; j++) {
            std::cout << POINT;
            std::cout << ' ';
            std::cout << formatHLine(i, j);
            std::cout << ' ';
        }
        std::cout << POINT << std::endl;

        /* print row of numbers */
        for (int j = 1; j < n-1; j++) {
            /* print line/x/nothing to the left of number */
            std::cout << formatVLine(i, j);
            std::cout << ' ';
            /* print number */
            std::cout << formatNumber(i, j);
            std::cout << ' ';
        }
        /* print line/x/nothing to the right of last number */
        std::cout << formatVLine(i, n-1) << std::endl;
    }

    /* print lines/Xs/nothing below the last row of numbers */
    for (int j = 1; j < n-1; j++) {
        std::cout << POINT;
        std::cout << ' ';
        std::cout << formatHLine(m-1, j);
        std::cout << ' ';
    }
    std::cout << POINT << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
movl 0xc(%rax), %ecx
movl 0x10(%rax), %edx
leal -0x1(%rcx), %eax
movl %eax, -0x3c(%rbp)
cmpl $0x3, %ecx
jl 0x28b8
leal -0x1(%rdx), %eax
movl %eax, -0x44(%rbp)
movl $0x2, %eax
subl %edx, %eax
movq %rax, -0x60(%rbp)
movl $0x1, %r12d
movq 0x10954(%rip), %r13     # 0x12fd8
movq %rdx, -0x50(%rbp)
movq %rbx, -0x58(%rbp)
movl %r12d, -0x40(%rbp)
cmpl $0x3, %edx
leaq -0x2a(%rbp), %r12
leaq -0x2d(%rbp), %r14
jl 0x273f
movl $0x1, %r15d
movb $0x2e, -0x2a(%rbp)
movl $0x1, %edx
movq %r13, %rdi
movq %r12, %rsi
callq 0x21c0
movb $0x20, %bl
movb %bl, -0x2b(%rbp)
movl $0x1, %edx
movq %r13, %rdi
leaq -0x2b(%rbp), %rsi
callq 0x21c0
movq -0x58(%rbp), %rax
movq (%rax), %rdi
movl -0x40(%rbp), %esi
movl %r15d, %edx
callq 0x431a
cmpl $0x2, %eax
movl $0x20, %ecx
movl $0x78, %edx
cmovel %edx, %ecx
cmpl $0x1, %eax
movl $0x2d, %eax
cmovel %eax, %ecx
movb %cl, -0x2c(%rbp)
movl $0x1, %edx
movq %r13, %rdi
leaq -0x2c(%rbp), %rsi
callq 0x21c0
movb %bl, -0x2d(%rbp)
movl $0x1, %edx
movq %r13, %rdi
movq %r14, %rsi
callq 0x21c0
movq -0x60(%rbp), %rax
addl %r15d, %eax
incl %eax
movl %r15d, %ecx
incl %ecx
movl %ecx, %r15d
cmpl $0x1, %eax
jne 0x26a7
movb $0x2e, -0x29(%rbp)
movl $0x1, %edx
movq %r13, %rdi
leaq -0x29(%rbp), %rsi
callq 0x21c0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
cmpl $0x3, -0x50(%rbp)
movl $0x7c, %r14d
movl -0x40(%rbp), %r12d
movq -0x58(%rbp), %rbx
jl 0x2844
movl $0x1, %r15d
movq (%rbx), %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x4360
cmpl $0x2, %eax
movl $0x20, %ecx
movl $0x78, %edx
cmovel %edx, %ecx
cmpl $0x1, %eax
cmovel %r14d, %ecx
movb %cl, -0x2f(%rbp)
movl $0x1, %edx
movq %r13, %rdi
leaq -0x2f(%rbp), %rsi
callq 0x21c0
movb $0x20, %r14b
movb %r14b, -0x30(%rbp)
movl $0x1, %edx
movq %r13, %rdi
leaq -0x30(%rbp), %rsi
callq 0x21c0
movq %rbx, %rdi
movl %r12d, %esi
movl %r15d, %edx
callq 0x2a12
movb %al, -0x31(%rbp)
movl $0x1, %edx
movq %r13, %rdi
leaq -0x31(%rbp), %rsi
callq 0x21c0
movb %r14b, -0x32(%rbp)
movl $0x7c, %r14d
movl $0x1, %edx
movq %r13, %rdi
leaq -0x32(%rbp), %rsi
callq 0x21c0
movq -0x60(%rbp), %rax
addl %r15d, %eax
incl %eax
movl %r15d, %ecx
incl %ecx
movl %ecx, %r15d
cmpl $0x1, %eax
jne 0x279c
movq (%rbx), %rdi
movl %r12d, %esi
movl -0x44(%rbp), %edx
callq 0x4360
cmpl $0x2, %eax
movl $0x20, %ecx
movl $0x78, %edx
cmovel %edx, %ecx
cmpl $0x1, %eax
cmovel %r14d, %ecx
movb %cl, -0x2e(%rbp)
movl $0x1, %edx
movq %r13, %rdi
leaq -0x2e(%rbp), %rsi
callq 0x21c0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
incl %r12d
cmpl -0x3c(%rbp), %r12d
movq -0x50(%rbp), %rdx
jne 0x268c
cmpl $0x3, %edx
jl 0x296d
movl $0x2, %r15d
subl %edx, %r15d
movl $0x1, %r12d
movq 0x10701(%rip), %r14     # 0x12fd8
movb $0x20, %r13b
movb $0x2e, -0x33(%rbp)
movl $0x1, %edx
movq %r14, %rdi
leaq -0x33(%rbp), %rsi
callq 0x21c0
movb %r13b, -0x34(%rbp)
movl $0x1, %edx
movq %r14, %rdi
leaq -0x34(%rbp), %rsi
callq 0x21c0
movq (%rbx), %rdi
movl -0x3c(%rbp), %esi
movl %r12d, %edx
callq 0x431a
cmpl $0x2, %eax
movl $0x20, %ecx
movl $0x78, %edx
cmovel %edx, %ecx
cmpl $0x1, %eax
movl $0x2d, %eax
cmovel %eax, %ecx
movb %cl, -0x35(%rbp)
movl $0x1, %edx
movq %r14, %rdi
leaq -0x35(%rbp), %rsi
callq 0x21c0
movb %r13b, -0x36(%rbp)
movl $0x1, %edx
movq %r14, %rdi
leaq -0x36(%rbp), %rsi
callq 0x21c0
leal (%r15,%r12), %eax
incl %eax
movl %r12d, %ecx
incl %ecx
movl %ecx, %r12d
cmpl $0x1, %eax
jne 0x28da
leaq -0x37(%rbp), %rsi
movb $0x2e, (%rsi)
movq 0x1065d(%rip), %rdi     # 0x12fd8
movl $0x1, %edx
callq 0x21c0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2120
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq