// File: /workspace/github_cpp_makefile_star2_O1/t0mm4rx[P]piscine_cpp/day03/ex00/main.cpp
// Function: main
int main(void)
{
	srand(time(0));
	FragTrap john("John");
	FragTrap micheal("Micheal");
	FragTrap john2 = john;
	FragTrap micheal2(micheal);

	john2.meleeAttack("Rose");
	john.rangedAttack("Micheal");
	john.vaulthunter_dot_exe("Micheal");
	john.vaulthunter_dot_exe("Micheal");
	john.vaulthunter_dot_exe("Micheal");
	john.vaulthunter_dot_exe("Micheal");
	john.vaulthunter_dot_exe("Micheal");
	micheal2.rangedAttack("Rose");
	micheal.vaulthunter_dot_exe("John");
	micheal.takeDamage(30);
	micheal.meleeAttack("John");
	john.takeDamage(20);

	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x180, %rsp            # imm = 0x180
xorl %edi, %edi
callq 0x10d0
movl %eax, %edi
callq 0x10e0
leaq -0x60(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x7bd(%rip), %rsi       # 0x2190
leaq 0x7ba(%rip), %rdx       # 0x2194
leaq -0x70(%rbp), %rbx
movq %rbx, %rdi
callq 0x1e0e
leaq -0xb8(%rbp), %rdi
movq %rbx, %rsi
callq 0x12dc
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x1a0a
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x40(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x77c(%rip), %rsi       # 0x2195
leaq 0x77c(%rip), %rdx       # 0x219c
leaq -0x50(%rbp), %rdi
callq 0x1e0e
leaq -0x100(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x12dc
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x1a4e
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x190(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x13ac
leaq -0x148(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x13ac
leaq -0x20(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x71a(%rip), %rsi       # 0x219d
leaq 0x717(%rip), %rdx       # 0x21a1
leaq -0x30(%rbp), %rdi
callq 0x1e0e
leaq -0x190(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x15e0
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1ab8
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x6cf(%rip), %rsi       # 0x2195
leaq 0x6cf(%rip), %rdx       # 0x219c
callq 0x1e0e
leaq -0xb8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x152c
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1af7
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x690(%rip), %rsi       # 0x2195
leaq 0x690(%rip), %rdx       # 0x219c
callq 0x1e0e
leaq -0xb8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x1804
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1b36
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x651(%rip), %rsi       # 0x2195
leaq 0x651(%rip), %rdx       # 0x219c
callq 0x1e0e
leaq -0xb8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x1804
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1b75
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x612(%rip), %rsi       # 0x2195
leaq 0x612(%rip), %rdx       # 0x219c
callq 0x1e0e
leaq -0xb8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x1804
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1bb4
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x5d3(%rip), %rsi       # 0x2195
leaq 0x5d3(%rip), %rdx       # 0x219c
callq 0x1e0e
leaq -0xb8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x1804
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1bf3
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x594(%rip), %rsi       # 0x2195
leaq 0x594(%rip), %rdx       # 0x219c
callq 0x1e0e
leaq -0xb8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x1804
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c32
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x55d(%rip), %rsi       # 0x219d
leaq 0x55a(%rip), %rdx       # 0x21a1
callq 0x1e0e
leaq -0x148(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x152c
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1c71
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x511(%rip), %rsi       # 0x2190
leaq 0x50e(%rip), %rdx       # 0x2194
callq 0x1e0e
leaq -0x100(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x1804
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1cb0
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0x100(%rbp), %rdi
movl $0x1e, %esi
callq 0x1694
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x4c1(%rip), %rsi       # 0x2190
leaq 0x4be(%rip), %rdx       # 0x2194
callq 0x1e0e
leaq -0x100(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x15e0
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1d00
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
leaq -0xb8(%rbp), %rdi
movl $0x14, %esi
callq 0x1694
leaq -0x148(%rbp), %rdi
callq 0x14a6
leaq -0x190(%rbp), %rdi
callq 0x14a6
leaq -0x100(%rbp), %rdi
callq 0x14a6
leaq -0xb8(%rbp), %rdi
callq 0x14a6
xorl %eax, %eax
addq $0x180, %rsp            # imm = 0x180
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x1d73
jmp 0x1dd2
jmp 0x1d73
jmp 0x1dd2
jmp 0x1d73
jmp 0x1dd2
jmp 0x1d73
jmp 0x1dd2
jmp 0x1d73
jmp 0x1dd2
jmp 0x1d73
jmp 0x1dd2
jmp 0x1d73
jmp 0x1dd2
jmp 0x1d73
jmp 0x1dd2
jmp 0x1d73
jmp 0x1dd2
movq %rax, %rbx
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x1dd5
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x1100
jmp 0x1dd5
jmp 0x1dd2
movq %rax, %rbx
jmp 0x1de1
movq %rax, %rbx
jmp 0x1ded
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x1df9
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x1100
jmp 0x1df9
movq %rax, %rbx
jmp 0x1df9
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x1e05
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x1100
jmp 0x1e05
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
callq 0x14a6
leaq -0x190(%rbp), %rdi
callq 0x14a6
leaq -0x100(%rbp), %rdi
callq 0x14a6
leaq -0xb8(%rbp), %rdi
callq 0x14a6
movq %rbx, %rdi
callq 0x1150
nop