// File: /workspace/github_cpp_makefile_star2_O2/t0mm4rx[P]piscine_cpp/day03/ex03/main.cpp
// Function: main
int main(void)
{
	srand(time(0));
	ScavTrap rose("Rose");
	FragTrap john("John");
	FragTrap john2 = john;
	ScavTrap rose2(rose);
	NinjaTrap jordan("Jordan");

	rose.challengeNewcomer();
	rose2.meleeAttack("Micheal");
	rose.rangedAttack("John");
	john.meleeAttack("Rose");
	john2.rangedAttack("Micheal");
	john.vaulthunter_dot_exe("Rose");
	jordan.meleeAttack("Rose");
	jordan.rangedAttack("Micheal");
	jordan.ninjaShoebox(john);

	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x218, %rsp            # imm = 0x218
xorl %edi, %edi
callq 0x20f0
movl %eax, %edi
callq 0x2100
leaq 0x1167(%rip), %rsi      # 0x445c
leaq -0x90(%rbp), %rdi
leaq -0xe0(%rbp), %rdx
callq 0x3602
leaq -0x180(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x2fa4
leaq -0x90(%rbp), %rdi
callq 0x2070
leaq 0x1133(%rip), %rsi      # 0x4461
leaq -0x70(%rbp), %rdi
leaq -0x1d0(%rbp), %rdx
callq 0x3602
leaq -0xe0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x2768
leaq -0x70(%rbp), %rdi
callq 0x2070
leaq -0x1d0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x281c
leaq -0x220(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x3058
leaq 0x10e2(%rip), %rsi      # 0x4466
leaq -0x50(%rbp), %rdi
leaq -0x30(%rbp), %rdx
callq 0x3602
leaq -0x130(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x2aec
leaq -0x50(%rbp), %rdi
callq 0x2070
leaq -0x180(%rbp), %rdi
callq 0x315a
leaq 0x10b0(%rip), %rsi      # 0x446d
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3602
leaq -0x220(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3266
leaq -0x30(%rbp), %rdi
callq 0x2070
leaq 0x1077(%rip), %rsi      # 0x4461
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3602
leaq -0x180(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x31fa
leaq -0x30(%rbp), %rdi
callq 0x2070
leaq 0x1045(%rip), %rsi      # 0x445c
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3602
leaq -0xe0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2a7e
leaq -0x30(%rbp), %rdi
callq 0x2070
leaq 0x1029(%rip), %rsi      # 0x446d
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3602
leaq -0x1d0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2a12
leaq -0x30(%rbp), %rdi
callq 0x2070
leaq 0xfeb(%rip), %rsi       # 0x445c
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3602
leaq -0xe0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x291e
leaq -0x30(%rbp), %rdi
callq 0x2070
leaq 0xfbe(%rip), %rsi       # 0x445c
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3602
leaq -0x130(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2f38
leaq -0x30(%rbp), %rdi
callq 0x2070
leaq 0xfa2(%rip), %rsi       # 0x446d
leaq -0x30(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3602
leaq -0x130(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2ecc
leaq -0x30(%rbp), %rdi
callq 0x2070
leaq -0x130(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x2db4
leaq -0x130(%rbp), %rdi
callq 0x2c2c
leaq -0x220(%rbp), %rdi
callq 0x30ea
leaq -0x1d0(%rbp), %rdi
callq 0x28ae
leaq -0xe0(%rbp), %rdi
callq 0x28ae
leaq -0x180(%rbp), %rdi
callq 0x30ea
xorl %eax, %eax
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %rbp
retq
jmp 0x3564
jmp 0x35ba
jmp 0x3564
jmp 0x35ba
jmp 0x3564
jmp 0x35ba
jmp 0x3564
jmp 0x35ba
jmp 0x3564
jmp 0x35ba
jmp 0x3564
jmp 0x35ba
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x2070
jmp 0x35bd
jmp 0x35ba
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x2070
jmp 0x35c9
movq %rax, %rbx
jmp 0x35c9
movq %rax, %rbx
jmp 0x35d5
movq %rax, %rbx
jmp 0x35e1
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x2070
jmp 0x35ed
movq %rax, %rbx
jmp 0x35ed
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x2070
jmp 0x35f9
movq %rax, %rbx
jmp 0x35f9
movq %rax, %rbx
leaq -0x130(%rbp), %rdi
callq 0x2c2c
leaq -0x220(%rbp), %rdi
callq 0x30ea
leaq -0x1d0(%rbp), %rdi
callq 0x28ae
leaq -0xe0(%rbp), %rdi
callq 0x28ae
leaq -0x180(%rbp), %rdi
callq 0x30ea
movq %rbx, %rdi
callq 0x2160
nop