// File: /workspace/github_cpp_makefile_star2_O1/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 0xf45(%rip), %rsi       # 0x4360
leaq 0xf42(%rip), %rdx       # 0x4364
leaq -0x70(%rbp), %rbx
movq %rbx, %rdi
callq 0x36f0
leaq -0x110(%rbp), %rdi
movq %rbx, %rsi
callq 0x2ee0
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x3452
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x40(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xf04(%rip), %rsi       # 0x4365
leaq 0xf01(%rip), %rdx       # 0x4369
leaq -0x50(%rbp), %rdi
callq 0x36f0
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x28b4
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x3496
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 0x2ff0
leaq -0x110(%rbp), %rdi
callq 0x3174
leaq -0x20(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0xe93(%rip), %rsi       # 0x436a
leaq 0xe93(%rip), %rdx       # 0x4371
leaq -0x30(%rbp), %rdi
callq 0x36f0
leaq -0x160(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x333c
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x350c
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0xe4b(%rip), %rsi       # 0x4365
leaq 0xe48(%rip), %rdx       # 0x4369
callq 0x36f0
leaq -0x110(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3288
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x354b
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0xe07(%rip), %rsi       # 0x4360
leaq 0xe04(%rip), %rdx       # 0x4364
callq 0x36f0
leaq -0xc0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2d90
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x358a
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0xdd2(%rip), %rsi       # 0x436a
leaq 0xdd2(%rip), %rdx       # 0x4371
callq 0x36f0
leaq -0x1b0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2cdc
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x35c9
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x30(%rbp), %rdi
movq %r14, (%rdi)
leaq 0xd89(%rip), %rsi       # 0x4360
leaq 0xd86(%rip), %rdx       # 0x4364
callq 0x36f0
leaq -0xc0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x2b48
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3608
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
leaq -0x160(%rbp), %rdi
callq 0x30d8
leaq -0x1b0(%rbp), %rdi
callq 0x2aac
leaq -0xc0(%rbp), %rdi
callq 0x2aac
leaq -0x110(%rbp), %rdi
callq 0x30d8
xorl %eax, %eax
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x3656
jmp 0x3672
jmp 0x3656
jmp 0x3672
jmp 0x3656
jmp 0x3672
jmp 0x3656
jmp 0x3672
movq %rax, %rbx
movq -0x30(%rbp), %rdi
cmpq %r14, %rdi
je 0x3675
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x3675
jmp 0x3672
movq %rax, %rbx
leaq -0x160(%rbp), %rdi
callq 0x30d8
leaq -0x1b0(%rbp), %rdi
callq 0x2aac
leaq -0xc0(%rbp), %rdi
callq 0x2aac
leaq -0x110(%rbp), %rdi
callq 0x30d8
movq %rbx, %rdi
callq 0x2150
movq %rax, %rbx
jmp 0x3681
movq %rax, %rbx
jmp 0x368d
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x3699
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x3699
movq %rax, %rbx
jmp 0x3699
movq %rax, %rbx
movq -0x70(%rbp), %rdi
cmpq %r14, %rdi
je 0x36a5
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x2100
jmp 0x36a5