// File: /workspace/github_cpp_makefile_star2_O3/DimitriDaSilva[P]42_ft_containers/tester/containers/map/test_map_modifiers.cpp
// Function: test_map_modifiers_swap_iterator_validity()
void
test_map_modifiers_swap_iterator_validity()
{
	ft::map<char, int> first, second;
	ft::map<char, int>::iterator it_first, it_second;

	first['x'] = 100;
	first['y'] = 200;

	second['a'] = 11;
	second['b'] = 22;
	second['c'] = 33;

	it_first = first.begin();
	it_second = second.begin();

	std::cout << "[" << it_first->first << "] = " << it_first->second << std::endl;
	std::cout << "[" << it_second->first << "] = " << it_second->second << std::endl;

	print_map_info(first);
	print_map_info(second);

	first.swap(second);

	std::cout << "[" << it_first->first << "] = " << it_first->second << std::endl;
	std::cout << "[" << it_second->first << "] = " << it_second->second << std::endl;

	print_map_info(first);
	print_map_info(second);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
leaq -0x88(%rbp), %r15
xorl %eax, %eax
movl %eax, (%r15)
movq %rax, 0x8(%r15)
movq %r15, 0x10(%r15)
movq %r15, 0x18(%r15)
movq %rax, 0x20(%r15)
leaq -0x58(%rbp), %r12
movl %eax, (%r12)
movq %rax, 0x8(%r12)
movq %r12, 0x10(%r12)
movq %r12, 0x18(%r12)
movq %rax, 0x20(%r12)
leaq -0x29(%rbp), %rsi
movb $0x78, (%rsi)
leaq -0x90(%rbp), %rdi
callq 0xcf7a
movl $0x64, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x79, (%rsi)
leaq -0x90(%rbp), %rdi
callq 0xcf7a
movl $0xc8, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x61, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xcf7a
movl $0xb, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x62, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xcf7a
movl $0x16, (%rax)
leaq -0x29(%rbp), %rsi
movb $0x63, (%rsi)
leaq -0x60(%rbp), %rdi
callq 0xcf7a
movl $0x21, (%rax)
movq -0x78(%rbp), %r13
movq -0x48(%rbp), %r14
movq 0x22073(%rip), %rdi     # 0x33fd0
leaq 0x146d4(%rip), %rsi     # 0x26638
movl $0x1, %edx
callq 0x2230
movb 0x20(%r13), %al
leaq -0x29(%rbp), %rsi
movb %al, (%rsi)
movq 0x22051(%rip), %rdi     # 0x33fd0
movl $0x1, %edx
callq 0x2230
movq %rax, %rbx
leaq 0x146a7(%rip), %rsi     # 0x2663a
movl $0x4, %edx
movq %rax, %rdi
callq 0x2230
movl 0x24(%r13), %esi
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
movq (%rax), %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 0x21ff3(%rip), %rdi     # 0x33fd0
leaq 0x14654(%rip), %rsi     # 0x26638
movl $0x1, %edx
callq 0x2230
movb 0x20(%r14), %al
leaq -0x29(%rbp), %rsi
movb %al, (%rsi)
movq 0x21fd1(%rip), %rdi     # 0x33fd0
movl $0x1, %edx
callq 0x2230
movq %rax, %rbx
leaq 0x14627(%rip), %rsi     # 0x2663a
movl $0x4, %edx
movq %rax, %rdi
callq 0x2230
movl 0x24(%r14), %esi
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
movq (%rax), %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 -0x90(%rbp), %rdi
callq 0xcdf9
leaq -0x60(%rbp), %rdi
callq 0xcdf9
movq -0x80(%rbp), %rcx
movq -0x50(%rbp), %rax
testq %rcx, %rcx
je 0x120af
testq %rax, %rax
je 0x120e9
movq %rax, -0x80(%rbp)
movq %rcx, -0x50(%rbp)
movups -0x78(%rbp), %xmm0
movups -0x48(%rbp), %xmm1
movups %xmm1, -0x78(%rbp)
movups %xmm0, -0x48(%rbp)
movq %r15, 0x8(%rax)
movq -0x50(%rbp), %rax
movq %r12, 0x8(%rax)
movq -0x68(%rbp), %rax
movq -0x38(%rbp), %rcx
movq %rcx, -0x68(%rbp)
jmp 0x120e3
testq %rax, %rax
je 0x1211c
movl -0x58(%rbp), %ecx
movl %ecx, -0x88(%rbp)
movq %rax, -0x80(%rbp)
movups -0x48(%rbp), %xmm0
movups %xmm0, -0x78(%rbp)
movq %r15, 0x8(%rax)
movq -0x38(%rbp), %rax
movq %rax, -0x68(%rbp)
xorl %eax, %eax
movq %rax, -0x50(%rbp)
movq %r12, -0x48(%rbp)
movq %r12, -0x40(%rbp)
movq %rax, -0x38(%rbp)
jmp 0x1211c
movl -0x88(%rbp), %eax
movl %eax, -0x58(%rbp)
movq %rcx, -0x50(%rbp)
movups -0x78(%rbp), %xmm0
movups %xmm0, -0x48(%rbp)
movq %r12, 0x8(%rcx)
movq -0x68(%rbp), %rax
movq %rax, -0x38(%rbp)
xorl %eax, %eax
movq %rax, -0x80(%rbp)
movq %r15, -0x78(%rbp)
movq %r15, -0x70(%rbp)
movq %rax, -0x68(%rbp)
movq 0x21ead(%rip), %rdi     # 0x33fd0
leaq 0x1450e(%rip), %rsi     # 0x26638
movl $0x1, %edx
callq 0x2230
movb 0x20(%r13), %al
leaq -0x29(%rbp), %rsi
movb %al, (%rsi)
movq 0x21e8b(%rip), %rdi     # 0x33fd0
movl $0x1, %edx
callq 0x2230
movq %rax, %rbx
leaq 0x144e1(%rip), %rsi     # 0x2663a
movl $0x4, %edx
movq %rax, %rdi
callq 0x2230
movl 0x24(%r13), %esi
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
movq (%rax), %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 0x21e2d(%rip), %rdi     # 0x33fd0
leaq 0x1448e(%rip), %rsi     # 0x26638
movl $0x1, %edx
callq 0x2230
movb 0x20(%r14), %al
leaq -0x29(%rbp), %rsi
movb %al, (%rsi)
movq 0x21e0b(%rip), %rdi     # 0x33fd0
movl $0x1, %edx
callq 0x2230
movq %rax, %rbx
leaq 0x14461(%rip), %rsi     # 0x2663a
movl $0x4, %edx
movq %rax, %rdi
callq 0x2230
movl 0x24(%r14), %esi
movq %rbx, %rdi
callq 0x2330
movq %rax, %rbx
movq (%rax), %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 -0x90(%rbp), %rdi
callq 0xcdf9
leaq -0x60(%rbp), %rdi
callq 0xcdf9
leaq -0x60(%rbp), %rdi
callq 0xcfe2
leaq -0x90(%rbp), %rdi
callq 0xcfe2
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1225f
jmp 0x1225f
jmp 0x1225f
jmp 0x1225f
jmp 0x1225f
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0xcfe2
leaq -0x90(%rbp), %rdi
callq 0xcfe2
movq %rbx, %rdi
callq 0x2340