// File: /workspace/github_cpp_makefile_star2_O1/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 0x17c69(%rip), %rsi     # 0x288d6
movq %r14, %rdi
callq 0x50a0
movl %eax, %ebp
movq (%r14), %rdi
leaq 0x18(%rsp), %r15
cmpq %r15, %rdi
je 0x10c91
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x51f0
testl %ebp, %ebp
je 0x10d9e
movq (%rbx), %rax
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq *0x88(%rax)
leaq 0x17c2d(%rip), %rsi     # 0x288e1
movq %r14, %rdi
callq 0x50a0
movl %eax, %ebp
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x10cd3
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x51f0
testl %ebp, %ebp
je 0x10eb8
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 0xcb5c
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10d3e
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x8(%rsp), %r15
cmpq 0x10(%rsp), %r15
je 0x10fa3
movq 0x23273(%rip), %rbx     # 0x33fc8
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x5240
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x51d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5140
addq $0x20, %r15
cmpq 0x10(%rsp), %r15
jne 0x10d55
jmp 0x10fa3
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 0xd1ab
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e37
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e58
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x8(%rsp), %r15
cmpq 0x10(%rsp), %r15
je 0x10fa3
movq 0x23159(%rip), %rbx     # 0x33fc8
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x5240
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x51d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5140
addq $0x20, %r15
cmpq 0x10(%rsp), %r15
jne 0x10e6f
jmp 0x10fa3
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 0xd07c
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f31
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10f4c
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x8(%rsp), %r15
cmpq 0x10(%rsp), %r15
je 0x10fa3
movq 0x23069(%rip), %rbx     # 0x33fc8
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %rbx, %rdi
callq 0x5240
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x51d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5140
addq $0x20, %r15
cmpq 0x10(%rsp), %r15
jne 0x10f5f
leaq 0x8(%rsp), %rdi
callq 0xc96c
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11008
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x11008
movq %rax, %rbx
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11038
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x11038
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1106c
movq 0x78(%rsp), %rsi
jmp 0x11051
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1106c
movq 0x38(%rsp), %rsi
jmp 0x11051
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1106c
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x1106c
jmp 0x1105f
jmp 0x1105f
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xc96c
movq %rbx, %rdi
callq 0x5320