// File: Windfisch[P]production-flow/flowgraph.cpp
// Function: FlowGraph::dump(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>) const
void FlowGraph::dump(string name) const
{
	cout << "digraph \""<<name<<"\" {" << endl;

	for (size_t i=0; i<nodes.size(); i++)
		cout << "\t" << i << " [" << nodes[i].label() << "];" << endl;

	cout << endl;

	for (const Edge& edge : edges)
		cout << "\t" << edge_from(&edge) << " -> " << edge_to(&edge) << " [" << edge.label() << "];" << endl;

	cout << "}" << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rsi, -0x90(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
movq 0x257cc(%rip), %rdi     # 0x38fc8
leaq 0x11df6(%rip), %rsi     # 0x255f9
callq 0x3290
movq -0x90(%rbp), %rsi
movq %rax, %rdi
callq 0x3280
movq %rax, %rdi
leaq 0x11bba(%rip), %rsi     # 0x253db
callq 0x3290
movq %rax, %rdi
movq 0x25770(%rip), %rsi     # 0x38fa0
callq 0x32f0
movq $0x0, -0x18(%rbp)
movq -0x98(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0xa0(%rbp)
callq 0x11260
movq %rax, %rcx
movq -0xa0(%rbp), %rax
cmpq %rcx, %rax
jae 0x13940
movq 0x2575a(%rip), %rdi     # 0x38fc8
leaq 0x11b6a(%rip), %rsi     # 0x253df
callq 0x3290
movq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x30a0
movq %rax, %rdi
leaq 0x11d73(%rip), %rsi     # 0x25603
callq 0x3290
movq -0x98(%rbp), %rdi
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rsi
callq 0x14f90
movq %rax, %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x13f80
movq -0xb8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0x3280
movq %rax, -0xa8(%rbp)
jmp 0x138db
movq -0xa8(%rbp), %rdi
leaq 0x11b16(%rip), %rsi     # 0x253ff
callq 0x3290
movq %rax, -0xc0(%rbp)
jmp 0x138f7
movq -0xc0(%rbp), %rdi
movq 0x2569b(%rip), %rsi     # 0x38fa0
callq 0x32f0
jmp 0x1390c
leaq -0x38(%rbp), %rdi
callq 0x3588
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x1383d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3588
jmp 0x13ae6
movq 0x25681(%rip), %rdi     # 0x38fc8
movq 0x25652(%rip), %rsi     # 0x38fa0
callq 0x32f0
movq -0x98(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rdi
callq 0x14fb0
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
callq 0x14fe0
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x15010
testb $0x1, %al
jne 0x13992
jmp 0x13abb
leaq -0x58(%rbp), %rdi
callq 0x15050
movq %rax, -0x68(%rbp)
movq 0x25622(%rip), %rdi     # 0x38fc8
leaq 0x11a32(%rip), %rsi     # 0x253df
callq 0x3290
movq -0x98(%rbp), %rdi
movq %rax, -0xe8(%rbp)
movq -0x68(%rbp), %rsi
callq 0x145f0
movq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0x30a0
movq %rax, %rdi
leaq 0x11a17(%rip), %rsi     # 0x253f9
callq 0x3290
movq -0x98(%rbp), %rdi
movq %rax, -0xe0(%rbp)
movq -0x68(%rbp), %rsi
callq 0x14710
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0x30a0
movq %rax, %rdi
leaq 0x11bec(%rip), %rsi     # 0x25603
callq 0x3290
movq %rax, -0xd8(%rbp)
movq -0x68(%rbp), %rsi
leaq -0x88(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x13b80
movq -0xd8(%rbp), %rdi
movq -0xd0(%rbp), %rsi
callq 0x3280
movq %rax, -0xc8(%rbp)
jmp 0x13a56
movq -0xc8(%rbp), %rdi
leaq 0x1199b(%rip), %rsi     # 0x253ff
callq 0x3290
movq %rax, -0xf0(%rbp)
jmp 0x13a72
movq -0xf0(%rbp), %rdi
movq 0x25520(%rip), %rsi     # 0x38fa0
callq 0x32f0
jmp 0x13a87
leaq -0x88(%rbp), %rdi
callq 0x3588
leaq -0x58(%rbp), %rdi
callq 0x15070
jmp 0x1397c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3588
jmp 0x13ae6
movq 0x25506(%rip), %rdi     # 0x38fc8
leaq 0x11939(%rip), %rsi     # 0x25402
callq 0x3290
movq %rax, %rdi
movq 0x254c8(%rip), %rsi     # 0x38fa0
callq 0x32f0
addq $0xf0, %rsp
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x34f0
nop