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

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

	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x1a0, %rsp            # imm = 0x1A0
xorl %edi, %edi
callq 0x20d0
movl %eax, %edi
callq 0x20e0
leaq -0x60(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xf41(%rip), %rsi       # 0x4360
leaq 0xf3e(%rip), %rdx       # 0x4364
leaq -0x70(%rbp), %rbx
movq %rbx, %rdi
callq 0x36f4
leaq -0x110(%rbp), %rdi
movq %rbx, %rsi
callq 0x2ee4
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x3456
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x40(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xf00(%rip), %rsi       # 0x4365
leaq 0xefd(%rip), %rdx       # 0x4369
leaq -0x50(%rbp), %rdi
callq 0x36f4
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x28b4
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x349a
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x1b0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x29c4
leaq -0x160(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x2ff4
leaq -0x110(%rbp), %rdi
callq 0x3178
leaq -0x20(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xe8f(%rip), %rsi       # 0x436a
leaq 0xe8f(%rip), %rdx       # 0x4371
leaq -0x30(%rbp), %rdi
callq 0x36f4
leaq -0x160(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3340
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3510
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0xe47(%rip), %rsi       # 0x4365
leaq 0xe44(%rip), %rdx       # 0x4369
callq 0x36f4
leaq -0x110(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x328c
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x354f
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0xe03(%rip), %rsi       # 0x4360
leaq 0xe00(%rip), %rdx       # 0x4364
callq 0x36f4
leaq -0xc0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2d90
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x358e
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0xdce(%rip), %rsi       # 0x436a
leaq 0xdce(%rip), %rdx       # 0x4371
callq 0x36f4
leaq -0x1b0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2cdc
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x35cd
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0xd85(%rip), %rsi       # 0x4360
leaq 0xd82(%rip), %rdx       # 0x4364
callq 0x36f4
leaq -0xc0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2b48
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x360c
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x160(%rbp), %rdi
callq 0x30dc
leaq -0x1b0(%rbp), %rdi
callq 0x2aac
leaq -0xc0(%rbp), %rdi
callq 0x2aac
leaq -0x110(%rbp), %rdi
callq 0x30dc
xorl %eax, %eax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x365a
jmp 0x3676
jmp 0x365a
jmp 0x3676
jmp 0x365a
jmp 0x3676
jmp 0x365a
jmp 0x3676
movq %rax, %rbx
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3679
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x3679
jmp 0x3676
movq %rax, %rbx
leaq -0x160(%rbp), %rdi
callq 0x30dc
leaq -0x1b0(%rbp), %rdi
callq 0x2aac
leaq -0xc0(%rbp), %rdi
callq 0x2aac
leaq -0x110(%rbp), %rdi
callq 0x30dc
movq %rbx, %rdi
callq 0x2150
movq %rax, %rbx
jmp 0x3685
movq %rax, %rbx
jmp 0x3691
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x369d
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x369d
movq %rax, %rbx
jmp 0x369d
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x36a9
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x36a9