// File: /workspace/github_c_makefile_star2_O3/System-Glitch[P]ESGILinter-C/src/test.c
// Function: print_function
static void print_function(function_t *function, unsigned int tabs) {
	if(function != NULL) {
		for(unsigned int j = 0 ; j < tabs ; j++)
			printf("\t");
		printf("      %sName:         %s%s\n", COLOR_CYAN, FORMAT_RESET, function->name);

		for(unsigned int j = 0 ; j < tabs ; j++)
			printf("\t");
		printf("      %sIs prototype: %s%d\n", COLOR_CYAN, FORMAT_RESET, function->is_prototype);

		for(unsigned int j = 0 ; j < tabs ; j++)
			printf("\t");
		printf("      %sType:         %s%s\n", COLOR_CYAN, FORMAT_RESET, function->return_type.name);

		for(unsigned int j = 0 ; j < tabs ; j++)
			printf("\t");
		printf("      %sIs pointer:   %s%d\n", COLOR_CYAN, FORMAT_RESET, function->return_type.is_pointer);

		for(unsigned int j = 0 ; j < tabs ; j++)
			printf("\t");
		printf("      %sParameters:   %s", COLOR_CYAN, FORMAT_RESET);
		if(function->params->size == 0) {
			printf("%sNone%s\n", COLOR_RED, FORMAT_RESET);
		} else {
			printf("\n");
			print_variables(function->params, tabs + 1);
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
testq %rdi, %rdi
je 0x5158
movl %esi, %ebx
movq %rdi, %r14
testl %esi, %esi
je 0x5161
movl %ebx, %ebp
movl $0x9, %edi
callq 0x2040
decl %ebp
jne 0x5087
movq (%r14), %rcx
leaq 0x853a(%rip), %rdi      # 0xd5d9
leaq 0x83db(%rip), %rsi      # 0xd481
leaq 0x7f78(%rip), %rdx      # 0xd025
xorl %eax, %eax
callq 0x20d0
movl %ebx, %ebp
movl $0x9, %edi
callq 0x2040
decl %ebp
jne 0x50b6
movzbl 0x18(%r14), %ecx
leaq 0x8525(%rip), %rdi      # 0xd5f5
leaq 0x83aa(%rip), %rsi      # 0xd481
leaq 0x7f47(%rip), %rdx      # 0xd025
xorl %eax, %eax
callq 0x20d0
movl %ebx, %ebp
movl $0x9, %edi
callq 0x2040
decl %ebp
jne 0x50e7
movq 0x8(%r14), %rcx
leaq 0x8511(%rip), %rdi      # 0xd611
leaq 0x837a(%rip), %rsi      # 0xd481
leaq 0x7f17(%rip), %rdx      # 0xd025
xorl %eax, %eax
callq 0x20d0
movl %ebx, %ebp
movl $0x9, %edi
callq 0x2040
decl %ebp
jne 0x5117
movsbl 0x10(%r14), %ecx
leaq 0x84fc(%rip), %rdi      # 0xd62d
leaq 0x8349(%rip), %rsi      # 0xd481
leaq 0x7ee6(%rip), %rdx      # 0xd025
xorl %eax, %eax
callq 0x20d0
movl %ebx, %ebp
movl $0x9, %edi
callq 0x2040
decl %ebp
jne 0x5148
jmp 0x51d0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq (%r14), %rcx
leaq 0x846e(%rip), %rdi      # 0xd5d9
leaq 0x830f(%rip), %r15      # 0xd481
leaq 0x7eac(%rip), %r12      # 0xd025
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x20d0
movzbl 0x18(%r14), %ecx
leaq 0x8463(%rip), %rdi      # 0xd5f5
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x20d0
movq 0x8(%r14), %rcx
leaq 0x8467(%rip), %rdi      # 0xd611
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x20d0
movsbl 0x10(%r14), %ecx
leaq 0x846a(%rip), %rdi      # 0xd62d
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x20d0
leaq 0x8472(%rip), %rdi      # 0xd649
leaq 0x82a3(%rip), %rsi      # 0xd481
leaq 0x7e40(%rip), %rdx      # 0xd025
xorl %eax, %eax
callq 0x20d0
movq 0x20(%r14), %rax
cmpq $0x0, 0x8(%rax)
je 0x5216
movl $0xa, %edi
callq 0x2040
movq 0x20(%r14), %rdi
incl %ebx
movl %ebx, %esi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x4e91
leaq 0x8445(%rip), %rdi      # 0xd662
leaq 0x7df5(%rip), %rsi      # 0xd019
leaq 0x7dfa(%rip), %rdx      # 0xd025
xorl %eax, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x20d0