LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/characters/enemies/warlock/Warlock.cpp
// Function: Warlock::Warlock()
Warlock::Warlock():Enemy(e_enemy_warlock, 60, "Warlock", 100, 5, 10, 15, 40, 0)
{
    skills[0] = e_move_attack;
    skills[1] = e_move_attack;
    skills[2] = e_move_heal;
    skills[3] = e_move_firebolt;
    uses = {10, 10, 10, 10};
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x71c5(%rip), %rsi      # 0xb153
leaq 0x71c5(%rip), %rdx      # 0xb15a
movq %rsp, %r14
movq %r14, %rdi
callq 0x3bdc
movq %rbx, %rdi
movl $0x2, %esi
movl $0x3c, %edx
movq %r14, %rcx
movl $0x64, %r8d
movl $0x5, %r9d
pushq $0x0
pushq $0x28
pushq $0xf
pushq $0xa
callq 0x3854
addq $0x20, %rsp
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x3fe3
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3120
leaq 0xc766(%rip), %rax      # 0x10750
movq %rax, (%rbx)
movaps 0x712c(%rip), %xmm0     # 0xb120
movups %xmm0, 0x1c(%rbx)
movaps 0x7071(%rip), %xmm0     # 0xb070
movups %xmm0, 0x2c(%rbx)
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x4026
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3120
movq %rbx, %rdi
callq 0x31c0
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/characters/players/warrior/Warrior.cpp
// Function: Warrior::Warrior()
Warrior::Warrior() :Player(e_player_warrior,    //ID
                           "Warrior",           //NAME
                           100,                 //HP
                           15,                  //STRENGTH
                           10,                  //AGILITY
                           5)                   //INTELLIGENCE
{
    skills[0] = e_move_attack;
    skills[1] = e_move_power_attack;
    skills[2] = e_move_bash;
    skills[3] = e_move_heal;
    uses = {10, 10, 10 ,10};
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rdi, %rbx
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x6e34(%rip), %rsi      # 0xb10a
leaq 0x6e34(%rip), %rdx      # 0xb111
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x3bdc
movl $0x5, (%rsp)
movq %rbx, %rdi
movl $0x1, %esi
movq %r14, %rdx
movl $0x64, %ecx
movl $0xf, %r8d
movl $0xa, %r9d
callq 0x40fc
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x4329
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3120
leaq 0xc4a0(%rip), %rax      # 0x107d0
movq %rax, (%rbx)
movaps 0x6e46(%rip), %xmm0     # 0xb180
movups %xmm0, 0x1c(%rbx)
movaps 0x6d2b(%rip), %xmm0     # 0xb070
movups %xmm0, 0x2c(%rbx)
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x436d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3120
movq %rbx, %rdi
callq 0x31c0
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/characters/players/rogue/Rogue.cpp
// Function: Rogue::Rogue()
Rogue::Rogue() :Player(e_player_rogue,    //ID
                       "Rogue",           //NAME
                       100,               //HP
                       10,                //STRENGTH
                       10,                //AGILITY
                       10)                //INTELLIGENCE
{
    skills[0] = e_move_attack;
    skills[1] = e_move_throw;
    skills[2] = e_move_poison;
    skills[3] = e_move_heal;
    uses = {10, 10, 10 ,10};
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rdi, %rbx
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x6d1d(%rip), %rsi      # 0xb203
leaq 0x6d1b(%rip), %rdx      # 0xb208
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x3bdc
movl $0xa, (%rsp)
movq %rbx, %rdi
movl $0x2, %esi
movq %r14, %rdx
movl $0x64, %ecx
movl $0xa, %r8d
movl $0xa, %r9d
callq 0x40fc
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x4539
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3120
leaq 0xc2d0(%rip), %rax      # 0x10810
movq %rax, (%rbx)
movaps 0x6c86(%rip), %xmm0     # 0xb1d0
movups %xmm0, 0x1c(%rbx)
movaps 0x6b1b(%rip), %xmm0     # 0xb070
movups %xmm0, 0x2c(%rbx)
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x457d
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3120
movq %rbx, %rdi
callq 0x31c0
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/characters/players/mage/Mage.cpp
// Function: Mage::Mage()
Mage::Mage() :Player(e_player_mage,    //ID
                     "Mage",           //NAME
                     100,              //HP
                     5,                //STRENGTH
                     10,               //AGILITY
                     15)               //INTELLIGENCE
{
    skills[0] = e_move_attack;
    skills[1] = e_move_heal;
    skills[2] = e_move_firebolt;
    skills[3] = e_move_frost_nova;
    uses = {10, 10, 10 ,10};
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movq %rdi, %rbx
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x6b4e(%rip), %rsi      # 0xb250
leaq 0x6b4b(%rip), %rdx      # 0xb254
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x3bdc
movl $0xf, (%rsp)
movq %rbx, %rdi
movl $0x3, %esi
movq %r14, %rdx
movl $0x64, %ecx
movl $0x5, %r8d
movl $0xa, %r9d
callq 0x40fc
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x4755
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3120
leaq 0xc0f4(%rip), %rax      # 0x10850
movq %rax, (%rbx)
movaps 0x6aaa(%rip), %xmm0     # 0xb210
movups %xmm0, 0x1c(%rbx)
movaps 0x68ff(%rip), %xmm0     # 0xb070
movups %xmm0, 0x2c(%rbx)
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x4799
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x3120
movq %rbx, %rdi
callq 0x31c0
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/factory/Factory.cpp
// Function: Factory::createPlayer(int)
std::shared_ptr<Player> Factory::createPlayer(int type)
{
    switch(type)
    {
        case e_player_warrior:
            return std::make_shared<Warrior>();
        case e_player_rogue:
            return std::make_shared<Rogue>();
        case e_player_mage:
            return std::make_shared<Mage>();
        default:
            return nullptr;
    }
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
cmpl $0x3, %esi
je 0x488d
cmpl $0x2, %esi
je 0x486c
cmpl $0x1, %esi
jne 0x48b2
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x4954
jmp 0x48ac
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x4a20
jmp 0x48ac
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x4aec
movaps (%r14), %xmm0
jmp 0x48b5
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/factory/Factory.cpp
// Function: Factory::createEnemy(int)
std::shared_ptr<Enemy> Factory::createEnemy(int type)
{
    switch(type)
    {
        case e_enemy_orc:
            return std::make_shared<Orc>();
        case e_enemy_goblin:
            return std::make_shared<Goblin>();
        case e_enemy_warlock:
            return std::make_shared<Warlock>();
        default:
            return nullptr;
    }
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
cmpl $0x2, %esi
je 0x491e
cmpl $0x1, %esi
je 0x48fd
testl %esi, %esi
jne 0x4943
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x4bb8
jmp 0x493d
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x4c84
jmp 0x493d
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %r14
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x4d50
movaps (%r14), %xmm0
jmp 0x4946
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/battle/Battle.cpp
// Function: Battle::levelupPlayer(std::shared_ptr<Player>&)
void Battle::levelupPlayer(std::shared_ptr<Player> &player)
{
    player->level++;
    player->level_points=+5;

    player->hitpoints+=5;
    player->max_hitpoints+=5;

    player->strength+=1;
    player->agility+=1;
    player->intelligence+=1;

    std::cout << "  !LEVEL UP!\n"
              << "  hitpoints "     << player->max_hitpoints << "\n"
              << "  strength "      << player->strength << "\n"
              << "  agility "       << player->agility << "\n"
              << "  intelligence "  << player->intelligence << "\n"
              << "  level points "  << player->level_points << "\n";
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq (%rdi), %rax
incl 0x88(%rax)
movl $0x5, 0x90(%rax)
movdqu 0x8(%rax), %xmm0
paddd 0x665c(%rip), %xmm0     # 0xb4a0
movdqu %xmm0, 0x8(%rax)
incl 0x18(%rax)
movq 0xc17d(%rip), %r14      # 0x10fd0
leaq 0x6656(%rip), %rsi      # 0xb4b0
movl $0xd, %edx
movq %r14, %rdi
callq 0x3140
leaq 0x6650(%rip), %rsi      # 0xb4be
movl $0xc, %edx
movq %r14, %rdi
callq 0x3140
movq (%rbx), %rax
movl 0xc(%rax), %esi
movq %r14, %rdi
callq 0x31b0
movq %rax, %r15
leaq 0x67fb(%rip), %r14      # 0xb68e
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3140
leaq 0x6621(%rip), %rsi      # 0xb4cb
movl $0xb, %edx
movq %r15, %rdi
callq 0x3140
movq (%rbx), %rax
movl 0x10(%rax), %esi
movq %r15, %rdi
callq 0x31b0
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3140
leaq 0x65f8(%rip), %rsi      # 0xb4d7
movl $0xa, %edx
movq %r15, %rdi
callq 0x3140
movq (%rbx), %rax
movl 0x14(%rax), %esi
movq %r15, %rdi
callq 0x31b0
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3140
leaq 0x65ce(%rip), %rsi      # 0xb4e2
movl $0xf, %edx
movq %r15, %rdi
callq 0x3140
movq (%rbx), %rax
movl 0x18(%rax), %esi
movq %r15, %rdi
callq 0x31b0
movq %rax, %r15
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
callq 0x3140
leaq 0x65a9(%rip), %rsi      # 0xb4f2
movl $0xf, %edx
movq %r15, %rdi
callq 0x3140
movq (%rbx), %rax
movl 0x90(%rax), %esi
movq %r15, %rdi
callq 0x31b0
movl $0x1, %edx
movq %rax, %rdi
movq %r14, %rsi
popq %rbx
popq %r14
popq %r15
jmp 0x3140
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/battle/Battle.cpp
// Function: Battle::endBattle(std::shared_ptr<Player>&, std::shared_ptr<Enemy>&)
void Battle::endBattle(std::shared_ptr<Player> &player,
                       std::shared_ptr<Enemy> &enemy)
{
    if (player->hitpoints >= 0)
    {
        player->win++;
        std::cout << "\n [ You win! ] \n"
                  << " Experience: +"
                  << enemy->get_exp << '\n'
                  << " Gold: +"
                  << enemy->gold
                  << "\n";
        player->gold += enemy->gold;
        player->experience += enemy->get_exp;
        if(player->experience >= player->level*100)
            levelupPlayer (player);
    }
    else
    {
        std::cout << "\n [ You lose! ] \n";
        player->lost++;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
cmpl $0x0, 0x8(%rax)
js 0x505f
movq %rsi, %r14
incl 0x94(%rax)
movq 0xc02b(%rip), %r15      # 0x10fd0
leaq 0x6556(%rip), %rsi      # 0xb502
movl $0x10, %edx
movq %r15, %rdi
callq 0x3140
leaq 0x6553(%rip), %rsi      # 0xb513
movl $0xe, %edx
movq %r15, %rdi
callq 0x3140
movq (%r14), %rax
movl 0x88(%rax), %esi
movq %r15, %rdi
callq 0x31b0
leaq 0xf(%rsp), %rsi
movb $0xa, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3140
movq %rax, %r15
leaq 0x6525(%rip), %rsi      # 0xb522
movl $0x8, %edx
movq %rax, %rdi
callq 0x3140
movq (%r14), %rax
movl 0x3c(%rax), %esi
movq %r15, %rdi
callq 0x31b0
leaq 0x666f(%rip), %rsi      # 0xb68e
movl $0x1, %edx
movq %rax, %rdi
callq 0x3140
movq (%r14), %rax
movl 0x3c(%rax), %ecx
movq (%rbx), %rdx
addl %ecx, 0x3c(%rdx)
movl 0x8c(%rdx), %ecx
addl 0x88(%rax), %ecx
movl %ecx, 0x8c(%rdx)
imull $0x64, 0x88(%rdx), %eax
cmpl %eax, %ecx
jl 0x5080
movq %rbx, %rdi
callq 0x4e1c
jmp 0x5080
movq 0xbf6a(%rip), %rdi      # 0x10fd0
leaq 0x64be(%rip), %rsi      # 0xb52b
movl $0x11, %edx
callq 0x3140
movq (%rbx), %rax
incl 0x98(%rax)
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/battle/Battle.cpp
// Function: Battle::printBattle(std::shared_ptr<Player> const&, std::shared_ptr<Enemy> const&)
void Battle::printBattle(const std::shared_ptr<Player> &player, const std::shared_ptr<Enemy> &enemy)
{
    std::cout << "------------------------------------" << '\n';
    std::cout << enemy->name << '\n';
    std::cout << enemy->hitpoints << "|" << enemy->max_hitpoints << '\n';
    enemy->printCharacter ();
    std::cout << '\n';
    std::cout << '\n';
    player->printCharacter ();
    std::cout << player->name << '\n';
    std::cout << player->hitpoints << "|" << player->max_hitpoints << '\n';
    std::cout << "-------------" << '\n';
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r12
movq %rdi, %r14
movq 0xbd9e(%rip), %rbx      # 0x10fd0
leaq 0x6321(%rip), %rsi      # 0xb55a
movl $0x24, %edx
movq %rbx, %rdi
callq 0x3140
movb $0xa, %bpl
movq %rsp, %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x3140
movq (%r12), %rax
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
movq %rbx, %rdi
callq 0x3140
leaq 0x1(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3140
movq (%r12), %rax
movl 0x8(%rax), %esi
movq %rbx, %rdi
callq 0x31b0
movq %rax, %r13
leaq 0x5f5b(%rip), %r15      # 0xb1f9
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3140
movq (%r12), %rax
movl 0xc(%rax), %esi
movq %r13, %rdi
callq 0x31b0
leaq 0x2(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3140
movq (%r12), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
leaq 0x3(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x3140
leaq 0x4(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x3140
movq (%r14), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movq (%r14), %rax
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
movq %rbx, %rdi
callq 0x3140
leaq 0x5(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3140
movq (%r14), %rax
movl 0x8(%rax), %esi
movq %rbx, %rdi
callq 0x31b0
movq %rax, %r12
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x3140
movq (%r14), %rax
movl 0xc(%rax), %esi
movq %r12, %rdi
callq 0x31b0
leaq 0x6(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3140
leaq 0x61ef(%rip), %rsi      # 0xb571
movl $0xd, %edx
movq %rbx, %rdi
callq 0x3140
leaq 0x7(%rsp), %rsi
movb %bpl, (%rsi)
movl $0x1, %edx
movq %rbx, %rdi
callq 0x3140
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/battle/Battle.cpp
// Function: Battle::printMoves(std::shared_ptr<Player> const&, std::vector<std::shared_ptr<Skill>, std::allocator<std::shared_ptr<Skill>>> const&)
void Battle::printMoves(const std::shared_ptr<Player> &player, const std::vector<std::shared_ptr<Skill>> &skills)
{
    int n = 4;
    for(int i = 0; i < n; i++)
    {
        std::cout << "[" <<i+1<<"]: ("
                  << std::setw(2)
                  << player->uses[i]
                  << "/10) ";
        for(int j = 0; j < skills.size (); j++)
        {
            if (player->skills[ i ] == skills[ j ]->id)
            {
                std::cout << skills[ j ]->name << " ";
                if (! skills[ j ]->target)
                {
                    std::cout << "enemy (-";
                    std::cout << skills[j]->damage << "hp)\n";
                }
                else
                {
                    std::cout << "yourself (+";
                    std::cout << skills[j]->damage << "hp)\n";
                }
            }
        }
    }
    std::cout << "\n[>]: ";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
xorl %r12d, %r12d
movq 0xbc01(%rip), %r15      # 0x10fd0
movl $0x1, %edx
movq %r15, %rdi
leaq 0x65bd(%rip), %rsi      # 0xb99b
callq 0x3140
leaq 0x1(%r12), %rsi
movq %r15, %rdi
movq %rsi, (%rsp)
callq 0x31b0
movq %rax, %r13
movl $0x4, %edx
movq %rax, %rdi
leaq 0x6179(%rip), %rsi      # 0xb57f
callq 0x3140
movq (%r13), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%r13,%rax)
movq (%r14), %rax
movl 0x2c(%rax,%r12,4), %esi
movq %r13, %rdi
callq 0x31b0
movl $0x5, %edx
movq %rax, %rdi
leaq 0x6149(%rip), %rsi      # 0xb584
callq 0x3140
movq (%rbx), %rax
cmpq %rax, 0x8(%rbx)
je 0x54fc
xorl %r13d, %r13d
xorl %ebp, %ebp
movq (%r14), %rcx
movl 0x1c(%rcx,%r12,4), %ecx
movq (%rax,%r13), %rax
cmpl (%rax), %ecx
jne 0x54de
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
movq %r15, %rdi
callq 0x3140
movl $0x1, %edx
movq %rax, %rdi
leaq 0x614c(%rip), %rsi      # 0xb5cd
callq 0x3140
movq (%rbx), %rax
movq (%rax,%r13), %rax
cmpb $0x0, 0x2c(%rax)
je 0x54a4
movl $0xb, %edx
movq %r15, %rdi
leaq 0x60f6(%rip), %rsi      # 0xb598
jmp 0x54b3
movl $0x8, %edx
movq %r15, %rdi
leaq 0x60d7(%rip), %rsi      # 0xb58a
callq 0x3140
movq (%rbx), %rax
movq (%rax,%r13), %rax
movl 0x28(%rax), %esi
movq %r15, %rdi
callq 0x31b0
movl $0x4, %edx
movq %rax, %rdi
leaq 0x60ba(%rip), %rsi      # 0xb593
callq 0x3140
incq %rbp
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
addq $0x10, %r13
cmpq %rbp, %rcx
ja 0x5452
movq (%rsp), %r12
cmpq $0x4, %r12
jne 0x53cf
movq 0xbabf(%rip), %rdi      # 0x10fd0
leaq 0x608c(%rip), %rsi      # 0xb5a4
movl $0x6, %edx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3140
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/create/Create.cpp
// Function: Create::createPlayer(std::vector<std::shared_ptr<Player>, std::allocator<std::shared_ptr<Player>>>&, int&)
std::vector<std::shared_ptr<Player>> Create::createPlayer(std::vector<std::shared_ptr<Player>> &players, int &status)
{
    if (players.size () < 5)
    {
        if( status ==1 || status ==2 || status ==3)
        {
            players.push_back (Factory::getInstance().createPlayer(status));
            return players;
        }
        else
            return players;
    }
    else
    {
        std::cout << "Characters limit" << "\n";
        return players;
    }
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdx, %r14
movq %rdi, %rbx
movq 0x8(%rdx), %rax
subq (%rdx), %rax
cmpq $0x40, %rax
ja 0x5ebb
movq %rcx, %r15
movl (%rcx), %eax
decl %eax
cmpl $0x2, %eax
ja 0x5eea
callq 0x4814
movl (%r15), %esi
movq %rsp, %r15
movq %r15, %rdi
callq 0x4832
movq %r14, %rdi
movq %r15, %rsi
callq 0x5fba
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x5eea
callq 0x5c3c
jmp 0x5eea
movq 0xb10e(%rip), %r15      # 0x10fd0
leaq 0x5720(%rip), %rsi      # 0xb5e9
movl $0x10, %edx
movq %r15, %rdi
callq 0x3140
leaq 0x57b1(%rip), %rsi      # 0xb68e
movl $0x1, %edx
movq %r15, %rdi
callq 0x3140
movq %rbx, %rdi
movq %r14, %rsi
callq 0x5f1c
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x5f14
callq 0x5c3c
movq %rbx, %rdi
callq 0x31c0
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/stats/Stats.cpp
// Function: Stats::printMoves(std::shared_ptr<Player> const&, std::vector<std::shared_ptr<Skill>, std::allocator<std::shared_ptr<Skill>>> const&)
void Stats::printMoves(const std::shared_ptr<Player> &player, const std::vector<std::shared_ptr<Skill>> &skills)
{
    int n = 4;
    for(int i = 0; i < n; i++)
    {
        std::cout << "("
                  << std::setw(2)
                  << player->uses[i]
                  << "/10) ";
        for(int j = 0; j < skills.size (); j++)
        {
            if (player->skills[ i ] == skills[ j ]->id)
            {
                std::cout << skills[ j ]->name << "\n";
            }
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r14
xorl %r12d, %r12d
movq 0x9d8b(%rip), %r15      # 0x10fd0
movl $0x1, %edx
movq %r15, %rdi
leaq 0x432e(%rip), %rsi      # 0xb582
callq 0x3140
movq (%r15), %rax
movq -0x18(%rax), %rax
movq $0x2, 0x10(%r15,%rax)
movq (%r14), %rax
movl 0x2c(%rax,%r12,4), %esi
movq %r15, %rdi
callq 0x31b0
movl $0x5, %edx
movq %rax, %rdi
leaq 0x42fc(%rip), %rsi      # 0xb584
callq 0x3140
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
cmpq %rax, %rcx
je 0x72ef
xorl %r13d, %r13d
xorl %ebp, %ebp
movq (%r14), %rdx
movl 0x1c(%rdx,%r12,4), %esi
movq (%rax,%r13), %rdx
cmpl (%rdx), %esi
jne 0x72d9
movq 0x8(%rdx), %rsi
movq 0x10(%rdx), %rdx
movq %r15, %rdi
callq 0x3140
movl $0x1, %edx
movq %rax, %rdi
leaq 0x43c1(%rip), %rsi      # 0xb68e
callq 0x3140
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
incq %rbp
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x4, %rdx
addq $0x10, %r13
cmpq %rbp, %rdx
ja 0x729e
incq %r12
cmpq $0x4, %r12
jne 0x7245
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/training/Training.cpp
// Function: Training::openTraining(std::shared_ptr<Player>&)
void Training::openTraining(std::shared_ptr<Player> &player)
{
    int z = 0;
    do
    {
        print();
        std::cout << player->name << "level points ( " << player->level_points << " )\n";
        z = choice();
        if(player->level_points > 0)
        {
            switch(z)
            {
                case e_training_health:
                {
                    player->hitpoints+=2;
                    player->max_hitpoints+=2;
                }
                    break;

                case e_training_strength:
                {
                    player->strength+=1;
                }
                    break;

                case e_training_agility:
                {
                    player->agility+=1;
                }
                    break;

                case e_training_intelligence:
                {
                    player->intelligence+=1;
                }
                    break;
            }
            player->level_points--;
        }
        else
            std::cout << "Not enough level points ;(\n";
    }while(z != 0);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
movq 0x9cac(%rip), %r15      # 0x10fd0
leaq 0x4300(%rip), %r13      # 0xb62b
leaq 0x457e(%rip), %r12      # 0xb8b0
movq %r14, %rdi
callq 0x7404
movq (%rbx), %rax
movq 0x40(%rax), %rsi
movq 0x48(%rax), %rdx
movq %r15, %rdi
callq 0x3140
movq %rax, %rbp
movl $0xf, %edx
movq %rax, %rdi
leaq 0x4561(%rip), %rsi      # 0xb8c0
callq 0x3140
movq (%rbx), %rax
movl 0x90(%rax), %esi
movq %rbp, %rdi
callq 0x31b0
movl $0x3, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x3140
movq %r14, %rdi
callq 0x757e
movl %eax, %ebp
movq (%rbx), %rax
movl 0x90(%rax), %ecx
testl %ecx, %ecx
jle 0x73c1
leal -0x1(%rbp), %edx
cmpl $0x3, %edx
ja 0x73e4
movslq (%r12,%rdx,4), %rdx
addq %r12, %rdx
jmpq *%rdx
movq 0x8(%rax), %xmm0
paddd 0x44e6(%rip), %xmm0     # 0xb8a0
movq %xmm0, 0x8(%rax)
jmp 0x73e4
movl $0x1b, %edx
movq %r15, %rdi
leaq 0x4500(%rip), %rsi      # 0xb8d0
callq 0x3140
jmp 0x73ec
incl 0x14(%rax)
jmp 0x73e4
incl 0x18(%rax)
jmp 0x73e4
incl 0x10(%rax)
decl %ecx
movl %ecx, 0x90(%rax)
testl %ebp, %ebp
jne 0x7332
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/Game.cpp
// Function: Game::print()
void Game::print()
{
    std::cout << "---\n"
              << name << "\n"
              << "---\n";
    for(int i = 1; i != this->map_Choices.size (); i++)
        std::cout << "[" << i << "] " << this->map_Choices[i] << '\n';
    std::cout << "---\n" << "[0] " << this->map_Choices[0] << '\n';
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movq 0x9bb4(%rip), %r15      # 0x10fd0
leaq 0x4265(%rip), %r14      # 0xb688
movl $0x4, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x3140
movq 0x30(%rbx), %rsi
movq 0x38(%rbx), %rdx
movq %r15, %rdi
callq 0x3140
movq %rax, %r15
leaq 0x4241(%rip), %rsi      # 0xb68e
movl $0x1, %edx
movq %rax, %rdi
callq 0x3140
movl $0x4, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x3140
movl $0x1, 0xc(%rsp)
cmpq $0x1, 0x28(%rbx)
je 0x7509
movq 0x9b4c(%rip), %r14      # 0x10fd0
leaq 0x433a(%rip), %r12      # 0xb7c5
leaq 0xc(%rsp), %r13
leaq 0xb(%rsp), %rbp
movl $0x1, %edx
movq %r14, %rdi
leaq 0x44f7(%rip), %rsi      # 0xb99b
callq 0x3140
movl 0xc(%rsp), %esi
movq %r14, %rdi
callq 0x31b0
movq %rax, %r15
movl $0x2, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x3140
movq %rbx, %rdi
movq %r13, %rsi
callq 0x6d9e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r15, %rdi
callq 0x3140
movb $0xa, 0xb(%rsp)
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x3140
movslq 0xc(%rsp), %rax
incq %rax
movl %eax, 0xc(%rsp)
cmpq %rax, 0x28(%rbx)
jne 0x7495
movq 0x9ac0(%rip), %r14      # 0x10fd0
leaq 0x4171(%rip), %rsi      # 0xb688
movl $0x4, %edx
movq %r14, %rdi
callq 0x3140
leaq 0x4298(%rip), %rsi      # 0xb7c3
movl $0x4, %edx
movq %r14, %rdi
callq 0x3140
leaq 0x14(%rsp), %rsi
movl $0x0, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r14, %rdi
callq 0x3140
leaq 0x13(%rsp), %rsi
movb $0xa, (%rsi)
movl $0x1, %edx
movq %rax, %rdi
callq 0x3140
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/game/Game.cpp
// Function: Game::choice()
int Game::choice()
{
    int x = 0;
    do
    {
        std::cout << "[>] ";
        std::cin >> x;
    }while(isdigit(x)!=0);
    return x;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
leaq 0x4(%rsp), %rbx
movl $0x0, (%rbx)
movq 0x9a38(%rip), %r14      # 0x10fd0
leaq 0x434d(%rip), %r15      # 0xb8ec
movq 0x9a3a(%rip), %r12      # 0x10fe0
movl $0x4, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x3140
movq %r12, %rdi
movq %rbx, %rsi
callq 0x30a0
movl 0x4(%rsp), %eax
leal -0x30(%rax), %ecx
cmpl $0xa, %ecx
jb 0x75a6
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/data/skills/Skill.cpp
// Function: Skill::printType[abi:cxx11](e_MoveType)
std::string Skill::printType(e_MoveType type)
{
    switch(type)
    {
        case e_type_str:
            return "STRE";
        case e_type_agi:
            return "AGIL";
        case e_type_int:
            return "INTE";
        default:
            return "";
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
cmpl $0x2, %esi
je 0x7fcb
cmpl $0x1, %esi
je 0x7fbb
testl %esi, %esi
jne 0x7fde
leaq 0x39ef(%rip), %rsi      # 0xb9a1
leaq 0x39ec(%rip), %rdx      # 0xb9a5
jmp 0x7fd9
leaq 0x39e4(%rip), %rsi      # 0xb9a6
leaq 0x39e1(%rip), %rdx      # 0xb9aa
jmp 0x7fd9
leaq 0x39d9(%rip), %rsi      # 0xb9ab
leaq 0x39d6(%rip), %rdx      # 0xb9af
movq %rbx, %rdi
jmp 0x7feb
leaq 0x39bb(%rip), %rdx      # 0xb9a0
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x3bdc
movq %rbx, %rax
popq %rbx
retq
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/./data/game/menu/Menu.h
// Function: Menu::Menu()
Menu()
    {
        name                            = "[M] Main Menu";
        map_Choices[e_menu_cancel]      = "Cancel";
        map_Choices[e_menu_create]      = "Create";
        map_Choices[e_menu_select]      = "Select";
        map_Choices[e_menu_stats]       = "Stats";
        map_Choices[e_menu_battle]      = "Battle";
        map_Choices[e_menu_shop]        = "Shop";
        map_Choices[e_menu_training]    = "Training";
        map_Choices[e_menu_items]       = "Items";
        map_Choices[e_menu_moves]       = "Skills";
    }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x8(%rdi), %rax
movl $0x0, 0x8(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rcx, 0x28(%rdi)
addq $0x30, %rdi
leaq 0x40(%rbx), %rax
movq %rax, 0x30(%rbx)
movq %rcx, 0x38(%rbx)
movb $0x0, 0x40(%rbx)
leaq 0x28f3(%rip), %rcx      # 0xbb0e
movl $0xd, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x0, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x28d4(%rip), %rcx      # 0xbb1c
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x1, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x28ad(%rip), %rcx      # 0xbb23
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x2, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x28c9(%rip), %rcx      # 0xbb6d
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x3, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2858(%rip), %rcx      # 0xbb2a
movl $0x5, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x4, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2830(%rip), %rcx      # 0xbb30
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x5, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2941(%rip), %rcx      # 0xbc6f
movl $0x4, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x6, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x27db(%rip), %rcx      # 0xbb37
movl $0x8, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x7, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x27b6(%rip), %rcx      # 0xbb40
movl $0x5, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x8, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x278e(%rip), %rcx      # 0xbb46
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
addq $0x8, %rsp
popq %rbx
popq %r14
retq
jmp 0x93e2
jmp 0x93e2
jmp 0x93e2
jmp 0x93e2
jmp 0x93e2
jmp 0x93e2
jmp 0x93e2
jmp 0x93e2
jmp 0x93e2
movq %rax, %r14
movq %rbx, %rdi
callq 0xa048
movq %r14, %rdi
callq 0x31c0
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/./data/game/create/Create.h
// Function: Create::Create()
Create()
    {
        name                            = "[N] New Character";
        map_Choices[e_create_cancel]    = "Cancel";
        map_Choices[e_create_warrior]   = "Warrior";
        map_Choices[e_create_rogue]     = "Rogue";
        map_Choices[e_create_mage]      = "Mage";
    }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x8(%rdi), %rax
movl $0x0, 0x8(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rcx, 0x28(%rdi)
addq $0x30, %rdi
leaq 0x40(%rbx), %rax
movq %rax, 0x30(%rbx)
movq %rcx, 0x38(%rbx)
movb $0x0, 0x40(%rbx)
leaq 0x25d6(%rip), %rcx      # 0xbb4d
movl $0x11, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x0, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2578(%rip), %rcx      # 0xbb1c
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x1, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1b38(%rip), %rcx      # 0xb10a
movl $0x7, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x2, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1c03(%rip), %rcx      # 0xb203
movl $0x5, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x3, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1c22(%rip), %rcx      # 0xb250
movl $0x4, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
addq $0x8, %rsp
popq %rbx
popq %r14
retq
jmp 0x964e
jmp 0x964e
jmp 0x964e
jmp 0x964e
movq %rax, %r14
movq %rbx, %rdi
callq 0xa048
movq %r14, %rdi
callq 0x31c0
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/./data/game/shop/Shop.h
// Function: Shop::Shop()
Shop()
    {
        name                                    = "[S] Shop Atrributes";
        map_Choices[e_shop_cancel]              = "Cancel";
        map_Choices[e_shop_heal]                = " Heal yourself";
        map_Choices[e_shop_revive]              = "(100 gp) Revive character";
        map_Choices[e_shop_recover]             = " Recover all skills";
        map_Choices[e_shop_add_hitpoints]       = "( 75 gp) +10 hitpoints";
        map_Choices[e_shop_add_strength]        = "( 50 gp) + 2 strength";
        map_Choices[e_shop_add_agility]         = "( 50 gp) + 2 agility";
        map_Choices[e_shop_add_intelligence]    = "( 50 gp) + 2 intelligence";
    }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x8(%rdi), %rax
movl $0x0, 0x8(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rcx, 0x28(%rdi)
addq $0x30, %rdi
leaq 0x40(%rbx), %rax
movq %rax, 0x30(%rbx)
movq %rcx, 0x38(%rbx)
movb $0x0, 0x40(%rbx)
leaq 0x21c9(%rip), %rcx      # 0xbb74
movl $0x13, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x0, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2144(%rip), %rcx      # 0xbb1c
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x1, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2182(%rip), %rcx      # 0xbb88
movl $0xe, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x2, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2163(%rip), %rcx      # 0xbb97
movl $0x19, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x3, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x214f(%rip), %rcx      # 0xbbb1
movl $0x13, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x4, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2135(%rip), %rcx      # 0xbbc5
movl $0x16, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x5, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x211e(%rip), %rcx      # 0xbbdc
movl $0x15, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x6, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x2106(%rip), %rcx      # 0xbbf2
movl $0x14, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x7, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x20ed(%rip), %rcx      # 0xbc07
movl $0x19, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
addq $0x8, %rsp
popq %rbx
popq %r14
retq
jmp 0x9b42
jmp 0x9b42
jmp 0x9b42
jmp 0x9b42
jmp 0x9b42
jmp 0x9b42
jmp 0x9b42
jmp 0x9b42
movq %rax, %r14
movq %rbx, %rdi
callq 0xa048
movq %r14, %rdi
callq 0x31c0
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/./data/game/training/Training.h
// Function: Training::Training()
Training()
    {
        name = "[T] Training Center";
        map_Choices[ e_training_cancel ] = "Cancel";
        map_Choices[ e_training_health ] = "+2 Health";
        map_Choices[ e_training_strength ] = "+1 Strength";
        map_Choices[ e_training_agility ] = "+1 Agility";
        map_Choices[ e_training_intelligence ] = "+1 Intelligence";
    }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x8(%rdi), %rax
movl $0x0, 0x8(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rcx, 0x28(%rdi)
addq $0x30, %rdi
leaq 0x40(%rbx), %rax
movq %rax, 0x30(%rbx)
movq %rcx, 0x38(%rbx)
movb $0x0, 0x40(%rbx)
leaq 0x1f98(%rip), %rcx      # 0xbc21
movl $0x13, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x0, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1e66(%rip), %rcx      # 0xbb1c
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x1, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1f51(%rip), %rcx      # 0xbc35
movl $0x9, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x2, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1f2d(%rip), %rcx      # 0xbc3f
movl $0xb, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x3, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1f0b(%rip), %rcx      # 0xbc4b
movl $0xa, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x4, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1ee8(%rip), %rcx      # 0xbc56
movl $0xf, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
addq $0x8, %rsp
popq %rbx
popq %r14
retq
jmp 0x9d90
jmp 0x9d90
jmp 0x9d90
jmp 0x9d90
jmp 0x9d90
movq %rax, %r14
movq %rbx, %rdi
callq 0xa048
movq %r14, %rdi
callq 0x31c0
nop
// File: /workspace/github_cpp_makefile_star2_O3/rozpo[P]enemy/./data/game/items/Item.h
// Function: Item::Item()
Item()
    {
        name = "[I] Item Shop";
        map_Choices[ e_item_cancel ] = "Cancel";
        map_Choices[ e_item_dagger ] = "( 50 gp) + 5 dagger";
        map_Choices[ e_item_shortsword ] = "(120 gp) +10 short sword";
        map_Choices[ e_item_greataxe ] = "(299 gp) +19 great axe";
        map_Choices[ e_item_heavyhammer ] = "(420 gp) +35 heavy hammer";
        map_Choices[ e_item_devilscythe ] = "(666 gp) +666 Legendary Lucifer's Scythe ";
    }

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x8(%rdi), %rax
movl $0x0, 0x8(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rcx, 0x28(%rdi)
addq $0x30, %rdi
leaq 0x40(%rbx), %rax
movq %rax, 0x30(%rbx)
movq %rcx, 0x38(%rbx)
movb $0x0, 0x40(%rbx)
leaq 0x1d8f(%rip), %rcx      # 0xbc66
movl $0xd, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x0, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1c18(%rip), %rcx      # 0xbb1c
movl $0x6, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x1, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1d42(%rip), %rcx      # 0xbc74
movl $0x13, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x2, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1d28(%rip), %rcx      # 0xbc88
movl $0x18, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x3, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1d13(%rip), %rcx      # 0xbca1
movl $0x16, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x4, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1cfc(%rip), %rcx      # 0xbcb8
movl $0x19, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
leaq 0x4(%rsp), %rsi
movl $0x5, (%rsi)
movq %rbx, %rdi
callq 0x651a
movq 0x8(%rax), %rdx
leaq 0x1ce8(%rip), %rcx      # 0xbcd2
movl $0x29, %r8d
movq %rax, %rdi
xorl %esi, %esi
callq 0x3190
addq $0x8, %rsp
popq %rbx
popq %r14
retq
jmp 0xa00e
jmp 0xa00e
jmp 0xa00e
jmp 0xa00e
jmp 0xa00e
jmp 0xa00e
movq %rax, %r14
movq %rbx, %rdi
callq 0xa048
movq %r14, %rdi
callq 0x31c0
nop
// File: /workspace/github_cpp_makefile_star2_O3/ChaohuiYu[P]BPlusTree/parser.cpp
// Function: splitStr(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::vector<std::string> splitStr(std::string s, const std::string& delimiter) {
    std::vector<std::string> tokens;
    size_t pos = 0;
    std::string token;
    while ((pos = s.find(delimiter)) != std::string::npos) {
        token = s.substr(0, pos);
        tokens.push_back(token);
        s.erase(0, pos + delimiter.length());
    }
    tokens.push_back(s);
    return tokens;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
xorl %eax, %eax
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
leaq 0x18(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb $0x0, (%rcx)
leaq 0x28(%rsp), %r12
leaq 0x8(%rsp), %r13
movq (%r15), %rsi
movq 0x8(%r15), %rcx
movq %r14, %rdi
xorl %edx, %edx
callq 0x22d0
cmpq $-0x1, %rax
je 0x27d4
movq %rax, %rbp
movq %r12, %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x2200
movq %r13, %rdi
movq %r12, %rsi
callq 0x2230
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x27b6
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
movq %r13, %rsi
callq 0x41f8
addq 0x8(%r15), %rbp
movq %r14, %rdi
xorl %esi, %esi
movq %rbp, %rdx
callq 0x2080
jmp 0x2765
movq %rbx, %rdi
movq %r14, %rsi
callq 0x41f8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x27fb
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2811
jmp 0x2811
movq %rax, %r14
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x2830
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x4236
movq %r14, %rdi
callq 0x22e0
// File: /workspace/github_cpp_makefile_star2_O3/ChaohuiYu[P]BPlusTree/commands.cpp
// Function: scanRelation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void scanRelation(const string& relationName) {
    if (!isRelationExist(relationName)) {
        cout << "Error: Relation " << relationName << " doesn't exist.\n";
        return;
    }

    if (isRelationInRelationInt(relationName)) {
        relationNameToRelationInt[relationName]->scanIndex();
    }
    else if (isRelationInRelationStr(relationName)) {
        relationNameToRelationStr[relationName]->scanIndex();
    }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x4853
testb %al, %al
je 0x4ec3
leaq 0xb327(%rip), %rdi      # 0x101b8
movq %rbx, %rsi
callq 0x5fae
leaq 0xb320(%rip), %rcx      # 0x101c0
cmpq %rcx, %rax
je 0x4f08
leaq 0xb30c(%rip), %rdi      # 0x101b8
movq %rbx, %rsi
callq 0x571a
movq (%rax), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x63ee
movq 0xb106(%rip), %r14      # 0xffd0
leaq 0x643c(%rip), %rsi      # 0xb30d
movl $0x10, %edx
movq %r14, %rdi
callq 0x2220
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r14, %rdi
callq 0x2220
leaq 0x6582(%rip), %rsi      # 0xb476
movl $0x10, %edx
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x2220
leaq 0xb2d9(%rip), %rdi      # 0x101e8
movq %rbx, %rsi
callq 0x5ff4
leaq 0xb2d2(%rip), %rcx      # 0x101f0
cmpq %rcx, %rax
je 0x4f41
leaq 0xb2be(%rip), %rdi      # 0x101e8
movq %rbx, %rsi
callq 0x5796
movq (%rax), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x6d86
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_cpp_makefile_star2_O3/ChaohuiYu[P]BPlusTree/commands.cpp
// Function: displayPage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void displayPage(const string& relationName, const string& pageId) {
    if (!isRelationExist(relationName)) {
        cout << "Error: Relation " << relationName << " doesn't exist.\n";
        return;
    }

    if (!is_number(pageId)) {
        cout << "Error: page id should be 0 or a positive integer\n";
        return;
    }

    int pageIdInt = stoi(pageId);

    if (pageIdInt < 0) {
        cout << "Error: page id should be 0 or a positive integer\n";
        return;
    }

    if (isRelationInRelationInt(relationName)) {
        relationNameToRelationInt[relationName]->printPage(pageIdInt);
    }
    else if (isRelationInRelationStr(relationName)) {
        relationNameToRelationStr[relationName]->printPage(pageIdInt);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x4853
testb %al, %al
je 0x5562
movq %r14, %rdi
callq 0x4b7b
testb %al, %al
je 0x559d
movq (%r14), %r12
callq 0x2060
movq %rax, %r15
movl (%rax), %ebp
movl $0x0, (%rax)
movq %rsp, %r13
movq %r12, %rdi
movq %r13, %rsi
movl $0xa, %edx
callq 0x2240
cmpq %r12, (%r13)
je 0x5615
movq %rax, %r14
movslq %r14d, %rax
cmpq %r14, %rax
jne 0x5621
movl (%r15), %eax
cmpl $0x22, %eax
je 0x5621
testl %eax, %eax
jne 0x5512
movl %ebp, (%r15)
testl %r14d, %r14d
js 0x559d
leaq 0xac96(%rip), %rdi      # 0x101b8
movq %rbx, %rsi
callq 0x5fae
leaq 0xac8f(%rip), %rcx      # 0x101c0
cmpq %rcx, %rax
je 0x55c3
leaq 0xac77(%rip), %rdi      # 0x101b8
movq %rbx, %rsi
callq 0x571a
movq (%rax), %rdi
movl %r14d, %esi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x67ca
movq 0xaa67(%rip), %r14      # 0xffd0
leaq 0x5d9d(%rip), %rsi      # 0xb30d
movl $0x10, %edx
movq %r14, %rdi
callq 0x2220
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r14, %rdi
callq 0x2220
leaq 0x5ee3(%rip), %rsi      # 0xb476
movl $0x10, %edx
movq %rax, %rdi
jmp 0x55b0
movq 0xaa2c(%rip), %rdi      # 0xffd0
leaq 0x5e29(%rip), %rsi      # 0xb3d4
movl $0x31, %edx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x2220
leaq 0xac1e(%rip), %rdi      # 0x101e8
movq %rbx, %rsi
callq 0x5ff4
leaq 0xac17(%rip), %rcx      # 0x101f0
cmpq %rcx, %rax
je 0x5606
leaq 0xac03(%rip), %rdi      # 0x101e8
movq %rbx, %rsi
callq 0x5796
movq (%rax), %rdi
movl %r14d, %esi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x72ba
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5cb1(%rip), %rdi      # 0xb2cd
callq 0x2120
leaq 0x5ca5(%rip), %rdi      # 0xb2cd
callq 0x2250
cmpl $0x0, (%r15)
jne 0x5636
movl %ebp, (%r15)
movq %rax, %rdi
callq 0x22e0
// File: /workspace/github_cpp_makefile_star2_O3/ChaohuiYu[P]BPlusTree/commands.cpp
// Function: statisticsRelation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void statisticsRelation(const string& relationName) {
    if (!isRelationExist(relationName)) {
        cout << "Error: Relation " << relationName << " doesn't exist.\n";
        return;
    }

    if (isRelationInRelationInt(relationName)) {
        relationNameToRelationInt[relationName]->printStatistics();
    }
    else if (isRelationInRelationStr(relationName)) {
        relationNameToRelationStr[relationName]->printStatistics();
    }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x4853
testb %al, %al
je 0x5687
leaq 0xab63(%rip), %rdi      # 0x101b8
movq %rbx, %rsi
callq 0x5fae
leaq 0xab5c(%rip), %rcx      # 0x101c0
cmpq %rcx, %rax
je 0x56cc
leaq 0xab48(%rip), %rdi      # 0x101b8
movq %rbx, %rsi
callq 0x571a
movq (%rax), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x67d4
movq 0xa942(%rip), %r14      # 0xffd0
leaq 0x5c78(%rip), %rsi      # 0xb30d
movl $0x10, %edx
movq %r14, %rdi
callq 0x2220
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq %r14, %rdi
callq 0x2220
leaq 0x5dbe(%rip), %rsi      # 0xb476
movl $0x10, %edx
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x2220
leaq 0xab15(%rip), %rdi      # 0x101e8
movq %rbx, %rsi
callq 0x5ff4
leaq 0xab0e(%rip), %rcx      # 0x101f0
cmpq %rcx, %rax
je 0x5705
leaq 0xaafa(%rip), %rdi      # 0x101e8
movq %rbx, %rsi
callq 0x5796
movq (%rax), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x72c4
addq $0x8, %rsp
popq %rbx
popq %r14
retq
nop