// File: xzebra[P]function-plotter/plot.cpp
// Function: Graph::plot()
void Graph::plot() {
    std::cout << '\n';
    for(int i = 0; i < size; ++i) {
        std::cout << ' ';
        for(int b = 0; b < size;++b) {
            if(size - i == values[b]) std::cout << line;
            else std::cout << graph;
        }

        if(size -i == values[size]) std::cout << line;
        else std::cout << axis;

        for(int b = 0; b < size;++b) {
            if(size - i == values[b+size+1]) std::cout << line;
            else std::cout << graph;
        }
        std::cout << std::endl;
    }

    std::cout << ' ';
    for(int i = 0; i < size*2+1;++i) {
        if(!values[i]) std::cout << line;
        else std::cout << axis;
    }
    std::cout << std::endl;

    for(int i = 0; i < size;++i) {
        std::cout << ' ';
        for(int b = 0; b < size;++b) {
            if(0-i-1 == values[b]) std::cout << line;
            else std::cout << graph;
        }
        if(0 -i-1 == values[size]) std::cout << line;
        else std::cout << axis;

        for(int b = 0; b < size;++b) {
            if(0-i-1 == values[b+size+1]) std::cout << line;
            else std::cout << graph;
        }
        std::cout << std::endl;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movq 0x9065(%rip), %rdi      # 0xbfd0
movl $0xa, %esi
callq 0x2220
movl $0x0, -0xc(%rbp)
movq -0x30(%rbp), %rcx
movl -0xc(%rbp), %eax
cmpl (%rcx), %eax
jge 0x30d3
movq 0x903e(%rip), %rdi      # 0xbfd0
movl $0x20, %esi
callq 0x2220
movl $0x0, -0x10(%rbp)
movq -0x30(%rbp), %rcx
movl -0x10(%rbp), %eax
cmpl (%rcx), %eax
jge 0x3001
movq -0x30(%rbp), %rcx
movl (%rcx), %eax
subl -0xc(%rbp), %eax
movq 0x10(%rcx), %rcx
movslq -0x10(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x2fdd
movq -0x30(%rbp), %rsi
addq $0xb8, %rsi
movq 0x8ffa(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x2ff4
movq -0x30(%rbp), %rsi
addq $0xd8, %rsi
movq 0x8fe1(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x2ff6
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x2fa3
movq -0x30(%rbp), %rdx
movl (%rdx), %eax
subl -0xc(%rbp), %eax
movq 0x10(%rdx), %rcx
movslq (%rdx), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x302f
movq -0x30(%rbp), %rsi
addq $0xb8, %rsi
movq 0x8fa8(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x3046
movq -0x30(%rbp), %rsi
addq $0x98, %rsi
movq 0x8f8f(%rip), %rdi      # 0xbfd0
callq 0x21a0
movl $0x0, -0x14(%rbp)
movq -0x30(%rbp), %rcx
movl -0x14(%rbp), %eax
cmpl (%rcx), %eax
jge 0x30b2
movq -0x30(%rbp), %rsi
movl (%rsi), %eax
subl -0xc(%rbp), %eax
movq 0x10(%rsi), %rcx
movl -0x14(%rbp), %edx
addl (%rsi), %edx
addl $0x1, %edx
movslq %edx, %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x308e
movq -0x30(%rbp), %rsi
addq $0xb8, %rsi
movq 0x8f49(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x30a5
movq -0x30(%rbp), %rsi
addq $0xd8, %rsi
movq 0x8f30(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x30a7
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x304d
movq 0x8f17(%rip), %rdi      # 0xbfd0
movq 0x8ef8(%rip), %rsi      # 0xbfb8
callq 0x21f0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x2f7c
movq 0x8ef6(%rip), %rdi      # 0xbfd0
movl $0x20, %esi
callq 0x2220
movl $0x0, -0x18(%rbp)
movq -0x30(%rbp), %rcx
movl -0x18(%rbp), %eax
movl (%rcx), %ecx
shll %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x314c
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x18(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
jne 0x3128
movq -0x30(%rbp), %rsi
addq $0xb8, %rsi
movq 0x8eaf(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x313f
movq -0x30(%rbp), %rsi
addq $0x98, %rsi
movq 0x8e96(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x3141
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x30eb
movq 0x8e7d(%rip), %rdi      # 0xbfd0
movq 0x8e5e(%rip), %rsi      # 0xbfb8
callq 0x21f0
movl $0x0, -0x1c(%rbp)
movq -0x30(%rbp), %rcx
movl -0x1c(%rbp), %eax
cmpl (%rcx), %eax
jge 0x32c6
movq 0x8e54(%rip), %rdi      # 0xbfd0
movl $0x20, %esi
callq 0x2220
movl $0x0, -0x20(%rbp)
movq -0x30(%rbp), %rcx
movl -0x20(%rbp), %eax
cmpl (%rcx), %eax
jge 0x31ee
movq -0x30(%rbp), %rcx
xorl %eax, %eax
subl -0x1c(%rbp), %eax
subl $0x1, %eax
movq 0x10(%rcx), %rcx
movslq -0x20(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x31ca
movq -0x30(%rbp), %rsi
addq $0xb8, %rsi
movq 0x8e0d(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x31e1
movq -0x30(%rbp), %rsi
addq $0xd8, %rsi
movq 0x8df4(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x31e3
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x318d
movq -0x30(%rbp), %rdx
xorl %eax, %eax
subl -0x1c(%rbp), %eax
subl $0x1, %eax
movq 0x10(%rdx), %rcx
movslq (%rdx), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x321f
movq -0x30(%rbp), %rsi
addq $0xb8, %rsi
movq 0x8db8(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x3236
movq -0x30(%rbp), %rsi
addq $0x98, %rsi
movq 0x8d9f(%rip), %rdi      # 0xbfd0
callq 0x21a0
movl $0x0, -0x24(%rbp)
movq -0x30(%rbp), %rcx
movl -0x24(%rbp), %eax
cmpl (%rcx), %eax
jge 0x32a5
movq -0x30(%rbp), %rsi
xorl %eax, %eax
subl -0x1c(%rbp), %eax
subl $0x1, %eax
movq 0x10(%rsi), %rcx
movl -0x24(%rbp), %edx
addl (%rsi), %edx
addl $0x1, %edx
movslq %edx, %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x3281
movq -0x30(%rbp), %rsi
addq $0xb8, %rsi
movq 0x8d56(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x3298
movq -0x30(%rbp), %rsi
addq $0xd8, %rsi
movq 0x8d3d(%rip), %rdi      # 0xbfd0
callq 0x21a0
jmp 0x329a
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x323d
movq 0x8d24(%rip), %rdi      # 0xbfd0
movq 0x8d05(%rip), %rsi      # 0xbfb8
callq 0x21f0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3166
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)