// File: /workspace/github_cpp_makefile_star2_O3/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 %r14
pushq %rbx
subq $0x210, %rsp            # imm = 0x210
xorl %edi, %edi
callq 0x20d0
movl %eax, %edi
callq 0x20e0
leaq -0x80(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x18e5(%rip), %rsi      # 0x54d8
leaq 0x18e2(%rip), %rdx      # 0x54dc
leaq -0x90(%rbp), %rbx
movq %rbx, %rdi
callq 0x3ff8
leaq -0x180(%rbp), %rdi
movq %rbx, %rsi
callq 0x36b8
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x3c30
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x60(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x189e(%rip), %rsi      # 0x54dd
leaq 0x189b(%rip), %rdx      # 0x54e1
leaq -0x70(%rbp), %rdi
callq 0x3ff8
leaq -0xe0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x29b0
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x3c74
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x220(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x2ac0
leaq -0x1d0(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x37c8
leaq -0x40(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x1839(%rip), %rsi      # 0x54e2
leaq 0x1838(%rip), %rdx      # 0x54e8
leaq -0x50(%rbp), %rdi
callq 0x3ff8
leaq -0x130(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x2f40
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x3cde
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x180(%rbp), %rdi
callq 0x394c
leaq -0x20(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x17f0(%rip), %rsi      # 0x54e9
leaq 0x17f0(%rip), %rdx      # 0x54f0
leaq -0x30(%rbp), %rdi
callq 0x3ff8
leaq -0x1d0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3b14
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3d2e
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x17a1(%rip), %rsi      # 0x54dd
leaq 0x179e(%rip), %rdx      # 0x54e1
callq 0x3ff8
leaq -0x180(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3a60
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3d6d
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x175d(%rip), %rsi      # 0x54d8
leaq 0x175a(%rip), %rdx      # 0x54dc
callq 0x3ff8
leaq -0xe0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2e8c
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3dac
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x172f(%rip), %rsi      # 0x54e9
leaq 0x172f(%rip), %rdx      # 0x54f0
callq 0x3ff8
leaq -0x220(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2dd8
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3deb
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x16df(%rip), %rsi      # 0x54d8
leaq 0x16dc(%rip), %rdx      # 0x54dc
callq 0x3ff8
leaq -0xe0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2c44
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3e2a
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x16a0(%rip), %rsi      # 0x54d8
leaq 0x169d(%rip), %rdx      # 0x54dc
callq 0x3ff8
leaq -0x130(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3604
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3e69
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0x1672(%rip), %rsi      # 0x54e9
leaq 0x1672(%rip), %rdx      # 0x54f0
callq 0x3ff8
leaq -0x130(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3550
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3ea8
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x130(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x3390
leaq -0x130(%rbp), %rdi
callq 0x3134
leaq -0x1d0(%rbp), %rdi
callq 0x38b0
leaq -0x220(%rbp), %rdi
callq 0x2ba8
leaq -0xe0(%rbp), %rdi
callq 0x2ba8
leaq -0x180(%rbp), %rdi
callq 0x38b0
xorl %eax, %eax
addq $0x210, %rsp            # imm = 0x210
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x3f2f
jmp 0x3fb0
jmp 0x3f2f
jmp 0x3fb0
jmp 0x3f2f
jmp 0x3fb0
jmp 0x3f2f
jmp 0x3fb0
jmp 0x3f2f
jmp 0x3fb0
jmp 0x3f2f
jmp 0x3fb0
movq %rax, %rbx
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3fb3
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x3fb3
jmp 0x3fb0
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x3fbf
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x3fbf
movq %rax, %rbx
jmp 0x3fbf
movq %rax, %rbx
jmp 0x3fcb
movq %rax, %rbx
jmp 0x3fd7
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x3fe3
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x3fe3
movq %rax, %rbx
jmp 0x3fe3
movq %rax, %rbx
movq -0x90(%rbp), %rdi
cmpq %r14, %rdi
je 0x3fef
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x3fef
movq %rax, %rbx
leaq -0x130(%rbp), %rdi
callq 0x3134
leaq -0x1d0(%rbp), %rdi
callq 0x38b0
leaq -0x220(%rbp), %rdi
callq 0x2ba8
leaq -0xe0(%rbp), %rdi
callq 0x2ba8
leaq -0x180(%rbp), %rdi
callq 0x38b0
movq %rbx, %rdi
callq 0x2150
nop