// File: /workspace/github_cpp_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x398, %rsp            # imm = 0x398
movq %rsi, -0x30(%rbp)
movq %rdi, %rbx
leaq -0xa8(%rbp), %rdi
callq 0x8dc0
movl 0x38(%rbx), %eax
movl %eax, -0x34(%rbp)
testl %eax, %eax
je 0x78ab
leaq -0x3a8(%rbp), %r12
movl $0x8, %edx
movq 0x7f62(%rip), %rdi      # 0xefd0
leaq 0x52bb(%rip), %rsi      # 0xc330
callq 0x32f0
movq 0x7f4f(%rip), %rdi      # 0xefd0
movl -0x34(%rbp), %esi
callq 0x34b0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq %rax, %r13
movl $0x5, %edx
movq %rax, %rdi
leaq 0x5274(%rip), %rsi      # 0xc339
callq 0x32f0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq %rax, %r13
movl $0x9, %edx
movq %rax, %rdi
leaq 0x523b(%rip), %rsi      # 0xc33f
callq 0x32f0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq %rax, %r13
movl $0xa, %edx
movq %rax, %rdi
leaq 0x5206(%rip), %rsi      # 0xc349
callq 0x32f0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq %rax, %r13
movl $0x9, %edx
movq %rax, %rdi
leaq 0x51d2(%rip), %rsi      # 0xc354
callq 0x32f0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq %rax, %r13
movl $0x7, %edx
movq %rax, %rdi
leaq 0x519d(%rip), %rsi      # 0xc35e
callq 0x32f0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq %rax, %r13
movl $0xa, %edx
movq %rax, %rdi
leaq 0x5166(%rip), %rsi      # 0xc366
callq 0x32f0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq %rax, %r13
movl $0xd, %edx
movq %rax, %rdi
leaq 0x5132(%rip), %rsi      # 0xc371
callq 0x32f0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r13, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movl $0xd, %edx
movq %rax, %rdi
leaq 0x4eb4(%rip), %rsi      # 0xc12f
callq 0x32f0
movq 0x7d59(%rip), %rdi      # 0xefe0
leaq -0x5c(%rbp), %rsi
callq 0x3180
movl -0x5c(%rbp), %eax
decl %eax
cmpl $0x6, %eax
ja 0x78a2
leaq 0x4d6f(%rip), %rcx      # 0xc014
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x30(%rbp), %rax
incl 0x34(%rax)
jmp 0x78a2
movq -0x30(%rbp), %rax
incl 0x2c(%rax)
jmp 0x78a2
movq -0x30(%rbp), %rax
incl 0x24(%rax)
jmp 0x78a2
movq -0x30(%rbp), %rax
incl 0x28(%rax)
jmp 0x78a2
movq -0x30(%rbp), %rax
incl 0x20(%rax)
jmp 0x78a2
movq -0x30(%rbp), %rax
incl 0x30(%rax)
jmp 0x78a2
movq 0x7cd3(%rip), %rcx      # 0xefd0
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq 0x7cb5(%rip), %rdi      # 0xefd0
callq 0x3030
movq %rax, %rdi
callq 0x31a0
xorps %xmm0, %xmm0
movaps %xmm0, -0x80(%rbp)
movq $0x0, -0x70(%rbp)
movl $0x1, %r13d
xorl %r15d, %r15d
movl %r15d, -0x58(%rbp)
callq 0x8f19
cmpl %eax, %r15d
jge 0x74b8
movl -0x58(%rbp), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x96ee
movl 0x38(%rbx), %eax
cmpl -0x388(%rbp), %eax
jl 0x749b
cmpl -0x384(%rbp), %eax
jg 0x749b
movslq -0x58(%rbp), %rsi
movq 0x48(%rbx), %rax
movq 0x50(%rbx), %rdx
subq %rax, %rdx
sarq $0x6, %rdx
cmpq %rsi, %rdx
jbe 0x7b36
movq %rsi, %rcx
shlq $0x6, %rcx
movl 0x3c(%rax,%rcx), %r15d
leaq -0x1b8(%rbp), %rdi
callq 0x96ee
movl -0x17c(%rbp), %r12d
movq -0x1b8(%rbp), %rdi
leaq -0x1a8(%rbp), %rax
cmpq %rax, %rdi
je 0x73cf
callq 0x3260
cmpl %r12d, %r15d
jne 0x73e0
leaq -0x3a8(%rbp), %r12
jmp 0x749b
movq 0x7be9(%rip), %rdi      # 0xefd0
movl %r13d, %esi
leaq -0x3a8(%rbp), %r12
callq 0x34b0
movq %rax, %r15
movl $0x2, %edx
movq %rax, %rdi
leaq 0x4d3f(%rip), %rsi      # 0xc147
callq 0x32f0
movq -0x3b8(%rbp), %rsi
movq -0x3b0(%rbp), %rdx
movq %r15, %rdi
callq 0x32f0
movq %rax, %r15
movl $0x7, %edx
movq %rax, %rdi
leaq 0x4f4a(%rip), %rsi      # 0xc37f
callq 0x32f0
movl -0x380(%rbp), %esi
movq %r15, %rdi
callq 0x34b0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq -0x78(%rbp), %rsi
cmpq -0x70(%rbp), %rsi
je 0x748b
movl -0x58(%rbp), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, -0x78(%rbp)
jmp 0x7498
leaq -0x80(%rbp), %rdi
leaq -0x58(%rbp), %rdx
callq 0x8c86
incl %r13d
movq -0x3b8(%rbp), %rdi
cmpq %r12, %rdi
je 0x74ac
callq 0x3260
movl -0x58(%rbp), %r15d
incl %r15d
jmp 0x7340
movq 0x7b11(%rip), %rdi      # 0xefd0
movl %r13d, %esi
callq 0x34b0
movq %rax, %r15
movl $0x9, %edx
movq %rax, %rdi
leaq 0x4c71(%rip), %rsi      # 0xc14a
callq 0x32f0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq %rax, %r15
movl $0xd, %edx
movq %rax, %rdi
leaq 0x4c18(%rip), %rsi      # 0xc12f
callq 0x32f0
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x3280
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x31a0
movq 0x7a96(%rip), %rdi      # 0xefe0
leaq -0x38(%rbp), %rsi
callq 0x3180
movslq -0x38(%rbp), %rax
cmpl %r13d, %eax
jne 0x7567
incl -0x34(%rbp)
movb $0x1, %r14b
jmp 0x788b
movq -0x80(%rbp), %rcx
movl (%rcx,%rax,4), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x96ee
movl -0x34(%rbp), %eax
subl -0x380(%rbp), %eax
setge %r14b
jl 0x75f1
movl %eax, -0x34(%rbp)
leaq -0x118(%rbp), %rax
movq %rax, -0x128(%rbp)
leaq -0x128(%rbp), %r15
movq %r15, %rdi
leaq 0x4e0d(%rip), %rsi      # 0xc3b8
leaq 0x4e0e(%rip), %rdx      # 0xc3c0
callq 0x890c
movq %r15, %rdi
leaq 0x4a7f(%rip), %rsi      # 0xc040
callq 0x3520
leaq -0x48(%rbp), %rsi
movq %rsi, -0x58(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x769c
movq %rdx, -0x58(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x48(%rbp)
jmp 0x76a2
leaq -0xd8(%rbp), %rax
movq %rax, -0xe8(%rbp)
leaq -0xe8(%rbp), %rdi
leaq 0x4d7a(%rip), %rsi      # 0xc387
leaq 0x4da3(%rip), %rdx      # 0xc3b7
callq 0x890c
leaq -0x138(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq -0x148(%rbp), %r15
movq %r15, %rdi
leaq 0x4a14(%rip), %rsi      # 0xc04c
leaq 0x4a12(%rip), %rdx      # 0xc051
callq 0x890c
leaq -0xe8(%rbp), %rdi
movq %r15, %rsi
movl $0x23, %edx
movl $0x12c, %ecx            # imm = 0x12C
movl $0x1, %r8d
callq 0xb4c8
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x767b
callq 0x3260
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x787a
callq 0x3260
jmp 0x787a
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x50(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x3b8(%rbp), %rsi
movq -0x3b0(%rbp), %rdx
leaq -0x58(%rbp), %rdi
callq 0x30b0
leaq -0x1a8(%rbp), %rsi
movq %rsi, -0x1b8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x7700
movq %rdx, -0x1b8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x1a8(%rbp)
jmp 0x7706
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x1b0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x1b8(%rbp), %rdi
leaq 0x491e(%rip), %rsi      # 0xc04c
callq 0x3520
leaq -0xb8(%rbp), %rsi
movq %rsi, -0xc8(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x7763
movq %rdx, -0xc8(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xb8(%rbp)
jmp 0x7769
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xc0(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0xf8(%rbp), %rax
movq %rax, -0x108(%rbp)
leaq -0x108(%rbp), %r15
movq %r15, %rdi
leaq 0x48aa(%rip), %rsi      # 0xc04c
leaq 0x48a8(%rip), %rdx      # 0xc051
callq 0x890c
leaq -0xc8(%rbp), %rdi
movq %r15, %rsi
movl $0x23, %edx
movl $0x12c, %ecx            # imm = 0x12C
movl $0x1, %r8d
callq 0xb4c8
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x77e5
callq 0x3260
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x77fd
callq 0x3260
movq -0x1b8(%rbp), %rdi
leaq -0x1a8(%rbp), %rax
cmpq %rax, %rdi
je 0x7815
callq 0x3260
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x7827
callq 0x3260
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x783f
callq 0x3260
leaq -0xa8(%rbp), %rdi
leaq 0x4b74(%rip), %rsi      # 0xc3c1
callq 0x30e0
movq %rax, %r15
movl -0x38(%rbp), %esi
leaq -0x1b8(%rbp), %r13
movq %r13, %rdi
callq 0x3170
movq %r15, %rdi
movq %r13, %rsi
callq 0x3370
movq %r13, %rdi
callq 0x3140
movq -0x3b8(%rbp), %rdi
cmpq %r12, %rdi
je 0x788b
callq 0x3260
movq -0x80(%rbp), %rdi
testq %rdi, %rdi
je 0x7899
callq 0x3260
testb %r14b, %r14b
je 0x7328
decl -0x34(%rbp)
jne 0x7062
movq -0x30(%rbp), %rax
movl 0x34(%rax), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x3170
leaq 0x4b04(%rip), %rsi      # 0xc3c9
leaq -0xa8(%rbp), %rdi
callq 0x30e0
leaq -0x3b8(%rbp), %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x3310
movq %r14, %rdi
callq 0x3140
movq -0x30(%rbp), %rax
movl 0x20(%rax), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x3170
leaq 0x4a73(%rip), %rsi      # 0xc378
leaq -0xa8(%rbp), %rdi
callq 0x30e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x3310
movq %r14, %rdi
callq 0x3140
movq -0x30(%rbp), %rax
movl 0x24(%rax), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x3170
leaq 0x4a8e(%rip), %rsi      # 0xc3cc
leaq -0xa8(%rbp), %rdi
callq 0x30e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x3310
movq %r14, %rdi
callq 0x3140
movq -0x30(%rbp), %rax
movl 0x2c(%rax), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x3170
leaq 0x4a5d(%rip), %rsi      # 0xc3d4
leaq -0xa8(%rbp), %rdi
callq 0x30e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x3310
movq %r14, %rdi
callq 0x3140
movq -0x30(%rbp), %rax
movl 0x30(%rax), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x3170
leaq 0x4a29(%rip), %rsi      # 0xc3d9
leaq -0xa8(%rbp), %rdi
callq 0x30e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x3310
movq %r14, %rdi
callq 0x3140
movl 0x40(%rbx), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x3170
leaq 0x49fc(%rip), %rsi      # 0xc3e1
leaq -0xa8(%rbp), %rdi
callq 0x30e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x3310
movq %r14, %rdi
callq 0x3140
movl 0x3c(%rbx), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x3170
leaq 0x49cc(%rip), %rsi      # 0xc3e6
leaq -0xa8(%rbp), %rdi
callq 0x30e0
movq %rax, %rdi
movq %r14, %rsi
callq 0x3310
movq %r14, %rdi
callq 0x3140
movl 0x38(%rbx), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x3170
leaq 0x499a(%rip), %rsi      # 0xc3e9
leaq -0xa8(%rbp), %rdi
callq 0x30e0
leaq -0x3b8(%rbp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x3310
movq %rbx, %rdi
callq 0x3140
leaq -0x1b8(%rbp), %rdi
callq 0x3060
leaq 0x4967(%rip), %rsi      # 0xc3ef
leaq -0x3b8(%rbp), %rdi
movl $0x10, %edx
callq 0x32b0
leaq -0x58(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
leaq -0xa8(%rbp), %rdx
callq 0x3350
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq -0x3b8(%rbp), %rdi
callq 0x32f0
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7ad6
callq 0x3260
movq 0x74eb(%rip), %rax      # 0xefc8
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x3b0(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x3b8(%rbp,%rcx)
callq 0x3200
leaq -0x2c0(%rbp), %rdi
callq 0x30c0
leaq -0x1b8(%rbp), %rdi
callq 0x7e6a
leaq -0xa8(%rbp), %rdi
callq 0x3140
addq $0x398, %rsp            # imm = 0x398
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x48f5(%rip), %rdi      # 0xc432
xorl %eax, %eax
callq 0x3400
movq %rax, %rbx
leaq -0x48(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7b5e
callq 0x3260
jmp 0x7b5e
movq %rax, %rbx
leaq -0x3b8(%rbp), %rdi
callq 0x33d0
jmp 0x7b6f
movq %rax, %rbx
leaq -0x1b8(%rbp), %rdi
callq 0x7e6a
jmp 0x7cf9
jmp 0x7cc5
jmp 0x7bb6
jmp 0x7cc5
jmp 0x7bb6
jmp 0x7cc5
jmp 0x7bb6
jmp 0x7cc5
jmp 0x7bb6
jmp 0x7cc5
jmp 0x7bb6
jmp 0x7cc5
jmp 0x7bb6
jmp 0x7cc5
jmp 0x7bb6
jmp 0x7cc5
movq %rax, %rbx
leaq -0x3b8(%rbp), %rdi
callq 0x3140
jmp 0x7cf9
jmp 0x7cc5
jmp 0x7cd7
movq %rax, %rbx
jmp 0x7cb6
movq %rax, %rbx
leaq -0x1b8(%rbp), %rdi
callq 0x3140
jmp 0x7cb6
movq %rax, %rbx
jmp 0x7c10
movq %rax, %rbx
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x7c10
callq 0x3260
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
jmp 0x7cac
jmp 0x7cd7
movq %rax, %rbx
jmp 0x7c9e
movq %rax, %rbx
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x7c5c
callq 0x3260
jmp 0x7c5c
jmp 0x7cd7
movq %rax, %rbx
jmp 0x7c8c
movq %rax, %rbx
jmp 0x7c74
movq %rax, %rbx
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x7c74
callq 0x3260
movq -0x1b8(%rbp), %rdi
leaq -0x1a8(%rbp), %rax
cmpq %rax, %rdi
je 0x7c8c
callq 0x3260
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x7c9e
callq 0x3260
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x7cb6
callq 0x3260
leaq -0x3a8(%rbp), %r12
jmp 0x7cda
jmp 0x7cc5
jmp 0x7cd2
jmp 0x7cd2
movq %rax, %rbx
jmp 0x7cf9
jmp 0x7cd2
jmp 0x7cd7
jmp 0x7cd7
jmp 0x7cd2
movq %rax, %rbx
jmp 0x7ceb
movq %rax, %rbx
movq -0x3b8(%rbp), %rdi
cmpq %r12, %rdi
je 0x7ceb
callq 0x3260
movq -0x80(%rbp), %rdi
testq %rdi, %rdi
je 0x7cf9
callq 0x3260
leaq -0xa8(%rbp), %rdi
callq 0x3140
movq %rbx, %rdi
callq 0x34d0
nop