// File: /workspace/github_cpp_makefile_star2_O3/DimitriDaSilva[P]42_ft_containers/tester/containers/set/test_set_operations.cpp
// Function: test_set_operations_upper_bound()
void
test_set_operations_upper_bound()
{
	ft::set<int> set;
	ft::set<int>::iterator it;

	for (int i = 0; i < 10; i++)
		set.insert(i * 10);

	it = set.upper_bound(20);
	if (it != set.end())
		std::cout << *it << std::endl;
	else
		std::cout << "end()" << std::endl;

	it = set.upper_bound(42);
	if (it != set.end())
		std::cout << *it << std::endl;
	else
		std::cout << "end()" << std::endl;

	it = set.upper_bound(142);
	if (it != set.end())
		std::cout << *it << std::endl;
	else
		std::cout << "end()" << std::endl;

	it = set.upper_bound(-42);
	if (it != set.end())
		std::cout << *it << std::endl;
	else
		std::cout << "end()" << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
leaq -0x50(%rbp), %r15
movl $0x0, (%r15)
xorl %r12d, %r12d
movq %r12, 0x8(%r15)
movq %r15, 0x10(%r15)
movq %r15, 0x18(%r15)
movq %r12, 0x20(%r15)
leaq -0x58(%rbp), %rbx
leaq -0x24(%rbp), %r14
movl %r12d, -0x24(%rbp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4e54
addl $0xa, %r12d
cmpl $0x64, %r12d
jne 0x9534
movq -0x48(%rbp), %rax
testq %rax, %rax
je 0x959d
movq %r15, %rcx
xorl %edx, %edx
cmpl $0x15, 0x20(%rax)
setl %dl
cmovgeq %rax, %rcx
movq 0x10(%rax,%rdx,8), %rax
testq %rax, %rax
jne 0x9559
cmpq %r15, %rcx
je 0x959d
movl 0x20(%rcx), %esi
movq 0x2aa51(%rip), %rdi     # 0x33fd0
callq 0x2330
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
jmp 0x95cc
movq 0x2aa2c(%rip), %rbx     # 0x33fd0
leaq 0x1ce01(%rip), %rsi     # 0x263ac
movl $0x5, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
movq -0x48(%rbp), %rax
testq %rax, %rax
je 0x962f
movq %r15, %rcx
xorl %edx, %edx
cmpl $0x2b, 0x20(%rax)
setl %dl
cmovgeq %rax, %rcx
movq 0x10(%rax,%rdx,8), %rax
testq %rax, %rax
jne 0x95eb
cmpq %r15, %rcx
je 0x962f
movl 0x20(%rcx), %esi
movq 0x2a9bf(%rip), %rdi     # 0x33fd0
callq 0x2330
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
jmp 0x965e
movq 0x2a99a(%rip), %rbx     # 0x33fd0
leaq 0x1cd6f(%rip), %rsi     # 0x263ac
movl $0x5, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
movq -0x48(%rbp), %rax
testq %rax, %rax
je 0x96c4
movq %r15, %rcx
xorl %edx, %edx
cmpl $0x8f, 0x20(%rax)
setl %dl
cmovgeq %rax, %rcx
movq 0x10(%rax,%rdx,8), %rax
testq %rax, %rax
jne 0x967d
cmpq %r15, %rcx
je 0x96c4
movl 0x20(%rcx), %esi
movq 0x2a92a(%rip), %rdi     # 0x33fd0
callq 0x2330
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
jmp 0x96f3
movq 0x2a905(%rip), %rbx     # 0x33fd0
leaq 0x1ccda(%rip), %rsi     # 0x263ac
movl $0x5, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
movq -0x48(%rbp), %rax
testq %rax, %rax
je 0x9756
movq %r15, %rcx
xorl %edx, %edx
cmpl $-0x29, 0x20(%rax)
setl %dl
cmovgeq %rax, %rcx
movq 0x10(%rax,%rdx,8), %rax
testq %rax, %rax
jne 0x9712
cmpq %r15, %rcx
je 0x9756
movl 0x20(%rcx), %esi
movq 0x2a898(%rip), %rdi     # 0x33fd0
callq 0x2330
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
jmp 0x9785
movq 0x2a873(%rip), %rbx     # 0x33fd0
leaq 0x1cc48(%rip), %rsi     # 0x263ac
movl $0x5, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x58(%rbp), %rdi
callq 0x3602
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0x97b0
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x3602
movq %rbx, %rdi
callq 0x2340