// File: /workspace/github_c_makefile_star2_O2/nimble-code[P]Modex/Src/ps_graph.c
// Function: dot_tree
void
dot_tree(treenode *root)
{
	if (!root) return;

DTREE	printf("N%lu [label=\"%s\"];\n",
		(unsigned long) root,
		name_of_node(root->hdr.type));
DTREE	if (root->hdr.defuse) {
		printf("N%lu -> f%lu;\n",
			(unsigned long) root,
			(unsigned long) root);
		printf("f%lu [shape=box,label=\"",
			(unsigned long) root);
		dump_defuse(root->hdr.defuse, stdout);
		printf("\"];\n");
	}

	switch (root->hdr.which) {
	case IF_T:
		dot_if((if_node *) root);
		break;

	case FOR_T:
		dot_for((for_node *) root);
		break;

	case LEAF_T:
		dot_leaf((leafnode *) root);
		break;

	case NODE_T:
		dot_node(root);
		break;

	default:
		fprintf(stderr, "%s: unhandled type %s\n",
			progname, name_of_nodetype(root->hdr.which));
		break;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
leaq 0xc30d(%rip), %rbx      # 0x2bbac
leaq 0xc202(%rip), %r12      # 0x2baa8
leaq 0xc351(%rip), %r14      # 0x2bbfe
leaq 0xc204(%rip), %r13      # 0x2bab8
testq %r15, %r15
je 0x1fb10
movl 0x1c(%r15), %edi
callq 0x1467f
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x4140
cmpq $0x0, 0x20(%r15)
je 0x1f921
leaq 0xc2dc(%rip), %rdi      # 0x2bbc0
movq %r15, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x4140
leaq 0xc2d7(%rip), %rdi      # 0x2bbcf
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
movq 0x20(%r15), %rdi
movq 0x146c3(%rip), %rax     # 0x33fd0
movq (%rax), %rsi
callq 0x1c8f4
leaq 0xc373(%rip), %rdi      # 0x2bc8f
callq 0x40d0
movl (%r15), %edi
leal -0x1(%rdi), %eax
cmpl $0x3, %eax
ja 0x1fb35
movslq (%r12,%rax,4), %rax
addq %r12, %rax
jmpq *%rax
movq 0x30(%r15), %rdx
testq %rdx, %rdx
je 0x1f95b
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
leaq 0xc32c(%rip), %rdi      # 0x2bc82
callq 0x40d0
movq 0x38(%r15), %rdx
testq %rdx, %rdx
je 0x1f97d
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
leaq 0xc31b(%rip), %rdi      # 0x2bc93
callq 0x40d0
movq 0x40(%r15), %rdx
testq %rdx, %rdx
je 0x1f99f
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
leaq 0xc30c(%rip), %rdi      # 0x2bca6
callq 0x40d0
leaq 0x40(%r15), %rbp
movq 0x30(%r15), %rdi
callq 0x1f88a
movq 0x38(%r15), %rdi
jmp 0x1fab3
movq 0x30(%r15), %rdx
testq %rdx, %rdx
je 0x1f9cf
leaq 0xc246(%rip), %rdi      # 0x2bc0b
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
movq 0x38(%r15), %rdx
testq %rdx, %rdx
je 0x1f9e9
leaq 0xc247(%rip), %rdi      # 0x2bc26
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
movl 0x1c(%r15), %edi
cmpq $0x28, %rdi
ja 0x1fb73
leaq 0x30(%r15), %rax
leaq 0x38(%r15), %rbp
movslq (%r13,%rdi,4), %rcx
addq %r13, %rcx
jmpq *%rcx
movq (%rax), %rdi
jmp 0x1fab3
movq 0x30(%r15), %rdx
testq %rdx, %rdx
je 0x1fa33
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
leaq 0xc28b(%rip), %rdi      # 0x2bcb9
callq 0x40d0
movq 0x38(%r15), %rdx
testq %rdx, %rdx
je 0x1fa55
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
leaq 0xc27a(%rip), %rdi      # 0x2bcca
callq 0x40d0
movq 0x40(%r15), %rdx
testq %rdx, %rdx
je 0x1fa77
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
leaq 0xc269(%rip), %rdi      # 0x2bcdb
callq 0x40d0
movq 0x48(%r15), %rdx
testq %rdx, %rdx
je 0x1fa99
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x4140
leaq 0xc258(%rip), %rdi      # 0x2bcec
callq 0x40d0
leaq 0x48(%r15), %rbp
movq 0x30(%r15), %rdi
callq 0x1f88a
movq 0x38(%r15), %rdi
callq 0x1f88a
movq 0x40(%r15), %rdi
callq 0x1f88a
movq (%rbp), %r15
jmp 0x1f8b4
movq (%rax), %rdi
testq %rdi, %rdi
je 0x1fab3
cmpl $0x2d, 0x1c(%rdi)
jmp 0x1fab3
movq %rax, %rbp
jmp 0x1fab8
movl 0x18(%r15), %ecx
leal -0x172(%rcx), %edx
cmpl $0x2, %edx
jb 0x1fa09
cmpl $0x11b, %ecx            # imm = 0x11B
je 0x1fa09
cmpl $0x160, %ecx            # imm = 0x160
je 0x1fb06
cmpl $0x170, %ecx            # imm = 0x170
jmp 0x1fa09
movq (%rax), %rdi
testq %rdi, %rdi
jne 0x1fab3
jmp 0x1fab8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r15, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1f700
movq 0x144bc(%rip), %rax     # 0x33ff8
movq (%rax), %rbx
leaq 0x1465a(%rip), %rax     # 0x341a0
movq (%rax), %r14
callq 0x14527
leaq 0xc092(%rip), %rsi      # 0x2bbe7
movq %rbx, %rdi
movq %r14, %rdx
movq %rax, %rcx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x41c0
movq 0x1447e(%rip), %rax     # 0x33ff8
movq (%rax), %rbx
leaq 0x1461c(%rip), %rax     # 0x341a0
movq (%rax), %r14
movl 0x10(%r15), %ebp
callq 0x1467f
leaq 0xc0aa(%rip), %rsi      # 0x2bc41
movq %rbx, %rdi
movq %r14, %rdx
movl %ebp, %ecx
movq %rax, %r8
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x41c0