// File: BohangZhang[P]Sorcery-C-Project/hand.cc
// Function: Hand::print()
void Hand::print() {
    if (getSize() == 0) throw 5; // Number; There is no card in hand
    vector<card_template_t> hand_t;
    for (int j = 0; j < getSize(); j++) {
        shared_ptr<Card> c = theHand[j];
        card_template_t h;
        if (c->getType() == "Spell") {
            h = display_spell(c->getName(), c->getCost(), c->getEffect());
        } 
        else if (c->getType() == "Ritual") {
            h = display_ritual(c->getName(), c->getCost(), c->getChargeCost(), c->getEffect(), c->getCharge());
        } 
        else if (c->getType() == "Minion") {
            h = display_minion_no_ability(c->getName(), c->getCost(), c->getAttack(), c->getDefense());
        } 
        else if (c->getType() == "Act_Minion") {
            h = display_minion_activated_ability(c->getName(), c->getCost(), c->getAttack(), c->getDefense(), c->getAbilityCost(), c->getEffect());
        } 
        else if (c->getType() == "Tri_Minion") {
            h = display_minion_triggered_ability(c->getName(), c->getCost(), c->getAttack(), c->getDefense(), c->getEffect());
        } 
        else if (c->getName() == "Giant Strength") {
            h = display_enchantment_attack_defence(c->getName(), c->getCost(), c->getEffect(), "+2", "+2");
        } 
        else {
            h = display_enchantment(c->getName(), c->getCost(), c->getEffect());
        }
        hand_t.emplace_back(h);
    }
    int turn = hand_t.size() / 5;
    int left = hand_t.size() % 5;
    for (int k = 0; k < turn; ++k) {
        for (int i = 0; i < 11; ++i) {
            for (int j = 0; j < 5; ++j) {
                cout << hand_t[j][i]; 
            }
            cout << endl;
        }
    }
    if (left == 0) return;
    for (int i = 0; i < 11; ++i) {
        for (int j = 0; j < left; ++j) { cout << hand_t[j][i]; }
        cout << endl;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x470, %rsp            # imm = 0x470
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x278f0
cmpl $0x0, %eax
jne 0x27a47
movl $0x4, %edi
callq 0x6160
movq %rax, %rdi
movl $0x5, (%rdi)
movq 0x2c55a(%rip), %rsi     # 0x53f98
xorl %eax, %eax
movl %eax, %edx
callq 0x6430
leaq -0x20(%rbp), %rdi
callq 0x28780
movl $0x0, -0x24(%rbp)
movq -0x3e0(%rbp), %rdi
movl -0x24(%rbp), %eax
movl %eax, -0x3e4(%rbp)
callq 0x278f0
movl %eax, %ecx
movl -0x3e4(%rbp), %eax
cmpl %ecx, %eax
jge 0x28588
movq -0x3e0(%rbp), %rdi
movslq -0x24(%rbp), %rsi
callq 0x287a0
movq %rax, %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x3f0(%rbp)
callq 0x1a1f0
leaq -0x50(%rbp), %rdi
callq 0x287c0
movq -0x3f0(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x70(%rbp), %rdi
callq 0x19c20
jmp 0x27ac2
leaq 0x18d81(%rip), %rsi     # 0x4084a
leaq -0x70(%rbp), %rdi
callq 0x12920
movb %al, -0x3f1(%rbp)
jmp 0x27ada
leaq -0x70(%rbp), %rdi
callq 0x64c8
movb -0x3f1(%rbp), %al
testb $0x1, %al
jne 0x27af2
jmp 0x27bfc
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0xb8(%rbp), %rdi
callq 0x19bf0
jmp 0x27b0c
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
callq 0x19c80
movl %eax, -0x3f8(%rbp)
jmp 0x27b25
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0xd8(%rbp), %rdi
callq 0x19c50
jmp 0x27b3f
movl -0x3f8(%rbp), %edx
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0xd8(%rbp), %rcx
callq 0x17a20
jmp 0x27b61
leaq -0x50(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x287e0
leaq -0x98(%rbp), %rdi
callq 0x15d90
leaq -0xd8(%rbp), %rdi
callq 0x64c8
leaq -0xb8(%rbp), %rdi
callq 0x64c8
jmp 0x28542
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x28571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x64c8
jmp 0x28571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x27beb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x64c8
leaq -0xb8(%rbp), %rdi
callq 0x64c8
jmp 0x28571
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0xf8(%rbp), %rdi
callq 0x19c20
jmp 0x27c16
leaq 0x18c26(%rip), %rsi     # 0x40843
leaq -0xf8(%rbp), %rdi
callq 0x12920
movb %al, -0x3f9(%rbp)
jmp 0x27c31
leaq -0xf8(%rbp), %rdi
callq 0x64c8
movb -0x3f9(%rbp), %al
testb $0x1, %al
jne 0x27c4c
jmp 0x27d8f
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x130(%rbp), %rdi
callq 0x19bf0
jmp 0x27c66
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
callq 0x19c80
movl %eax, -0x400(%rbp)
jmp 0x27c7f
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movl %eax, -0x404(%rbp)
jmp 0x27c9c
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x150(%rbp), %rdi
callq 0x19c50
jmp 0x27cb6
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movl %eax, -0x408(%rbp)
jmp 0x27cd3
movl -0x408(%rbp), %r9d
movl -0x404(%rbp), %ecx
movl -0x400(%rbp), %edx
leaq -0x110(%rbp), %rdi
leaq -0x130(%rbp), %rsi
leaq -0x150(%rbp), %r8
callq 0x170f0
jmp 0x27d02
leaq -0x50(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x287e0
leaq -0x110(%rbp), %rdi
callq 0x15d90
leaq -0x150(%rbp), %rdi
callq 0x64c8
leaq -0x130(%rbp), %rdi
callq 0x64c8
jmp 0x28540
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x64c8
jmp 0x28571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x27d7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x64c8
leaq -0x130(%rbp), %rdi
callq 0x64c8
jmp 0x28571
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x170(%rbp), %rdi
callq 0x19c20
jmp 0x27da9
leaq 0x19a7d(%rip), %rsi     # 0x4182d
leaq -0x170(%rbp), %rdi
callq 0x12920
movb %al, -0x409(%rbp)
jmp 0x27dc4
leaq -0x170(%rbp), %rdi
callq 0x64c8
movb -0x409(%rbp), %al
testb $0x1, %al
jne 0x27ddf
jmp 0x27edb
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x19bf0
jmp 0x27df9
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
callq 0x19c80
movl %eax, -0x410(%rbp)
jmp 0x27e12
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
movl %eax, -0x414(%rbp)
jmp 0x27e2f
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movl %eax, -0x418(%rbp)
jmp 0x27e4c
movl -0x418(%rbp), %r8d
movl -0x414(%rbp), %ecx
movl -0x410(%rbp), %edx
leaq -0x188(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x16710
jmp 0x27e74
leaq -0x50(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x287e0
leaq -0x188(%rbp), %rdi
callq 0x15d90
leaq -0x1a8(%rbp), %rdi
callq 0x64c8
jmp 0x2853e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x64c8
jmp 0x28571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x64c8
jmp 0x28571
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x1c8(%rbp), %rdi
callq 0x19c20
jmp 0x27ef5
leaq 0x19922(%rip), %rsi     # 0x4181e
leaq -0x1c8(%rbp), %rdi
callq 0x12920
movb %al, -0x419(%rbp)
jmp 0x27f10
leaq -0x1c8(%rbp), %rdi
callq 0x64c8
movb -0x419(%rbp), %al
testb $0x1, %al
jne 0x27f2b
jmp 0x28098
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x200(%rbp), %rdi
callq 0x19bf0
jmp 0x27f45
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
callq 0x19c80
movl %eax, -0x420(%rbp)
jmp 0x27f5e
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
movl %eax, -0x424(%rbp)
jmp 0x27f7b
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movl %eax, -0x428(%rbp)
jmp 0x27f98
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x38(%rax), %rax
callq *%rax
movl %eax, -0x42c(%rbp)
jmp 0x27fb5
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x220(%rbp), %rdi
callq 0x19c50
jmp 0x27fcf
movl -0x42c(%rbp), %r9d
movl -0x428(%rbp), %r8d
movl -0x424(%rbp), %ecx
movl -0x420(%rbp), %edx
movq %rsp, %rax
leaq -0x220(%rbp), %rsi
movq %rsi, (%rax)
leaq -0x1e0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x16fa0
jmp 0x2800b
leaq -0x50(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x287e0
leaq -0x1e0(%rbp), %rdi
callq 0x15d90
leaq -0x220(%rbp), %rdi
callq 0x64c8
leaq -0x200(%rbp), %rdi
callq 0x64c8
jmp 0x2853c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x64c8
jmp 0x28571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x28087
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x64c8
leaq -0x200(%rbp), %rdi
callq 0x64c8
jmp 0x28571
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x240(%rbp), %rdi
callq 0x19c20
jmp 0x280b2
leaq 0x19770(%rip), %rsi     # 0x41829
leaq -0x240(%rbp), %rdi
callq 0x12920
movb %al, -0x42d(%rbp)
jmp 0x280cd
leaq -0x240(%rbp), %rdi
callq 0x64c8
movb -0x42d(%rbp), %al
testb $0x1, %al
jne 0x280e8
jmp 0x2822b
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x278(%rbp), %rdi
callq 0x19bf0
jmp 0x28102
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
callq 0x19c80
movl %eax, -0x434(%rbp)
jmp 0x2811b
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x20(%rax), %rax
callq *%rax
movl %eax, -0x438(%rbp)
jmp 0x28138
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movl %eax, -0x43c(%rbp)
jmp 0x28155
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x298(%rbp), %rdi
callq 0x19c50
jmp 0x2816f
movl -0x43c(%rbp), %r8d
movl -0x438(%rbp), %ecx
movl -0x434(%rbp), %edx
leaq -0x258(%rbp), %rdi
leaq -0x278(%rbp), %rsi
leaq -0x298(%rbp), %r9
callq 0x16e50
jmp 0x2819e
leaq -0x50(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x287e0
leaq -0x258(%rbp), %rdi
callq 0x15d90
leaq -0x298(%rbp), %rdi
callq 0x64c8
leaq -0x278(%rbp), %rdi
callq 0x64c8
jmp 0x2853a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x64c8
jmp 0x28571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x2821a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x64c8
leaq -0x278(%rbp), %rdi
callq 0x64c8
jmp 0x28571
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x2b8(%rbp), %rdi
callq 0x19bf0
jmp 0x28245
leaq 0x19738(%rip), %rsi     # 0x41984
leaq -0x2b8(%rbp), %rdi
callq 0x12920
movb %al, -0x43d(%rbp)
jmp 0x28260
leaq -0x2b8(%rbp), %rdi
callq 0x64c8
movb -0x43d(%rbp), %al
testb $0x1, %al
jne 0x2827b
jmp 0x2845f
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x19bf0
jmp 0x28295
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
callq 0x19c80
movl %eax, -0x444(%rbp)
jmp 0x282ae
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x310(%rbp), %rdi
callq 0x19c50
jmp 0x282c8
leaq -0x331(%rbp), %rdi
movq %rdi, -0x450(%rbp)
callq 0x6470
movq -0x450(%rbp), %rdx
leaq 0x19802(%rip), %rsi     # 0x41aeb
leaq -0x330(%rbp), %rdi
callq 0x12870
jmp 0x282f7
leaq -0x359(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x6470
movq -0x458(%rbp), %rdx
leaq 0x197d3(%rip), %rsi     # 0x41aeb
leaq -0x358(%rbp), %rdi
callq 0x12870
jmp 0x28326
movl -0x444(%rbp), %edx
leaq -0x2d0(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
leaq -0x310(%rbp), %rcx
leaq -0x330(%rbp), %r8
leaq -0x358(%rbp), %r9
callq 0x18250
jmp 0x28356
leaq -0x50(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
callq 0x287e0
leaq -0x2d0(%rbp), %rdi
callq 0x15d90
leaq -0x358(%rbp), %rdi
callq 0x64c8
leaq -0x359(%rbp), %rdi
callq 0x62f0
leaq -0x330(%rbp), %rdi
callq 0x64c8
leaq -0x331(%rbp), %rdi
callq 0x62f0
leaq -0x310(%rbp), %rdi
callq 0x64c8
leaq -0x2f0(%rbp), %rdi
callq 0x64c8
jmp 0x28538
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x64c8
jmp 0x28571
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x2844e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x28436
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x2841e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x64c8
leaq -0x359(%rbp), %rdi
callq 0x62f0
leaq -0x330(%rbp), %rdi
callq 0x64c8
leaq -0x331(%rbp), %rdi
callq 0x62f0
leaq -0x310(%rbp), %rdi
callq 0x64c8
leaq -0x2f0(%rbp), %rdi
callq 0x64c8
jmp 0x28571
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x398(%rbp), %rdi
callq 0x19bf0
jmp 0x28479
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rdi
callq 0x19c80
movl %eax, -0x45c(%rbp)
jmp 0x28492
leaq -0x38(%rbp), %rdi
callq 0x15c20
movq %rax, %rsi
leaq -0x3b8(%rbp), %rdi
callq 0x19c50
jmp 0x284ac
movl -0x45c(%rbp), %edx
leaq -0x378(%rbp), %rdi
leaq -0x398(%rbp), %rsi
leaq -0x3b8(%rbp), %rcx
callq 0x17cf0
jmp 0x284ce
leaq -0x50(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x287e0
leaq -0x378(%rbp), %rdi
callq 0x15d90
leaq -0x3b8(%rbp), %rdi
callq 0x64c8
leaq -0x398(%rbp), %rdi
callq 0x64c8
jmp 0x28538
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x2852a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
leaq -0x3b8(%rbp), %rdi
callq 0x64c8
leaq -0x398(%rbp), %rdi
callq 0x64c8
jmp 0x28571
jmp 0x2853a
jmp 0x2853c
jmp 0x2853e
jmp 0x28540
jmp 0x28542
leaq -0x20(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x28810
jmp 0x28551
leaq -0x50(%rbp), %rdi
callq 0x15d90
leaq -0x38(%rbp), %rdi
callq 0x15c40
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x27a57
leaq -0x50(%rbp), %rdi
callq 0x15d90
leaq -0x38(%rbp), %rdi
callq 0x15c40
jmp 0x28768
leaq -0x20(%rbp), %rdi
callq 0x28890
movl $0x5, %ecx
xorl %edx, %edx
divq %rcx
movl %eax, -0x3bc(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x28890
movl $0x5, %ecx
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, -0x3c0(%rbp)
movl $0x0, -0x3c4(%rbp)
movl -0x3c4(%rbp), %eax
cmpl -0x3bc(%rbp), %eax
jge 0x28697
movl $0x0, -0x3c8(%rbp)
cmpl $0xb, -0x3c8(%rbp)
jge 0x28681
movl $0x0, -0x3cc(%rbp)
cmpl $0x5, -0x3cc(%rbp)
jge 0x28656
movslq -0x3cc(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x288c0
movq %rax, %rdi
movslq -0x3c8(%rbp), %rsi
callq 0x288e0
movq %rax, %rsi
movq 0x2b99d(%rip), %rdi     # 0x53fc8
callq 0x6250
jmp 0x28632
jmp 0x28634
movl -0x3cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3cc(%rbp)
jmp 0x285f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x78(%rbp)
movl %eax, -0x7c(%rbp)
jmp 0x28768
movq 0x2b96b(%rip), %rdi     # 0x53fc8
movq 0x2b944(%rip), %rsi     # 0x53fa8
callq 0x62d0
jmp 0x2866b
jmp 0x2866d
movl -0x3c8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c8(%rbp)
jmp 0x285e2
jmp 0x28683
movl -0x3c4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c4(%rbp)
jmp 0x285c6
cmpl $0x0, -0x3c0(%rbp)
jne 0x286af
movl $0x1, -0x3d0(%rbp)
jmp 0x28756
movl $0x0, -0x3d4(%rbp)
cmpl $0xb, -0x3d4(%rbp)
jge 0x2874c
movl $0x0, -0x3d8(%rbp)
movl -0x3d8(%rbp), %eax
cmpl -0x3c0(%rbp), %eax
jge 0x28721
movslq -0x3d8(%rbp), %rsi
leaq -0x20(%rbp), %rdi
callq 0x288c0
movq %rax, %rdi
movslq -0x3d4(%rbp), %rsi
callq 0x288e0
movq %rax, %rsi
movq 0x2b8c1(%rip), %rdi     # 0x53fc8
callq 0x6250
jmp 0x2870e
jmp 0x28710
movl -0x3d8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3d8(%rbp)
jmp 0x286d0
movq 0x2b8a0(%rip), %rdi     # 0x53fc8
movq 0x2b879(%rip), %rsi     # 0x53fa8
callq 0x62d0
jmp 0x28736
jmp 0x28738
movl -0x3d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3d4(%rbp)
jmp 0x286b9
movl $0x0, -0x3d0(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x28900
addq $0x470, %rsp            # imm = 0x470
popq %rbp
retq
leaq -0x20(%rbp), %rdi
callq 0x28900
movq -0x78(%rbp), %rdi
callq 0x6460
nopw (%rax,%rax)