// File: /workspace/github_cpp_makefile_star2_O3/DimitriDaSilva[P]42_ft_containers/tester/containers/map/test_map_reverse_iterators.cpp
// Function: test_map_reverse_iterators_operator_decrement()
void
test_map_reverse_iterators_operator_decrement()
{
	ft::map<int, char> map;

	for (int i = 48; i < 58; i++)
		map.insert(ft::make_pair(i, i));

	typedef ft::map<int, char>::iterator iter_type;

	ft::reverse_iterator<iter_type> rev_begin(map.end());
	ft::reverse_iterator<iter_type> rev_end(map.begin());

	ft::reverse_iterator<iter_type> rev_iterator = rev_begin;

	while (rev_iterator != rev_end)
		std::cout << "[" << rev_iterator->first << "] = " << (rev_iterator++)->second << std::endl;
	std::cout << std::endl;

	while (rev_iterator != rev_begin)
		std::cout << " [" << (--rev_iterator)->first << "] = " << rev_iterator->second;
	std::cout << std::endl;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
leaq -0x58(%rbp), %rcx
movl $0x0, (%rcx)
xorl %eax, %eax
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
movabsq $0x3000000030, %r15     # imm = 0x3000000030
movl $0xa, %r12d
leaq -0x60(%rbp), %rbx
leaq -0x30(%rbp), %r14
movabsq $0x100000001, %r13      # imm = 0x100000001
movq %r15, -0x30(%rbp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe1f0
addq %r13, %r15
decq %r12
jne 0xd82f
movq -0x48(%rbp), %r12
movq 0x2677f(%rip), %r14     # 0x33fd0
leaq -0x30(%rbp), %r13
leaq -0x58(%rbp), %rbx
cmpq %r12, %rbx
je 0xd8f0
movl $0x1, %edx
movq %r14, %rdi
leaq 0x18dc7(%rip), %rsi     # 0x26638
callq 0x2230
movq %rbx, %rdi
callq 0x2220
movl 0x20(%rax), %esi
movq %r14, %rdi
callq 0x2330
movq %rax, %r15
movl $0x4, %edx
movq %rax, %rdi
leaq 0x18d9f(%rip), %rsi     # 0x2663a
callq 0x2230
movq %rbx, %rdi
callq 0x2220
movq %rax, %rbx
movb 0x24(%rax), %al
movb %al, -0x30(%rbp)
movl $0x1, %edx
movq %r15, %rdi
movq %r13, %rsi
callq 0x2230
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
jmp 0xd859
movq (%r14), %rax
addq -0x18(%rax), %r14
movq %r14, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq 0x266c2(%rip), %rdi     # 0x33fd0
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x58(%rbp), %rax
cmpq %rax, %r12
je 0xd9a2
movq 0x266a5(%rip), %r15     # 0x33fd0
leaq 0x18d08(%rip), %r13     # 0x2663a
leaq -0x30(%rbp), %r14
movl $0x2, %edx
movq %r15, %rdi
leaq 0x18cf2(%rip), %rsi     # 0x26637
callq 0x2230
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
movq %rax, %rdi
callq 0x2220
movl 0x20(%rax), %esi
movq %r15, %rdi
callq 0x2330
movq %rax, %r12
movl $0x4, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x2230
movq %rbx, %rdi
callq 0x2220
movb 0x24(%rax), %al
movb %al, -0x30(%rbp)
movl $0x1, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x2230
leaq -0x58(%rbp), %rax
cmpq %rax, %rbx
jne 0xd936
movq 0x26627(%rip), %rdi     # 0x33fd0
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq 0x2660c(%rip), %rdi     # 0x33fd0
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq -0x60(%rbp), %rdi
callq 0xe198
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xd9f1
jmp 0xd9f1
jmp 0xd9f1
jmp 0xd9f1
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xe198
movq %rbx, %rdi
callq 0x2340