// File: /workspace/github_cpp_makefile_star2_O2/BohangZhang[P]Sorcery-C-Project/game.cc
// Function: Game::loadDatabase()
void Game::loadDatabase() {
    shared_ptr<Database> d{new Database};
    ifstream f{"Database.data"};
    
    string onecard;
    
    string name;
    string type;
    string coststring;
    int cost;
    string effect;
    string attacks, defenses, usecosts;
    int attack, defense, usecost;
    string trigger;
    while (getline(f, onecard)) {
        if (f.fail()) {break;}
        istringstream ss{onecard};
        getline(ss, name, ';');
        getline(ss, type, ';');
        getline(ss, coststring, ';');
        istringstream temp{coststring};
        temp >> cost;
        getline(ss, effect, ';');
        getline(ss, attacks, ';');
        istringstream temp1{attacks};
        temp1 >> attack;
        getline(ss, defenses, ';');
        istringstream temp2{defenses};
        temp2 >> defense;
        getline(ss, usecosts, ';');
        istringstream temp3{usecosts};
        temp3 >> usecost;
        getline(ss, trigger, ';');
        if (type == "Spell") {
            shared_ptr<Card> c{new Spell(name, effect, cost, type)};
            d->push(c);
        } else if (type == "Ritual") {
            shared_ptr<Card> c{new Ritual(name, effect, cost, type, defense, usecost, trigger)};
            d->push(c);
        } else if (type == "Minion") {
            shared_ptr<Card> c{new Minion(name, cost, type, attack, defense)};
            shared_ptr<Minion> m{new Minion(name, cost, type, attack, defense)};
            d->pushMinion(m);
            d->push(c);
        } else if (type == "Act_Minion") {
            shared_ptr<Card> c{new Act_Minion(name, cost, effect, type, attack, defense, usecost)};
            shared_ptr<Minion> m{new Act_Minion(name, cost, effect, type, attack, defense, usecost)};
            d->pushMinion(m);
            d->push(c);
        } else if (type == "Tri_Minion") {
            shared_ptr<Card> c {new Tri_Minion(name, cost, type, attack, defense, effect, trigger)};
            shared_ptr<Minion> m {new Tri_Minion(name, cost, type, attack, defense, effect, trigger)};
            d->pushMinion(m);
            d->push(c);
        } else if (name == "Giant Strength" ) {
            shared_ptr<Card> c{new GiantStrength(name, cost, type, attack, defense, effect)};
            d->push(c);        
        } else if (name == "Magic Fatigue") {
            shared_ptr<Card> c{new MagicFatigue(name, cost, type, attack, defense, effect)};
            d->push(c);
        } else if (name == "Silence") {
            shared_ptr<Card> c{new Silence(name, cost, type, attack, defense, effect)};
            d->push(c);
        } else {
            break;
        }
    }
    f.close();
    this->get1()->setDatabase(d);
    this->get2()->setDatabase(d);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1068, %rsp           # imm = 0x1068
movq %rdi, %r14
pushq $0x60
popq %rdi
callq 0x51f0
movq %rax, %rbx
movq %rax, %rdi
callq 0x10742
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x107a0
leaq 0xfc65(%rip), %rsi      # 0x1e976
leaq 0x6e0(%rsp), %rdi
pushq $0x8
popq %rdx
callq 0x5350
leaq 0xe0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
xorl %eax, %eax
movb %al, (%rcx)
leaq 0x60(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq 0xb8(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq 0x210(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq 0x80(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq 0x1f0(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq 0x570(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq 0x550(%rsp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
leaq 0x100(%rsp), %rdx
movq %rdx, -0x10(%rdx)
andq $0x0, -0x8(%rdx)
movb %al, (%rcx)
movb %al, (%rdx)
leaq 0x178(%rsp), %rax
movq %rax, 0x90(%rsp)
leaq 0x198(%rsp), %rax
movq %rax, 0x98(%rsp)
leaq 0x1b8(%rsp), %rax
movq %rax, 0xa0(%rsp)
leaq 0x6e0(%rsp), %r12
leaq 0xd0(%rsp), %rbx
leaq 0x8e8(%rsp), %rbp
pushq $0x8
popq %r15
movq %r14, 0xc8(%rsp)
movq %r12, %rdi
movq %rbx, %rsi
callq 0x5050
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0xfc12
movq 0x6e0(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x700(%rsp,%rax)
jne 0xfc12
movq %rbp, %rdi
movq %rbx, %rsi
movl %r15d, %edx
callq 0x52f0
movq %rbp, %rdi
leaq 0x50(%rsp), %rsi
pushq $0x3b
popq %r14
movl %r14d, %edx
callq 0x5360
movq %rbp, %rdi
leaq 0xa8(%rsp), %rsi
movl %r14d, %edx
callq 0x5360
movq %rbp, %rdi
leaq 0x200(%rsp), %rsi
movl %r14d, %edx
callq 0x5360
leaq 0xee8(%rsp), %r14
movq %r14, %rdi
leaq 0x200(%rsp), %rsi
movl %r15d, %edx
callq 0x52f0
movq %r14, %rdi
movq %rsp, %rsi
callq 0x5140
movq %rbp, %rdi
leaq 0x70(%rsp), %rsi
pushq $0x3b
popq %rdx
callq 0x5360
movq %rbp, %rdi
leaq 0x1e0(%rsp), %rsi
pushq $0x3b
popq %rdx
callq 0x5360
leaq 0xd68(%rsp), %r14
movq %r14, %rdi
leaq 0x1e0(%rsp), %rsi
movl %r15d, %edx
callq 0x52f0
movq %r14, %rdi
leaq 0x14(%rsp), %rsi
callq 0x5140
leaq 0x560(%rsp), %r14
movq %rbp, %rdi
movq %r14, %rsi
pushq $0x3b
popq %rdx
callq 0x5360
leaq 0xbe8(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
movl %r15d, %edx
callq 0x52f0
movq %r13, %rdi
leaq 0x4(%rsp), %rsi
callq 0x5140
leaq 0x540(%rsp), %r14
movq %rbp, %rdi
movq %r14, %rsi
pushq $0x3b
popq %rdx
callq 0x5360
leaq 0xa68(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
movl %r15d, %edx
callq 0x52f0
movq %r13, %rdi
leaq 0x38(%rsp), %rsi
callq 0x5140
movq %rbp, %rdi
leaq 0xf0(%rsp), %rsi
pushq $0x3b
popq %rdx
callq 0x5360
leaq 0xa8(%rsp), %r14
movq %r14, %rdi
leaq 0xe8a4(%rip), %rsi      # 0x1d84a
callq 0x8dc3
testb %al, %al
je 0xf09f
movl $0x80, %edi
callq 0x51f0
movq %rax, %r14
leaq 0x520(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x5290
leaq 0x500(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
movl (%rsp), %r15d
leaq 0x6c0(%rsp), %r13
movq %r13, %rdi
leaq 0xa8(%rsp), %rsi
callq 0x5290
movb $0x1, %bl
movq %r14, %rdi
leaq 0x520(%rsp), %rsi
leaq 0x500(%rsp), %rdx
movl %r15d, %ecx
movq %r13, %r8
callq 0x1b36c
leaq 0x18(%rsp), %r15
xorl %ebx, %ebx
movq %r15, %rdi
movq %r14, %rsi
callq 0x10858
movq %r13, %rdi
callq 0x5378
leaq 0x500(%rsp), %rdi
callq 0x5378
leaq 0x520(%rsp), %rdi
callq 0x5378
movq 0x28(%rsp), %r14
leaq 0x1d0(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0xb86e
movq %r14, %rdi
movq %rbx, %rsi
callq 0xb52e
pushq $0x8
popq %r15
leaq 0x1d8(%rsp), %rdi
callq 0x8ea0
leaq 0x20(%rsp), %rdi
callq 0x8ea0
leaq 0xd0(%rsp), %rbx
jmp 0xf855
movq %r14, %rdi
leaq 0xe79a(%rip), %rsi      # 0x1d843
callq 0x8dc3
testb %al, %al
movq %r14, %r12
je 0xf1e9
movl $0xa8, %edi
callq 0x51f0
movq %rax, %r14
leaq 0x4e0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x5290
leaq 0x4c0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
movl (%rsp), %r15d
leaq 0x4a0(%rsp), %rdi
movq %r12, %rsi
callq 0x5290
movl 0x4(%rsp), %r12d
movl 0x38(%rsp), %ebx
leaq 0x6a0(%rsp), %rbp
movq %rbp, %rdi
leaq 0xf0(%rsp), %rsi
callq 0x5290
movb $0x1, %r13b
movq %r14, %rdi
leaq 0x4e0(%rsp), %rsi
leaq 0x4c0(%rsp), %rdx
movl %r15d, %ecx
leaq 0x4a0(%rsp), %r8
movl %r12d, %r9d
pushq %rbp
pushq %rbx
callq 0x1ae84
popq %rax
popq %rcx
leaq 0x18(%rsp), %rbx
xorl %r13d, %r13d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x108f8
movq %rbp, %rdi
callq 0x5378
leaq 0x4a0(%rsp), %rdi
callq 0x5378
leaq 0x4c0(%rsp), %rdi
callq 0x5378
leaq 0x4e0(%rsp), %rdi
callq 0x5378
movq 0x28(%rsp), %r14
leaq 0x1c0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0xb86e
movq %r14, %rdi
movq %r15, %rsi
callq 0xb52e
leaq 0x6e0(%rsp), %r12
leaq 0xd0(%rsp), %rbx
pushq $0x8
popq %r15
leaq 0x1c8(%rsp), %rdi
callq 0x8ea0
leaq 0x20(%rsp), %rdi
callq 0x8ea0
leaq 0x8e8(%rsp), %rbp
jmp 0xf855
movq %r12, %rdi
leaq 0xf63a(%rip), %rsi      # 0x1e82d
callq 0x8dc3
testb %al, %al
je 0xf3f9
movl $0x90, %edi
callq 0x51f0
leaq 0x480(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq %rax, 0x8(%rsp)
callq 0x5290
movl (%rsp), %r15d
leaq 0x460(%rsp), %rdi
movq %r12, %rsi
callq 0x5290
movl 0x14(%rsp), %r12d
movl 0x4(%rsp), %r13d
leaq 0x680(%rsp), %r14
movq %r14, %rdi
leaq 0xeaaa(%rip), %rsi      # 0x1dcfb
leaq 0x40(%rsp), %rdx
callq 0x8d88
movb $0x1, %bl
subq $0x8, %rsp
movq 0x10(%rsp), %rdi
leaq 0x488(%rsp), %rsi
movl %r15d, %edx
leaq 0x468(%rsp), %rcx
movl %r12d, %r8d
movl %r13d, %r9d
movq %rdi, %r15
pushq %r14
callq 0x119d8
popq %rax
popq %rcx
leaq 0x18(%rsp), %rdi
xorl %ebx, %ebx
movq %r15, %rsi
callq 0x10998
movq %r14, %rdi
callq 0x5378
leaq 0x460(%rsp), %rdi
callq 0x5378
leaq 0x480(%rsp), %rdi
callq 0x5378
movl $0x90, %edi
callq 0x51f0
leaq 0xa8(%rsp), %rbx
leaq 0x440(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq %rax, 0x8(%rsp)
callq 0x5290
movl (%rsp), %r15d
leaq 0x420(%rsp), %rdi
movq %rbx, %rsi
callq 0x5290
movl 0x14(%rsp), %r12d
movl 0x4(%rsp), %r13d
leaq 0x660(%rsp), %r14
movq %r14, %rdi
leaq 0xe9e6(%rip), %rsi      # 0x1dcfb
leaq 0x3f(%rsp), %rdx
callq 0x8d88
movb $0x1, %bl
subq $0x8, %rsp
movq 0x10(%rsp), %rdi
leaq 0x448(%rsp), %rsi
movl %r15d, %edx
leaq 0x428(%rsp), %rcx
movl %r12d, %r8d
movq %rdi, %r12
movl %r13d, %r9d
pushq %r14
callq 0x119d8
popq %rax
popq %rcx
leaq 0x40(%rsp), %r15
xorl %ebx, %ebx
movq %r15, %rdi
movq %r12, %rsi
callq 0x10a38
movq %r14, %rdi
callq 0x5378
leaq 0x420(%rsp), %rdi
callq 0x5378
leaq 0x440(%rsp), %rdi
callq 0x5378
movq 0x28(%rsp), %r14
leaq 0x1b0(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8f30
movq %r14, %rdi
movq %rbx, %rsi
callq 0xb586
leaq 0x6e0(%rsp), %r12
pushq $0x8
popq %r15
leaq 0x1b8(%rsp), %rdi
callq 0x8ea0
movq 0x28(%rsp), %r14
leaq 0x1a0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x18(%rsp), %rsi
callq 0xb86e
movq %r14, %rdi
movq %rbx, %rsi
callq 0xb52e
leaq 0xd0(%rsp), %rbx
leaq 0x1a8(%rsp), %rdi
jmp 0xf83c
movq %r12, %rdi
leaq 0xf41b(%rip), %rsi      # 0x1e81e
callq 0x8dc3
testb %al, %al
je 0xf5ea
movl $0x90, %edi
callq 0x51f0
movq %rax, %r14
leaq 0x400(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x5290
movl (%rsp), %r15d
leaq 0x3e0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
leaq 0x640(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x5290
movl 0x14(%rsp), %r9d
movl 0x4(%rsp), %eax
movb $0x1, %r12b
movl 0x38(%rsp), %r10d
movq %r14, %rdi
leaq 0x400(%rsp), %rsi
movl %r15d, %edx
leaq 0x3e0(%rsp), %rcx
movq %r13, %r8
pushq %r10
pushq %rax
callq 0x937c
popq %rax
popq %rcx
leaq 0x18(%rsp), %rdi
xorl %r12d, %r12d
movq %r14, %rsi
callq 0x9f94
movq %r13, %rdi
callq 0x5378
leaq 0x3e0(%rsp), %rdi
callq 0x5378
leaq 0x400(%rsp), %rdi
callq 0x5378
movl $0x90, %edi
callq 0x51f0
movq %rax, %r14
leaq 0x3c0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x5290
leaq 0xa8(%rsp), %r12
movl (%rsp), %r15d
leaq 0x3a0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
leaq 0x600(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x5290
movl 0x14(%rsp), %r9d
movl 0x4(%rsp), %eax
movb $0x1, %r12b
movl 0x38(%rsp), %r10d
movq %r14, %rdi
leaq 0x3c0(%rsp), %rsi
movl %r15d, %edx
leaq 0x3a0(%rsp), %rcx
movq %r13, %r8
pushq %r10
pushq %rax
callq 0x937c
popq %rax
popq %rcx
leaq 0x40(%rsp), %r15
xorl %r12d, %r12d
movq %r15, %rdi
movq %r14, %rsi
callq 0xa034
leaq 0x600(%rsp), %rdi
callq 0x5378
leaq 0x3a0(%rsp), %rdi
callq 0x5378
leaq 0x3c0(%rsp), %rdi
callq 0x5378
movq 0x28(%rsp), %r14
leaq 0x190(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x8f30
movq %r14, %rdi
movq %r12, %rsi
callq 0xb586
pushq $0x8
popq %r15
leaq 0x198(%rsp), %rdi
callq 0x8ea0
movq 0x28(%rsp), %r14
leaq 0x180(%rsp), %r12
movq %r12, %rdi
leaq 0x18(%rsp), %rsi
callq 0xb86e
movq %r14, %rdi
movq %r12, %rsi
callq 0xb52e
leaq 0x6e0(%rsp), %r12
leaq 0x188(%rsp), %rdi
jmp 0xf83c
movq %r12, %rdi
leaq 0xf235(%rip), %rsi      # 0x1e829
callq 0x8dc3
testb %al, %al
je 0xf896
movl $0xb0, %edi
callq 0x51f0
movq %rax, 0x8(%rsp)
leaq 0x380(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x5290
movl (%rsp), %r14d
leaq 0x360(%rsp), %rdi
movq %r12, %rsi
callq 0x5290
movl 0x14(%rsp), %r15d
movl 0x4(%rsp), %r12d
leaq 0x340(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
leaq 0x620(%rsp), %r13
movq %r13, %rdi
leaq 0xf0(%rsp), %rsi
callq 0x5290
movb $0x1, %bl
movq 0x8(%rsp), %rdi
leaq 0x380(%rsp), %rsi
movl %r14d, %edx
movq %rdi, %r14
leaq 0x360(%rsp), %rcx
movl %r15d, %r8d
movl %r12d, %r9d
pushq %r13
leaq 0x348(%rsp), %rax
pushq %rax
callq 0x1c160
popq %rax
popq %rcx
xorl %ebx, %ebx
leaq 0x18(%rsp), %rdi
movq %r14, %rsi
callq 0x10a44
movq %r13, %rdi
callq 0x5378
leaq 0x340(%rsp), %rdi
callq 0x5378
leaq 0x360(%rsp), %rdi
callq 0x5378
leaq 0x380(%rsp), %rdi
callq 0x5378
movl $0xb0, %edi
callq 0x51f0
leaq 0xa8(%rsp), %r15
movq %rax, 0x8(%rsp)
leaq 0x320(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x5290
leaq 0xd0(%rsp), %rbx
movl (%rsp), %r14d
leaq 0x300(%rsp), %rdi
movq %r15, %rsi
callq 0x5290
movl 0x14(%rsp), %r15d
movl 0x4(%rsp), %r12d
leaq 0x2e0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
leaq 0x5e0(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x5290
movb $0x1, %r13b
movq 0x8(%rsp), %rdi
leaq 0x320(%rsp), %rsi
movl %r14d, %edx
movq %rdi, %r14
leaq 0x300(%rsp), %rcx
movl %r15d, %r8d
movl %r12d, %r9d
leaq 0x5e0(%rsp), %r12
pushq %r12
leaq 0x2e8(%rsp), %rax
pushq %rax
callq 0x1c160
popq %rax
popq %rcx
leaq 0x40(%rsp), %r15
xorl %r13d, %r13d
movq %r15, %rdi
movq %r14, %rsi
callq 0x10ae4
movq %r12, %rdi
callq 0x5378
leaq 0x2e0(%rsp), %rdi
callq 0x5378
leaq 0x300(%rsp), %rdi
callq 0x5378
leaq 0x320(%rsp), %rdi
callq 0x5378
movq 0x28(%rsp), %r14
leaq 0x170(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x8f30
movq %r14, %rdi
movq %r12, %rsi
callq 0xb586
leaq 0x6e0(%rsp), %r12
pushq $0x8
popq %r15
leaq 0x178(%rsp), %rdi
callq 0x8ea0
movq 0x28(%rsp), %r14
leaq 0x160(%rsp), %r13
movq %r13, %rdi
leaq 0x18(%rsp), %rsi
callq 0xb86e
movq %r14, %rdi
movq %r13, %rsi
callq 0xb52e
leaq 0x168(%rsp), %rdi
callq 0x8ea0
leaq 0x48(%rsp), %rdi
callq 0x8ea0
leaq 0x20(%rsp), %rdi
callq 0x8ea0
leaq 0xa68(%rsp), %rdi
callq 0x5100
leaq 0xbe8(%rsp), %rdi
callq 0x5100
leaq 0xd68(%rsp), %rdi
callq 0x5100
leaq 0xee8(%rsp), %rdi
callq 0x5100
movq %rbp, %rdi
callq 0x5100
jmp 0xee1f
leaq 0x50(%rsp), %r14
movq %r14, %rdi
leaq 0xf0df(%rip), %rsi      # 0x1e984
callq 0x8dc3
testb %al, %al
je 0xf9ad
movl $0xe0, %edi
callq 0x51f0
leaq 0x2c0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq %rax, 0x8(%rsp)
callq 0x5290
movl (%rsp), %r15d
leaq 0x2a0(%rsp), %rdi
movq %r12, %rsi
callq 0x5290
movl 0x14(%rsp), %r12d
movl 0x4(%rsp), %r13d
leaq 0x5c0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
movb $0x1, %r14b
subq $0x8, %rsp
movq 0x10(%rsp), %rdi
leaq 0x2c8(%rsp), %rsi
movl %r15d, %edx
leaq 0x2a8(%rsp), %rcx
movl %r12d, %r8d
movl %r13d, %r9d
movq %rdi, %r13
leaq 0x5c8(%rsp), %r12
pushq %r12
callq 0xd8fa
popq %rax
popq %rcx
leaq 0x18(%rsp), %r15
xorl %r14d, %r14d
movq %r15, %rdi
movq %r13, %rsi
callq 0xe2f4
movq %r12, %rdi
callq 0x5378
leaq 0x2a0(%rsp), %rdi
callq 0x5378
leaq 0x2c0(%rsp), %rdi
callq 0x5378
movq 0x28(%rsp), %r14
leaq 0x150(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0xb86e
movq %r14, %rdi
movq %r12, %rsi
callq 0xb52e
leaq 0x6e0(%rsp), %r12
pushq $0x8
popq %r15
leaq 0x158(%rsp), %rdi
jmp 0xf846
movq %r14, %rdi
leaq 0xefdc(%rip), %rsi      # 0x1e993
callq 0x8dc3
testb %al, %al
je 0xfabf
movl $0xe0, %edi
callq 0x51f0
leaq 0x280(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq %rax, 0x8(%rsp)
callq 0x5290
movl (%rsp), %r15d
leaq 0x260(%rsp), %rdi
movq %r12, %rsi
callq 0x5290
movl 0x14(%rsp), %r12d
movl 0x4(%rsp), %r13d
leaq 0x5a0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
movb $0x1, %r14b
subq $0x8, %rsp
movq 0x10(%rsp), %rdi
leaq 0x288(%rsp), %rsi
movl %r15d, %edx
leaq 0x268(%rsp), %rcx
movl %r12d, %r8d
movl %r13d, %r9d
movq %rdi, %r13
leaq 0x5a8(%rsp), %r12
pushq %r12
callq 0xdba2
popq %rax
popq %rcx
leaq 0x18(%rsp), %r15
xorl %r14d, %r14d
movq %r15, %rdi
movq %r13, %rsi
callq 0xe394
movq %r12, %rdi
callq 0x5378
leaq 0x260(%rsp), %rdi
callq 0x5378
leaq 0x280(%rsp), %rdi
callq 0x5378
movq 0x28(%rsp), %r14
leaq 0x140(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0xb86e
movq %r14, %rdi
movq %r12, %rsi
callq 0xb52e
leaq 0x6e0(%rsp), %r12
pushq $0x8
popq %r15
leaq 0x148(%rsp), %rdi
jmp 0xf846
movq %r14, %rdi
leaq 0xeed8(%rip), %rsi      # 0x1e9a1
callq 0x8dc3
testb %al, %al
je 0xfbd1
movl $0xe0, %edi
callq 0x51f0
leaq 0x240(%rsp), %rdi
leaq 0x50(%rsp), %rsi
movq %rax, 0x8(%rsp)
callq 0x5290
movl (%rsp), %r15d
leaq 0x220(%rsp), %rdi
movq %r12, %rsi
callq 0x5290
movl 0x14(%rsp), %r12d
movl 0x4(%rsp), %r13d
leaq 0x580(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5290
movb $0x1, %r14b
subq $0x8, %rsp
movq 0x10(%rsp), %rdi
leaq 0x248(%rsp), %rsi
movl %r15d, %edx
leaq 0x228(%rsp), %rcx
movl %r12d, %r8d
movl %r13d, %r9d
movq %rdi, %r13
leaq 0x588(%rsp), %r12
pushq %r12
callq 0xde46
popq %rax
popq %rcx
leaq 0x18(%rsp), %r15
xorl %r14d, %r14d
movq %r15, %rdi
movq %r13, %rsi
callq 0xe434
movq %r12, %rdi
callq 0x5378
leaq 0x220(%rsp), %rdi
callq 0x5378
leaq 0x240(%rsp), %rdi
callq 0x5378
movq 0x28(%rsp), %r14
leaq 0x130(%rsp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0xb86e
movq %r14, %rdi
movq %r12, %rsi
callq 0xb52e
leaq 0x6e0(%rsp), %r12
pushq $0x8
popq %r15
leaq 0x138(%rsp), %rdi
jmp 0xf846
leaq 0xa68(%rsp), %rdi
callq 0x5100
leaq 0xbe8(%rsp), %rdi
callq 0x5100
leaq 0xd68(%rsp), %rdi
callq 0x5100
leaq 0xee8(%rsp), %rdi
callq 0x5100
leaq 0x8e8(%rsp), %rdi
callq 0x5100
leaq 0x6e0(%rsp), %rdi
callq 0x5060
movq 0xc8(%rsp), %r15
leaq 0x8(%r15), %rsi
leaq 0x8e8(%rsp), %rbx
movq %rbx, %rdi
callq 0x8e60
movq (%rbx), %rbx
leaq 0x120(%rsp), %r14
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0x10778
movq %rbx, %rdi
movq %r14, %rsi
callq 0x12260
leaq 0x128(%rsp), %rdi
callq 0x8ea0
leaq 0x8f0(%rsp), %rdi
callq 0x8ea0
addq $0x18, %r15
leaq 0x8e8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8e60
movq (%rbx), %rbx
leaq 0x110(%rsp), %r14
leaq 0x28(%rsp), %rsi
movq %r14, %rdi
callq 0x10778
movq %rbx, %rdi
movq %r14, %rsi
callq 0x12260
leaq 0x118(%rsp), %rdi
callq 0x8ea0
leaq 0x8f0(%rsp), %rdi
callq 0x8ea0
leaq 0xf0(%rsp), %rdi
callq 0x5378
leaq 0x540(%rsp), %rdi
callq 0x5378
leaq 0x560(%rsp), %rdi
callq 0x5378
leaq 0x1e0(%rsp), %rdi
callq 0x5378
leaq 0x70(%rsp), %rdi
callq 0x5378
leaq 0x200(%rsp), %rdi
callq 0x5378
leaq 0xa8(%rsp), %rdi
callq 0x5378
leaq 0x50(%rsp), %rdi
callq 0x5378
leaq 0xd0(%rsp), %rdi
callq 0x5378
leaq 0x6e0(%rsp), %rdi
callq 0x5080
leaq 0x30(%rsp), %rdi
callq 0x8ea0
addq $0x1068, %rsp           # imm = 0x1068
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x102f3
movq %rax, %r15
movb $0x1, %r14b
jmp 0xfdc8
movq %rax, %r15
leaq 0x138(%rsp), %rdi
jmp 0x10278
jmp 0xfda0
movq %rax, %r15
movb $0x1, %r14b
jmp 0xfdd5
movq %rax, %r15
leaq 0x148(%rsp), %rdi
jmp 0x10278
jmp 0x102f3
movq %rax, %r15
jmp 0xfea2
movq %rax, %r15
movb $0x1, %r14b
jmp 0xfe28
movq %rax, %r15
movb $0x1, %r14b
jmp 0xfe1b
movq %rax, %r15
leaq 0x580(%rsp), %rdi
callq 0x5378
leaq 0x220(%rsp), %rdi
callq 0x5378
leaq 0x240(%rsp), %rdi
callq 0x5378
testb %r14b, %r14b
je 0x102f6
jmp 0xfea2
movq %rax, %r15
movb $0x1, %r14b
jmp 0xfe8c
movq %rax, %r15
movb $0x1, %r14b
jmp 0xfe7f
movq %rax, %r15
jmp 0xfea2
movq %rax, %r15
leaq 0x5a0(%rsp), %rdi
callq 0x5378
leaq 0x260(%rsp), %rdi
callq 0x5378
leaq 0x280(%rsp), %rdi
callq 0x5378
testb %r14b, %r14b
je 0x102f6
jmp 0xfea2
movq %rax, %r15
leaq 0x158(%rsp), %rdi
jmp 0x10278
jmp 0x102f3
jmp 0xff42
movq %rax, %r15
movb $0x1, %bl
jmp 0xffb1
movq %rax, %r15
movb $0x1, %r13b
jmp 0xfffa
movq %rax, %r15
leaq 0x5c0(%rsp), %rdi
callq 0x5378
leaq 0x2a0(%rsp), %rdi
callq 0x5378
leaq 0x2c0(%rsp), %rdi
callq 0x5378
testb %r14b, %r14b
je 0x102f6
movl $0xe0, %esi
jmp 0x10212
movq %rax, %r15
movb $0x1, %bl
jmp 0xffbe
movq %rax, %r15
movb $0x1, %r13b
jmp 0x10007
jmp 0x102f3
movq %rax, %r15
jmp 0xff03
movq %rax, %r15
jmp 0xffd3
movq %rax, %r15
jmp 0x10019
movq %rax, %r15
movb $0x1, %r13b
jmp 0xffed
movq %rax, %r15
movb $0x1, %bl
jmp 0xffa4
movq %rax, %r15
leaq 0x168(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rdi
callq 0x8ea0
leaq 0x48(%rsp), %rdi
callq 0x8ea0
jmp 0x10028
movq %rax, %r15
movb $0x1, %r12b
jmp 0x100fc
movq %rax, %r15
jmp 0x1011f
movq %rax, %r15
jmp 0xff78
movq %rax, %r15
movb $0x1, %r12b
jmp 0x10109
movq %rax, %r15
jmp 0x1027d
jmp 0x102f3
movq %rax, %r15
movb $0x1, %r12b
jmp 0x10092
movq %rax, %r15
movb $0x1, %r12b
jmp 0x1009f
movq %rax, %r15
leaq 0x188(%rsp), %rax
movq %rax, 0x98(%rsp)
movq 0x98(%rsp), %rdi
callq 0x8ea0
leaq 0x48(%rsp), %rdi
callq 0x8ea0
jmp 0x100c3
movq %rax, %r15
leaq 0x620(%rsp), %rdi
callq 0x5378
leaq 0x340(%rsp), %rdi
callq 0x5378
leaq 0x360(%rsp), %rdi
callq 0x5378
leaq 0x380(%rsp), %rdi
callq 0x5378
testb %bl, %bl
je 0x102f6
movl $0xb0, %esi
jmp 0x10212
movq %rax, %r15
leaq 0x5e0(%rsp), %rdi
callq 0x5378
leaq 0x2e0(%rsp), %rdi
callq 0x5378
leaq 0x300(%rsp), %rdi
callq 0x5378
leaq 0x320(%rsp), %rdi
callq 0x5378
testb %r13b, %r13b
je 0x10028
movl $0xb0, %esi
movq 0x8(%rsp), %rdi
jmp 0x100b9
jmp 0x1027d
movq %rax, %r15
jmp 0x100b1
movq %rax, %r15
leaq 0x118(%rsp), %rdi
jmp 0x1004a
movq %rax, %r15
leaq 0x128(%rsp), %rdi
callq 0x8ea0
leaq 0x8f0(%rsp), %rdi
callq 0x8ea0
jmp 0x10337
jmp 0x102e4
movq %rax, %r15
jmp 0x103b3
movq %rax, %r15
movb $0x1, %bl
jmp 0x101f8
movq %rax, %r15
movb $0x1, %bl
jmp 0x10189
movq %rax, %r15
leaq 0x600(%rsp), %rdi
callq 0x5378
leaq 0x3a0(%rsp), %rdi
callq 0x5378
leaq 0x3c0(%rsp), %rdi
callq 0x5378
testb %r12b, %r12b
je 0x100c3
movl $0x90, %esi
movq %r14, %rdi
callq 0x5200
jmp 0x1027d
jmp 0x1027d
movq %rax, %r15
jmp 0x1019a
jmp 0x102f3
movq %rax, %r15
jmp 0x1013c
movq %rax, %r15
jmp 0x101a9
movq %rax, %r15
movb $0x1, %bl
jmp 0x101eb
movq %rax, %r15
leaq 0x640(%rsp), %rdi
callq 0x5378
leaq 0x3e0(%rsp), %rdi
callq 0x5378
leaq 0x400(%rsp), %rdi
callq 0x5378
testb %r12b, %r12b
je 0x102f6
movl $0x90, %esi
jmp 0x102ca
movq %rax, %r15
leaq 0x1a8(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq 0xa0(%rsp), %rdi
callq 0x8ea0
leaq 0x48(%rsp), %rdi
callq 0x8ea0
jmp 0x101a9
movq %rax, %r15
jmp 0x1020d
movq %rax, %r15
movb $0x1, %bl
jmp 0x1017c
movq %rax, %r15
jmp 0x10266
movq %rax, %r15
leaq 0x660(%rsp), %rdi
callq 0x5378
leaq 0x420(%rsp), %rdi
callq 0x5378
leaq 0x440(%rsp), %rdi
callq 0x5378
testb %bl, %bl
je 0x101a9
movl $0x90, %esi
movq 0x8(%rsp), %rdi
callq 0x5200
jmp 0x1027d
jmp 0x102f3
movq %rax, %r15
movb $0x1, %r13b
jmp 0x10236
movq %rax, %r15
leaq 0x1c8(%rsp), %rdi
jmp 0x10278
movq %rax, %r15
movb $0x1, %r13b
jmp 0x10243
movq %rax, %r15
movb $0x1, %r13b
jmp 0x10250
movq %rax, %r15
leaq 0x680(%rsp), %rdi
callq 0x5378
leaq 0x460(%rsp), %rdi
callq 0x5378
leaq 0x480(%rsp), %rdi
callq 0x5378
testb %bl, %bl
je 0x102f6
movl $0x90, %esi
movq 0x8(%rsp), %rdi
jmp 0x102cd
movq %rax, %r15
movb $0x1, %bl
jmp 0x102b4
movq %rax, %r15
leaq 0x6a0(%rsp), %rdi
callq 0x5378
leaq 0x4a0(%rsp), %rdi
callq 0x5378
leaq 0x4c0(%rsp), %rdi
callq 0x5378
leaq 0x4e0(%rsp), %rdi
callq 0x5378
testb %r13b, %r13b
je 0x102f6
movl $0xa8, %esi
jmp 0x102ca
movq %rax, %r15
leaq 0x1d8(%rsp), %rdi
callq 0x8ea0
leaq 0x20(%rsp), %rdi
callq 0x8ea0
jmp 0x102f6
movq %rax, %r15
movb $0x1, %bl
jmp 0x102a7
movq %rax, %r15
jmp 0x102c5
jmp 0x102f3
movq %rax, %r15
leaq 0x6c0(%rsp), %rdi
callq 0x5378
leaq 0x500(%rsp), %rdi
callq 0x5378
leaq 0x520(%rsp), %rdi
callq 0x5378
testb %bl, %bl
je 0x102f6
movl $0x80, %esi
movq %r14, %rdi
callq 0x5200
jmp 0x102f6
jmp 0x103cd
jmp 0x103c5
jmp 0x102ee
jmp 0x102e4
jmp 0x102e9
movq %rax, %r15
jmp 0x10337
movq %rax, %r15
jmp 0x10310
movq %rax, %r15
jmp 0x10303
movq %rax, %r15
leaq 0xa68(%rsp), %rdi
callq 0x5100
leaq 0xbe8(%rsp), %rdi
callq 0x5100
leaq 0xd68(%rsp), %rdi
callq 0x5100
leaq 0xee8(%rsp), %rdi
callq 0x5100
leaq 0x8e8(%rsp), %rdi
callq 0x5100
leaq 0xf0(%rsp), %rdi
callq 0x5378
leaq 0x540(%rsp), %rdi
callq 0x5378
leaq 0x560(%rsp), %rdi
callq 0x5378
leaq 0x1e0(%rsp), %rdi
callq 0x5378
leaq 0x70(%rsp), %rdi
callq 0x5378
leaq 0x200(%rsp), %rdi
callq 0x5378
leaq 0xa8(%rsp), %rdi
callq 0x5378
leaq 0x50(%rsp), %rdi
callq 0x5378
leaq 0xd0(%rsp), %rdi
callq 0x5378
leaq 0x6e0(%rsp), %rdi
callq 0x5080
leaq 0x30(%rsp), %rdi
callq 0x8ea0
movq %r15, %rdi
callq 0x5330
movq %rax, %r15
jmp 0x1031d
movq %rax, %r15
jmp 0x1032a
nop