// File: Agusyc[P]CTRPG/src/battle.cpp
// Function: Battle::showLevelUpMenu(Player)
void Battle::showLevelUpMenu(Player originalPlayer) {
    Json::Value jPlayer = getJsonPlayer();

    for (int points = player.level; points != 0; points--) {
        cout << "Points: " << points << endl << "1. HP" << endl << "2. Attack" << endl << "3. Defense" << endl << "4. Shield" << endl << "5. Mana" << endl << "6. Stamina" << endl << "7. New attack" << endl << "Your choice: ";

        int choice;

        cin >> choice;

        switch (choice) {
        case 1:
            originalPlayer.hp++;
            break;
        case 2:
            originalPlayer.attack++;
            break;
        case 3:
            originalPlayer.defense++;
            break;
        case 4:
            originalPlayer.shieldDefense++;
            break;
        case 5:
            originalPlayer.mana++;
            break;
        case 6:
            originalPlayer.stamina++;
            break;
        case 7:
            cout << endl; // Just some formatting

            bool exitLoop = false;
            while (!exitLoop) {
                int index = 1;
                vector<int> rIndexes;
                for (int i = 0; i < getAttacksNumber(); i++) {
                    Attack attack = parseAttack(i);
                    if (player.level >= attack.minLevel && player.level <= attack.maxLevel) {
			// If the player doesn't already have the attack, add it to the list
			if (player.attacks.at(i).id != parseAttack(i).id) {
                        	cout << index << ". " << attack.name << " Cost: " << attack.cost << endl;
                       		rIndexes.push_back(i);
                        	index++;
			}
                    }
                }

                cout << index << ". Go back" << endl << "Your choice: " << endl;

                int choice;
                cin >> choice;

                if (choice == index) {
                    exitLoop = true;
                    points++;
                    continue;
                }

                Attack chosenAttack = parseAttack(rIndexes[choice]);

                if (points < chosenAttack.cost) {
                    printMessage("You don't have enough points to get that attack!");
                    continue;
                }

                points -= chosenAttack.cost;

                printMessage(string("You got ") + YELLOW + chosenAttack.name + WHITE);

                jPlayer["attacks"].append(choice);

                exitLoop = true;
            }

            break;
        }
    }

    jPlayer["hp"] = originalPlayer.hp;
    jPlayer["attack"] = originalPlayer.attack;
    jPlayer["defense"] = originalPlayer.defense;
    jPlayer["mana"] = originalPlayer.mana;
    jPlayer["stamina"] = originalPlayer.stamina;
    jPlayer["goal"] = player.goal;
    jPlayer["xp"] = player.xp;
    jPlayer["level"] = player.level;

    Json::StyledWriter writer;
    ofstream jPlayerFile("./json/player.json");
    jPlayerFile << writer.write(jPlayer);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7e0, %rsp            # imm = 0x7E0
movq %rsi, -0x648(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x640(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xca00
movq -0x640(%rbp), %rax
movl 0x38(%rax), %eax
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
je 0x7b75
movq 0x10de4(%rip), %rdi     # 0x17fd0
leaq 0xa12d(%rip), %rsi      # 0x11320
callq 0x3290
movq %rax, -0x650(%rbp)
jmp 0x7201
movq -0x650(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0x3520
movq %rax, -0x658(%rbp)
jmp 0x7219
movq -0x658(%rbp), %rdi
movq 0x10d99(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x660(%rbp)
jmp 0x7235
movq -0x660(%rbp), %rdi
leaq 0xa0e6(%rip), %rsi      # 0x11329
callq 0x3290
movq %rax, -0x668(%rbp)
jmp 0x7251
movq -0x668(%rbp), %rdi
movq 0x10d61(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x670(%rbp)
jmp 0x726d
movq -0x670(%rbp), %rdi
leaq 0xa0b4(%rip), %rsi      # 0x1132f
callq 0x3290
movq %rax, -0x678(%rbp)
jmp 0x7289
movq -0x678(%rbp), %rdi
movq 0x10d29(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x680(%rbp)
jmp 0x72a5
movq -0x680(%rbp), %rdi
leaq 0xa086(%rip), %rsi      # 0x11339
callq 0x3290
movq %rax, -0x688(%rbp)
jmp 0x72c1
movq -0x688(%rbp), %rdi
movq 0x10cf1(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x690(%rbp)
jmp 0x72dd
movq -0x690(%rbp), %rdi
leaq 0xa059(%rip), %rsi      # 0x11344
callq 0x3290
movq %rax, -0x698(%rbp)
jmp 0x72f9
movq -0x698(%rbp), %rdi
movq 0x10cb9(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x6a0(%rbp)
jmp 0x7315
movq -0x6a0(%rbp), %rdi
leaq 0xa02b(%rip), %rsi      # 0x1134e
callq 0x3290
movq %rax, -0x6a8(%rbp)
jmp 0x7331
movq -0x6a8(%rbp), %rdi
movq 0x10c81(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x6b0(%rbp)
jmp 0x734d
movq -0x6b0(%rbp), %rdi
leaq 0x9ffb(%rip), %rsi      # 0x11356
callq 0x3290
movq %rax, -0x6b8(%rbp)
jmp 0x7369
movq -0x6b8(%rbp), %rdi
movq 0x10c49(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x6c0(%rbp)
jmp 0x7385
movq -0x6c0(%rbp), %rdi
leaq 0x9fce(%rip), %rsi      # 0x11361
callq 0x3290
movq %rax, -0x6c8(%rbp)
jmp 0x73a1
movq -0x6c8(%rbp), %rdi
movq 0x10c11(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x6d0(%rbp)
jmp 0x73bd
movq -0x6d0(%rbp), %rdi
leaq 0x9d54(%rip), %rsi      # 0x1111f
callq 0x3290
jmp 0x73d2
movq 0x10c07(%rip), %rdi     # 0x17fe0
leaq -0x50(%rbp), %rsi
callq 0x31a0
jmp 0x73e4
movl -0x50(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x6d8(%rbp)
subl $0x6, %eax
ja 0x7b65
movq -0x6d8(%rbp), %rax
leaq 0x9c0b(%rip), %rcx      # 0x11014
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7fe7
movq -0x648(%rbp), %rax
movl 0x34(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x34(%rax)
jmp 0x7b65
movq -0x648(%rbp), %rax
movl 0x20(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x20(%rax)
jmp 0x7b65
movq -0x648(%rbp), %rax
movl 0x24(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x24(%rax)
jmp 0x7b65
movq -0x648(%rbp), %rax
movl 0x28(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x28(%rax)
jmp 0x7b65
movq -0x648(%rbp), %rax
movl 0x2c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2c(%rax)
jmp 0x7b65
movq -0x648(%rbp), %rax
movl 0x30(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x30(%rax)
jmp 0x7b65
movq 0x10b28(%rip), %rdi     # 0x17fd0
movq 0x10b11(%rip), %rsi     # 0x17fc0
callq 0x32b0
jmp 0x74b6
movb $0x0, -0x51(%rbp)
movb -0x51(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x74c8
jmp 0x7b63
movl $0x1, -0x58(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x88a0
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
movl %eax, -0x6e0(%rbp)
callq 0xcbe0
movl %eax, -0x6dc(%rbp)
jmp 0x74f5
movl -0x6e0(%rbp), %eax
movl -0x6dc(%rbp), %ecx
cmpl %ecx, %eax
jge 0x76ad
movl -0x74(%rbp), %esi
leaq -0xb8(%rbp), %rdi
callq 0xd6a0
jmp 0x751a
movq -0x640(%rbp), %rax
movl 0x38(%rax), %eax
cmpl -0x88(%rbp), %eax
jl 0x7693
movq -0x640(%rbp), %rax
movl 0x38(%rax), %eax
cmpl -0x84(%rbp), %eax
jg 0x7693
movq -0x640(%rbp), %rdi
addq $0x48, %rdi
movslq -0x74(%rbp), %rsi
callq 0x84d0
movq %rax, -0x6e8(%rbp)
jmp 0x7563
movq -0x6e8(%rbp), %rax
movl 0x3c(%rax), %eax
movl %eax, -0x6ec(%rbp)
movl -0x74(%rbp), %esi
leaq -0xf8(%rbp), %rdi
callq 0xd6a0
jmp 0x7584
movl -0xbc(%rbp), %eax
movl %eax, -0x6f0(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x8560
movl -0x6f0(%rbp), %ecx
movl -0x6ec(%rbp), %eax
cmpl %ecx, %eax
je 0x7691
movl -0x58(%rbp), %esi
movq 0x10a16(%rip), %rdi     # 0x17fd0
callq 0x3520
movq %rax, -0x6f8(%rbp)
jmp 0x75c8
movq -0x6f8(%rbp), %rdi
leaq 0x9b61(%rip), %rsi      # 0x11137
callq 0x3290
movq %rax, -0x700(%rbp)
jmp 0x75e4
movq -0x700(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x3230
movq %rax, -0x708(%rbp)
jmp 0x7600
movq -0x708(%rbp), %rdi
leaq 0x9d61(%rip), %rsi      # 0x1136f
callq 0x3290
movq %rax, -0x710(%rbp)
jmp 0x761c
movq -0x710(%rbp), %rdi
movl -0x80(%rbp), %esi
callq 0x3520
movq %rax, -0x718(%rbp)
jmp 0x7634
movq -0x718(%rbp), %rdi
movq 0x1097e(%rip), %rsi     # 0x17fc0
callq 0x32b0
jmp 0x7649
leaq -0x70(%rbp), %rdi
leaq -0x74(%rbp), %rsi
callq 0x88c0
jmp 0x7658
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0x7691
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7b55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x8560
jmp 0x7b55
jmp 0x7693
leaq -0xb8(%rbp), %rdi
callq 0x8560
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x74df
movl -0x58(%rbp), %esi
movq 0x10919(%rip), %rdi     # 0x17fd0
callq 0x3520
movq %rax, -0x720(%rbp)
jmp 0x76c5
movq -0x720(%rbp), %rdi
leaq 0x9a67(%rip), %rsi      # 0x1113a
callq 0x3290
movq %rax, -0x728(%rbp)
jmp 0x76e1
movq -0x728(%rbp), %rdi
movq 0x108d1(%rip), %rsi     # 0x17fc0
callq 0x32b0
movq %rax, -0x730(%rbp)
jmp 0x76fd
movq -0x730(%rbp), %rdi
leaq 0x9a14(%rip), %rsi      # 0x1111f
callq 0x3290
movq %rax, -0x738(%rbp)
jmp 0x7719
movq -0x738(%rbp), %rdi
movq 0x10899(%rip), %rsi     # 0x17fc0
callq 0x32b0
jmp 0x772e
movq 0x108ab(%rip), %rdi     # 0x17fe0
leaq -0xfc(%rbp), %rsi
callq 0x31a0
jmp 0x7743
movl -0xfc(%rbp), %eax
cmpl -0x58(%rbp), %eax
jne 0x776a
movb $0x1, -0x51(%rbp)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movl $0x6, -0x100(%rbp)
jmp 0x7a59
movslq -0xfc(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x8930
movl (%rax), %esi
leaq -0x140(%rbp), %rdi
callq 0xd6a0
jmp 0x778a
movl -0x3c(%rbp), %eax
cmpl -0x108(%rbp), %eax
jge 0x78b8
leaq -0x161(%rbp), %rdi
movq %rdi, -0x740(%rbp)
callq 0x3540
movq -0x740(%rbp), %rdx
leaq 0x9bbd(%rip), %rsi      # 0x11377
leaq -0x160(%rbp), %rdi
callq 0x33a0
jmp 0x77c8
leaq -0x189(%rbp), %rdi
movq %rdi, -0x748(%rbp)
callq 0x3540
movq -0x748(%rbp), %rdx
leaq 0x9853(%rip), %rsi      # 0x1103c
leaq -0x188(%rbp), %rdi
callq 0x33a0
jmp 0x77f7
leaq -0x160(%rbp), %rdi
leaq -0x188(%rbp), %rsi
movl $0x23, %edx
movl $0x12c, %ecx            # imm = 0x12C
movl $0x1, %r8d
callq 0x10e00
jmp 0x781c
leaq -0x188(%rbp), %rdi
callq 0x31b0
leaq -0x189(%rbp), %rdi
callq 0x32d0
leaq -0x160(%rbp), %rdi
callq 0x31b0
leaq -0x161(%rbp), %rdi
callq 0x32d0
movl $0x6, -0x100(%rbp)
jmp 0x7a4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x78a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x788f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x31b0
leaq -0x189(%rbp), %rdi
callq 0x32d0
leaq -0x160(%rbp), %rdi
callq 0x31b0
leaq -0x161(%rbp), %rdi
callq 0x32d0
jmp 0x7b49
movl -0x108(%rbp), %ecx
movl -0x3c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x3c(%rbp)
leaq -0x211(%rbp), %rdi
movq %rdi, -0x750(%rbp)
callq 0x3540
movq -0x750(%rbp), %rdx
leaq 0x9ac1(%rip), %rsi      # 0x113a8
leaq -0x210(%rbp), %rdi
callq 0x33a0
jmp 0x78f5
leaq 0x9734(%rip), %rdx      # 0x11030
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x8280
jmp 0x7911
leaq -0x1d0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
leaq -0x140(%rbp), %rdx
callq 0x8680
jmp 0x792d
leaq 0x9708(%rip), %rdx      # 0x1103c
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x8280
jmp 0x7949
leaq -0x239(%rbp), %rdi
movq %rdi, -0x758(%rbp)
callq 0x3540
movq -0x758(%rbp), %rdx
leaq 0x96d2(%rip), %rsi      # 0x1103c
leaq -0x238(%rbp), %rdi
callq 0x33a0
jmp 0x7978
leaq -0x1b0(%rbp), %rdi
leaq -0x238(%rbp), %rsi
movl $0x23, %edx
movl $0x12c, %ecx            # imm = 0x12C
movl $0x1, %r8d
callq 0x10e00
jmp 0x799d
leaq -0x238(%rbp), %rdi
callq 0x31b0
leaq -0x239(%rbp), %rdi
callq 0x32d0
leaq -0x1b0(%rbp), %rdi
callq 0x31b0
leaq -0x1d0(%rbp), %rdi
callq 0x31b0
leaq -0x1f0(%rbp), %rdi
callq 0x31b0
leaq -0x210(%rbp), %rdi
callq 0x31b0
leaq -0x211(%rbp), %rdi
callq 0x32d0
leaq 0x99b9(%rip), %rsi      # 0x113b1
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x760(%rbp)
jmp 0x7a0a
movl -0xfc(%rbp), %esi
leaq -0x268(%rbp), %rdi
callq 0x3190
jmp 0x7a1e
movq -0x760(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x33d0
jmp 0x7a33
leaq -0x268(%rbp), %rdi
callq 0x3150
movb $0x1, -0x51(%rbp)
movl $0x0, -0x100(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x8560
leaq -0x70(%rbp), %rdi
callq 0x8950
movl -0x100(%rbp), %eax
testl %eax, %eax
je 0x7a73
jmp 0x7a6e
jmp 0x74ba
jmp 0x74ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7b15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7b09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7afd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7af1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7ad9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x31b0
leaq -0x239(%rbp), %rdi
callq 0x32d0
leaq -0x1b0(%rbp), %rdi
callq 0x31b0
leaq -0x1d0(%rbp), %rdi
callq 0x31b0
leaq -0x1f0(%rbp), %rdi
callq 0x31b0
leaq -0x210(%rbp), %rdi
callq 0x31b0
leaq -0x211(%rbp), %rdi
callq 0x32d0
jmp 0x7b49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7b49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x3150
leaq -0x140(%rbp), %rdi
callq 0x8560
leaq -0x70(%rbp), %rdi
callq 0x8950
jmp 0x7fe7
jmp 0x7b65
jmp 0x7b67
movl -0x3c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x71db
movq -0x648(%rbp), %rax
movl 0x34(%rax), %esi
leaq -0x290(%rbp), %rdi
callq 0x3190
jmp 0x7b8d
leaq 0x9825(%rip), %rsi      # 0x113b9
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x768(%rbp)
jmp 0x7ba6
movq -0x768(%rbp), %rdi
leaq -0x290(%rbp), %rsi
movq %rsi, -0x770(%rbp)
callq 0x3340
movq -0x770(%rbp), %rdi
callq 0x3150
movq -0x648(%rbp), %rax
movl 0x20(%rax), %esi
leaq -0x2b8(%rbp), %rdi
callq 0x3190
jmp 0x7be4
leaq 0x977d(%rip), %rsi      # 0x11368
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x778(%rbp)
jmp 0x7bfd
movq -0x778(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
movq %rsi, -0x780(%rbp)
callq 0x3340
movq -0x780(%rbp), %rdi
callq 0x3150
movq -0x648(%rbp), %rax
movl 0x24(%rax), %esi
leaq -0x2e0(%rbp), %rdi
callq 0x3190
jmp 0x7c3b
leaq 0x977a(%rip), %rsi      # 0x113bc
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x788(%rbp)
jmp 0x7c54
movq -0x788(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
movq %rsi, -0x790(%rbp)
callq 0x3340
movq -0x790(%rbp), %rdi
callq 0x3150
movq -0x648(%rbp), %rax
movl 0x2c(%rax), %esi
leaq -0x308(%rbp), %rdi
callq 0x3190
jmp 0x7c92
leaq 0x972b(%rip), %rsi      # 0x113c4
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x798(%rbp)
jmp 0x7cab
movq -0x798(%rbp), %rdi
leaq -0x308(%rbp), %rsi
movq %rsi, -0x7a0(%rbp)
callq 0x3340
movq -0x7a0(%rbp), %rdi
callq 0x3150
movq -0x648(%rbp), %rax
movl 0x30(%rax), %esi
leaq -0x330(%rbp), %rdi
callq 0x3190
jmp 0x7ce9
leaq 0x96d9(%rip), %rsi      # 0x113c9
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x7a8(%rbp)
jmp 0x7d02
movq -0x7a8(%rbp), %rdi
leaq -0x330(%rbp), %rsi
movq %rsi, -0x7b0(%rbp)
callq 0x3340
movq -0x7b0(%rbp), %rdi
callq 0x3150
movq -0x640(%rbp), %rax
movl 0x40(%rax), %esi
leaq -0x358(%rbp), %rdi
callq 0x3190
jmp 0x7d40
leaq 0x968a(%rip), %rsi      # 0x113d1
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x7b8(%rbp)
jmp 0x7d59
movq -0x7b8(%rbp), %rdi
leaq -0x358(%rbp), %rsi
movq %rsi, -0x7c0(%rbp)
callq 0x3340
movq -0x7c0(%rbp), %rdi
callq 0x3150
movq -0x640(%rbp), %rax
movl 0x3c(%rax), %esi
leaq -0x380(%rbp), %rdi
callq 0x3190
jmp 0x7d97
leaq 0x9638(%rip), %rsi      # 0x113d6
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x7c8(%rbp)
jmp 0x7db0
movq -0x7c8(%rbp), %rdi
leaq -0x380(%rbp), %rsi
movq %rsi, -0x7d0(%rbp)
callq 0x3340
movq -0x7d0(%rbp), %rdi
callq 0x3150
movq -0x640(%rbp), %rax
movl 0x38(%rax), %esi
leaq -0x3a8(%rbp), %rdi
callq 0x3190
jmp 0x7dee
leaq 0x95e4(%rip), %rsi      # 0x113d9
leaq -0x38(%rbp), %rdi
callq 0x3100
movq %rax, -0x7d8(%rbp)
jmp 0x7e07
movq -0x7d8(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
movq %rsi, -0x7e0(%rbp)
callq 0x3340
movq -0x7e0(%rbp), %rdi
callq 0x3150
leaq -0x418(%rbp), %rdi
callq 0x3080
jmp 0x7e3b
leaq 0x959d(%rip), %rsi      # 0x113df
leaq -0x618(%rbp), %rdi
movl $0x10, %edx
callq 0x32e0
jmp 0x7e55
leaq -0x638(%rbp), %rdi
leaq -0x418(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x3390
jmp 0x7e6e
leaq -0x618(%rbp), %rdi
leaq -0x638(%rbp), %rsi
callq 0x3230
jmp 0x7e83
leaq -0x638(%rbp), %rdi
callq 0x31b0
leaq -0x618(%rbp), %rdi
callq 0x3430
leaq -0x418(%rbp), %rdi
callq 0x89b0
leaq -0x38(%rbp), %rdi
callq 0x3150
addq $0x7e0, %rsp            # imm = 0x7E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x3150
jmp 0x7fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2b8(%rbp), %rdi
callq 0x3150
jmp 0x7fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x3150
jmp 0x7fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x3150
jmp 0x7fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x3150
jmp 0x7fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x3150
jmp 0x7fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x3150
jmp 0x7fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x3a8(%rbp), %rdi
callq 0x3150
jmp 0x7fe7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x7fcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x638(%rbp), %rdi
callq 0x31b0
leaq -0x618(%rbp), %rdi
callq 0x3430
leaq -0x418(%rbp), %rdi
callq 0x89b0
leaq -0x38(%rbp), %rdi
callq 0x3150
movq -0x48(%rbp), %rdi
callq 0x3530
nopl (%rax)