// File: /workspace/github_c_makefile_star2_O0/pwelke[P]GraphMiningTools/localEasySubtreeIsomorphism.c
// Function: printSptTree
void printSptTree(struct SpanningtreeTree sptTree) {
	printf("\nbase graph:\n");
	printGraph(sptTree.g);

	printf("\nnRoots: %i\n", sptTree.nRoots);
	printf("nNonTrivialRoots: %i\n", countNontrivialRoots(sptTree));

	printf("local spanning trees:\n");
	for (int v=0; v<sptTree.nRoots; ++v) {
		printf("root %i (-> %i): lps (%i %i) \n", sptTree.roots[v]->number, sptTree.parents[v]->number, sptTree.roots[v]->lowPoint, sptTree.parents[v]->lowPoint);
		printGraph(sptTree.localSpanningTrees[v]);
	}

	printf("Characteristics:\n");
	for (int v=0; v<sptTree.nRoots; ++v) {
		printf("root %i (-> %i):\n", sptTree.roots[v]->number, sptTree.parents[v]->number);
		if (sptTree.characteristics && sptTree.characteristics[v]) {
			for (struct SupportSetElement* e=sptTree.characteristics[v]->first; e!=NULL; e=e->next) {
				printNewCubeCondensed(e->data.S, e->data.g->n, e->data.h->n, stdout);
			}
		} else {
			printf("empty\n");
		}
	}
}

// Assembly:
subq $0x58, %rsp
leaq 0x60(%rsp), %rax
movq %rax, 0x40(%rsp)
leaq 0x1e08f(%rip), %rdi     # 0x35854
movb $0x0, %al
callq 0x1090
movq 0x40(%rsp), %rax
movq (%rax), %rdi
callq 0xc510
movq 0x40(%rsp), %rax
movl 0x30(%rax), %esi
leaq 0x1e07a(%rip), %rdi     # 0x35862
movb $0x0, %al
callq 0x1090
movq 0x40(%rsp), %rcx
movq 0x30(%rcx), %rdx
movq %rsp, %rax
movq %rdx, 0x30(%rax)
movups (%rcx), %xmm0
movups 0x10(%rcx), %xmm1
movups 0x20(%rcx), %xmm2
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x179d0
movl %eax, %esi
leaq 0x1e04c(%rip), %rdi     # 0x3586f
movb $0x0, %al
callq 0x1090
leaq 0x1e054(%rip), %rdi     # 0x35885
movb $0x0, %al
callq 0x1090
movl $0x0, 0x54(%rsp)
movq 0x40(%rsp), %rcx
movl 0x54(%rsp), %eax
cmpl 0x30(%rcx), %eax
jge 0x178c9
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rcx
movslq 0x54(%rsp), %rdx
movq (%rcx,%rdx,8), %rcx
movl 0x18(%rcx), %esi
movq 0x10(%rax), %rcx
movslq 0x54(%rsp), %rdx
movq (%rcx,%rdx,8), %rcx
movl 0x18(%rcx), %edx
movq 0x8(%rax), %rcx
movslq 0x54(%rsp), %rdi
movq (%rcx,%rdi,8), %rcx
movl 0x20(%rcx), %ecx
movq 0x10(%rax), %rax
movslq 0x54(%rsp), %rdi
movq (%rax,%rdi,8), %rax
movl 0x20(%rax), %r8d
leaq 0x1e001(%rip), %rdi     # 0x3589c
movb $0x0, %al
callq 0x1090
movq 0x40(%rsp), %rax
movq 0x18(%rax), %rax
movslq 0x54(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0xc510
movl 0x54(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x54(%rsp)
jmp 0x17840
leaq 0x1dfeb(%rip), %rdi     # 0x358bb
movb $0x0, %al
callq 0x1090
movl $0x0, 0x50(%rsp)
movq 0x40(%rsp), %rcx
movl 0x50(%rsp), %eax
cmpl 0x30(%rcx), %eax
jge 0x179c7
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rcx
movslq 0x50(%rsp), %rdx
movq (%rcx,%rdx,8), %rcx
movl 0x18(%rcx), %esi
movq 0x10(%rax), %rax
movslq 0x50(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movl 0x18(%rax), %edx
leaq 0x1dfb0(%rip), %rdi     # 0x358cd
movb $0x0, %al
callq 0x1090
movq 0x40(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x179a7
movq 0x40(%rsp), %rax
movq 0x20(%rax), %rax
movslq 0x50(%rsp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x179a7
movq 0x40(%rsp), %rax
movq 0x20(%rax), %rax
movslq 0x50(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rax
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x48(%rsp)
je 0x179a5
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rax
movl (%rax), %esi
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rax
movl (%rax), %edx
movq 0x2663b(%rip), %rax     # 0x3dfc8
movq (%rax), %rcx
callq 0x23140
movq 0x48(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x48(%rsp)
jmp 0x1795f
jmp 0x179b5
leaq 0x1df31(%rip), %rdi     # 0x358df
movb $0x0, %al
callq 0x1090
jmp 0x179b7
movl 0x50(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x50(%rsp)
jmp 0x178df
addq $0x58, %rsp
retq
nopl (%rax)