// File: /workspace/github_cpp_makefile_star2_O2/t0mm4rx[P]piscine_cpp/day07/ex00/whatever.cpp
// Function: main
int main(void)
{
  int a = 2;
  int b = 3;
  ::swap(a, b);
  std::cout << "a = " << a << ", b = " << b << std::endl;
  std::cout << "min(a, b) = " << ::min( a, b ) << std::endl;
  std::cout << "max(a, b) = " << ::max( a, b ) << std::endl;
  std::string c = "chaine1";
  std::string d = "chaine2";
  ::swap(c, d);
  std::cout << "c = " << c << ", d = " << d << std::endl;
  std::cout << "min(c, d) = " << ::min(c, d) << std::endl;
  std::cout << "max(c, d) = " << ::max(c, d) << std::endl;
  A e(42);
  A f(21);
  ::swap(e, f);
  std::cout << "e = " << e.getN() << ", f = " << f.getN() << std::endl;
  std::cout << "min(e, f) = " << ::min(e, e).getN() << std::endl;
  std::cout << "max(e, f) = " << ::max(f, f).getN() << std::endl;
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq 0x2d58(%rip), %rbx      # 0x3fd8
leaq 0xd7d(%rip), %rsi       # 0x2004
movq %rbx, %rdi
callq 0x10e0
pushq $0x3
popq %r14
movq %rax, %rdi
movl %r14d, %esi
callq 0x1100
leaq 0xd64(%rip), %rsi       # 0x2009
movq %rax, %rdi
callq 0x10e0
pushq $0x2
popq %r15
movq %rax, %rdi
movl %r15d, %esi
callq 0x1100
movq %rax, %rdi
callq 0x1080
leaq 0xd45(%rip), %rsi       # 0x2010
movq %rbx, %rdi
callq 0x10e0
movq %rax, %rdi
movl %r15d, %esi
callq 0x1100
movq %rax, %rdi
callq 0x1080
leaq 0xd30(%rip), %rsi       # 0x201d
movq %rbx, %rdi
callq 0x10e0
movq %rax, %rdi
movl %r14d, %esi
callq 0x1100
movq %rax, %rdi
callq 0x1080
leaq 0xd1b(%rip), %rsi       # 0x202a
leaq -0x60(%rbp), %rdi
leaq -0x40(%rbp), %rdx
callq 0x14ba
leaq 0xd0f(%rip), %rsi       # 0x2032
leaq -0x40(%rbp), %rdi
leaq -0x19(%rbp), %rdx
callq 0x14ba
leaq -0x60(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x14f5
movq 0x2c94(%rip), %rdi      # 0x3fd8
leaq 0xcef(%rip), %rsi       # 0x203a
callq 0x10e0
leaq -0x60(%rbp), %rsi
movq %rax, %rdi
callq 0x10d0
leaq 0xcdc(%rip), %rsi       # 0x203f
movq %rax, %rdi
callq 0x10e0
leaq -0x40(%rbp), %rsi
movq %rax, %rdi
callq 0x10d0
movq %rax, %rdi
callq 0x1080
movq 0x2c52(%rip), %rdi      # 0x3fd8
leaq 0xcb9(%rip), %rsi       # 0x2046
callq 0x10e0
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x155f
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10d0
movq %rax, %rdi
callq 0x1080
movq 0x2c1c(%rip), %rdi      # 0x3fd8
leaq 0xc90(%rip), %rsi       # 0x2053
callq 0x10e0
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x157f
movq %rbx, %rdi
movq %rax, %rsi
callq 0x10d0
movq %rax, %rdi
callq 0x1080
movq 0x2be6(%rip), %rdi      # 0x3fd8
leaq 0xc67(%rip), %rsi       # 0x2060
callq 0x10e0
pushq $0x15
popq %rsi
movq %rax, %rdi
callq 0x1100
leaq 0xc55(%rip), %rsi       # 0x2065
movq %rax, %rdi
callq 0x10e0
pushq $0x2a
popq %rsi
movq %rax, %rdi
callq 0x1100
movq %rax, %rdi
callq 0x1080
movq 0x2ba6(%rip), %rdi      # 0x3fd8
leaq 0xc33(%rip), %rsi       # 0x206c
callq 0x10e0
pushq $0x15
popq %rsi
movq %rax, %rdi
callq 0x1100
movq %rax, %rdi
callq 0x1080
movq 0x2b80(%rip), %rdi      # 0x3fd8
leaq 0xc1a(%rip), %rsi       # 0x2079
callq 0x10e0
pushq $0x2a
popq %rsi
movq %rax, %rdi
callq 0x1100
movq %rax, %rdi
callq 0x1080
leaq -0x40(%rbp), %rdi
callq 0x1070
leaq -0x60(%rbp), %rdi
callq 0x1070
xorl %eax, %eax
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x14a9
jmp 0x149d
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x1070
leaq -0x60(%rbp), %rdi
callq 0x1070
movq %rbx, %rdi
callq 0x1110