LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_cursor_move3.c
// Function: terminfo_cursor_move_next_word
int		terminfo_cursor_move_next_word(t_control *control)
{
	int index;
	int	right_motion;
	int j;
	int	current_len;

	j = 0;
	if (-1 == (index = terminfo_cursor_find_next_word_start(control)))
		return (1);
	right_motion = index - control->term->inline_position - 1;
	while (j < right_motion)
	{
		current_len = terminfo_predict_current_line_len(control);
		terminfo_cursor_track_position(control, 1);
		if (control->term->cursor.x == current_len)
			terminfo_cursor_move_diagonally_down(control);
		control->term->inline_position++;
		j++;
	}
	if (!terminfo_cursor_move(control, control->term->cursor.x, \
				control->term->cursor.y))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6610
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl %ecx, %eax
jne 0x6566
movl $0x1, -0x4(%rbp)
jmp 0x6605
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
subl 0xc(%rcx), %eax
subl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x65d1
movq -0x10(%rbp), %rdi
callq 0x6ca0
movl %eax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x63d0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %eax
cmpl -0x20(%rbp), %eax
jne 0x65b5
movq -0x10(%rbp), %rdi
callq 0x5ee0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x657a
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %esi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x14(%rax), %edx
callq 0x6120
cmpl $0x0, %eax
jne 0x65fe
movl $0x0, -0x4(%rbp)
jmp 0x6605
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_cursor_move3.c
// Function: terminfo_cursor_find_next_word_start
int		terminfo_cursor_find_next_word_start(t_control *control)
{
	int		i;
	char	*str;

	if ((str = control->term->line) == NULL)
		return (-1);
	i = control->term->inline_position + 1;
	while (str[i])
	{
		if (str[i] == ' ' || str[i] == '\n')
		{
			while (str[i] && (str[i] == ' ' || str[i] == '\n'))
				i++;
			if (str[i])
				return (i);
			else
				return (-1);
		}
		i++;
	}
	return (-1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x6639
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x670f
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x6708
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
je 0x667e
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x66fa
jmp 0x6680
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x21(%rbp)
je 0x66c7
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x22(%rbp)
je 0x66c1
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
sete %al
movb %al, -0x22(%rbp)
movb -0x22(%rbp), %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
testb $0x1, %al
jne 0x66d0
jmp 0x66db
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x6680
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0x66f1
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x670f
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x670f
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x664a
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_cursor_move3.c
// Function: terminfo_cursor_move_previous_word
int		terminfo_cursor_move_previous_word(t_control *control)
{
	int index;
	int	left_motion;
	int j;

	j = 0;
	if (-1 == (index = terminfo_cursor_find_previous_word_start(control)))
		return (1);
	left_motion = control->term->inline_position + 1 - index;
	while (j < left_motion)
	{
		terminfo_cursor_track_position(control, 0);
		control->term->inline_position--;
		j++;
	}
	if (!terminfo_cursor_move(control, control->term->cursor.x, \
				control->term->cursor.y))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
callq 0x67e0
movl %eax, %ecx
movl %ecx, -0x14(%rbp)
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl %ecx, %eax
jne 0x6753
movl $0x1, -0x4(%rbp)
jmp 0x67ca
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
subl -0x14(%rbp), %eax
movl %eax, -0x18(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x6796
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x63d0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0xc(%rax)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x6767
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %esi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x14(%rax), %edx
callq 0x6120
cmpl $0x0, %eax
jne 0x67c3
movl $0x0, -0x4(%rbp)
jmp 0x67ca
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_cursor_move3.c
// Function: terminfo_cursor_find_previous_word_start
int		terminfo_cursor_find_previous_word_start(t_control *control)
{
	int		i;
	char	*str;

	str = control->term->line;
	i = control->term->inline_position;
	if (i == -1)
		return (-1);
	while (str[i] && (str[i] == ' ' || str[i] == '\n'))
		i--;
	if (i == -1)
		return (-1);
	while (i >= 0)
	{
		if (str[i] == ' ' || str[i] == '\n')
			return (i + 1);
		i--;
	}
	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
movl %eax, -0x14(%rbp)
cmpl $-0x1, -0x14(%rbp)
jne 0x6817
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x68ca
jmp 0x6819
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x21(%rbp)
je 0x6860
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x22(%rbp)
je 0x685a
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
sete %al
movb %al, -0x22(%rbp)
movb -0x22(%rbp), %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
testb $0x1, %al
jne 0x6869
jmp 0x6874
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x6819
cmpl $-0x1, -0x14(%rbp)
jne 0x6883
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x68ca
jmp 0x6885
cmpl $0x0, -0x14(%rbp)
jl 0x68c3
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
je 0x68ad
movq -0x20(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x68b8
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x68ca
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x6885
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_del_character.c
// Function: terminfo_del_char
int		terminfo_del_char(t_control *control)
{
	if (!terminfo_cursor_track_position(control, 0))
		return (0);
	if (!terminfo_refresh_screen_from_start(control))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x63d0
cmpl $0x0, %eax
jne 0x68f5
movl $0x0, -0x4(%rbp)
jmp 0x6913
movq -0x10(%rbp), %rdi
callq 0x59b0
cmpl $0x0, %eax
jne 0x690c
movl $0x0, -0x4(%rbp)
jmp 0x6913
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_insert_character.c
// Function: terminfo_insert_char
int		terminfo_insert_char(t_control *control, char c)
{
	int cur_line_len;
	int	saved_inline_position;

	cur_line_len = terminfo_predict_current_line_len(control);
	if (cur_line_len == control->term->size_window.x)
	{
		control->term->cursor_saved = control->term->cursor;
		saved_inline_position = control->term->inline_position;
		if (!terminfo_insert_char_cascade(control))
			return (0);
		if (!(terminfo_cursor_saved_reset(control)))
			return (0);
		control->term->inline_position = saved_inline_position;
	}
	if (!terminfo_insert_in_place(control, c))
		return (0);
	if (!(terminfo_cursor_track_position(control, 1)))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6ca0
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x28(%rcx), %eax
jne 0x69b0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6a00
cmpl $0x0, %eax
jne 0x698b
movl $0x0, -0x4(%rbp)
jmp 0x69ee
movq -0x10(%rbp), %rdi
callq 0x5cd0
cmpl $0x0, %eax
jne 0x69a2
movl $0x0, -0x4(%rbp)
jmp 0x69ee
movl -0x1c(%rbp), %ecx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl %ecx, 0xc(%rax)
movq -0x10(%rbp), %rdi
movsbl -0x11(%rbp), %esi
callq 0x6ae0
cmpl $0x0, %eax
jne 0x69cb
movl $0x0, -0x4(%rbp)
jmp 0x69ee
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x63d0
cmpl $0x0, %eax
jne 0x69e7
movl $0x0, -0x4(%rbp)
jmp 0x69ee
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_insert_character.c
// Function: terminfo_insert_char_cascade
int		terminfo_insert_char_cascade(t_control *control)
{
	char	cascade_me;
	char	*str;
	int		offset;
	int		end_index;

	str = control->term->line;
	while (terminfo_predict_current_line_len(control) \
			== control->term->size_window.x)
	{
		end_index = terminfo_predict_current_line_end_index(control);
		offset = end_index - control->term->inline_position;
		cascade_me = str[end_index];
		if (!terminfo_cursor_move_diagonally_down(control))
			return (0);
		if (!terminfo_insert_in_place(control, cascade_me))
			return (0);
		control->term->inline_position += offset;
		if (control->term->inline_position >= control->term->line_len)
			break ;
	}
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6ca0
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x28(%rcx), %eax
jne 0x6ac2
movq -0x10(%rbp), %rdi
callq 0x6d90
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
subl 0xc(%rcx), %eax
movl %eax, -0x24(%rbp)
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movb (%rax,%rcx), %al
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5ee0
cmpl $0x0, %eax
jne 0x6a77
movl $0x0, -0x4(%rbp)
jmp 0x6ac9
movq -0x10(%rbp), %rdi
movsbl -0x11(%rbp), %esi
callq 0x6ae0
cmpl $0x0, %eax
jne 0x6a92
movl $0x0, -0x4(%rbp)
jmp 0x6ac9
movl -0x24(%rbp), %ecx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
addl 0xc(%rax), %ecx
movl %ecx, 0xc(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x8(%rcx), %eax
jl 0x6abd
jmp 0x6ac2
jmp 0x6a1b
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_insert_character.c
// Function: terminfo_insert_in_place
int		terminfo_insert_in_place(t_control *control, char c)
{
	char *caps;

	if (c != '\n')
	{
		if (!(caps = terminfo_edit_caps(control, "ich", 1)))
			return (0);
		tputs(caps, 1, ft_putchar);
		ft_putchar_fd(c, 1);
	}
	else if (!terminfo_insert_newline(control))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movsbl -0x11(%rbp), %eax
cmpl $0xa, %eax
je 0x6b48
movq -0x10(%rbp), %rdi
leaq 0xa7d8(%rip), %rsi      # 0x112de
movl $0x1, %edx
callq 0x58d0
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x6b23
movl $0x0, -0x4(%rbp)
jmp 0x6b68
movq -0x20(%rbp), %rdi
movl $0x1, %esi
leaq 0x9a0d(%rip), %rdx      # 0x10540
callq 0x2030
movl $0x1, %esi
movsbl -0x11(%rbp), %edi
callq 0xef10
jmp 0x6b61
movq -0x10(%rbp), %rdi
callq 0x6b80
cmpl $0x0, %eax
jne 0x6b5f
movl $0x0, -0x4(%rbp)
jmp 0x6b68
jmp 0x6b61
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_insert_character.c
// Function: terminfo_insert_newline
int		terminfo_insert_newline(t_control *control)
{
	char		*caps;
	t_int_pair	cursor_end;

	cursor_end = terminfo_cursor_get_endl(control);
	if (cursor_end.y >= control->term->size_window.y)
	{
		if (!(caps = terminfo_edit_caps(control, "indn", 1)))
			return (0);
		tputs(caps, 1, ft_putchar);
		control->term->cursor.y--;
		control->term->cursor_saved.y--;
		control->term->cursor_start.y--;
		if (!terminfo_cursor_move(control, control->term->cursor.x,\
					control->term->cursor.y))
			return (0);
	}
	if (!(caps = terminfo_get_caps("il1", control)))
		return (0);
	tputs(caps, 1, ft_putchar);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5d40
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
movl -0x1c(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x2c(%rcx), %eax
jl 0x6c57
movq -0x10(%rbp), %rdi
leaq 0xa715(%rip), %rsi      # 0x112d5
movl $0x1, %edx
callq 0x58d0
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x6be0
movl $0x0, -0x4(%rbp)
jmp 0x6c96
movq -0x18(%rbp), %rdi
movl $0x1, %esi
leaq 0x9950(%rip), %rdx      # 0x10540
callq 0x2030
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x14(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x14(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x1c(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x1c(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x24(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x24(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %esi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x14(%rax), %edx
callq 0x6120
cmpl $0x0, %eax
jne 0x6c55
movl $0x0, -0x4(%rbp)
jmp 0x6c96
jmp 0x6c57
movq -0x10(%rbp), %rsi
leaq 0xa680(%rip), %rdi      # 0x112e2
callq 0x5950
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x6c7a
movl $0x0, -0x4(%rbp)
jmp 0x6c96
movq -0x18(%rbp), %rdi
movl $0x1, %esi
leaq 0x98b6(%rip), %rdx      # 0x10540
callq 0x2030
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_predict_size.c
// Function: terminfo_predict_current_line_len
int			terminfo_predict_current_line_len(t_control *control)
{
	int		i;
	int		j;
	char	*str;

	i = control->term->cursor.x;
	j = control->term->inline_position + 1;
	str = control->term->line;
	if (!str)
		return (control->term->prompt_len);
	while (i < control->term->size_window.x && str[j] && str[j] != '\n')
	{
		i++;
		j++;
	}
	if (str[j] == '\n' && i != control->term->size_window.x)
		return (++i);
	return (i);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6cf0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x48(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x6d84
jmp 0x6cf2
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdx
xorl %eax, %eax
cmpl 0x28(%rdx), %ecx
movb %al, -0x21(%rbp)
jge 0x6d32
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x21(%rbp)
je 0x6d32
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
testb $0x1, %al
jne 0x6d3b
jmp 0x6d4f
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x6cf2
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x6d7e
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x28(%rcx), %eax
je 0x6d7e
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movl %eax, -0x4(%rbp)
jmp 0x6d84
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_predict_size.c
// Function: terminfo_predict_current_line_end_index
int			terminfo_predict_current_line_end_index(t_control *control)
{
	int		i;
	int		j;
	char	*str;

	i = control->term->cursor.x;
	j = control->term->inline_position + 1;
	str = control->term->line;
	if (!str)
		return (0);
	while (i + 1 < control->term->size_window.x && str[j] && str[j] != '\n')
	{
		i++;
		j++;
	}
	return (j);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6dd6
movl $0x0, -0x4(%rbp)
jmp 0x6e3e
jmp 0x6dd8
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdx
xorl %eax, %eax
cmpl 0x28(%rdx), %ecx
movb %al, -0x21(%rbp)
jge 0x6e1b
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x21(%rbp)
je 0x6e1b
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
testb $0x1, %al
jne 0x6e24
jmp 0x6e38
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x6dd8
movl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_predict_size.c
// Function: terminfo_predict_current_line_start_index
int			terminfo_predict_current_line_start_index(t_control *control)
{
	int		i;
	int		j;
	char	*str;

	i = control->term->cursor.x;
	j = control->term->inline_position + 1;
	str = control->term->line;
	if (!str)
		return (0);
	if (str[j] == '\n' && i != 0)
	{
		i--;
		j--;
	}
	while (i > 0 && j > 0 && str[j] != '\n')
	{
		i--;
		j--;
	}
	return (j);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x6e96
movl $0x0, -0x4(%rbp)
jmp 0x6f0f
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x6ebf
cmpl $0x0, -0x14(%rbp)
je 0x6ebf
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
movl -0x18(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x6ec1
xorl %eax, %eax
cmpl $0x0, -0x14(%rbp)
movb %al, -0x21(%rbp)
jle 0x6eec
xorl %eax, %eax
cmpl $0x0, -0x18(%rbp)
movb %al, -0x21(%rbp)
jle 0x6eec
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
testb $0x1, %al
jne 0x6ef5
jmp 0x6f09
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
movl -0x18(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x6ec1
movl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_predict_size.c
// Function: terminfo_predict_previous_line_cursor_end
t_int_pair	terminfo_predict_previous_line_cursor_end(t_control *control)
{
	t_int_pair	end_previous;
	int			end_index_prev;
	int			i;
	char		*str;

	i = 0;
	end_previous = control->term->cursor_start;
	end_index_prev = terminfo_predict_current_line_start_index(control) - 1;
	str = control->term->line;
	while (i < end_index_prev)
	{
		if (str[i] == '\n' \
				|| end_previous.x + 1 == control->term->size_window.x)
		{
			end_previous.x = 0;
			end_previous.y++;
		}
		else
			end_previous.x++;
		i++;
	}
	return (end_previous);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6e50
subl $0x1, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movl -0x18(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x6fb3
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
je 0x6f8d
movl -0x8(%rbp), %eax
addl $0x1, %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x28(%rcx), %eax
jne 0x6f9f
movl $0x0, -0x8(%rbp)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x6fa8
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x6f61
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_predict_size.c
// Function: terminfo_predict_next_line_len
int			terminfo_predict_next_line_len(t_control *control)
{
	int		i;
	int		j;
	char	*str;

	i = 0;
	j = terminfo_predict_current_line_end_index(control);
	str = control->term->line;
	if (!str || !str[j])
		return (0);
	j++;
	while (i + 1 < control->term->size_window.x && str[j] && str[j] != '\n')
	{
		j++;
		i++;
	}
	if (str[j] == '\n')
		i++;
	return (i);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x10(%rbp), %rdi
callq 0x6d90
movl %eax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x7003
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
jne 0x700f
movl $0x0, -0x4(%rbp)
jmp 0x7098
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x14(%rbp), %ecx
addl $0x1, %ecx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdx
xorl %eax, %eax
cmpl 0x28(%rdx), %ecx
movb %al, -0x21(%rbp)
jge 0x705b
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x21(%rbp)
je 0x705b
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
testb $0x1, %al
jne 0x7064
jmp 0x7078
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x7018
movq -0x20(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x7092
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_root.c
// Function: terminfo_clipboard_copy_start
int	terminfo_clipboard_copy_start(t_control *control, t_clipboard *clipboard)
{
	char *caps;

	if (!control->term->line)
		return (1);
	if (control->term->inline_position + 1 == control->term->line_len)
		return (1);
	ft_free((void**)&clipboard->paste_me);
	if (!(caps = terminfo_get_caps("smso", control)))
		return (0);
	tputs(caps, 1, ft_putchar);
	clipboard->start = control->term->inline_position + 1;
	clipboard->end = control->term->inline_position + 1;
	clipboard->highlight = 1;
	clipboard->swaped_end = 0;
	if (!terminfo_clipboard_highlight_cur(control, 1))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpq $0x0, (%rax)
jne 0x70da
movl $0x1, -0x4(%rbp)
jmp 0x71a8
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x8(%rcx), %eax
jne 0x7101
movl $0x1, -0x4(%rbp)
jmp 0x71a8
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
callq 0x10600
movq -0x10(%rbp), %rsi
leaq 0xa1cd(%rip), %rdi      # 0x112e6
callq 0x5950
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x7131
movl $0x0, -0x4(%rbp)
jmp 0x71a8
movq -0x20(%rbp), %rdi
movl $0x1, %esi
leaq 0x93ff(%rip), %rdx      # 0x10540
callq 0x2030
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl $0x1, (%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0xc(%rax)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x71c0
cmpl $0x0, %eax
jne 0x71a1
movl $0x0, -0x4(%rbp)
jmp 0x71a8
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_root.c
// Function: terminfo_clipboard_highlight_cur
int	terminfo_clipboard_highlight_cur(t_control *control, int on)
{
	char c;
	char *caps;

	if (!on)
	{
		if (!(caps = terminfo_get_caps("rmso", control)))
			return (0);
		tputs(caps, 1, ft_putchar);
	}
	c = control->term->line[control->term->inline_position + 1];
	ft_putchar_fd(c, 1);
	if (!terminfo_cursor_move(control, control->term->cursor.x, \
				control->term->cursor.y))
		return (0);
	if (!on)
	{
		if (!(caps = terminfo_get_caps("smso", control)))
			return (0);
		tputs(caps, 1, ft_putchar);
	}
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x7210
movq -0x10(%rbp), %rsi
leaq 0xa10b(%rip), %rdi      # 0x112eb
callq 0x5950
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x71fb
movl $0x0, -0x4(%rbp)
jmp 0x72b2
movq -0x20(%rbp), %rdi
movl $0x1, %esi
leaq 0x9335(%rip), %rdx      # 0x10540
callq 0x2030
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
movl 0xc(%rcx), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movb (%rax,%rcx), %al
movb %al, -0x15(%rbp)
movl $0x1, %esi
movsbl -0x15(%rbp), %edi
callq 0xef10
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x10(%rax), %esi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x14(%rax), %edx
callq 0x6120
cmpl $0x0, %eax
jne 0x726d
movl $0x0, -0x4(%rbp)
jmp 0x72b2
cmpl $0x0, -0x14(%rbp)
jne 0x72ab
movq -0x10(%rbp), %rsi
leaq 0xa068(%rip), %rdi      # 0x112e6
callq 0x5950
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x7296
movl $0x0, -0x4(%rbp)
jmp 0x72b2
movq -0x20(%rbp), %rdi
movl $0x1, %esi
leaq 0x929a(%rip), %rdx      # 0x10540
callq 0x2030
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_root.c
// Function: terminfo_clipboard_copy_end
int	terminfo_clipboard_copy_end(t_control *control, t_clipboard *clipboard)
{
	if (!terminfo_clipboard_disable_highlight(control))
		return (0);
	if (!terminfo_refresh_screen_from_start(control))
		return (0);
	if (clipboard->start > clipboard->end)
	{
		clipboard->start ^= clipboard->end;
		clipboard->end ^= clipboard->start;
		clipboard->start ^= clipboard->end;
		clipboard->swaped_end = 1;
	}
	if (!(clipboard->paste_me = ft_substr(control->term->line, \
				clipboard->start, clipboard->end - clipboard->start + 1)))
	{
		control->quit = 1;
		return (0);
	}
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x73c0
cmpl $0x0, %eax
jne 0x72ea
movl $0x0, -0x4(%rbp)
jmp 0x73a9
movq -0x10(%rbp), %rdi
callq 0x59b0
cmpl $0x0, %eax
jne 0x7304
movl $0x0, -0x4(%rbp)
jmp 0x73a9
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movq -0x18(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jle 0x7352
movq -0x18(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x18(%rbp), %rax
xorl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
movq -0x18(%rbp), %rax
xorl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x18(%rbp), %rax
xorl 0x4(%rax), %ecx
movl %ecx, 0x4(%rax)
movq -0x18(%rbp), %rax
movl $0x1, 0xc(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movl 0x4(%rax), %esi
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
subl 0x4(%rcx), %eax
addl $0x1, %eax
movslq %eax, %rdx
callq 0xff10
movq -0x18(%rbp), %rcx
movq %rax, 0x10(%rcx)
cmpq $0x0, %rax
jne 0x73a2
movq -0x10(%rbp), %rax
movb (%rax), %cl
andb $-0x2, %cl
orb $0x1, %cl
movb %cl, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0x73a9
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_root.c
// Function: terminfo_clipboard_disable_highlight
int	terminfo_clipboard_disable_highlight(t_control *control)
{
	char *caps;

	control->term->clipboard.highlight = 0;
	if (!(caps = terminfo_get_caps("rmso", control)))
		return (0);
	tputs(caps, 1, ft_putchar);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl $0x0, 0x60(%rax)
movq -0x10(%rbp), %rsi
leaq 0x9f05(%rip), %rdi      # 0x112eb
callq 0x5950
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x73fe
movl $0x0, -0x4(%rbp)
jmp 0x741a
movq -0x18(%rbp), %rdi
movl $0x1, %esi
leaq 0x9132(%rip), %rdx      # 0x10540
callq 0x2030
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_root.c
// Function: terminfo_clipboard_dispatch_action
int	terminfo_clipboard_dispatch_action(t_control *control, int c)
{
	if (c == KEY_RIGHT_ID)
	{
		if (!terminfo_clipboard_right_move(control, &control->term->clipboard))
			return (0);
	}
	else if (c == KEY_LEFT_ID)
	{
		if (!terminfo_clipboard_left_move(control, &control->term->clipboard))
			return (0);
	}
	else if (c == CTRL_K_COMBO)
	{
		if (!terminfo_clipboard_copy_end(control, &control->term->clipboard))
			return (0);
		control->term->clipboard.highlight = 0;
	}
	else if (c == CTRL_L_COMBO)
	{
		if (!terminfo_clipboard_copy_end(control, &control->term->clipboard))
			return (0);
		if (!terminfo_clipboard_cut(control, &control->term->clipboard))
			return (0);
		control->term->clipboard.highlight = 0;
	}
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpl $0x82, -0x14(%rbp)
jne 0x7473
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
addq $0x60, %rsi
callq 0x7560
cmpl $0x0, %eax
jne 0x746e
movl $0x0, -0x4(%rbp)
jmp 0x7549
jmp 0x7542
cmpl $0x83, -0x14(%rbp)
jne 0x74a7
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
addq $0x60, %rsi
callq 0x7640
cmpl $0x0, %eax
jne 0x74a2
movl $0x0, -0x4(%rbp)
jmp 0x7549
jmp 0x7540
cmpl $0xb, -0x14(%rbp)
jne 0x74e1
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
addq $0x60, %rsi
callq 0x72c0
cmpl $0x0, %eax
jne 0x74d0
movl $0x0, -0x4(%rbp)
jmp 0x7549
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl $0x0, 0x60(%rax)
jmp 0x753e
cmpl $0xc, -0x14(%rbp)
jne 0x753c
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
addq $0x60, %rsi
callq 0x72c0
cmpl $0x0, %eax
jne 0x750a
movl $0x0, -0x4(%rbp)
jmp 0x7549
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rsi
addq $0x60, %rsi
callq 0x7700
cmpl $0x0, %eax
jne 0x752d
movl $0x0, -0x4(%rbp)
jmp 0x7549
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl $0x0, 0x60(%rax)
jmp 0x753e
jmp 0x7540
jmp 0x7542
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_action.c
// Function: terminfo_clipboard_right_move
int	terminfo_clipboard_right_move(t_control *control, t_clipboard *clipboard)
{
	if (control->term->inline_position + 2 == control->term->line_len)
		return (1);
	if (control->term->inline_position + 1 < clipboard->start)
	{
		if (!terminfo_clipboard_highlight_cur(control, 0))
			return (0);
		if (!terminfo_cursor_move_right(control))
			return (0);
	}
	else
	{
		if (!terminfo_cursor_move_right(control))
			return (0);
		if (!terminfo_clipboard_highlight_cur(control, 1))
			return (0);
	}
	clipboard->end++;
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x2, %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x8(%rcx), %eax
jne 0x7597
movl $0x1, -0x4(%rbp)
jmp 0x7629
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
movq -0x18(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x75e0
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x71c0
cmpl $0x0, %eax
jne 0x75c7
movl $0x0, -0x4(%rbp)
jmp 0x7629
movq -0x10(%rbp), %rdi
callq 0x5e00
cmpl $0x0, %eax
jne 0x75de
movl $0x0, -0x4(%rbp)
jmp 0x7629
jmp 0x7615
movq -0x10(%rbp), %rdi
callq 0x5e00
cmpl $0x0, %eax
jne 0x75f7
movl $0x0, -0x4(%rbp)
jmp 0x7629
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x71c0
cmpl $0x0, %eax
jne 0x7613
movl $0x0, -0x4(%rbp)
jmp 0x7629
jmp 0x7615
movq -0x18(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_action.c
// Function: terminfo_clipboard_left_move
int	terminfo_clipboard_left_move(t_control *control, t_clipboard *clipboard)
{
	if (control->term->inline_position >= 0)
		clipboard->end--;
	if (control->term->inline_position + 1 > clipboard->start)
	{
		if (!terminfo_clipboard_highlight_cur(control, 0))
			return (0);
		if (!terminfo_cursor_move_left(control))
			return (0);
	}
	else
	{
		if (!terminfo_cursor_move_left(control))
			return (0);
		if (!terminfo_clipboard_highlight_cur(control, 1))
			return (0);
	}
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0xc(%rax)
jl 0x766b
movq -0x18(%rbp), %rax
movl 0x8(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %eax
addl $0x1, %eax
movq -0x18(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jle 0x76b4
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x71c0
cmpl $0x0, %eax
jne 0x769b
movl $0x0, -0x4(%rbp)
jmp 0x76f0
movq -0x10(%rbp), %rdi
callq 0x5fe0
cmpl $0x0, %eax
jne 0x76b2
movl $0x0, -0x4(%rbp)
jmp 0x76f0
jmp 0x76e9
movq -0x10(%rbp), %rdi
callq 0x5fe0
cmpl $0x0, %eax
jne 0x76cb
movl $0x0, -0x4(%rbp)
jmp 0x76f0
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x71c0
cmpl $0x0, %eax
jne 0x76e7
movl $0x0, -0x4(%rbp)
jmp 0x76f0
jmp 0x76e9
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_action.c
// Function: terminfo_clipboard_cut
int	terminfo_clipboard_cut(t_control *control, t_clipboard *clipboard)
{
	char	*str;
	int		len_rest;
	int		len_cut;
	int		i;

	str = control->term->line;
	len_rest = control->term->line_len - clipboard->end - 1;
	len_cut = clipboard->end - clipboard->start + 1;
	i = 1;
	if (!clipboard->swaped_end)
	{
		while (i < len_cut)
		{
			terminfo_cursor_track_position(control, 0);
			i++;
			control->term->inline_position--;
		}
	}
	ft_memmove(str + clipboard->start, str + clipboard->end + 1, len_rest + 1);
	control->term->line_len -= len_cut;
	if (!terminfo_refresh_screen_from_start(control))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
subl 0x8(%rcx), %eax
subl $0x1, %eax
movl %eax, -0x24(%rbp)
movq -0x18(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x18(%rbp), %rcx
subl 0x4(%rcx), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
movl $0x1, -0x2c(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x0, 0xc(%rax)
jne 0x778f
jmp 0x775e
movl -0x2c(%rbp), %eax
cmpl -0x28(%rbp), %eax
jge 0x778d
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x63d0
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0xc(%rax)
jmp 0x775e
jmp 0x778f
movq -0x20(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq 0x4(%rax), %rax
addq %rax, %rdi
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rax
movslq 0x8(%rax), %rax
addq %rax, %rsi
addq $0x1, %rsi
movl -0x24(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdx
callq 0xee10
movl -0x28(%rbp), %edx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x8(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x8(%rax)
movq -0x10(%rbp), %rdi
callq 0x59b0
cmpl $0x0, %eax
jne 0x77e9
movl $0x0, -0x4(%rbp)
jmp 0x77f0
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/terminfo_clipboard_action.c
// Function: terminfo_clipboard_paste
int	terminfo_clipboard_paste(t_control *control, t_clipboard *clipboard)
{
	int			len_paste_me;
	int			i;
	t_int_pair	cursor_end;

	if (!clipboard->paste_me)
		return (1);
	len_paste_me = ft_strlen(clipboard->paste_me);
	i = -1;
	if (!(ft_strstradd(&control->term->line, \
					control->term->inline_position + 1, clipboard->paste_me)))
		return (0);
	control->term->line_len += len_paste_me;
	cursor_end = terminfo_cursor_get_endl(control);
	while (clipboard->paste_me[++i] \
			&& cursor_end.y >= control->term->size_window.y)
	{
		if (clipboard->paste_me[i] == '\n' && (control->term->cursor.y--))
			cursor_end.y--;
	}
	control->term->clipboard.highlight = 0;
	if (!terminfo_refresh_screen_from_start(control))
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x7827
movl $0x1, -0x4(%rbp)
jmp 0x793c
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xfb10
movl %eax, -0x1c(%rbp)
movl $0xffffffff, -0x20(%rbp) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl 0xc(%rax), %esi
addl $0x1, %esi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x107d0
cmpl $0x0, %eax
jne 0x7872
movl $0x0, -0x4(%rbp)
jmp 0x793c
movl -0x1c(%rbp), %ecx
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
addl 0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movq -0x10(%rbp), %rdi
callq 0x5d40
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movl -0x20(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x20(%rbp)
movslq %ecx, %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x31(%rbp)
je 0x78ce
movl -0x24(%rbp), %eax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpl 0x2c(%rcx), %eax
setge %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
testb $0x1, %al
jne 0x78d7
jmp 0x790f
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x20(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
jne 0x790d
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rcx
movl 0x14(%rcx), %eax
movl %eax, %edx
addl $-0x1, %edx
movl %edx, 0x14(%rcx)
cmpl $0x0, %eax
je 0x790d
movl -0x24(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x7898
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl $0x0, 0x60(%rax)
movq -0x10(%rbp), %rdi
callq 0x59b0
cmpl $0x0, %eax
jne 0x7935
movl $0x0, -0x4(%rbp)
jmp 0x793c
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/read_root.c
// Function: read_root
void	read_root(t_control *control, int read_res, char c)
{
	while (1)
	{
		read_res = read(STDIN_FILENO, &c, 1);
		if (!read_res)
			continue;
		if (c == '\n')
			break ;
		if (read_need_to_stop(control, c, read_res))
			return ;
		read_dispatch_for_processing(control, c);
		if (read_need_to_stop(control, c, read_res))
			return ;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movb %al, -0xd(%rbp)
xorl %edi, %edi
leaq -0xd(%rbp), %rsi
movl $0x1, %edx
callq 0x2120
movl %eax, -0xc(%rbp)
cmpl $0x0, -0xc(%rbp)
jne 0x797f
jmp 0x7964
movsbl -0xd(%rbp), %eax
cmpl $0xa, %eax
jne 0x798a
jmp 0x79cb
movq -0x8(%rbp), %rdi
movb -0xd(%rbp), %al
movl -0xc(%rbp), %edx
movsbl %al, %esi
callq 0x79e0
cmpl $0x0, %eax
je 0x79a3
jmp 0x79cb
movq -0x8(%rbp), %rdi
movsbl -0xd(%rbp), %esi
callq 0x7aa0
movq -0x8(%rbp), %rdi
movb -0xd(%rbp), %al
movl -0xc(%rbp), %edx
movsbl %al, %esi
callq 0x79e0
cmpl $0x0, %eax
je 0x79c9
jmp 0x79cb
jmp 0x7964
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/read_root.c
// Function: read_need_to_stop
int		read_need_to_stop(t_control *control, char c, int res)
{
	if (control->quit)
		;
	else if (res == -1)
	{
		control->quit = 1;
		//maybe display message for a read failure
		//maybe set control->exit_status...
	}
	else if (c == 4 && !control->term->line_len)
	{
		control->quit = 1;
		ft_putstr_fd("exit", 2);
	}
	else if (c == 3)
	{
		control->exit_status = (IS_APPLE ? 1 : 130);
		control->ctrl_c = 1;
	}
	else
		return (0);
	return (1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movl %edx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movb (%rax), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x7a0a
jmp 0x7a8b
cmpl $-0x1, -0x18(%rbp)
jne 0x7a20
movq -0x10(%rbp), %rax
movb (%rax), %cl
andb $-0x2, %cl
orb $0x1, %cl
movb %cl, (%rax)
jmp 0x7a89
movsbl -0x11(%rbp), %eax
cmpl $0x4, %eax
jne 0x7a58
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x8(%rax)
jne 0x7a58
movq -0x10(%rbp), %rax
movb (%rax), %cl
andb $-0x2, %cl
orb $0x1, %cl
movb %cl, (%rax)
leaq 0x9774(%rip), %rdi      # 0x111c0
movl $0x2, %esi
callq 0xf020
jmp 0x7a87
movsbl -0x11(%rbp), %eax
cmpl $0x3, %eax
jne 0x7a7c
movq -0x10(%rbp), %rax
movl $0x82, 0x4(%rax)
movq -0x10(%rbp), %rax
movb (%rax), %cl
andb $-0x3, %cl
orb $0x2, %cl
movb %cl, (%rax)
jmp 0x7a85
movl $0x0, -0x4(%rbp)
jmp 0x7a92
jmp 0x7a87
jmp 0x7a89
jmp 0x7a8b
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/read_root.c
// Function: read_dispatch_for_processing
void	read_dispatch_for_processing(t_control *control, int c)
{
	if (c == 27 && !(c = read_remap_esc_sequence_from_128(control, c)))
		return ;
	if (control->term->clipboard.highlight)
	{
		if (c != KEY_LEFT_ID && c != KEY_RIGHT_ID && c != CTRL_K_COMBO \
				&& c != CTRL_L_COMBO)
			terminfo_clipboard_copy_end(control, &control->term->clipboard);
		else
		{
			terminfo_clipboard_dispatch_action(control, c);
			return ;
		}
	}
	if (c == CTRL_K_COMBO)
		terminfo_clipboard_copy_start(control, &control->term->clipboard);
	else if (c >= 128)
		read_process_special_key(control, c);
	else if (c == 127)
		read_process_del_char(control);
	else if (!ft_isprint(c))
		read_process_control_combo(control, c);
	else
		read_process_add_char(control, c);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
cmpl $0x1b, -0xc(%rbp)
jne 0x7ace
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x7ba0
movl %eax, -0xc(%rbp)
cmpl $0x0, %eax
jne 0x7ace
jmp 0x7b99
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
cmpl $0x0, 0x60(%rax)
je 0x7b21
cmpl $0x83, -0xc(%rbp)
je 0x7b11
cmpl $0x82, -0xc(%rbp)
je 0x7b11
cmpl $0xb, -0xc(%rbp)
je 0x7b11
cmpl $0xc, -0xc(%rbp)
je 0x7b11
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rsi
addq $0x60, %rsi
callq 0x72c0
jmp 0x7b1f
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x7430
jmp 0x7b99
jmp 0x7b21
cmpl $0xb, -0xc(%rbp)
jne 0x7b3e
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rsi
addq $0x60, %rsi
callq 0x70b0
jmp 0x7b99
cmpl $0x80, -0xc(%rbp)
jl 0x7b55
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x7e30
jmp 0x7b97
cmpl $0x7f, -0xc(%rbp)
jne 0x7b66
movq -0x8(%rbp), %rdi
callq 0x7dc0
jmp 0x7b95
movl -0xc(%rbp), %edi
callq 0xea20
cmpl $0x0, %eax
jne 0x7b84
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %eax
movsbl %al, %esi
callq 0x7f60
jmp 0x7b93
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %eax
movsbl %al, %esi
callq 0x7d20
jmp 0x7b95
jmp 0x7b97
jmp 0x7b99
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/read_root.c
// Function: read_remap_esc_sequence_from_128
int		read_remap_esc_sequence_from_128(t_control *control, int c)
{
	c = read_get_esc_seq_id(control->term, c) + 128;
	if (c == -1)
	{
		control->quit = 1;
		return (0);
	}
	return (c);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0x14(%rbp), %esi
callq 0x7c00
addl $0x80, %eax
movl %eax, -0x14(%rbp)
cmpl $-0x1, -0x14(%rbp)
jne 0x7be4
movq -0x10(%rbp), %rax
movb (%rax), %cl
andb $-0x2, %cl
orb $0x1, %cl
movb %cl, (%rax)
movl $0x0, -0x4(%rbp)
jmp 0x7bea
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)