// File: /workspace/github_cpp_makefile_star2_O3/datourat[P]IP-label-for-graph-reachability/Graph.cpp
// Function: Graph::PrintIndex(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void Graph::PrintIndex(const string& filename){
	ofstream output(filename.c_str());

	if(output.is_open()==false){
		cout << "Fail to open " << filename << endl;
		quit();
	}

	output << hugenode << endl;

	for(int u=0; u<vsize; u++){
		output << u << ": ";
		for(int j=0; j<ProLabelOut[u].size(); j++){
			output << ProLabelOut[u][j] << ' ';
		}
		output << "# ";
		for(int j=0; j<ProLabelIn[u].size(); j++){
			output << ProLabelIn[u][j] << ' ';
		}
		output << "# ";
		for(int j=0; j<HugeNodeList[u].size(); j++){
			output << HugeNodeList[u][j] << ' ';
		}
		output << "# ";
		output << layerup[u] << ' ' << layerdown[u] << " #" << endl;
	}


	output.close();

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rsi, %r14
movq %rdi, %rbx
movq (%rsi), %rsi
leaq 0x8(%rsp), %rdi
movl $0x10, %edx
callq 0x32c0
leaq 0x78(%rsp), %rdi
callq 0x3080
testb %al, %al
jne 0xa0a3
movq 0xbf88(%rip), %rdi      # 0x15fd8
leaq 0x6546(%rip), %rsi      # 0x1059d
movl $0xd, %edx
callq 0x32e0
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq 0xbf69(%rip), %rdi      # 0x15fd8
callq 0x32e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31d0
callq 0x4948
movl 0x8(%rbx), %esi
leaq 0x8(%rsp), %rdi
callq 0x3440
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31d0
cmpl $0x0, 0xc(%rbx)
jle 0xa2d5
xorl %r14d, %r14d
leaq 0x8(%rsp), %r15
leaq 0x7(%rsp), %rbp
movq %r15, %rdi
movl %r14d, %esi
callq 0x3440
movl $0x2, %edx
movq %rax, %rdi
leaq 0x6295(%rip), %rsi      # 0x103a0
callq 0x32e0
movq 0x78(%rbx), %rcx
leaq (%r14,%r14,2), %r12
movq (%rcx,%r12,8), %rax
cmpq %rax, 0x8(%rcx,%r12,8)
je 0xa163
xorl %r13d, %r13d
movl (%rax,%r13,4), %esi
movq %r15, %rdi
callq 0x3440
movb $0x20, 0x7(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x32e0
incq %r13
movq 0x78(%rbx), %rcx
movq (%rcx,%r12,8), %rax
movq 0x8(%rcx,%r12,8), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %r13, %rcx
ja 0xa126
movl $0x2, %edx
movq %r15, %rdi
leaq 0x6439(%rip), %rsi      # 0x105ab
callq 0x32e0
movq 0x90(%rbx), %rcx
movq (%rcx,%r12,8), %rax
cmpq %rax, 0x8(%rcx,%r12,8)
je 0xa1cc
xorl %r13d, %r13d
movl (%rax,%r13,4), %esi
movq %r15, %rdi
callq 0x3440
movb $0x20, 0x7(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x32e0
incq %r13
movq 0x90(%rbx), %rcx
movq (%rcx,%r12,8), %rax
movq 0x8(%rcx,%r12,8), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %r13, %rcx
ja 0xa18c
movl $0x2, %edx
movq %r15, %rdi
leaq 0x63d0(%rip), %rsi      # 0x105ab
callq 0x32e0
movq 0xf0(%rbx), %rcx
movq (%rcx,%r12,8), %rax
cmpq %rax, 0x8(%rcx,%r12,8)
je 0xa235
xorl %r13d, %r13d
movl (%rax,%r13,4), %esi
movq %r15, %rdi
callq 0x3440
movb $0x20, 0x7(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x32e0
incq %r13
movq 0xf0(%rbx), %rcx
movq (%rcx,%r12,8), %rax
movq 0x8(%rcx,%r12,8), %rcx
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %r13, %rcx
ja 0xa1f5
movl $0x2, %edx
movq %r15, %rdi
leaq 0x6367(%rip), %rsi      # 0x105ab
callq 0x32e0
movq 0xd8(%rbx), %rax
movzwl (%rax,%r14,2), %esi
movq %r15, %rdi
callq 0x31c0
movb $0x20, 0x7(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x32e0
movq 0xc0(%rbx), %rcx
movzwl (%rcx,%r14,2), %esi
movq %rax, %rdi
callq 0x31c0
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0x6316(%rip), %rsi      # 0x105ae
callq 0x32e0
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r12, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x31d0
incq %r14
movslq 0xc(%rbx), %rax
cmpq %rax, %r14
jl 0xa0f1
leaq 0x8(%rsp), %rdi
callq 0x3350
movq 0xbce2(%rip), %rax      # 0x15fc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq 0x10(%rsp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, 0x8(%rsp,%rcx)
callq 0x3220
leaq 0x100(%rsp), %rdi
callq 0x30e0
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa32b
jmp 0xa32b
jmp 0xa32b
jmp 0xa32b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3380
movq %rbx, %rdi
callq 0x3460