// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x188, %rsp            # imm = 0x188
xorl %edi, %edi
callq 0x10f0
movl %eax, %edi
callq 0x1100
leaq 0xa03(%rip), %rsi       # 0x2164
leaq -0xb8(%rbp), %rdi
leaq -0x100(%rbp), %rdx
callq 0x1a92
leaq -0x78(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x12dc
leaq -0xb8(%rbp), %rdi
callq 0x1070
leaq 0x9d2(%rip), %rsi       # 0x2169
leaq -0x98(%rbp), %rdi
leaq -0x148(%rbp), %rdx
callq 0x1a92
leaq -0x100(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x12dc
leaq -0x98(%rbp), %rdi
callq 0x1070
leaq -0x148(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x136a
leaq -0x190(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x136a
leaq 0x97e(%rip), %rsi       # 0x2171
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x148(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x14d8
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x949(%rip), %rsi       # 0x2169
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x146c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x91f(%rip), %rsi       # 0x2169
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x163c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x8f5(%rip), %rsi       # 0x2169
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x163c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x8cb(%rip), %rsi       # 0x2169
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x163c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x8a1(%rip), %rsi       # 0x2169
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x163c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x877(%rip), %rsi       # 0x2169
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x163c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x855(%rip), %rsi       # 0x2171
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x190(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x146c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x81b(%rip), %rsi       # 0x2164
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x100(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x163c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq -0x100(%rbp), %rdi
pushq $0x1e
popq %rsi
callq 0x1544
leaq 0x7df(%rip), %rsi       # 0x2164
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1a92
leaq -0x100(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x14d8
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq -0x78(%rbp), %rdi
pushq $0x14
popq %rsi
callq 0x1544
leaq -0x190(%rbp), %rdi
callq 0x1422
leaq -0x148(%rbp), %rdi
callq 0x1422
leaq -0x100(%rbp), %rdi
callq 0x1422
leaq -0x78(%rbp), %rdi
callq 0x1422
xorl %eax, %eax
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %rbp
retq
jmp 0x1a14
jmp 0x1a5a
jmp 0x1a14
jmp 0x1a5a
jmp 0x1a14
jmp 0x1a5a
jmp 0x1a14
jmp 0x1a5a
jmp 0x1a14
jmp 0x1a5a
jmp 0x1a14
jmp 0x1a5a
jmp 0x1a14
jmp 0x1a5a
jmp 0x1a14
jmp 0x1a5a
jmp 0x1a14
jmp 0x1a5a
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x1070
jmp 0x1a5d
jmp 0x1a5a
movq %rax, %rbx
jmp 0x1a69
movq %rax, %rbx
jmp 0x1a75
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x1070
jmp 0x1a81
movq %rax, %rbx
jmp 0x1a81
movq %rax, %rbx
leaq -0xb8(%rbp), %rdi
callq 0x1070
jmp 0x1a8a
movq %rax, %rbx
jmp 0x1a8a
movq %rax, %rbx
leaq -0x190(%rbp), %rdi
callq 0x1422
leaq -0x148(%rbp), %rdi
callq 0x1422
leaq -0x100(%rbp), %rdi
callq 0x1422
leaq -0x78(%rbp), %rdi
callq 0x1422
movq %rbx, %rdi
callq 0x1140