// File: Agusyc[P]CTRPG/src/jsonparser.cpp
// Function: parsePlayer()
Player parsePlayer() {
    Json::Value jPlayer; // The root element

    Player player; // The "Player" struct

    struct stat buffer;
    if(stat("./json/player.json", &buffer) == 0) {
        // File exists

        ifstream ifs("./json/player.json");

        Json::Reader reader; // The reader... that reads.

        bool parsingSuccessful = reader.parse(ifs, jPlayer);
        if (!parsingSuccessful) {
            // Print error
            cout << "Failed to parse the player." << endl << "Error:" << endl << reader.getFormattedErrorMessages();
        }

    } else {
        // The player doesn't exist.
        cout << "Welcome to CTRPG! Please enter your name: ";
        string name;

        cin >> name;

        // We create a new player.

        jPlayer["name"] = name;
        jPlayer["attack"] = 1;
        jPlayer["defense"] = 1;
        jPlayer["shieldDefense"] = 1;
        jPlayer["mana"] = 5;
        jPlayer["stamina"] = 5;
        jPlayer["hp"] = 10;
        jPlayer["xp"] = 0;
        jPlayer["level"] = 1;
        jPlayer["goal"] = 10;
        jPlayer["attacks"].append(1);
        jPlayer["attacks"].append(2);
        jPlayer["items"].append(0);
        jPlayer["items"].append(1);

        // We write the new data to a file.

        Json::StyledWriter writer;

        ofstream ofs("./json/player.json");

        ofs << writer.write(jPlayer);
        ofs.close();
    }

    player.name = jPlayer["name"].asString();
    player.attack = jPlayer["attack"].asInt();
    player.defense = jPlayer["defense"].asInt();
    player.shieldDefense = jPlayer["shieldDefense"].asInt();
    player.mana = jPlayer["mana"].asInt();
    player.stamina = jPlayer["stamina"].asInt();
    player.hp = jPlayer["hp"].asInt();
    player.xp = jPlayer["xp"].asInt();
    player.level =jPlayer["level"].asInt();
    player.goal = jPlayer["goal"].asInt();

    // Iterates trough the array "attacks", which contains all the indexes of the attacks of the player
    for (const Json::Value& attack : jPlayer["attacks"]) { // "attack" is the current index
        player.attacks.push_back(parseAttack(attack.asInt())); // Pushes the attack to the vector
    }

    // Itereates trough the array "items", which contains all the indexes of the items of the player
    for (const Json::Value& item : jPlayer["items"]) { // "item" is the current index
        player.items.push_back(parseItem(item.asInt())); // Pushes the item to the vector
    }

    return player;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xbf0, %rsp            # imm = 0xBF0
movq %rdi, -0xa00(%rbp)
movq %rdi, %rax
movq %rax, -0xa08(%rbp)
movq %rdi, -0x8(%rbp)
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x3120
movq -0xa00(%rbp), %rdi
movb $0x0, -0x31(%rbp)
callq 0x8000
leaq 0x31cd(%rip), %rdi      # 0x113df
leaq -0xc8(%rbp), %rsi
callq 0x3240
cmpl $0x0, %eax
jne 0xe3cf
leaq 0x31b1(%rip), %rsi      # 0x113df
leaq -0x2d0(%rbp), %rdi
movl $0x8, %edx
callq 0x3550
jmp 0xe241
leaq -0x3f0(%rbp), %rdi
callq 0x32c0
jmp 0xe24f
leaq -0x3f0(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
leaq -0x30(%rbp), %rdx
movl $0x1, %ecx
callq 0x3570
movb %al, -0xa09(%rbp)
jmp 0xe273
movb -0xa09(%rbp), %al
andb $0x1, %al
movb %al, -0x3f1(%rbp)
testb $0x1, -0x3f1(%rbp)
jne 0xe395
movq 0x9d3b(%rip), %rdi      # 0x17fd0
leaq 0x32ed(%rip), %rsi      # 0x11589
callq 0x3290
movq %rax, -0xa18(%rbp)
jmp 0xe2aa
movq -0xa18(%rbp), %rdi
movq 0x9d08(%rip), %rsi      # 0x17fc0
callq 0x32b0
movq %rax, -0xa20(%rbp)
jmp 0xe2c6
movq -0xa20(%rbp), %rdi
leaq 0x31d3(%rip), %rsi      # 0x114a7
callq 0x3290
movq %rax, -0xa28(%rbp)
jmp 0xe2e2
movq -0xa28(%rbp), %rdi
movq 0x9cd0(%rip), %rsi      # 0x17fc0
callq 0x32b0
movq %rax, -0xa30(%rbp)
jmp 0xe2fe
leaq -0x418(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x3480
jmp 0xe313
movq -0xa30(%rbp), %rdi
leaq -0x418(%rbp), %rsi
callq 0x3230
jmp 0xe328
leaq -0x418(%rbp), %rdi
callq 0x31b0
jmp 0xe395
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
jmp 0xf07a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
jmp 0xe3be
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
jmp 0xe3b2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x31b0
jmp 0xe3b2
leaq -0x3f0(%rbp), %rdi
callq 0xf0a0
leaq -0x2d0(%rbp), %rdi
callq 0x30b0
jmp 0xeb73
leaq -0x3f0(%rbp), %rdi
callq 0xf0a0
leaq -0x2d0(%rbp), %rdi
callq 0x30b0
jmp 0xf07a
movq 0x9bfa(%rip), %rdi      # 0x17fd0
leaq 0x31c8(%rip), %rsi      # 0x115a5
callq 0x3290
jmp 0xe3e4
leaq -0x438(%rbp), %rdi
movq %rdi, -0xa38(%rbp)
callq 0x33c0
movq -0xa38(%rbp), %rsi
movq 0x9bdb(%rip), %rdi      # 0x17fe0
callq 0x3370
jmp 0xe40c
leaq -0x460(%rbp), %rdi
leaq -0x438(%rbp), %rsi
callq 0x34c0
jmp 0xe421
leaq 0x30e6(%rip), %rsi      # 0x1150e
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xa40(%rbp)
jmp 0xe43a
movq -0xa40(%rbp), %rdi
leaq -0x460(%rbp), %rsi
movq %rsi, -0xa48(%rbp)
callq 0x3340
movq -0xa48(%rbp), %rdi
callq 0x3150
leaq -0x488(%rbp), %rdi
movl $0x1, %esi
callq 0x3190
jmp 0xe473
leaq 0x2eee(%rip), %rsi      # 0x11368
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xa50(%rbp)
jmp 0xe48c
movq -0xa50(%rbp), %rdi
leaq -0x488(%rbp), %rsi
movq %rsi, -0xa58(%rbp)
callq 0x3340
movq -0xa58(%rbp), %rdi
callq 0x3150
leaq -0x4b0(%rbp), %rdi
movl $0x1, %esi
callq 0x3190
jmp 0xe4c5
leaq 0x2ef0(%rip), %rsi      # 0x113bc
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xa60(%rbp)
jmp 0xe4de
movq -0xa60(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
movq %rsi, -0xa68(%rbp)
callq 0x3340
movq -0xa68(%rbp), %rdi
callq 0x3150
leaq -0x4d8(%rbp), %rdi
movl $0x1, %esi
callq 0x3190
jmp 0xe517
leaq 0x305d(%rip), %rsi      # 0x1157b
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xa70(%rbp)
jmp 0xe530
movq -0xa70(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
movq %rsi, -0xa78(%rbp)
callq 0x3340
movq -0xa78(%rbp), %rdi
callq 0x3150
leaq -0x500(%rbp), %rdi
movl $0x5, %esi
callq 0x3190
jmp 0xe569
leaq 0x2e54(%rip), %rsi      # 0x113c4
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xa80(%rbp)
jmp 0xe582
movq -0xa80(%rbp), %rdi
leaq -0x500(%rbp), %rsi
movq %rsi, -0xa88(%rbp)
callq 0x3340
movq -0xa88(%rbp), %rdi
callq 0x3150
leaq -0x528(%rbp), %rdi
movl $0x5, %esi
callq 0x3190
jmp 0xe5bb
leaq 0x2e07(%rip), %rsi      # 0x113c9
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xa90(%rbp)
jmp 0xe5d4
movq -0xa90(%rbp), %rdi
leaq -0x528(%rbp), %rsi
movq %rsi, -0xa98(%rbp)
callq 0x3340
movq -0xa98(%rbp), %rdi
callq 0x3150
leaq -0x550(%rbp), %rdi
movl $0xa, %esi
callq 0x3190
jmp 0xe60d
leaq 0x2da5(%rip), %rsi      # 0x113b9
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xaa0(%rbp)
jmp 0xe626
movq -0xaa0(%rbp), %rdi
leaq -0x550(%rbp), %rsi
movq %rsi, -0xaa8(%rbp)
callq 0x3340
movq -0xaa8(%rbp), %rdi
callq 0x3150
leaq -0x578(%rbp), %rdi
xorl %esi, %esi
callq 0x3190
jmp 0xe65c
leaq 0x2d73(%rip), %rsi      # 0x113d6
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xab0(%rbp)
jmp 0xe675
movq -0xab0(%rbp), %rdi
leaq -0x578(%rbp), %rsi
movq %rsi, -0xab8(%rbp)
callq 0x3340
movq -0xab8(%rbp), %rdi
callq 0x3150
leaq -0x5a0(%rbp), %rdi
movl $0x1, %esi
callq 0x3190
jmp 0xe6ae
leaq 0x2d24(%rip), %rsi      # 0x113d9
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xac0(%rbp)
jmp 0xe6c7
movq -0xac0(%rbp), %rdi
leaq -0x5a0(%rbp), %rsi
movq %rsi, -0xac8(%rbp)
callq 0x3340
movq -0xac8(%rbp), %rdi
callq 0x3150
leaq -0x5c8(%rbp), %rdi
movl $0xa, %esi
callq 0x3190
jmp 0xe700
leaq 0x2cca(%rip), %rsi      # 0x113d1
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xad0(%rbp)
jmp 0xe719
movq -0xad0(%rbp), %rdi
leaq -0x5c8(%rbp), %rsi
movq %rsi, -0xae0(%rbp)
callq 0x3340
movq -0xae0(%rbp), %rdi
callq 0x3150
leaq 0x2c6b(%rip), %rsi      # 0x113b1
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xad8(%rbp)
jmp 0xe758
leaq -0x5f0(%rbp), %rdi
movl $0x1, %esi
callq 0x3190
jmp 0xe76b
movq -0xad8(%rbp), %rdi
leaq -0x5f0(%rbp), %rsi
callq 0x33d0
jmp 0xe780
leaq -0x5f0(%rbp), %rdi
callq 0x3150
leaq 0x2c1e(%rip), %rsi      # 0x113b1
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xae8(%rbp)
jmp 0xe7a5
leaq -0x618(%rbp), %rdi
movl $0x2, %esi
callq 0x3190
jmp 0xe7b8
movq -0xae8(%rbp), %rdi
leaq -0x618(%rbp), %rsi
callq 0x33d0
jmp 0xe7cd
leaq -0x618(%rbp), %rdi
callq 0x3150
leaq 0x2c12(%rip), %rsi      # 0x113f2
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xaf0(%rbp)
jmp 0xe7f2
leaq -0x640(%rbp), %rdi
xorl %esi, %esi
callq 0x3190
jmp 0xe802
movq -0xaf0(%rbp), %rdi
leaq -0x640(%rbp), %rsi
callq 0x33d0
jmp 0xe817
leaq -0x640(%rbp), %rdi
callq 0x3150
leaq 0x2bc8(%rip), %rsi      # 0x113f2
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xaf8(%rbp)
jmp 0xe83c
leaq -0x668(%rbp), %rdi
movl $0x1, %esi
callq 0x3190
jmp 0xe84f
movq -0xaf8(%rbp), %rdi
leaq -0x668(%rbp), %rsi
callq 0x33d0
jmp 0xe864
leaq -0x668(%rbp), %rdi
callq 0x3150
leaq -0x6d8(%rbp), %rdi
callq 0x3080
jmp 0xe87e
leaq 0x2b5a(%rip), %rsi      # 0x113df
leaq -0x8d8(%rbp), %rdi
movl $0x10, %edx
callq 0x32e0
jmp 0xe898
leaq -0x8f8(%rbp), %rdi
leaq -0x6d8(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x3390
jmp 0xe8b1
leaq -0x8d8(%rbp), %rdi
leaq -0x8f8(%rbp), %rsi
callq 0x3230
jmp 0xe8c6
leaq -0x8f8(%rbp), %rdi
callq 0x31b0
leaq -0x8d8(%rbp), %rdi
callq 0x3400
jmp 0xe8e0
leaq -0x8d8(%rbp), %rdi
callq 0x3430
leaq -0x6d8(%rbp), %rdi
callq 0x89b0
leaq -0x438(%rbp), %rdi
callq 0x31b0
jmp 0xeb73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x4b0(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x500(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x528(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x550(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x578(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x5a0(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x5c8(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x618(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x640(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x668(%rbp), %rdi
callq 0x3150
jmp 0xeb62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
jmp 0xeb56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
jmp 0xeb4a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x8f8(%rbp), %rdi
callq 0x31b0
leaq -0x8d8(%rbp), %rdi
callq 0x3430
leaq -0x6d8(%rbp), %rdi
callq 0x89b0
leaq -0x438(%rbp), %rdi
callq 0x31b0
jmp 0xf07a
leaq 0x2994(%rip), %rsi      # 0x1150e
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb00(%rbp)
jmp 0xeb8c
movq -0xb00(%rbp), %rsi
leaq -0x918(%rbp), %rdi
callq 0x3560
jmp 0xeba1
movq -0xa00(%rbp), %rdi
leaq -0x918(%rbp), %rsi
movq %rsi, -0xb10(%rbp)
callq 0x3360
movq -0xb10(%rbp), %rdi
callq 0x31b0
leaq 0x279a(%rip), %rsi      # 0x11368
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb08(%rbp)
jmp 0xebe0
movq -0xb08(%rbp), %rdi
callq 0x3450
movl %eax, -0xb14(%rbp)
jmp 0xebf4
movq -0xa00(%rbp), %rax
movl -0xb14(%rbp), %ecx
movl %ecx, 0x20(%rax)
leaq 0x27b1(%rip), %rsi      # 0x113bc
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb20(%rbp)
jmp 0xec1d
movq -0xb20(%rbp), %rdi
callq 0x3450
movl %eax, -0xb24(%rbp)
jmp 0xec31
movq -0xa00(%rbp), %rax
movl -0xb24(%rbp), %ecx
movl %ecx, 0x24(%rax)
leaq 0x2933(%rip), %rsi      # 0x1157b
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb30(%rbp)
jmp 0xec5a
movq -0xb30(%rbp), %rdi
callq 0x3450
movl %eax, -0xb34(%rbp)
jmp 0xec6e
movq -0xa00(%rbp), %rax
movl -0xb34(%rbp), %ecx
movl %ecx, 0x28(%rax)
leaq 0x273f(%rip), %rsi      # 0x113c4
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb40(%rbp)
jmp 0xec97
movq -0xb40(%rbp), %rdi
callq 0x3450
movl %eax, -0xb44(%rbp)
jmp 0xecab
movq -0xa00(%rbp), %rax
movl -0xb44(%rbp), %ecx
movl %ecx, 0x2c(%rax)
leaq 0x2707(%rip), %rsi      # 0x113c9
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb50(%rbp)
jmp 0xecd4
movq -0xb50(%rbp), %rdi
callq 0x3450
movl %eax, -0xb54(%rbp)
jmp 0xece8
movq -0xa00(%rbp), %rax
movl -0xb54(%rbp), %ecx
movl %ecx, 0x30(%rax)
leaq 0x26ba(%rip), %rsi      # 0x113b9
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb60(%rbp)
jmp 0xed11
movq -0xb60(%rbp), %rdi
callq 0x3450
movl %eax, -0xb64(%rbp)
jmp 0xed25
movq -0xa00(%rbp), %rax
movl -0xb64(%rbp), %ecx
movl %ecx, 0x34(%rax)
leaq 0x269a(%rip), %rsi      # 0x113d6
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb70(%rbp)
jmp 0xed4e
movq -0xb70(%rbp), %rdi
callq 0x3450
movl %eax, -0xb74(%rbp)
jmp 0xed62
movq -0xa00(%rbp), %rax
movl -0xb74(%rbp), %ecx
movl %ecx, 0x3c(%rax)
leaq 0x2660(%rip), %rsi      # 0x113d9
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb80(%rbp)
jmp 0xed8b
movq -0xb80(%rbp), %rdi
callq 0x3450
movl %eax, -0xb84(%rbp)
jmp 0xed9f
movq -0xa00(%rbp), %rax
movl -0xb84(%rbp), %ecx
movl %ecx, 0x38(%rax)
leaq 0x261b(%rip), %rsi      # 0x113d1
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xb90(%rbp)
jmp 0xedc8
movq -0xb90(%rbp), %rdi
callq 0x3450
movl %eax, -0xb94(%rbp)
jmp 0xeddc
movq -0xa00(%rbp), %rax
movl -0xb94(%rbp), %ecx
movl %ecx, 0x40(%rax)
leaq 0x25be(%rip), %rsi      # 0x113b1
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xba0(%rbp)
jmp 0xee05
movq -0xba0(%rbp), %rax
movq %rax, -0x920(%rbp)
movq -0x920(%rbp), %rsi
leaq -0x930(%rbp), %rdi
callq 0x3300
jmp 0xee28
movq -0x920(%rbp), %rsi
leaq -0x940(%rbp), %rdi
callq 0x3420
jmp 0xee3d
jmp 0xee3f
leaq -0x930(%rbp), %rdi
leaq -0x940(%rbp), %rsi
callq 0xf0f0
movb %al, -0xba1(%rbp)
jmp 0xee5a
movb -0xba1(%rbp), %al
testb $0x1, %al
jne 0xee69
jmp 0xef1d
leaq -0x930(%rbp), %rdi
callq 0xf120
movq %rax, -0xbb0(%rbp)
jmp 0xee7e
movq -0xa00(%rbp), %rax
movq -0xbb0(%rbp), %rcx
movq %rcx, -0x948(%rbp)
addq $0x48, %rax
movq %rax, -0xbc0(%rbp)
movq -0x948(%rbp), %rdi
callq 0x3450
movl %eax, -0xbb4(%rbp)
jmp 0xeeb2
movl -0xbb4(%rbp), %esi
leaq -0x988(%rbp), %rdi
callq 0xd6a0
jmp 0xeec6
movq -0xbc0(%rbp), %rdi
leaq -0x988(%rbp), %rsi
callq 0xf140
jmp 0xeedb
leaq -0x988(%rbp), %rdi
callq 0x8560
leaq -0x930(%rbp), %rdi
callq 0xf170
jmp 0xeef5
jmp 0xee3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x988(%rbp), %rdi
callq 0x8560
jmp 0xf07a
leaq 0x24ce(%rip), %rsi      # 0x113f2
leaq -0x30(%rbp), %rdi
callq 0x3100
movq %rax, -0xbc8(%rbp)
jmp 0xef36
movq -0xbc8(%rbp), %rax
movq %rax, -0x990(%rbp)
movq -0x990(%rbp), %rsi
leaq -0x9a0(%rbp), %rdi
callq 0x3300
jmp 0xef59
movq -0x990(%rbp), %rsi
leaq -0x9b0(%rbp), %rdi
callq 0x3420
jmp 0xef6e
jmp 0xef70
leaq -0x9a0(%rbp), %rdi
leaq -0x9b0(%rbp), %rsi
callq 0xf0f0
movb %al, -0xbc9(%rbp)
jmp 0xef8b
movb -0xbc9(%rbp), %al
testb $0x1, %al
jne 0xef9a
jmp 0xf04b
leaq -0x9a0(%rbp), %rdi
callq 0xf120
movq %rax, -0xbd8(%rbp)
jmp 0xefaf
movq -0xa00(%rbp), %rax
movq -0xbd8(%rbp), %rcx
movq %rcx, -0x9b8(%rbp)
addq $0x60, %rax
movq %rax, -0xbe8(%rbp)
movq -0x9b8(%rbp), %rdi
callq 0x3450
movl %eax, -0xbdc(%rbp)
jmp 0xefe3
movl -0xbdc(%rbp), %esi
leaq -0x9f8(%rbp), %rdi
callq 0xd1e0
jmp 0xeff7
movq -0xbe8(%rbp), %rdi
leaq -0x9f8(%rbp), %rsi
callq 0xf1a0
jmp 0xf00c
leaq -0x9f8(%rbp), %rdi
callq 0x85f0
leaq -0x9a0(%rbp), %rdi
callq 0xf170
jmp 0xf026
jmp 0xef70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2d8(%rbp)
movl %eax, -0x2dc(%rbp)
leaq -0x9f8(%rbp), %rdi
callq 0x85f0
jmp 0xf07a
movb $0x1, -0x31(%rbp)
testb $0x1, -0x31(%rbp)
jne 0xf061
movq -0xa00(%rbp), %rdi
callq 0x8170
leaq -0x30(%rbp), %rdi
callq 0x3150
movq -0xa08(%rbp), %rax
addq $0xbf0, %rsp            # imm = 0xBF0
popq %rbp
retq
movq -0xa00(%rbp), %rdi
callq 0x8170
leaq -0x30(%rbp), %rdi
callq 0x3150
movq -0x2d8(%rbp), %rdi
callq 0x3530
nopl (%rax,%rax)