// File: /workspace/github_c_makefile_star2_O0/ffoissey[P]push_swap_42/srcs_push_swap/ft_algo_tool.c
// Function: ft_three_a_extend
static void	ft_three_a_extend(t_stack *s)
{
	if (ft_is_the_biggest(s->a, s->size_a, s->a[s->size_a - 1])
			&& !ft_is_the_smallest(s->a, s->size_a, s->a[s->size_a - 2]))
	{
		ft_cmd(ft_exec_swap, s, "sa");
		ft_cmd(ft_exec_rotate, s, "rra");
	}
	else if (ft_is_the_biggest(s->a, s->size_a, s->a[s->size_a - 1])
			&& ft_is_the_smallest(s->a, s->size_a, s->a[s->size_a - 2]))
		ft_cmd(ft_exec_rotate, s, "ra");
	else if (ft_is_the_smallest(s->a, s->size_a, s->a[s->size_a - 1])
			&& ft_is_the_biggest(s->a, s->size_a, s->a[s->size_a - 2]))
	{
		ft_cmd(ft_exec_rotate, s, "rra");
		ft_cmd(ft_exec_swap, s, "sa");
	}
	else if (!ft_is_the_smallest(s->a, s->size_a, s->a[s->size_a - 1])
			&& ft_is_the_biggest(s->a, s->size_a, s->a[0]))
		ft_cmd(ft_exec_swap, s, "sa");
	else
		ft_cmd(ft_exec_rotate, s, "rra");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2c50
cmpl $0x0, %eax
je 0x374f
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
subq $0x2, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2cc0
cmpl $0x0, %eax
jne 0x374f
movq -0x8(%rbp), %rsi
leaq 0x6d9(%rip), %rdi       # 0x3e00
leaq 0x28dc(%rip), %rdx      # 0x600a
callq 0x2f20
movq -0x8(%rbp), %rsi
leaq 0x9a2(%rip), %rdi       # 0x40e0
leaq 0x28cf(%rip), %rdx      # 0x6014
callq 0x2f20
jmp 0x38e7
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2c50
cmpl $0x0, %eax
je 0x37cb
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
subq $0x2, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2cc0
cmpl $0x0, %eax
je 0x37cb
movq -0x8(%rbp), %rsi
leaq 0x926(%rip), %rdi       # 0x40e0
leaq 0x2854(%rip), %rdx      # 0x6015
callq 0x2f20
jmp 0x38e5
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2cc0
cmpl $0x0, %eax
je 0x385e
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
subq $0x2, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2c50
cmpl $0x0, %eax
je 0x385e
movq -0x8(%rbp), %rsi
leaq 0x8aa(%rip), %rdi       # 0x40e0
leaq 0x27d7(%rip), %rdx      # 0x6014
callq 0x2f20
movq -0x8(%rbp), %rsi
leaq 0x5b3(%rip), %rdi       # 0x3e00
leaq 0x27b6(%rip), %rdx      # 0x600a
callq 0x2f20
jmp 0x38e3
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x2cc0
cmpl $0x0, %eax
jne 0x38ca
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rdx
callq 0x2c50
cmpl $0x0, %eax
je 0x38ca
movq -0x8(%rbp), %rsi
leaq 0x544(%rip), %rdi       # 0x3e00
leaq 0x2747(%rip), %rdx      # 0x600a
callq 0x2f20
jmp 0x38e1
movq -0x8(%rbp), %rsi
leaq 0x80b(%rip), %rdi       # 0x40e0
leaq 0x2738(%rip), %rdx      # 0x6014
callq 0x2f20
jmp 0x38e3
jmp 0x38e5
jmp 0x38e7
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)