// File: /workspace/github_c_makefile_star2_O0/System-Glitch[P]ESGILinter-C/src/test.c
// Function: print_scope
static void print_scope(scope_t *scope, unsigned int level) {

	node_t *current;

	if(scope == NULL) return;

	for(unsigned int i = 0 ; i < level ; i++)
		printf("\t");
	printf("From %d to %d\n", scope->from_line, scope->to_line);

	if(scope->parent == NULL) { //Is root scope
		for(unsigned int i = 0 ; i < level ; i++)
			printf("\t");
		printf("%sFunctions:%s ", COLOR_CYAN_BOLD, FORMAT_RESET);
		if(scope->functions->size == 0) printf("%sNone%s", COLOR_RED, FORMAT_RESET);
		printf("\n");
		print_functions(scope->functions, level);
	}

	for(unsigned int i = 0 ; i < level ; i++)
		printf("\t");
	printf("%sVariables:%s ", COLOR_CYAN_BOLD, FORMAT_RESET);
	if(scope->variables->size == 0) printf("%sNone%s", COLOR_RED, FORMAT_RESET);
	printf("\n");
	print_variables(scope->variables, level);

	for(unsigned int i = 0 ; i < level ; i++)
		printf("\t");
	printf("%sChildren:%s  ", COLOR_CYAN_BOLD, FORMAT_RESET);
	current = scope->children->head;
	if(current != NULL) {
		printf("\n");
		do {
			print_scope(current->val, level + 1);
		} while ((current = current->next) != NULL);
	} else {
		printf("%sNone%s\n", COLOR_RED, FORMAT_RESET);
	}

	for(unsigned int i = 0 ; i < level ; i++)
		printf("\t");
	printf("%s--------------------%s\n", FORMAT_DIM, FORMAT_RESET);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x3cab
jmp 0x3f06
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jae 0x3cd3
leaq 0xf7a0(%rip), %rdi      # 0x13461
movb $0x0, %al
callq 0x20b0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3cb2
movq -0x8(%rbp), %rax
movl 0x20(%rax), %esi
movq -0x8(%rbp), %rax
movl 0x28(%rax), %edx
leaq 0xfb81(%rip), %rdi      # 0x13869
movb $0x0, %al
callq 0x20b0
movq -0x8(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x3d8a
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0xc(%rbp), %eax
jae 0x3d25
leaq 0xf74e(%rip), %rdi      # 0x13461
movb $0x0, %al
callq 0x20b0
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x3d04
leaq 0xfb4c(%rip), %rdi      # 0x13878
leaq 0xfb55(%rip), %rsi      # 0x13888
leaq 0xf2eb(%rip), %rdx      # 0x13025
movb $0x0, %al
callq 0x20b0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0x3d6c
leaq 0xfb39(%rip), %rdi      # 0x13890
leaq 0xf2bb(%rip), %rsi      # 0x13019
leaq 0xf2c0(%rip), %rdx      # 0x13025
movb $0x0, %al
callq 0x20b0
leaq 0xfc2e(%rip), %rdi      # 0x139a1
movb $0x0, %al
callq 0x20b0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0xc(%rbp), %esi
callq 0x3f10
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0xc(%rbp), %eax
jae 0x3db2
leaq 0xf6c1(%rip), %rdi      # 0x13461
movb $0x0, %al
callq 0x20b0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x3d91
leaq 0xfae0(%rip), %rdi      # 0x13899
leaq 0xfac8(%rip), %rsi      # 0x13888
leaq 0xf25e(%rip), %rdx      # 0x13025
movb $0x0, %al
callq 0x20b0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0x3df9
leaq 0xfaac(%rip), %rdi      # 0x13890
leaq 0xf22e(%rip), %rsi      # 0x13019
leaq 0xf233(%rip), %rdx      # 0x13025
movb $0x0, %al
callq 0x20b0
leaq 0xfba1(%rip), %rdi      # 0x139a1
movb $0x0, %al
callq 0x20b0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0xc(%rbp), %esi
callq 0x3100
movl $0x0, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0xc(%rbp), %eax
jae 0x3e3f
leaq 0xf634(%rip), %rdi      # 0x13461
movb $0x0, %al
callq 0x20b0
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x3e1e
leaq 0xfa63(%rip), %rdi      # 0x138a9
leaq 0xfa3b(%rip), %rsi      # 0x13888
leaq 0xf1d1(%rip), %rdx      # 0x13025
movb $0x0, %al
callq 0x20b0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x3ea6
leaq 0xfb28(%rip), %rdi      # 0x139a1
movb $0x0, %al
callq 0x20b0
movq -0x18(%rbp), %rax
movq (%rax), %rdi
movl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x3c90
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x3e80
jmp 0x3ec2
leaq 0xf7ba(%rip), %rdi      # 0x13667
leaq 0xf165(%rip), %rsi      # 0x13019
leaq 0xf16a(%rip), %rdx      # 0x13025
movb $0x0, %al
callq 0x20b0
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jae 0x3eea
leaq 0xf589(%rip), %rdi      # 0x13461
movb $0x0, %al
callq 0x20b0
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x3ec9
leaq 0xf9c8(%rip), %rdi      # 0x138b9
leaq 0xf9db(%rip), %rsi      # 0x138d3
leaq 0xf126(%rip), %rdx      # 0x13025
movb $0x0, %al
callq 0x20b0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)