// File: /workspace/github_cpp_makefile_star2_O2/Matteo-Grellier[P]RPG/Barbarian.cpp
// Function: Barbarian::enterFury()
void Barbarian::enterFury(){
    if( inFury ){
        throw IllegalFury(true);
    }
    baseAttack = this->physicalAttack;
    baseDefense = this->defense;
    inFury = true;
    physicalAttack *= 1.5f;
    defense = 0;
    this->receiveDamage(maxHp*0.15f);

    Menu::toScreen(
        "",
        this->name + " rentre en mode FURY ! il perd donc " + to_string(maxHp*0.15f) + "de vie",
        this->name + " est à " + to_string(this->getCurrentHp()) + " pv."
    );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x130, %rsp            # imm = 0x130
cmpb $0x1, 0x4c(%rdi)
je 0x42f3
movq %rdi, %rbx
movl 0x2c(%rdi), %eax
movl 0x34(%rdi), %ecx
movl %eax, 0x44(%rdi)
movl %ecx, 0x48(%rdi)
movb $0x1, 0x4c(%rdi)
cvtsi2ss %eax, %xmm0
mulss 0x31e3(%rip), %xmm0     # 0x7360
cvttss2si %xmm0, %eax
movl %eax, 0x2c(%rdi)
andl $0x0, 0x34(%rdi)
cvtsi2ssl 0x38(%rdi), %xmm0
mulss 0x31cf(%rip), %xmm0     # 0x7364
cvttss2si %xmm0, %esi
callq 0x36ac
leaq 0x338d(%rip), %rsi      # 0x7532
leaq -0x138(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0x2c78
leaq 0x8(%rbx), %r14
leaq 0x31a8(%rip), %rdx      # 0x7368
leaq -0xd8(%rbp), %rdi
movq %r14, %rsi
callq 0x39a9
cvtsi2ssl 0x38(%rbx), %xmm0
mulss 0x3188(%rip), %xmm0     # 0x7364
leaq -0xb8(%rbp), %rdi
callq 0x4456
leaq -0xf8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
callq 0x3938
leaq 0x3184(%rip), %rdx      # 0x738d
leaq -0x118(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x2dbc
leaq 0x2f3a(%rip), %rdx      # 0x715d
leaq -0x58(%rbp), %rdi
movq %r14, %rsi
callq 0x39a9
movq %rbx, %rdi
callq 0x3406
leaq -0x38(%rbp), %rdi
movl %eax, %esi
callq 0x39e1
leaq -0x78(%rbp), %rdi
leaq -0x58(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x3938
leaq 0x2efe(%rip), %rdx      # 0x7158
leaq -0x98(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x2dbc
leaq -0x138(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x4e84
leaq -0x98(%rbp), %rdi
callq 0x22a8
leaq -0x78(%rbp), %rdi
callq 0x22a8
leaq -0x38(%rbp), %rdi
callq 0x22a8
leaq -0x58(%rbp), %rdi
callq 0x22a8
leaq -0x118(%rbp), %rdi
callq 0x22a8
leaq -0xf8(%rbp), %rdi
callq 0x22a8
leaq -0xb8(%rbp), %rdi
callq 0x22a8
leaq -0xd8(%rbp), %rdi
callq 0x22a8
leaq -0x138(%rbp), %rdi
callq 0x22a8
addq $0x130, %rsp            # imm = 0x130
popq %rbx
popq %r14
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0x20c0
leaq 0x69a6(%rip), %rcx      # 0xaca8
addq $0x10, %rcx
movq %rcx, (%rax)
movb $0x1, 0x8(%rax)
leaq 0x69bc(%rip), %rsi      # 0xacd0
movq 0x6cc5(%rip), %rdx      # 0xafe0
movq %rax, %rdi
callq 0x2250
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x22a8
jmp 0x4337
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x22a8
jmp 0x4345
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0x22a8
jmp 0x436c
movq %rax, %rbx
jmp 0x4375
movq %rax, %rbx
jmp 0x4381
movq %rax, %rbx
jmp 0x438d
movq %rax, %rbx
jmp 0x4399
movq %rax, %rbx
jmp 0x43a5
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x22a8
leaq -0x118(%rbp), %rdi
callq 0x22a8
leaq -0xf8(%rbp), %rdi
callq 0x22a8
leaq -0xb8(%rbp), %rdi
callq 0x22a8
leaq -0xd8(%rbp), %rdi
callq 0x22a8
leaq -0x138(%rbp), %rdi
callq 0x22a8
movq %rbx, %rdi
callq 0x2260
nop