LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/validator/validator_utils.c
// Function: safe_print_err
void		safe_print_err(t_shell *shell, char *key)
{
	char	*tmp;

	tmp = ft_strjoin(key, ": ambiguous redirect");
	print_errors(shell, tmp, NULL);
	free(tmp);
	free(key);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x3302(%rip), %rsi      # 0x928d
callq 0x8210
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x6f10
movq -0x18(%rbp), %rdi
callq 0x1030
movq -0x10(%rbp), %rdi
callq 0x1030
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/redirections/redirections.c
// Function: find_redirections
int				find_redirections(t_shell *shell)
{
	size_t	it;
	int		fd;

	it = 0;
	while (shell->args[it])
	{
		if (validator(shell, shell->args[it]))
		{
			if (ft_strcmp(shell->args[it], ">"))
				fd = redirections_output(shell, it);
			else if (ft_strcmp(shell->args[it], "<"))
				fd = redirections_input(shell, it);
			else if (ft_strcmp(shell->args[it], ">>"))
				fd = redirections_append(shell, it);
			else
				it++;
		}
		else
		{
			fd = -1;
			break ;
		}
	}
	return (fd);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x60c9
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x60e0
cmpl $0x0, %eax
je 0x60bb
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3281(%rip), %rsi      # 0x92a5
callq 0x8690
cmpq $0x0, %rax
je 0x6041
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x6490
movl %eax, -0x14(%rbp)
jmp 0x60b9
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x324a(%rip), %rsi      # 0x92a2
callq 0x8690
cmpq $0x0, %rax
je 0x6075
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x61a0
movl %eax, -0x14(%rbp)
jmp 0x60b7
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x3218(%rip), %rsi      # 0x92a4
callq 0x8690
cmpq $0x0, %rax
je 0x60a9
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x6390
movl %eax, -0x14(%rbp)
jmp 0x60b5
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x60b7
jmp 0x60b9
jmp 0x60c4
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
jmp 0x60c9
jmp 0x5fd4
movl -0x14(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/redirections/redirections.c
// Function: validator
static int		validator(t_shell *shell, char *str)
{
	size_t	cont_output;
	size_t	cont_input;

	cont_output = 0;
	cont_input = 0;
	while (*str)
	{
		if (*str == '>')
			cont_output++;
		else if (*str == '<')
			cont_input++;
		else if (*str != ' ')
		{
			cont_output = 0;
			cont_input = 0;
		}
		str++;
	}
	if (!(validate_count(shell, cont_output, cont_input)))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x18(%rbp), %rax
cmpb $0x0, (%rax)
je 0x616b
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x6123
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x615d
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3c, %eax
jne 0x613d
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x615b
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
je 0x6159
movq $0x0, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
jmp 0x615b
jmp 0x615d
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x6100
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
callq 0x62a0
cmpl $0x0, %eax
jne 0x618a
movl $0x0, -0x4(%rbp)
jmp 0x6191
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/redirections/redirections.c
// Function: redirections_input
static int		redirections_input(t_shell *shell, size_t it)
{
	int fd;

	fd = -1;
	if (!(shell->args[it + 1]))
	{
		shell->stat_loc = 2;
		print_errors(shell,
				"syntax error near unexpected token `newline'", NULL);
	}
	else
	{
		if ((fd = redirection_exists(shell, it)) != -1)
			dup2(fd, 0);
		delete_environment(shell, shell->args[it], shell->args);
	}
	delete_environment(shell, shell->args[it], shell->args);
	if (it == 0 && shell->args[0])
	{
		free(shell->binary);
		shell->binary = ft_strdup(shell->args[0]);
	}
	return (fd);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq $0x0, 0x8(%rax,%rcx,8)
jne 0x61ec
movq -0x8(%rbp), %rax
movl $0x2, 0x28(%rax)
movq -0x8(%rbp), %rdi
leaq 0x30eb(%rip), %rsi      # 0x92cc
xorl %eax, %eax
movl %eax, %edx
callq 0x6f10
jmp 0x622d
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x6590
cwtl
movl %eax, -0x14(%rbp)
cmpl $-0x1, %eax
je 0x620c
movl -0x14(%rbp), %edi
xorl %esi, %esi
callq 0x1070
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x22f0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x22f0
cmpq $0x0, -0x10(%rbp)
jne 0x628b
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
cmpq $0x0, (%rax)
je 0x628b
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x1030
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movl -0x14(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/redirections/redirections.c
// Function: validate_count
static int		validate_count(t_shell *shell
							, size_t cont_output, size_t cont_input)
{
	char	*msg;

	msg = NULL;
	if (cont_output > 2)
	{
		if (cont_output < 4)
			msg = ft_strjoin("syntax error near unexpected token `", ">'");
		else
			msg = ft_strjoin("syntax error near unexpected token `", ">>'");
		print_errors(shell, msg, NULL);
		free(msg);
		shell->stat_loc = 2;
		return (0);
	}
	if (cont_input > 2)
	{
		msg = ft_strjoin("syntax error near unexpected token `", "<<'");
		print_errors(shell, msg, NULL);
		free(msg);
		shell->stat_loc = 2;
		return (0);
	}
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
cmpq $0x2, -0x18(%rbp)
jbe 0x6328
cmpq $0x4, -0x18(%rbp)
jae 0x62e3
leaq 0x2fd6(%rip), %rdi      # 0x92a7
leaq 0x2f3c(%rip), %rsi      # 0x9214
callq 0x8210
movq %rax, -0x28(%rbp)
jmp 0x62fa
leaq 0x2fbd(%rip), %rdi      # 0x92a7
leaq 0x2f22(%rip), %rsi      # 0x9213
callq 0x8210
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x6f10
movq -0x28(%rbp), %rdi
callq 0x1030
movq -0x10(%rbp), %rax
movl $0x2, 0x28(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x637b
cmpq $0x2, -0x20(%rbp)
jbe 0x6374
leaq 0x2f71(%rip), %rdi      # 0x92a7
leaq 0x2f25(%rip), %rsi      # 0x9262
callq 0x8210
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x6f10
movq -0x28(%rbp), %rdi
callq 0x1030
movq -0x10(%rbp), %rax
movl $0x2, 0x28(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x637b
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/redirections/redirections_utils.c
// Function: redirections_append
int		redirections_append(t_shell *shell, size_t it)
{
	int fd;

	fd = -1;
	if (!(shell->args[it + 1]))
	{
		shell->stat_loc = 2;
		print_errors(shell,
				"syntax error near unexpected token `newline'", NULL);
	}
	else
	{
		if ((fd = open(shell->args[it + 1],
						O_CREAT | O_APPEND | O_WRONLY, 0644)) == -1)
		{
			shell->stat_loc = 1;
			print_errors(shell,
					" No such file or directory", shell->args[it + 1]);
		}
		else
			dup2(fd, 1);
		delete_environment(shell, shell->args[it], shell->args);
	}
	delete_environment(shell, shell->args[it], shell->args);
	return (fd);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq $0x0, 0x8(%rax,%rcx,8)
jne 0x63df
movq -0x8(%rbp), %rax
movl $0x2, 0x28(%rax)
movq -0x8(%rbp), %rdi
leaq 0x2efb(%rip), %rsi      # 0x92cc
xorl %eax, %eax
movl %eax, %edx
callq 0x6f10
jmp 0x6465
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rdi
movl $0x441, %esi            # imm = 0x441
movl $0x1a4, %edx            # imm = 0x1A4
movb $0x0, %al
callq 0x1160
movl %eax, -0x14(%rbp)
cmpl $-0x1, %eax
jne 0x6437
movq -0x8(%rbp), %rax
movl $0x1, 0x28(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rdx
leaq 0x2c78(%rip), %rsi      # 0x90a8
callq 0x6f10
jmp 0x6444
movl -0x14(%rbp), %edi
movl $0x1, %esi
callq 0x1070
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x22f0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x22f0
movl -0x14(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/redirections/redirections_utils.c
// Function: redirections_output
int		redirections_output(t_shell *shell, size_t it)
{
	int fd;

	fd = -1;
	if (!(shell->args[it + 1]))
	{
		shell->stat_loc = 2;
		print_errors(shell,
				"syntax error near unexpected token `newline'", NULL);
	}
	else
	{
		if ((fd = open(shell->args[it + 1],
						O_CREAT | O_TRUNC | O_WRONLY, 0644)) == -1)
		{
			shell->stat_loc = 1;
			print_errors(shell,
					" No such file or directory", shell->args[it + 1]);
		}
		else
			dup2(fd, 1);
		delete_environment(shell, shell->args[it], shell->args);
	}
	delete_environment(shell, shell->args[it], shell->args);
	return (fd);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0xffffffff, -0x14(%rbp) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
cmpq $0x0, 0x8(%rax,%rcx,8)
jne 0x64df
movq -0x8(%rbp), %rax
movl $0x2, 0x28(%rax)
movq -0x8(%rbp), %rdi
leaq 0x2dfb(%rip), %rsi      # 0x92cc
xorl %eax, %eax
movl %eax, %edx
callq 0x6f10
jmp 0x6565
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rdi
movl $0x241, %esi            # imm = 0x241
movl $0x1a4, %edx            # imm = 0x1A4
movb $0x0, %al
callq 0x1160
movl %eax, -0x14(%rbp)
cmpl $-0x1, %eax
jne 0x6537
movq -0x8(%rbp), %rax
movl $0x1, 0x28(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rdx
leaq 0x2b78(%rip), %rsi      # 0x90a8
callq 0x6f10
jmp 0x6544
movl -0x14(%rbp), %edi
movl $0x1, %esi
callq 0x1070
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x22f0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
callq 0x22f0
movl -0x14(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/redirections/redirections_utils.c
// Function: redirection_exists
short	redirection_exists(t_shell *shell, size_t it)
{
	struct stat	s;
	int			fd;

	fd = -1;
	if ((fd = open(shell->args[it + 1], O_RDONLY, 0644)) == -1)
	{
		if (stat(shell->args[it + 1], &s) != -1)
		{
			if (!(s.st_mode & S_IRUSR) ||
					(s.st_mode & S_IRUSR && (!(s.st_mode & S_IXUSR))))
			{
				shell->stat_loc = 1;
				print_errors(shell, " Permission denied", shell->args[it + 1]);
			}
		}
		else
		{
			shell->stat_loc = 1;
			print_errors(shell,
					" No such file or directory", shell->args[it + 1]);
		}
	}
	return (fd);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0xffffffff, -0xa4(%rbp) # imm = 0xFFFFFFFF
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rdi
xorl %esi, %esi
movl $0x1a4, %edx            # imm = 0x1A4
movb $0x0, %al
callq 0x1160
movl %eax, -0xa4(%rbp)
cmpl $-0x1, %eax
jne 0x6687
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x1120
cmpl $-0x1, %eax
je 0x6659
movl -0x88(%rbp), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x662b
movl -0x88(%rbp), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
je 0x6657
movl -0x88(%rbp), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x6657
movq -0x8(%rbp), %rax
movl $0x1, 0x28(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rdx
leaq 0x2a31(%rip), %rsi      # 0x9083
callq 0x6f10
jmp 0x6685
movq -0x8(%rbp), %rax
movl $0x1, 0x28(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rdx
leaq 0x2a28(%rip), %rsi      # 0x90a8
callq 0x6f10
jmp 0x6687
movl -0xa4(%rbp), %eax
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/search/search.c
// Function: search_binary_in_pwd
char			*search_binary_in_pwd(t_shell *shell)
{
	struct stat		s;
	struct dirent	*direntp;
	DIR				*pdir;

	if (stat(".", &s) != -1 &&
		s.st_mode & S_IFDIR)
	{
		if (!(pdir = opendir(".")))
			return (NULL);
		while ((direntp = readdir(pdir)))
		{
			if (ft_strcmp(direntp->d_name, shell->args[0]))
			{
				closedir(pdir);
				return (absolute_bin_path(".", shell->binary));
			}
			direntp++;
		}
		closedir(pdir);
	}
	shell->stat_loc = 127;
	print_errors(shell, " No such file or directory", shell->binary);
	return (NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
leaq 0x29b5(%rip), %rdi      # 0x906b
leaq -0xa0(%rbp), %rsi
callq 0x1120
cmpl $-0x1, %eax
je 0x6789
movl -0x88(%rbp), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x6789
leaq 0x2985(%rip), %rdi      # 0x906b
callq 0x1050
movq %rax, -0xb0(%rbp)
cmpq $0x0, %rax
jne 0x6705
movq $0x0, -0x8(%rbp)
jmp 0x67b4
jmp 0x6707
movq -0xb0(%rbp), %rdi
callq 0x1130
movq %rax, -0xa8(%rbp)
cmpq $0x0, %rax
je 0x677d
movq -0xa8(%rbp), %rdi
addq $0x13, %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rsi
callq 0x8690
cmpq $0x0, %rax
je 0x6767
movq -0xb0(%rbp), %rdi
callq 0x10c0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x290f(%rip), %rdi      # 0x906b
callq 0x71e0
movq %rax, -0x8(%rbp)
jmp 0x67b4
movq -0xa8(%rbp), %rax
addq $0x118, %rax            # imm = 0x118
movq %rax, -0xa8(%rbp)
jmp 0x6707
movq -0xb0(%rbp), %rdi
callq 0x10c0
movq -0x10(%rbp), %rax
movl $0x7f, 0x28(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x2901(%rip), %rsi      # 0x90a8
callq 0x6f10
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/search/search.c
// Function: search_binary
char			*search_binary(t_shell *shell, char **paths)
{
	size_t			it;
	struct stat		s;
	char			*bin_name;

	it = -1;
	bin_name = ft_strdup(shell->args[0]);
	to_lower_in(bin_name);
	while (paths[++it])
		if (binary_path_exists(shell, paths[it], bin_name, &s))
			return (absolute_bin_path(paths[it], shell->binary));
	if (stat(bin_name, &s) != -1)
		return (check_command(shell, bin_name, s));
	else if (lstat(bin_name, &s) != -1 ||
			!ft_strncmp(bin_name, "./", 2) || ft_strchr(shell->args[0], '/'))
	{
		shell->stat_loc = 127;
		print_errors(shell, " No such file or directory", shell->binary);
		free(bin_name);
		return (NULL);
	}
	else
		return (check_command(shell, bin_name, s));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $-0x1, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
callq 0x6c10
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x20(%rbp)
cmpq $0x0, 0x8(%rax,%rcx,8)
je 0x6876
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0xb8(%rbp), %rdx
leaq -0xb0(%rbp), %rcx
callq 0x69b0
cmpw $0x0, %ax
je 0x6874
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x71e0
movq %rax, -0x8(%rbp)
jmp 0x69a0
jmp 0x680e
movq -0xb8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x1120
cmpl $-0x1, %eax
je 0x68d5
movq -0x10(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq %rsp, %rdi
movl $0x12, %ecx
leaq -0xb0(%rbp), %rsi
rep  movsq (%rsi), %es:(%rdi)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdi
callq 0x6a90
movq %rax, -0x8(%rbp)
jmp 0x69a0
movq -0xb8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x10e0
cmpl $-0x1, %eax
jne 0x6925
movq -0xb8(%rbp), %rdi
leaq 0x29fe(%rip), %rsi      # 0x92f9
movl $0x2, %edx
callq 0x85c0
cmpl $0x0, %eax
je 0x6925
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
movl $0x2f, %esi
callq 0x8110
cmpq $0x0, %rax
je 0x695e
movq -0x10(%rbp), %rax
movl $0x7f, 0x28(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x2765(%rip), %rsi      # 0x90a8
callq 0x6f10
movq -0xb8(%rbp), %rdi
callq 0x1030
movq $0x0, -0x8(%rbp)
jmp 0x69a0
movq -0x10(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq %rsp, %rdi
movl $0x12, %ecx
leaq -0xb0(%rbp), %rsi
rep  movsq (%rsi), %es:(%rdi)
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdi
callq 0x6a90
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/search/search.c
// Function: binary_path_exists
static	short	binary_path_exists(t_shell *shell, char *path,
									char *bin_name, struct stat *s)
{
	DIR				*pdir;
	struct dirent	*direntp;

	if (stat(path, s) != -1 &&
		s->st_mode & S_IFDIR)
	{
		if (!(pdir = opendir(path)))
			return (0);
		while ((direntp = readdir(pdir)))
		{
			if (ft_strcmp(direntp->d_name, bin_name))
			{
				shell->is_binary = 1;
				closedir(pdir);
				free(bin_name);
				return (1);
			}
			direntp++;
		}
		closedir(pdir);
	}
	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq -0x18(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x1120
cmpl $-0x1, %eax
je 0x6a78
movq -0x28(%rbp), %rax
movl 0x18(%rax), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x6a78
movq -0x18(%rbp), %rdi
callq 0x1050
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x6a0e
movw $0x0, -0x2(%rbp)
jmp 0x6a7e
jmp 0x6a10
movq -0x30(%rbp), %rdi
callq 0x1130
movq %rax, -0x38(%rbp)
cmpq $0x0, %rax
je 0x6a6f
movq -0x38(%rbp), %rdi
addq $0x13, %rdi
movq -0x20(%rbp), %rsi
callq 0x8690
cmpq $0x0, %rax
je 0x6a5f
movq -0x10(%rbp), %rax
movl $0x1, 0x30(%rax)
movq -0x30(%rbp), %rdi
callq 0x10c0
movq -0x20(%rbp), %rdi
callq 0x1030
movw $0x1, -0x2(%rbp)
jmp 0x6a7e
movq -0x38(%rbp), %rax
addq $0x118, %rax            # imm = 0x118
movq %rax, -0x38(%rbp)
jmp 0x6a10
movq -0x30(%rbp), %rdi
callq 0x10c0
movw $0x0, -0x2(%rbp)
movw -0x2(%rbp), %ax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/search/search.c
// Function: check_command
static	char	*check_command(t_shell *shell, char *bin_name, struct stat s)
{
	if (command_exists(shell, bin_name, s))
	{
		free(bin_name);
		return (ft_strdup(shell->binary));
	}
	free(bin_name);
	return (NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rsi, %rax
leaq 0x10(%rbp), %rsi
movq %rdi, -0x10(%rbp)
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq %rsp, %rdi
movl $0x12, %ecx
rep  movsq (%rsi), %es:(%rdi)
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdi
callq 0x6b20
cmpl $0x0, %eax
je 0x6af3
movq -0x18(%rbp), %rdi
callq 0x1030
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x8190
movq %rax, -0x8(%rbp)
jmp 0x6b04
movq -0x18(%rbp), %rdi
callq 0x1030
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/search/search.c
// Function: command_exists
static int		command_exists(t_shell *shell, char *bin_name
								, struct stat s)
{
	if (S_ISDIR(s.st_mode) || S_ISREG(s.st_mode))
	{
		if (ft_strncmp(shell->args[0], "/", 1) &&
			ft_strncmp(shell->args[0], "./", 2) &&
			!(shell->args[0][ft_strlen(bin_name) - 1] == '/'))
		{
			shell->stat_loc = 127;
			print_errors(shell, " command not found", shell->binary);
			return (0);
		}
	}
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
leaq 0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl 0x18(%rax), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x4000, %eax           # imm = 0x4000
je 0x6b5e
movq -0x20(%rbp), %rax
movl 0x18(%rax), %eax
andl $0xf000, %eax           # imm = 0xF000
cmpl $0x8000, %eax           # imm = 0x8000
jne 0x6bfa
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
leaq 0x278a(%rip), %rsi      # 0x92fa
movl $0x1, %edx
callq 0x85c0
cmpl $0x0, %eax
je 0x6bf8
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
leaq 0x2768(%rip), %rsi      # 0x92f9
movl $0x2, %edx
callq 0x85c0
cmpl $0x0, %eax
je 0x6bf8
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x8550
movq %rax, %rcx
movq -0x28(%rbp), %rax
subq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2f, %eax
je 0x6bf8
movq -0x10(%rbp), %rax
movl $0x7f, 0x28(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdx
leaq 0x2712(%rip), %rsi      # 0x92fc
callq 0x6f10
movl $0x0, -0x4(%rbp)
jmp 0x6c01
jmp 0x6bfa
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/search/search_utils.c
// Function: to_lower_in
void	to_lower_in(char *input)
{
	size_t	it;

	it = -1;
	while (input[++it])
	{
		input[it] = ft_tolower(input[it]);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq $-0x1, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rcx, %rdx
addq $0x1, %rdx
movq %rdx, -0x10(%rbp)
cmpb $0x0, 0x1(%rax,%rcx)
je 0x6c5e
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %edi
callq 0x8590
movb %al, %dl
movq -0x8(%rbp), %rax
movq -0x10(%rbp), %rcx
movb %dl, (%rax,%rcx)
jmp 0x6c24
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/get_next_line.c
// Function: add_char
char	*add_char(char *line, char buffer)
{
	char	*output;
	int		l;

	l = 0;
	while (line && line[l])
		l++;
	if (!(output = malloc((l + 2) * sizeof(char))))
		return (NULL);
	l = 0;
	while (line && line[l])
	{
		output[l] = line[l];
		l++;
	}
	output[l] = buffer;
	output[l + 1] = '\0';
	free(line);
	return (output);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movl $0x0, -0x24(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x25(%rbp)
je 0x6caa
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x25(%rbp)
movb -0x25(%rbp), %al
testb $0x1, %al
jne 0x6cb3
jmp 0x6cbe
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x6c89
movl -0x24(%rbp), %eax
addl $0x2, %eax
movslq %eax, %rdi
shlq $0x0, %rdi
callq 0x1140
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x6ce7
movq $0x0, -0x8(%rbp)
jmp 0x6d69
movl $0x0, -0x24(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x26(%rbp)
je 0x6d0f
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x26(%rbp)
movb -0x26(%rbp), %al
testb $0x1, %al
jne 0x6d18
jmp 0x6d39
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
movb (%rax,%rcx), %dl
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
movb %dl, (%rax,%rcx)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x6cee
movb -0x11(%rbp), %dl
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x20(%rbp), %rax
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb $0x0, (%rax,%rcx)
movq -0x10(%rbp), %rdi
callq 0x1030
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/get_next_line.c
// Function: get_next_line
int		get_next_line(char **line)
{
	int		output;
	char	buffer;

	if (!(*line = malloc(sizeof(char))))
		return (-1);
	**line = '\0';
	buffer = 0;
	output = 1;
	while (output || buffer)
	{
		if ((output = read(0, &buffer, 1)) == -1)
			return (-1);
		if (buffer == '\n')
			break ;
		if (!output)
			ft_putstr_fd("\033[J", 1);
		else if (!(*line = add_char(*line, buffer)))
			return (-1);
	}
	return (output);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x1, %edi
callq 0x1140
movq -0x10(%rbp), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x6daf
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6e5d
movq -0x10(%rbp), %rax
movq (%rax), %rax
movb $0x0, (%rax)
movb $0x0, -0x15(%rbp)
movl $0x1, -0x14(%rbp)
movb $0x1, %al
cmpl $0x0, -0x14(%rbp)
movb %al, -0x16(%rbp)
jne 0x6ddc
movsbl -0x15(%rbp), %eax
cmpl $0x0, %eax
setne %al
movb %al, -0x16(%rbp)
movb -0x16(%rbp), %al
testb $0x1, %al
jne 0x6de5
jmp 0x6e57
xorl %edi, %edi
leaq -0x15(%rbp), %rsi
movl $0x1, %edx
callq 0x10d0
movl %eax, -0x14(%rbp)
cmpl $-0x1, %eax
jne 0x6e06
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6e5d
movsbl -0x15(%rbp), %eax
cmpl $0xa, %eax
jne 0x6e11
jmp 0x6e57
cmpl $0x0, -0x14(%rbp)
jne 0x6e2a
leaq 0x2502(%rip), %rdi      # 0x9320
movl $0x1, %esi
callq 0x7de0
jmp 0x6e52
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movsbl -0x15(%rbp), %esi
callq 0x6c70
movq -0x10(%rbp), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x6e50
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x6e5d
jmp 0x6e52
jmp 0x6dc4
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/signals.c
// Function: signal_handler_running
void	signal_handler_running(int sig)
{
	if (sig == SIGINT)
	{
		ft_putstr_fd("\033[2D\033[J\n$:\\>", 1);
		signal(SIGINT, signal_handler_running);
	}
	else if (sig == SIGQUIT)
	{
		ft_putstr_fd("\033[2D\033[J", 1);
		signal(SIGQUIT, signal_handler_running);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
cmpl $0x2, -0x4(%rbp)
jne 0x6ea5
leaq 0x2487(%rip), %rdi      # 0x930f
movl $0x1, %esi
callq 0x7de0
movl $0x2, %edi
leaq -0x2e(%rip), %rsi       # 0x6e70
callq 0x1110
jmp 0x6ecf
cmpl $0x3, -0x4(%rbp)
jne 0x6ecd
leaq 0x246a(%rip), %rdi      # 0x931c
movl $0x1, %esi
callq 0x7de0
movl $0x3, %edi
leaq -0x58(%rip), %rsi       # 0x6e70
callq 0x1110
jmp 0x6ecf
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/errors.c
// Function: print_errors
void	print_errors(t_shell *shell, char *msg, char *bin)
{
	(void)shell;
	ft_putstr_fd("minishell: ", 2);
	if (bin)
	{
		ft_putstr_fd(bin, 2);
		ft_putchar_fd(':', 2);
	}
	ft_putstr_fd(msg, 2);
	ft_putstr_fd("\n", 2);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x23f9(%rip), %rdi      # 0x9324
movl $0x2, %esi
callq 0x7de0
cmpq $0x0, -0x18(%rbp)
je 0x6f59
movq -0x18(%rbp), %rdi
movl $0x2, %esi
callq 0x7de0
movl $0x3a, %edi
movl $0x2, %esi
callq 0x7d50
movq -0x10(%rbp), %rdi
movl $0x2, %esi
callq 0x7de0
leaq 0x20af(%rip), %rdi      # 0x901d
movl $0x2, %esi
callq 0x7de0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/clean.c
// Function: clean_matrix
void	clean_matrix(char **matrix)
{
	if (matrix)
	{
		while (*matrix)
		{
			free(*matrix);
			matrix++;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x6fbb
jmp 0x6f95
movq -0x8(%rbp), %rax
cmpq $0x0, (%rax)
je 0x6fb9
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x1030
movq -0x8(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x8(%rbp)
jmp 0x6f95
jmp 0x6fbb
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/clean.c
// Function: clean_commands
void	clean_commands(t_shell *shell)
{
	clean_matrix(shell->commands);
	free(shell->commands);
	shell->commands = NULL;
	clean_matrix(shell->args);
	free(shell->args);
	shell->args = NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6f80
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x1030
movq -0x8(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x6f80
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x1030
movq -0x8(%rbp), %rax
movq $0x0, 0x18(%rax)
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/utils.c
// Function: ft_isspace
int		ft_isspace(int c)
{
	c = (unsigned char)c;
	if (c == '\t' || c == '\n' || c == '\v'
		|| c == '\f' || c == '\r' || c == ' ')
		return (1);
	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x8(%rbp)
movl -0x8(%rbp), %eax
movzbl %al, %eax
movl %eax, -0x8(%rbp)
cmpl $0x9, -0x8(%rbp)
je 0x7104
cmpl $0xa, -0x8(%rbp)
je 0x7104
cmpl $0xb, -0x8(%rbp)
je 0x7104
cmpl $0xc, -0x8(%rbp)
je 0x7104
cmpl $0xd, -0x8(%rbp)
je 0x7104
cmpl $0x20, -0x8(%rbp)
jne 0x710d
movl $0x1, -0x4(%rbp)
jmp 0x7114
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/utils.c
// Function: ft_strdup_matrix
char	**ft_strdup_matrix(char **envp)
{
	char	**tmp_envp;
	int		l;
	int		i;

	i = 0;
	l = 0;
	while (envp[l])
		l++;
	if (!(tmp_envp = malloc((l + 1) * sizeof(char *))))
		return (NULL);
	while (*envp)
	{
		tmp_envp[i] = ft_strdup(*envp);
		envp++;
		i++;
	}
	tmp_envp[i] = NULL;
	return (tmp_envp);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x20(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movslq -0x1c(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x7154
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x713a
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x1140
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x717a
movq $0x0, -0x8(%rbp)
jmp 0x71d0
jmp 0x717c
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x71b8
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, %rdx
movq -0x18(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x717c
movq -0x18(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq $0x0, (%rax,%rcx,8)
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/utils.c
// Function: absolute_bin_path
char	*absolute_bin_path(char *path, char *bin)
{
	char *tmp;

	tmp = ft_strjoin(path, "/");
	path = ft_strjoin(tmp, bin);
	free(tmp);
	return (path);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x20ff(%rip), %rsi      # 0x92fa
callq 0x8210
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x8210
movq %rax, -0x8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1030
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/utils.c
// Function: realloc_matrix
char	**realloc_matrix(char **envp, int additional)
{
	char	**tmp_envp;
	int		l;

	l = 0;
	while (envp[l])
		l++;
	if (!(tmp_envp = malloc((l + additional + 1) * sizeof(char *))))
		return (NULL);
	return (tmp_envp);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl $0x0, -0x24(%rbp)
movq -0x10(%rbp), %rax
movslq -0x24(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x7260
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x7246
movl -0x24(%rbp), %eax
addl -0x14(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x1140
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x7289
movq $0x0, -0x8(%rbp)
jmp 0x7291
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/utils.c
// Function: add_env
char	**add_env(char **variable, char **env, int n)
{
	char	**tmp_envp;
	int		i;

	i = 0;
	if (env[n])
		tmp_envp = realloc_matrix(env, 0);
	else
		tmp_envp = realloc_matrix(env, 1);
	tmp_envp[n] = ft_strdup(*variable);
	while (*env)
	{
		if (i != n)
			tmp_envp[i] = ft_strdup(*env);
		env++;
		i++;
	}
	if (i != n)
		tmp_envp[i] = NULL;
	else
		tmp_envp[i + 1] = NULL;
	return (tmp_envp);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl $0x0, -0x24(%rbp)
movq -0x10(%rbp), %rax
movslq -0x14(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x72da
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x7230
movq %rax, -0x20(%rbp)
jmp 0x72ec
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x7230
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, %rdx
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
je 0x734b
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x7334
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, %rdx
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x7307
movl -0x24(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x7365
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq $0x0, (%rax,%rcx,8)
jmp 0x737a
movq -0x20(%rbp), %rax
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq $0x0, (%rax,%rcx,8)
movq -0x20(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/pipes.c
// Function: find_pipes
void			find_pipes(t_shell *shell)
{
	pid_t	pid;
	pid_t	aux_pid;
	int		p[2];
	int		it;
	int		std[2];

	it = -1;
	std[0] = dup(0);
	std[1] = dup(1);
	while (shell->commands[++it])
	{
		get_args_and_binary(shell, it);
		pipe(p);
		pid = child_pipe(shell, it, p);
		wait_child(shell, p, pid, it);
	}
	while ((aux_pid = wait(&shell->stat_loc)) > 0)
		if (aux_pid < pid)
			shell->stat_loc = WEXITSTATUS(shell->stat_loc);
	shell->stat_loc = WEXITSTATUS(shell->stat_loc);
	dup2(std[0], 0);
	dup2(std[1], 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl $0xffffffff, -0x1c(%rbp) # imm = 0xFFFFFFFF
xorl %edi, %edi
callq 0x1080
movl %eax, -0x24(%rbp)
movl $0x1, %edi
callq 0x1080
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x1c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x1c(%rbp)
movslq %ecx, %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x7412
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x7480
leaq -0x18(%rbp), %rdi
callq 0x10b0
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
leaq -0x18(%rbp), %rdx
callq 0x7500
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x18(%rbp), %rsi
movl -0xc(%rbp), %edx
movl -0x1c(%rbp), %ecx
callq 0x7590
jmp 0x73ba
jmp 0x7414
movq -0x8(%rbp), %rdi
addq $0x28, %rdi
callq 0x1180
movl %eax, -0x10(%rbp)
cmpl $0x0, %eax
jle 0x744a
movl -0x10(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x7448
movq -0x8(%rbp), %rax
movl 0x28(%rax), %ecx
andl $0xff00, %ecx           # imm = 0xFF00
sarl $0x8, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x28(%rax)
jmp 0x7414
movq -0x8(%rbp), %rax
movl 0x28(%rax), %ecx
andl $0xff00, %ecx           # imm = 0xFF00
sarl $0x8, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x28(%rax)
movl -0x24(%rbp), %edi
xorl %esi, %esi
callq 0x1070
movl -0x20(%rbp), %edi
movl $0x1, %esi
callq 0x1070
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/pipes.c
// Function: get_args_and_binary
static void		get_args_and_binary(t_shell *shell, int it)
{
	char	*tmp;

	tmp = expansion(shell, shell->commands[it]);
	free(shell->commands[it]);
	shell->args = get_args(tmp);
	free(tmp);
	shell->binary = ft_strdup(shell->args[0]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x4610
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0xc(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x1030
movq -0x18(%rbp), %rdi
callq 0x4b60
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x18(%rbp), %rdi
callq 0x1030
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
callq 0x8190
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/pipes.c
// Function: child_pipe
static int		child_pipe(t_shell *shell, int it, int p[2])
{
	pid_t	pid;

	if ((pid = fork()) == 0)
	{
		close(p[0]);
		if (shell->commands[it + 1])
			dup2(p[1], 1);
		find_redirections(shell);
		exec_arg(shell);
		close(p[1]);
		exit(shell->stat_loc);
	}
	return (pid);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
callq 0x1190
movl %eax, -0x1c(%rbp)
cmpl $0x0, %eax
jne 0x757e
movq -0x18(%rbp), %rax
movl (%rax), %edi
callq 0x10a0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movl -0xc(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x7554
movq -0x18(%rbp), %rax
movl 0x4(%rax), %edi
movl $0x1, %esi
callq 0x1070
movq -0x8(%rbp), %rdi
callq 0x5fc0
movq -0x8(%rbp), %rdi
callq 0x7640
movq -0x18(%rbp), %rax
movl 0x4(%rax), %edi
callq 0x10a0
movq -0x8(%rbp), %rax
movl 0x28(%rax), %edi
callq 0x1170
movl -0x1c(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/pipes.c
// Function: wait_child
static void		wait_child(t_shell *shell, int *p, pid_t pid, int it)
{
	close(p[1]);
	dup2(p[0], 0);
	if (shell->commands[it])
		waitpid(pid, &shell->stat_loc, WNOHANG);
	shell->stat_loc = WEXITSTATUS(shell->stat_loc);
	close(p[0]);
	clean_matrix(shell->args);
	free(shell->args);
	free(shell->binary);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %edi
callq 0x10a0
movq -0x10(%rbp), %rax
movl (%rax), %edi
xorl %esi, %esi
callq 0x1070
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x18(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x75e7
movl -0x14(%rbp), %edi
movq -0x8(%rbp), %rsi
addq $0x28, %rsi
movl $0x1, %edx
callq 0x1150
movq -0x8(%rbp), %rax
movl 0x28(%rax), %ecx
andl $0xff00, %ecx           # imm = 0xFF00
sarl $0x8, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x28(%rax)
movq -0x10(%rbp), %rax
movl (%rax), %edi
callq 0x10a0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x6f80
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x1030
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x1030
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/pipes.c
// Function: exec_arg
static void		exec_arg(t_shell *shell)
{
	char	*path;

	if (!check_builtin(shell))
	{
		path = get_path(shell);
		if (path)
		{
			if (check_permissions(shell, path))
				execve(path, shell->args, shell->env);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x16e0
cmpl $0x0, %eax
jne 0x769d
movq -0x8(%rbp), %rdi
callq 0x1510
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x769b
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x76b0
cmpl $0x0, %eax
je 0x7699
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdx
callq 0x10f0
jmp 0x769b
jmp 0x769d
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/permissions.c
// Function: check_permissions
int			check_permissions(t_shell *shell, char *path)
{
	struct stat s;

	if (stat(path, &s) != -1)
	{
		if (s.st_mode & S_IFDIR)
		{
			return (set_err_message(shell, " is a directory", 126,
						shell->binary));
		}
		if (shell->is_binary == 1 && (!(s.st_mode & S_IXUSR)))
			return (set_err_message(shell, " Permission denied", 126, path));
		else if (shell->is_binary == 0 &&
				(!(s.st_mode & S_IXUSR) || !(s.st_mode & S_IRUSR)))
			return (set_err_message(shell, " Permission denied", 126, path));
		return (1);
	}
	else
		return (set_err_message(shell, " command not found", 127
								, shell->binary));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x1120
cmpl $-0x1, %eax
je 0x7798
movl -0x90(%rbp), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x7711
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
leaq 0x1c31(%rip), %rsi      # 0x9330
movl $0x7e, %edx
callq 0x77d0
movl %eax, -0x4(%rbp)
jmp 0x77b8
movq -0x10(%rbp), %rax
cmpl $0x1, 0x30(%rax)
jne 0x7747
movl -0x90(%rbp), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x7747
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rcx
leaq 0x194b(%rip), %rsi      # 0x9083
movl $0x7e, %edx
callq 0x77d0
movl %eax, -0x4(%rbp)
jmp 0x77b8
movq -0x10(%rbp), %rax
cmpl $0x0, 0x30(%rax)
jne 0x778d
movl -0x90(%rbp), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x776f
movl -0x90(%rbp), %eax
andl $0x100, %eax            # imm = 0x100
cmpl $0x0, %eax
jne 0x778d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rcx
leaq 0x1905(%rip), %rsi      # 0x9083
movl $0x7e, %edx
callq 0x77d0
movl %eax, -0x4(%rbp)
jmp 0x77b8
jmp 0x778f
movl $0x1, -0x4(%rbp)
jmp 0x77b8
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
leaq 0x1b51(%rip), %rsi      # 0x92fc
movl $0x7f, %edx
callq 0x77d0
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/shlvl.c
// Function: handle_shlvl
void			handle_shlvl(t_shell *shell)
{
	char					*shlvl;
	int						lvl;
	char					*tmp;

	shlvl = get_env(shell, "SHLVL=");
	if (!shlvl)
	{
		free(shlvl);
		shlvl = "0";
	}
	lvl = (int)ft_atoi(shlvl) + 1;
	free(shlvl);
	if (lvl < 0 && lvl >= INT_MIN)
		lvl = 0;
	else if (lvl > 2000000)
	{
		shlvl_error(shell, lvl);
		lvl = 1;
	}
	shlvl = ft_itoa(lvl);
	tmp = ft_strjoin("SHLVL=", shlvl);
	ft_export(shell, tmp);
	free(tmp);
	free(shlvl);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x1b19(%rip), %rsi      # 0x9340
callq 0x23f0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x784b
movq -0x10(%rbp), %rdi
callq 0x1030
leaq 0x1b00(%rip), %rax      # 0x9347
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x7970
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rdi
callq 0x1030
cmpl $0x0, -0x14(%rbp)
jge 0x787b
cmpl $0x80000000, -0x14(%rbp) # imm = 0x80000000
jl 0x787b
movl $0x0, -0x14(%rbp)
jmp 0x7899
cmpl $0x1e8480, -0x14(%rbp)  # imm = 0x1E8480
jle 0x7897
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x78e0
movl $0x1, -0x14(%rbp)
jmp 0x7899
movl -0x14(%rbp), %edi
callq 0x7b90
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rsi
leaq 0x1a90(%rip), %rdi      # 0x9340
callq 0x8210
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x30c0
movq -0x20(%rbp), %rdi
callq 0x1030
movq -0x10(%rbp), %rdi
callq 0x1030
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/vdedios[P]minishell/srcs/shlvl.c
// Function: shlvl_error
static void		shlvl_error(t_shell *shell, int lvl)
{
	char *tmp;
	char *msg;

	tmp = ft_itoa(lvl);
	msg = ft_strjoin(" shell level (", tmp);
	free(tmp);
	tmp = ft_strdup(msg);
	free(msg);
	msg = ft_strjoin(tmp, ") too high, resetting to 1");
	free(tmp);
	print_errors(shell, msg, "warning");
	free(msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %edi
callq 0x7b90
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x1a43(%rip), %rdi      # 0x9349
callq 0x8210
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1030
movq -0x20(%rbp), %rdi
callq 0x8190
movq %rax, -0x18(%rbp)
movq -0x20(%rbp), %rdi
callq 0x1030
movq -0x18(%rbp), %rdi
leaq 0x1a1f(%rip), %rsi      # 0x9358
callq 0x8210
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1030
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
leaq 0x1a19(%rip), %rdx      # 0x9373
callq 0x6f10
movq -0x20(%rbp), %rdi
callq 0x1030
addq $0x20, %rsp
popq %rbp
retq
nop