// File: /workspace/github_cpp_makefile_star2_O2/BohangZhang[P]Sorcery-C-Project/enchantment.cc
// Function: Enchantment::print()
void Enchantment::print() {
    if (this->getOriginType() == "Act_Minion") {
        card_template_t s = display_minion_activated_ability(this->getOriginName(), this->getOriginCost(), this->getAttack(), this->getDefense(), this->getAbilityCost(), this->getOriginEffect());
        for (auto it = s.begin(); it != s.end(); ++it) {
            cout << *it << endl;
        }
    }
    else if (this->getOriginType() == "Tri_Minion") {
        card_template_t s = display_minion_triggered_ability(this->getOriginName(), this->getOriginCost(), this->getAttack(), this->getDefense(), this->getOriginEffect());
        for (auto it = s.begin(); it != s.end(); ++it) {
            cout << *it << endl;
        }
    } else {
        card_template_t s = display_minion_no_ability(this->getOriginName(), this->getOriginCost(), this->getAttack(), this->getDefense());
        for (auto it = s.begin(); it != s.end(); ++it) {
            cout << *it << endl;
        }
    }
    return;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq *0x88(%rax)
leaq 0x1122d(%rip), %rsi     # 0x1e81e
movq %r14, %rdi
callq 0x8dc3
movl %eax, %ebp
movq %r14, %rdi
callq 0x5378
testb %bpl, %bpl
je 0xd6ce
movq (%rbx), %rax
leaq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq *0x70(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x80(%rax)
movl %eax, %ebp
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x20(%rax)
movl %eax, %r14d
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movl %eax, %r15d
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x38(%rax)
movl %eax, %r12d
movq (%rbx), %rax
leaq 0xa8(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq *0x78(%rax)
movq %r13, (%rsp)
leaq 0x8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
movl %ebp, %edx
movl %r14d, %ecx
movl %r15d, %r8d
movl %r12d, %r9d
callq 0xa49b
leaq 0xa8(%rsp), %rdi
callq 0x5378
leaq 0x88(%rsp), %rdi
callq 0x5378
movq 0x8(%rsp), %rbx
movq 0x1d91e(%rip), %r14     # 0x2afc8
cmpq 0x10(%rsp), %rbx
je 0xd824
movq %r14, %rdi
movq %rbx, %rsi
callq 0x51b0
movq %rax, %rdi
callq 0x5110
addq $0x20, %rbx
jmp 0xd6aa
movq (%rbx), %rax
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq *0x88(%rax)
leaq 0x11140(%rip), %rsi     # 0x1e829
movq %r14, %rdi
callq 0x8dc3
movl %eax, %ebp
movq %r14, %rdi
callq 0x5378
testb %bpl, %bpl
je 0xd7a6
movq (%rbx), %rax
leaq 0x68(%rsp), %rdi
movq %rbx, %rsi
callq *0x70(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x80(%rax)
movl %eax, %ebp
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x20(%rax)
movl %eax, %r14d
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movl %eax, %r15d
movq (%rbx), %rax
leaq 0x48(%rsp), %rdi
movq %rbx, %rsi
callq *0x78(%rax)
leaq 0x8(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %r9
movl %ebp, %edx
movl %r14d, %ecx
movl %r15d, %r8d
callq 0xa3d1
leaq 0x48(%rsp), %rdi
callq 0x5378
leaq 0x68(%rsp), %rdi
callq 0x5378
movq 0x8(%rsp), %rbx
movq 0x1d846(%rip), %r14     # 0x2afc8
cmpq 0x10(%rsp), %rbx
je 0xd824
movq %r14, %rdi
movq %rbx, %rsi
callq 0x51b0
movq %rax, %rdi
callq 0x5110
addq $0x20, %rbx
jmp 0xd782
movq (%rbx), %rax
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq *0x70(%rax)
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x80(%rax)
movl %eax, %ebp
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x20(%rax)
movl %eax, %r14d
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
movl %ebp, %edx
movl %r14d, %ecx
movl %eax, %r8d
callq 0xa040
leaq 0x28(%rsp), %rdi
callq 0x5378
movq 0x8(%rsp), %rbx
movq 0x1d7c4(%rip), %r14     # 0x2afc8
cmpq 0x10(%rsp), %rbx
je 0xd824
movq %r14, %rdi
movq %rbx, %rsi
callq 0x51b0
movq %rax, %rdi
callq 0x5110
addq $0x20, %rbx
jmp 0xd804
leaq 0x8(%rsp), %rdi
callq 0x9dd8
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x5378
jmp 0xd86e
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x5378
jmp 0xd878
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
jmp 0xd880
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
jmp 0xd880
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x5378
jmp 0xd898
jmp 0xd88b
jmp 0xd88b
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x9dd8
movq %rbx, %rdi
callq 0x5330