// File: /workspace/github_cpp_makefile_star2_O1/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, %r14
movq %rdi, 0x30(%rsp)
xorl %eax, %eax
leaq 0x2c(%rsp), %rcx
movl %eax, (%rcx)
leaq 0x2(%rsp), %r9
movb $0x0, (%r9)
leaq 0x4(%rsp), %r10
movl $0x14, (%r10)
leaq 0x28(%rsp), %r13
movl $0x5a, (%r13)
movl $0xa, %edx
leaq 0x24(%rsp), %rbp
movl %edx, (%rbp)
leaq 0x20(%rsp), %rbx
movl %eax, (%rbx)
leaq 0x1c(%rsp), %r12
movl %edx, (%r12)
leaq 0x10(%rsp), %rdi
movq $0x0, -0x8(%rdi)
subq $0x8, %rsp
leaq 0x40b5(%rip), %r8       # 0xb8cb
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
pushq %r10
callq 0x8100
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x82e2
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x784e
callq 0x5c88
leaq 0x2c(%rsp), %rcx
movl $0x1, (%rcx)
leaq 0x2(%rsp), %r9
movb $0x1, (%r9)
movl $0x32, 0x4(%rsp)
movl $0x64, 0x28(%rsp)
movl $0x14, 0x24(%rsp)
movl $0x2, 0x20(%rsp)
movl $0xa, 0x1c(%rsp)
leaq 0x10(%rsp), %rdi
movq $0x0, -0x8(%rdi)
subq $0x8, %rsp
leaq 0x4035(%rip), %r8       # 0xb8d7
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
leaq 0x2c(%rsp), %rax
pushq %rax
callq 0x84ac
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x82e2
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x78de
callq 0x5c88
leaq 0x2c(%rsp), %rcx
movl $0x4, (%rcx)
leaq 0x2(%rsp), %r9
movb $0x0, (%r9)
movl $0x28, 0x4(%rsp)
movl $0x46, 0x28(%rsp)
movl $0x19, 0x24(%rsp)
movl $0x0, 0x20(%rsp)
movl $0xa, 0x1c(%rsp)
leaq 0x10(%rsp), %rdi
movq $0x0, -0x8(%rdi)
subq $0x8, %rsp
leaq 0x3faa(%rip), %r8       # 0xb8dc
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
leaq 0x2c(%rsp), %rax
pushq %rax
callq 0x8628
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x82e2
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x796e
callq 0x5c88
leaq 0x2c(%rsp), %rcx
movl $0x5, (%rcx)
leaq 0x2(%rsp), %r9
movb $0x0, (%r9)
movl $0x1e, %eax
movl %eax, 0x4(%rsp)
movl $0x32, 0x28(%rsp)
movl %eax, 0x24(%rsp)
movl $0x0, 0x20(%rsp)
movl $0xa, 0x1c(%rsp)
leaq 0x10(%rsp), %rdi
movq $0x0, -0x8(%rdi)
subq $0x8, %rsp
leaq 0x3f2c(%rip), %r8       # 0xb8eb
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
leaq 0x2c(%rsp), %rax
pushq %rax
callq 0x8100
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x82e2
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x79fb
callq 0x5c88
leaq 0x2c(%rsp), %rcx
movl $0x2, (%rcx)
leaq 0x2(%rsp), %r9
movb $0x0, (%r9)
movl $0x1e, 0x4(%rsp)
movl $0x55, 0x28(%rsp)
movl $0x4b, 0x24(%rsp)
movl $0x1, 0x20(%rsp)
movl $0xa, 0x1c(%rsp)
leaq 0x10(%rsp), %rdi
movq $0x0, -0x8(%rdi)
subq $0x8, %rsp
leaq 0x3ea8(%rip), %r8       # 0xb8f7
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
leaq 0x2c(%rsp), %rax
pushq %rax
callq 0x8100
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x82e2
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7a8b
callq 0x5c88
leaq 0x2c(%rsp), %rcx
movl $0x3, (%rcx)
leaq 0x2(%rsp), %r9
movb $0x0, (%r9)
movl $0x28, %eax
movl %eax, 0x4(%rsp)
movl $0x4b, 0x28(%rsp)
movl %eax, 0x24(%rsp)
movl $0x1, 0x20(%rsp)
movl $0xa, 0x1c(%rsp)
leaq 0x10(%rsp), %rdi
movq $0x0, -0x8(%rdi)
subq $0x8, %rsp
leaq 0x3e27(%rip), %r8       # 0xb903
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
leaq 0x2c(%rsp), %rax
pushq %rax
callq 0x87a4
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x82e2
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7b18
callq 0x5c88
leaq 0x2c(%rsp), %rcx
movl $0x6, (%rcx)
leaq 0x2(%rsp), %r9
movb $0x0, (%r9)
movl $0x64, 0x4(%rsp)
movl $0x41, 0x28(%rsp)
movl $0x5, 0x24(%rsp)
movl $0x2, 0x20(%rsp)
movl $0xa, 0x1c(%rsp)
leaq 0x10(%rsp), %rdi
movq $0x0, -0x8(%rdi)
subq $0x8, %rsp
leaq 0x3da5(%rip), %r8       # 0xb911
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
leaq 0x2c(%rsp), %rax
pushq %rax
callq 0x8628
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x82e2
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7ba8
callq 0x5c88
leaq 0x2c(%rsp), %rcx
movl $0x7, (%rcx)
leaq 0x2(%rsp), %r9
movb $0x0, (%r9)
movl $0x32, %eax
movl %eax, 0x4(%rsp)
movl $0x4b, 0x28(%rsp)
movl %eax, 0x24(%rsp)
movl $0x2, 0x20(%rsp)
movl $0xa, 0x1c(%rsp)
leaq 0x10(%rsp), %rdi
movq $0x0, -0x8(%rdi)
subq $0x8, %rsp
leaq 0x3d27(%rip), %r8       # 0xb920
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
leaq 0x2c(%rsp), %rax
pushq %rax
callq 0x8920
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x82e2
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7c35
callq 0x5c88
movq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8062
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7cd2
jmp 0x7ccd
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7cd2
jmp 0x7ccd
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7cd2
jmp 0x7ccd
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7cd2
jmp 0x7ccd
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7cd2
jmp 0x7ccd
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7cd2
jmp 0x7ccd
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7cd2
jmp 0x7ccd
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7cd2
callq 0x5c88
movq %rbx, %rdi
callq 0x31c0