// File: /workspace/github_cpp_makefile_star2_O3/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 0x4161(%rip), %r8       # 0xb90b
leaq 0x10(%rsp), %r15
leaq 0xb(%rsp), %rdx
movq %r15, %rsi
pushq %r12
pushq %rbx
pushq %rbp
pushq %r13
pushq %r10
callq 0x8094
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x825c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x77e2
callq 0x5c3c
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 0x40e1(%rip), %r8       # 0xb917
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 0x8412
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x825c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7872
callq 0x5c3c
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 0x4056(%rip), %r8       # 0xb91c
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 0x857a
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x825c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7902
callq 0x5c3c
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 0x3fd8(%rip), %r8       # 0xb92b
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 0x8094
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x825c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x798f
callq 0x5c3c
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 0x3f54(%rip), %r8       # 0xb937
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 0x8094
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x825c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7a1f
callq 0x5c3c
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 0x3ed3(%rip), %r8       # 0xb943
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 0x86e2
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x825c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7aac
callq 0x5c3c
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 0x3e51(%rip), %r8       # 0xb951
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 0x857a
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x825c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7b3c
callq 0x5c3c
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 0x3dd3(%rip), %r8       # 0xb960
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 0x884a
addq $0x30, %rsp
movq %r14, %rdi
movq %r15, %rsi
callq 0x825c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7bc9
callq 0x5c3c
movq 0x30(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7ff6
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 0x7c66
jmp 0x7c61
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7c66
jmp 0x7c61
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7c66
jmp 0x7c61
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7c66
jmp 0x7c61
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7c66
jmp 0x7c61
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7c66
jmp 0x7c61
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7c66
jmp 0x7c61
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x7c66
callq 0x5c3c
movq %rbx, %rdi
callq 0x31c0