// File: /workspace/github_cpp_makefile_star2_O3/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 0x16e95(%rip), %rsi     # 0x278d6
movq %r14, %rdi
callq 0x50a0
movl %eax, %ebp
movq (%r14), %rdi
leaq 0x18(%rsp), %r15
cmpq %r15, %rdi
je 0x10a65
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x51f0
testl %ebp, %ebp
je 0x10b72
movq (%rbx), %rax
leaq 0x8(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq *0x88(%rax)
leaq 0x16e59(%rip), %rsi     # 0x278e1
movq %r14, %rdi
callq 0x50a0
movl %eax, %ebp
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x10aa7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x51f0
testl %ebp, %ebp
je 0x10c8c
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 0xc988
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10b12
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x8(%rsp), %r15
cmpq 0x10(%rsp), %r15
je 0x10d77
movq 0x2249f(%rip), %rbx     # 0x32fc8
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 0x10b29
jmp 0x10d77
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 0xcfd7
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10c0b
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10c2c
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x8(%rsp), %r15
cmpq 0x10(%rsp), %r15
je 0x10d77
movq 0x22385(%rip), %rbx     # 0x32fc8
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 0x10c43
jmp 0x10d77
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 0xcea8
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10d05
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10d20
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x8(%rsp), %r15
cmpq 0x10(%rsp), %r15
je 0x10d77
movq 0x22295(%rip), %rbx     # 0x32fc8
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 0x10d33
leaq 0x8(%rsp), %rdi
callq 0xc796
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 0x10ddc
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10ddc
movq %rax, %rbx
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e0c
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10e0c
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e40
movq 0x78(%rsp), %rsi
jmp 0x10e25
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e40
movq 0x38(%rsp), %rsi
jmp 0x10e25
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10e40
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10e40
jmp 0x10e33
jmp 0x10e33
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xc796
movq %rbx, %rdi
callq 0x5320