// File: /workspace/github_c_makefile_star2_O0/ffoissey[P]push_swap_42/srcs_push_swap/ft_algo_tool.c
// Function: ft_three_b_extend
static void	ft_three_b_extend(t_stack *s)
{
	if (ft_is_the_smallest(s->b, s->size_b, s->b[s->size_b - 1])
			&& !ft_is_the_biggest(s->b, s->size_b, s->b[s->size_b - 2]))
	{
		ft_cmd(ft_exec_swap, s, "sb");
		ft_cmd(ft_exec_rotate, s, "rrb");
	}
	else if (ft_is_the_smallest(s->b, s->size_b, s->b[s->size_b - 1])
			&& ft_is_the_biggest(s->b, s->size_b, s->b[s->size_b - 2]))
		ft_cmd(ft_exec_rotate, s, "rb");
	else if (ft_is_the_biggest(s->b, s->size_b, s->b[s->size_b - 1])
			&& ft_is_the_smallest(s->b, s->size_b, s->b[s->size_b - 2]))
	{
		ft_cmd(ft_exec_rotate, s, "rrb");
		ft_cmd(ft_exec_swap, s, "sb");
	}
	else if (!ft_is_the_biggest(s->b, s->size_b, s->b[s->size_b - 1])
			&& ft_is_the_smallest(s->b, s->size_b, s->b[0]))
		ft_cmd(ft_exec_swap, s, "sb");
	else
		ft_cmd(ft_exec_rotate, s, "rrb");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2cc0
cmpl $0x0, %eax
je 0x3a33
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
subq $0x2, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2c50
cmpl $0x0, %eax
jne 0x3a33
movq -0x8(%rbp), %rsi
leaq 0x3f5(%rip), %rdi       # 0x3e00
leaq 0x25fb(%rip), %rdx      # 0x600d
callq 0x2f20
movq -0x8(%rbp), %rsi
leaq 0x6be(%rip), %rdi       # 0x40e0
leaq 0x25ef(%rip), %rdx      # 0x6018
callq 0x2f20
jmp 0x3bd7
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2cc0
cmpl $0x0, %eax
je 0x3ab3
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
subq $0x2, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2c50
cmpl $0x0, %eax
je 0x3ab3
movq -0x8(%rbp), %rsi
leaq 0x63e(%rip), %rdi       # 0x40e0
leaq 0x2570(%rip), %rdx      # 0x6019
callq 0x2f20
jmp 0x3bd5
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2c50
cmpl $0x0, %eax
je 0x3b4a
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
subq $0x2, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2cc0
cmpl $0x0, %eax
je 0x3b4a
movq -0x8(%rbp), %rsi
leaq 0x5be(%rip), %rdi       # 0x40e0
leaq 0x24ef(%rip), %rdx      # 0x6018
callq 0x2f20
movq -0x8(%rbp), %rsi
leaq 0x2c7(%rip), %rdi       # 0x3e00
leaq 0x24cd(%rip), %rdx      # 0x600d
callq 0x2f20
jmp 0x3bd3
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2c50
cmpl $0x0, %eax
jne 0x3bba
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdx
callq 0x2cc0
cmpl $0x0, %eax
je 0x3bba
movq -0x8(%rbp), %rsi
leaq 0x254(%rip), %rdi       # 0x3e00
leaq 0x245a(%rip), %rdx      # 0x600d
callq 0x2f20
jmp 0x3bd1
movq -0x8(%rbp), %rsi
leaq 0x51b(%rip), %rdi       # 0x40e0
leaq 0x244c(%rip), %rdx      # 0x6018
callq 0x2f20
jmp 0x3bd3
jmp 0x3bd5
jmp 0x3bd7
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)