// File: /workspace/github_c_makefile_star2_O0/charMstr[P]minishell/sources/match_path_parts_root.c
// Function: match_path_part
int	match_path_part(t_strings strs, t_list *wild_cards, int i, int j)
{
	while (strs.str[i] && strs.ref[j] && (strs.str[i] == strs.ref[j]))
	{
		if (strs.str[i] == '*' && match_path_check_valid_star(wild_cards, i))
			break;
		i++;
		j++;
	}
	if (ft_isonly(strs.str + i, '*') || (!strs.str[i] && !strs.ref[j]))
		return (1);
	if (!strs.ref[j] || !strs.str[i] || strs.str[i] != '*')
		return (0);
	while (strs.str[i + 1] == '*')
		i++;
	while (strs.ref[j] && strs.ref[j] != strs.str[i + 1])
		j++;
	if (!strs.ref[j])
		return (0);
	return (match_path_part(strs, wild_cards, i, j + 1) \
		|| match_path_part(strs, wild_cards, i + 1, j));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x18(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movl %r8d, -0x28(%rbp)
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x29(%rbp)
je 0xca27
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x29(%rbp)
je 0xca27
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movq -0x10(%rbp), %rcx
movslq -0x28(%rbp), %rdx
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
sete %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0xca30
jmp 0xca6b
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2a, %eax
jne 0xca54
movq -0x20(%rbp), %rdi
movl -0x24(%rbp), %esi
callq 0xcbe0
cmpl $0x0, %eax
je 0xca54
jmp 0xca6b
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0xc9db
movq -0x18(%rbp), %rdi
movslq -0x24(%rbp), %rax
addq %rax, %rdi
movl $0x2a, %esi
callq 0xea50
cmpl $0x0, %eax
jne 0xcaa1
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
jne 0xcaad
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
jne 0xcaad
movl $0x1, -0x4(%rbp)
jmp 0xcbc8
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0xcada
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
je 0xcada
movq -0x18(%rbp), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2a, %eax
je 0xcae6
movl $0x0, -0x4(%rbp)
jmp 0xcbc8
jmp 0xcae8
movq -0x18(%rbp), %rax
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x2a, %eax
jne 0xcb09
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xcae8
jmp 0xcb0b
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsbl (%rax,%rcx), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x2a(%rbp)
je 0xcb46
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
movsbl (%rax,%rcx), %eax
movq -0x18(%rbp), %rcx
movl -0x24(%rbp), %edx
addl $0x1, %edx
movslq %edx, %rdx
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
setne %al
movb %al, -0x2a(%rbp)
movb -0x2a(%rbp), %al
testb $0x1, %al
jne 0xcb4f
jmp 0xcb5a
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0xcb0b
movq -0x10(%rbp), %rax
movslq -0x28(%rbp), %rcx
cmpb $0x0, (%rax,%rcx)
jne 0xcb71
movl $0x0, -0x4(%rbp)
jmp 0xcbc8
movq -0x20(%rbp), %rdx
movl -0x24(%rbp), %ecx
movl -0x28(%rbp), %r8d
addl $0x1, %r8d
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xc9c0
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x2b(%rbp)
jne 0xcbbd
movq -0x20(%rbp), %rdx
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movl -0x28(%rbp), %r8d
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xc9c0
cmpl $0x0, %eax
setne %al
movb %al, -0x2b(%rbp)
movb -0x2b(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)