// File: /workspace/github_cpp_makefile_star2_O2/t0mm4rx[P]piscine_cpp/day03/ex01/main.cpp
// Function: main
int main(void)
{
	srand(time(0));
	FragTrap john("John");
	FragTrap micheal("Micheal");
	ScavTrap rose("Rose");

	rose.challengeNewcomer();
	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");
	rose.challengeNewcomer();
	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 $0x168, %rsp            # imm = 0x168
xorl %edi, %edi
callq 0x10f0
movl %eax, %edi
callq 0x1100
leaq 0x6ef(%rip), %rsi       # 0x2280
leaq -0xd8(%rbp), %rdi
leaq -0x120(%rbp), %rdx
callq 0x1e80
leaq -0x78(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x130c
leaq -0xd8(%rbp), %rdi
callq 0x1070
leaq 0x6be(%rip), %rsi       # 0x2285
leaq -0xb8(%rbp), %rdi
leaq -0x168(%rbp), %rdx
callq 0x1e80
leaq -0x120(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x130c
leaq -0xb8(%rbp), %rdi
callq 0x1070
leaq 0x68d(%rip), %rsi       # 0x228d
leaq -0x98(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x1e80
leaq -0x168(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x1770
leaq -0x98(%rbp), %rdi
callq 0x1070
leaq -0x168(%rbp), %rdi
callq 0x1ad0
leaq 0x643(%rip), %rsi       # 0x2285
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1e80
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x149c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x619(%rip), %rsi       # 0x2285
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1e80
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x166c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x5ef(%rip), %rsi       # 0x2285
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1e80
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x166c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x5c5(%rip), %rsi       # 0x2285
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1e80
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x166c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x59b(%rip), %rsi       # 0x2285
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1e80
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x166c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq 0x571(%rip), %rsi       # 0x2285
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1e80
leaq -0x78(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x166c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq -0x168(%rbp), %rdi
callq 0x1ad0
leaq 0x536(%rip), %rsi       # 0x2280
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1e80
leaq -0x120(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x166c
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq -0x120(%rbp), %rdi
pushq $0x1e
popq %rsi
callq 0x1574
leaq 0x4fa(%rip), %rsi       # 0x2280
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x1e80
leaq -0x120(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x1508
leaq -0x30(%rbp), %rdi
callq 0x1070
leaq -0x78(%rbp), %rdi
pushq $0x14
popq %rsi
callq 0x1574
leaq -0x168(%rbp), %rdi
callq 0x18b6
leaq -0x120(%rbp), %rdi
callq 0x1452
leaq -0x78(%rbp), %rdi
callq 0x1452
xorl %eax, %eax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %rbp
retq
jmp 0x1e01
jmp 0x1e53
jmp 0x1e01
jmp 0x1e53
jmp 0x1e01
jmp 0x1e53
jmp 0x1e01
jmp 0x1e53
jmp 0x1e01
jmp 0x1e53
jmp 0x1e01
jmp 0x1e53
jmp 0x1e01
jmp 0x1e53
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x1070
jmp 0x1e56
jmp 0x1e53
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x1070
jmp 0x1e62
movq %rax, %rbx
jmp 0x1e62
movq %rax, %rbx
leaq -0xb8(%rbp), %rdi
callq 0x1070
jmp 0x1e6e
movq %rax, %rbx
jmp 0x1e6e
movq %rax, %rbx
leaq -0xd8(%rbp), %rdi
callq 0x1070
jmp 0x1e77
movq %rax, %rbx
jmp 0x1e77
movq %rax, %rbx
leaq -0x168(%rbp), %rdi
callq 0x18b6
leaq -0x120(%rbp), %rdi
callq 0x1452
leaq -0x78(%rbp), %rdi
callq 0x1452
movq %rbx, %rdi
callq 0x1140
nop