// File: /workspace/github_cpp_makefile_star2_O2/rozpo[P]enemy/data/skills/Skill.cpp
// Function: Skill::createSkills(std::vector<std::shared_ptr<Skill>, std::allocator<std::shared_ptr<Skill>>>&)
std::vector<std::shared_ptr<Skill>> Skill::createSkills(std::vector<std::shared_ptr<Skill>> &skills)
{
    //ID, NAME, TARGET, DAMAGE, CHANCE, CRITICAL, TYPE
    //All
    skills.push_back (std::make_shared<Skill>(e_move_attack,"Fast attack",false,20,90,10,e_type_str,10));
    skills.push_back (std::make_shared<Skill>(e_move_heal,"Heal",true,50,100,20,e_type_int,10));

    //Warrior
    skills.push_back (std::make_shared<Skill>(e_move_power_attack,"Powerful swing",false,40,70,25,e_type_str,10));
    skills.push_back (std::make_shared<Skill>(e_move_bash,"Shield bash",false,30,50,30,e_type_str,10));

    //Rogue
    skills.push_back (std::make_shared<Skill>(e_move_throw,"Throw knife",false,30,85,75,e_type_agi,10));
    skills.push_back (std::make_shared<Skill>(e_move_poison,"Spread poison",false,40,75,40,e_type_agi,10));

    //Mage
    skills.push_back (std::make_shared<Skill>(e_move_firebolt,"Throw firebolt",false,100,65,5,e_type_int,10));
    skills.push_back (std::make_shared<Skill>(e_move_frost_nova,"Cast frost nova",false,50,75,50,e_type_int,10));

    return skills;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %rbx
leaq 0x24(%rsp), %rsi
andl $0x0, (%rsi)
movq %rdi, %r14
leaq 0xf(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x20(%rsp), %r8
movl $0x14, (%r8)
leaq 0x1c(%rsp), %r9
movl $0x5a, (%r9)
pushq $0xa
popq %rax
leaq 0x14(%rsp), %r12
andl $0x0, (%r12)
leaq 0x18(%rsp), %r13
movl %eax, (%r13)
leaq 0x10(%rsp), %rbp
movl %eax, (%rbp)
subq $0x8, %rsp
leaq 0x3868(%rip), %rdx      # 0xa90b
leaq 0x30(%rsp), %r15
movq %r15, %rdi
pushq %rbp
pushq %r12
pushq %r13
callq 0x76c9
addq $0x20, %rsp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7ae6
leaq 0x30(%rsp), %rdi
callq 0x4468
leaq 0x24(%rsp), %rsi
movl $0x1, (%rsi)
leaq 0xf(%rsp), %rcx
movb $0x1, (%rcx)
leaq 0x20(%rsp), %r8
movl $0x32, (%r8)
leaq 0x1c(%rsp), %r9
movl $0x64, (%r9)
movl $0x14, 0x18(%rsp)
movl $0x2, 0x14(%rsp)
movl $0xa, 0x10(%rsp)
subq $0x8, %rsp
leaq 0x37fb(%rip), %rdx      # 0xa917
leaq 0x30(%rsp), %r15
movq %r15, %rdi
pushq %rbp
pushq %r12
pushq %r13
callq 0x770b
addq $0x20, %rsp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7ae6
leaq 0x30(%rsp), %rdi
callq 0x4468
leaq 0x24(%rsp), %rsi
movl $0x4, (%rsi)
leaq 0xf(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x20(%rsp), %r8
movl $0x28, (%r8)
leaq 0x1c(%rsp), %r9
movl $0x46, (%r9)
movl $0x19, 0x18(%rsp)
andl $0x0, 0x14(%rsp)
movl $0xa, 0x10(%rsp)
subq $0x8, %rsp
leaq 0x378a(%rip), %rdx      # 0xa91c
leaq 0x30(%rsp), %r15
movq %r15, %rdi
pushq %rbp
pushq %r12
pushq %r13
callq 0x774d
addq $0x20, %rsp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7ae6
leaq 0x30(%rsp), %rdi
callq 0x4468
leaq 0x24(%rsp), %rsi
movl $0x5, (%rsi)
leaq 0xf(%rsp), %rcx
movb $0x0, (%rcx)
pushq $0x1e
popq %rax
leaq 0x20(%rsp), %r8
movl %eax, (%r8)
leaq 0x1c(%rsp), %r9
movl $0x32, (%r9)
movl %eax, 0x18(%rsp)
andl $0x0, 0x14(%rsp)
movl $0xa, 0x10(%rsp)
subq $0x8, %rsp
leaq 0x3728(%rip), %rdx      # 0xa92b
leaq 0x30(%rsp), %r15
movq %r15, %rdi
pushq %rbp
pushq %r12
pushq %r13
callq 0x76c9
addq $0x20, %rsp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7ae6
leaq 0x30(%rsp), %rdi
callq 0x4468
leaq 0x24(%rsp), %rsi
movl $0x2, (%rsi)
leaq 0xf(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x20(%rsp), %r8
movl $0x1e, (%r8)
leaq 0x1c(%rsp), %r9
movl $0x55, (%r9)
movl $0x4b, 0x18(%rsp)
movl $0x1, 0x14(%rsp)
movl $0xa, 0x10(%rsp)
subq $0x8, %rsp
leaq 0x36bb(%rip), %rdx      # 0xa937
leaq 0x30(%rsp), %r15
movq %r15, %rdi
pushq %rbp
pushq %r12
pushq %r13
callq 0x76c9
addq $0x20, %rsp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7ae6
leaq 0x30(%rsp), %rdi
callq 0x4468
leaq 0x24(%rsp), %rsi
movl $0x3, (%rsi)
leaq 0xf(%rsp), %rcx
movb $0x0, (%rcx)
pushq $0x28
popq %rax
leaq 0x20(%rsp), %r8
movl %eax, (%r8)
leaq 0x1c(%rsp), %r9
movl $0x4b, (%r9)
movl %eax, 0x18(%rsp)
movl $0x1, 0x14(%rsp)
movl $0xa, 0x10(%rsp)
subq $0x8, %rsp
leaq 0x3653(%rip), %rdx      # 0xa943
leaq 0x30(%rsp), %r15
movq %r15, %rdi
pushq %rbp
pushq %r12
pushq %r13
callq 0x778f
addq $0x20, %rsp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7ae6
leaq 0x30(%rsp), %rdi
callq 0x4468
leaq 0x24(%rsp), %rsi
movl $0x6, (%rsi)
leaq 0xf(%rsp), %rcx
movb $0x0, (%rcx)
leaq 0x20(%rsp), %r8
movl $0x64, (%r8)
leaq 0x1c(%rsp), %r9
movl $0x41, (%r9)
movl $0x5, 0x18(%rsp)
movl $0x2, 0x14(%rsp)
movl $0xa, 0x10(%rsp)
subq $0x8, %rsp
leaq 0x35e8(%rip), %rdx      # 0xa951
leaq 0x30(%rsp), %r15
movq %r15, %rdi
pushq %rbp
pushq %r12
pushq %r13
callq 0x774d
addq $0x20, %rsp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7ae6
leaq 0x30(%rsp), %rdi
callq 0x4468
leaq 0x24(%rsp), %rsi
movl $0x7, (%rsi)
leaq 0xf(%rsp), %rcx
movb $0x0, (%rcx)
pushq $0x32
popq %rax
leaq 0x20(%rsp), %r8
movl %eax, (%r8)
leaq 0x1c(%rsp), %r9
movl $0x4b, (%r9)
movl %eax, 0x18(%rsp)
movl $0x2, 0x14(%rsp)
movl $0xa, 0x10(%rsp)
subq $0x8, %rsp
leaq 0x3583(%rip), %rdx      # 0xa960
leaq 0x30(%rsp), %r15
movq %r15, %rdi
pushq %rbp
pushq %r12
pushq %r13
callq 0x77d1
addq $0x20, %rsp
movq %rbx, %rdi
movq %r15, %rsi
callq 0x7ae6
leaq 0x30(%rsp), %rdi
callq 0x4468
movq %r14, %rdi
movq %rbx, %rsi
callq 0x7814
movq %r14, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x7433
jmp 0x7433
jmp 0x7433
jmp 0x7433
jmp 0x7433
jmp 0x7433
jmp 0x7433
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x4468
movq %rbx, %rdi
callq 0x3200