// File: Matteo-Grellier[P]RPG/Character.cpp
// Function: Character::attack(Character&)
void Character::attack(Character& defender) {
    int damage = this->physicalAttack - defender.defense;
    defender.receiveDamage(damage);

    Menu::toScreen(
        "",
        this->name + " attaque " + defender.name + " et lui inflige " + to_string(damage) + " de dégats" ,
        defender.name + " est à " + to_string(defender.getCurrentHp()) + " pv."
    );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movl 0x2c(%rax), %eax
movq -0x10(%rbp), %rcx
movl 0x34(%rcx), %ecx
subl %ecx, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x6160
leaq -0x39(%rbp), %rdi
movq %rdi, -0x198(%rbp)
callq 0x33a0
movq -0x198(%rbp), %rdx
leaq 0x86cb(%rip), %rsi      # 0xe512
leaq -0x38(%rbp), %rdi
callq 0x4500
jmp 0x5e52
movq -0x1a0(%rbp), %rsi
addq $0x8, %rsi
leaq 0x82e6(%rip), %rdx      # 0xe14a
leaq -0xf0(%rbp), %rdi
callq 0x66a0
jmp 0x5e72
movq -0x10(%rbp), %rdx
addq $0x8, %rdx
leaq -0xd0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x6840
jmp 0x5e8f
leaq 0x82be(%rip), %rdx      # 0xe154
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x4770
jmp 0x5eab
movl -0x14(%rbp), %esi
leaq -0x110(%rbp), %rdi
callq 0x6720
jmp 0x5ebc
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
leaq -0x110(%rbp), %rdx
callq 0x65d0
jmp 0x5ed8
leaq 0x8286(%rip), %rdx      # 0xe165
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x4770
jmp 0x5ef1
movq -0x10(%rbp), %rsi
addq $0x8, %rsi
leaq 0x8241(%rip), %rdx      # 0xe141
leaq -0x170(%rbp), %rdi
callq 0x66a0
jmp 0x5f0e
movq -0x10(%rbp), %rdi
callq 0x5da0
movl %eax, -0x1a4(%rbp)
jmp 0x5f1f
movl -0x1a4(%rbp), %esi
leaq -0x190(%rbp), %rdi
callq 0x6720
jmp 0x5f33
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x65d0
jmp 0x5f4f
leaq 0x81e6(%rip), %rdx      # 0xe13c
leaq -0x130(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x4770
jmp 0x5f6b
leaq -0x38(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x130(%rbp), %rdx
callq 0x93f0
jmp 0x5f81
leaq -0x130(%rbp), %rdi
callq 0x3418
leaq -0x150(%rbp), %rdi
callq 0x3418
leaq -0x190(%rbp), %rdi
callq 0x3418
leaq -0x170(%rbp), %rdi
callq 0x3418
leaq -0x70(%rbp), %rdi
callq 0x3418
leaq -0x90(%rbp), %rdi
callq 0x3418
leaq -0x110(%rbp), %rdi
callq 0x3418
leaq -0xb0(%rbp), %rdi
callq 0x3418
leaq -0xd0(%rbp), %rdi
callq 0x3418
leaq -0xf0(%rbp), %rdi
callq 0x3418
leaq -0x38(%rbp), %rdi
callq 0x3418
leaq -0x39(%rbp), %rdi
callq 0x3280
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6147
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x613e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6132
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6126
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x611a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x610e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x6102
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x60f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x60ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x60e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x60d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x3418
leaq -0x150(%rbp), %rdi
callq 0x3418
leaq -0x190(%rbp), %rdi
callq 0x3418
leaq -0x170(%rbp), %rdi
callq 0x3418
leaq -0x70(%rbp), %rdi
callq 0x3418
leaq -0x90(%rbp), %rdi
callq 0x3418
leaq -0x110(%rbp), %rdi
callq 0x3418
leaq -0xb0(%rbp), %rdi
callq 0x3418
leaq -0xd0(%rbp), %rdi
callq 0x3418
leaq -0xf0(%rbp), %rdi
callq 0x3418
leaq -0x38(%rbp), %rdi
callq 0x3418
leaq -0x39(%rbp), %rdi
callq 0x3280
movq -0x48(%rbp), %rdi
callq 0x3390
nopl (%rax)