// File: MichaelXanth[P]RPG_Game/Grid/Grid.cpp
// Function: Grid::DisplayGrid(std::vector<Hero*, std::allocator<Hero*>>&)
void Grid::DisplayGrid(vector<Hero *>& heroes)/*displays non-accessible blocks with red , the market with yellow and the heroes with green*/
{
    cout << "\033[2J\033[1;1H";
    cout << "\033[s";
    cout << "\033[1;33m+\033[0;34m====================================================================================================\033[1;33m+\033[34m" << endl;
    
    for(int i = 0; i < verticalSize; i++) {
        cout << "\033[0;34m|\033[0m";
        for(int j = 0; j < horizontalSize; j++) {
            if(grid[i][j] == ' ')
                cout << "  ";
            else if(grid[i][j] == 'X')
                cout << "\033[48;5;9m  \033[0m";
            else if(grid[i][j] == 'M')
                cout << "\033[48;5;11m  \033[0m";
            else
                cout << "\033[48;5;70m  \033[0m";
        }
        cout << "\033[34m|\033[0m" << endl;
    }
    
    cout << "\033[1;33m+\033[0;34m====================================================================================================\033[1;33m+\033[34m" << endl;
    cout << "\033[0;34m|\033[0m \033[48;5;9m  \033[0m -> Non-accessible, \033[48;5;11m  \033[0m -> Market, \033[48;5;70m  \033[0m -> Heroes \033[34m|\033[0m";
    cout << "       Press: \033[1;33mi\033[0m for inventory or \033[1;33mq\033[0m to quit       \033[34m|\033[0m" << endl;
    cout << "\033[1;33m+\033[0;34m--------------------------------------------------\033[1;33m+\033[0;34m-------------------------------------------------\033[1;33m+\033[0m" << endl;

    cout << "\033[u";

    for(int  i = 0; i < heroes.size(); i++)
    {
        cout << "\033[104C\033[1;33m+\033[0;34m==============================\033[1;33m+\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Name:          \033[38;5;220m";
        cout.width(15);
        cout << left << heroes[i]->GetName() << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Level:         ";
        cout.width(15);
        cout << left << heroes[i]->GetLevel() << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        string str = to_string(heroes[i]->GetHP()) + "/" + to_string(heroes[i]->GetMaxHP());

        if(heroes[i]->GetHP() >= 2.0 / 3.0 * heroes[i]->GetMaxHP())
            cout << "HP:            \033[38;5;2m";
        else if(heroes[i]->GetHP() >= 1.0 / 3.0 * heroes[i]->GetMaxHP())
            cout << "HP:            \033[38;5;202m";
        else
            cout << "HP:            \033[38;5;9m";

        cout.width(15);
        cout << left << str << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Magic Power:   ";
        cout.width(15);
        cout << left << heroes[i]->GetMagicPower() << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Money:         ";
        cout.width(15);
        cout << left << heroes[i]->GetMoney() << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Strength:      ";
        cout.width(15);
        cout << left << heroes[i]->GetStrength() << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Dexterity:     ";
        cout.width(15);
        cout << left << heroes[i]->GetDexterity() << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Agility:       ";
        cout.width(15);
        cout << left << heroes[i]->GetAgility() << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Armor Defence: ";
        cout.width(15);
        cout << left << heroes[i]->GetArmorDefence() << "\033[34m|\033[0m" << endl;

        cout << "\033[104C\033[34m|\033[0m";
        cout << "Weapon Damage: ";
        cout.width(15);
        cout << left << heroes[i]->GetWeaponDamage() << "\033[34m|\033[0m" << endl;

    }
    cout << "\033[104C\033[1;33m+\033[0;34m==============================\033[1;33m+\033[0m" << endl;

    cout << "\033[" << 33 - 11 * heroes.size() << "B";

    if(heroes.size() == 3)
        cout << "\033[1A";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x250, %rsp            # imm = 0x250
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq 0x30e03(%rip), %rdi     # 0x4dfc8
leaq 0x20204(%rip), %rsi     # 0x3d3d0
callq 0x4260
movq 0x30df0(%rip), %rdi     # 0x4dfc8
leaq 0x2069f(%rip), %rsi     # 0x3d87e
callq 0x4260
movq 0x30ddd(%rip), %rdi     # 0x4dfc8
leaq 0x2086a(%rip), %rsi     # 0x3da5c
callq 0x4260
movq %rax, %rdi
movq 0x30db7(%rip), %rsi     # 0x4dfb8
callq 0x4290
movl $0x0, -0x14(%rbp)
movq -0xd8(%rbp), %rcx
movl -0x14(%rbp), %eax
cmpl 0x4(%rcx), %eax
jge 0x1d345
movq 0x30da1(%rip), %rdi     # 0x4dfc8
leaq 0x208af(%rip), %rsi     # 0x3dadd
callq 0x4260
movl $0x0, -0x18(%rbp)
movq -0xd8(%rbp), %rcx
movl -0x18(%rbp), %eax
cmpl (%rcx), %eax
jge 0x1d315
movq -0xd8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x20, %eax
jne 0x1d284
movq 0x30d55(%rip), %rdi     # 0x4dfc8
leaq 0x2058e(%rip), %rsi     # 0x3d808
callq 0x4260
jmp 0x1d305
movq -0xd8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x58, %eax
jne 0x1d2b9
movq 0x30d1d(%rip), %rdi     # 0x4dfc8
leaq 0x20838(%rip), %rsi     # 0x3daea
callq 0x4260
jmp 0x1d303
movq -0xd8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x4d, %eax
jne 0x1d2ee
movq 0x30ce8(%rip), %rdi     # 0x4dfc8
leaq 0x20813(%rip), %rsi     # 0x3dafa
callq 0x4260
jmp 0x1d301
movq 0x30cd3(%rip), %rdi     # 0x4dfc8
leaq 0x2080f(%rip), %rsi     # 0x3db0b
callq 0x4260
jmp 0x1d303
jmp 0x1d305
jmp 0x1d307
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x1d23a
movq 0x30cac(%rip), %rdi     # 0x4dfc8
leaq 0x21300(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, %rdi
movq 0x30c86(%rip), %rsi     # 0x4dfb8
callq 0x4290
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x1d20d
movq 0x30c7c(%rip), %rdi     # 0x4dfc8
leaq 0x20709(%rip), %rsi     # 0x3da5c
callq 0x4260
movq %rax, %rdi
movq 0x30c56(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq 0x30c5a(%rip), %rdi     # 0x4dfc8
leaq 0x207a7(%rip), %rsi     # 0x3db1c
callq 0x4260
movq 0x30c47(%rip), %rdi     # 0x4dfc8
leaq 0x20806(%rip), %rsi     # 0x3db8e
callq 0x4260
movq %rax, %rdi
movq 0x30c21(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq 0x30c25(%rip), %rdi     # 0x4dfc8
leaq 0x20836(%rip), %rsi     # 0x3dbe0
callq 0x4260
movq %rax, %rdi
movq 0x30bff(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq 0x30c03(%rip), %rdi     # 0x4dfc8
leaq 0x204dc(%rip), %rsi     # 0x3d8a8
callq 0x4260
movl $0x0, -0x1c(%rbp)
movslq -0x1c(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5ad0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
cmpq %rcx, %rax
jae 0x1de5b
movq 0x30bc2(%rip), %rdi     # 0x4dfc8
movq %rdi, -0x100(%rbp)
leaq 0x2085a(%rip), %rsi     # 0x3dc6e
callq 0x4260
movq %rax, %rdi
movq 0x30b95(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x100(%rbp), %rdi
leaq 0x20878(%rip), %rsi     # 0x3dcae
callq 0x4260
movq -0x100(%rbp), %rdi
leaq 0x20107(%rip), %rsi     # 0x3d550
callq 0x4260
movq -0x100(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
movq -0x100(%rbp), %rdi
leaq -0x1a67(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0xf8(%rbp)
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rsi
leaq -0x40(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x1ea60
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
callq 0x4210
movq %rax, -0xe8(%rbp)
jmp 0x1d4bf
movq -0xe8(%rbp), %rdi
leaq 0x21156(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x108(%rbp)
jmp 0x1d4db
movq -0x108(%rbp), %rdi
movq 0x30acf(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1d4f0
leaq -0x40(%rbp), %rdi
callq 0x4160
movq 0x30ac8(%rip), %rdi     # 0x4dfc8
movq %rdi, -0x120(%rbp)
leaq 0x207a0(%rip), %rsi     # 0x3dcae
movq %rsi, -0x118(%rbp)
callq 0x4260
movq -0x120(%rbp), %rdi
leaq 0x20043(%rip), %rsi     # 0x3d56b
callq 0x4260
movq -0x120(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
movq -0x120(%rbp), %rdi
leaq -0x1b46(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x128(%rbp)
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ea90
movq -0x128(%rbp), %rdi
movl %eax, %esi
callq 0x4370
movq %rax, %rdi
leaq 0x21094(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, %rdi
movq 0x30a1a(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x120(%rbp), %rdi
movq -0x118(%rbp), %rsi
callq 0x4260
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ead0
movl %eax, %esi
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x1bb60
movq -0x110(%rbp), %rsi
leaq 0x1fee6(%rip), %rdx     # 0x3d4d4
leaq -0x90(%rbp), %rdi
callq 0x1bb10
jmp 0x1d5fc
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1eab0
movl %eax, -0x12c(%rbp)
jmp 0x1d619
movl -0x12c(%rbp), %esi
leaq -0xd0(%rbp), %rdi
callq 0x1bb60
jmp 0x1d62d
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0xd0(%rbp), %rdx
callq 0x1ba40
jmp 0x1d646
leaq -0xd0(%rbp), %rdi
callq 0x4160
leaq -0x90(%rbp), %rdi
callq 0x4160
leaq -0xb0(%rbp), %rdi
callq 0x4160
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ead0
movl %eax, -0x130(%rbp)
jmp 0x1d687
movl -0x130(%rbp), %eax
movl %eax, %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x140(%rbp)
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1eab0
movl %eax, -0x134(%rbp)
jmp 0x1d6b9
movsd -0x140(%rbp), %xmm0
movl -0x134(%rbp), %eax
movl %eax, %eax
cvtsi2sd %rax, %xmm2
movsd 0x1fc22(%rip), %xmm1    # 0x3d2f8
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jb 0x1d783
movq 0x308dd(%rip), %rdi     # 0x4dfc8
leaq 0x1fe89(%rip), %rsi     # 0x3d57b
callq 0x4260
jmp 0x1d6f9
jmp 0x1d829
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x4160
jmp 0x1def2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1d758
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1d74c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x4160
leaq -0x90(%rbp), %rdi
callq 0x4160
leaq -0xb0(%rbp), %rdi
callq 0x4160
jmp 0x1def2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x4160
jmp 0x1def2
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ead0
movl %eax, -0x144(%rbp)
jmp 0x1d7a0
movl -0x144(%rbp), %eax
movl %eax, %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x150(%rbp)
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1eab0
movl %eax, -0x148(%rbp)
jmp 0x1d7d2
movsd -0x150(%rbp), %xmm0
movl -0x148(%rbp), %eax
movl %eax, %eax
cvtsi2sd %rax, %xmm2
movsd 0x1fb11(%rip), %xmm1    # 0x3d300
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jb 0x1d810
movq 0x307c8(%rip), %rdi     # 0x4dfc8
leaq 0x1fd8d(%rip), %rsi     # 0x3d594
callq 0x4260
jmp 0x1d80e
jmp 0x1d827
movq 0x307b1(%rip), %rdi     # 0x4dfc8
leaq 0x1fd91(%rip), %rsi     # 0x3d5af
callq 0x4260
jmp 0x1d825
jmp 0x1d827
jmp 0x1d829
movq 0x30798(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1d846
movq 0x3077b(%rip), %rdi     # 0x4dfc8
leaq -0x1e44(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x158(%rbp)
jmp 0x1d862
movq -0x158(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x4210
movq %rax, -0x160(%rbp)
jmp 0x1d87b
movq -0x160(%rbp), %rdi
leaq 0x20d9a(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x168(%rbp)
jmp 0x1d897
movq -0x168(%rbp), %rdi
movq 0x30713(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1d8ac
movq 0x30715(%rip), %rdi     # 0x4dfc8
leaq 0x203f4(%rip), %rsi     # 0x3dcae
callq 0x4260
jmp 0x1d8c1
movq 0x30700(%rip), %rdi     # 0x4dfc8
leaq 0x1fcf9(%rip), %rsi     # 0x3d5c8
callq 0x4260
jmp 0x1d8d6
movq 0x306eb(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1d8f3
movq 0x306ce(%rip), %rdi     # 0x4dfc8
leaq -0x1ef1(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x170(%rbp)
jmp 0x1d90f
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ee90
movl %eax, -0x174(%rbp)
jmp 0x1d92c
movl -0x174(%rbp), %esi
movq -0x170(%rbp), %rdi
callq 0x4370
movq %rax, -0x180(%rbp)
jmp 0x1d947
movq -0x180(%rbp), %rdi
leaq 0x20cce(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x188(%rbp)
jmp 0x1d963
movq -0x188(%rbp), %rdi
movq 0x30647(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1d978
movq 0x30649(%rip), %rdi     # 0x4dfc8
leaq 0x20328(%rip), %rsi     # 0x3dcae
callq 0x4260
jmp 0x1d98d
movq 0x30634(%rip), %rdi     # 0x4dfc8
leaq 0x20324(%rip), %rsi     # 0x3dcbf
callq 0x4260
jmp 0x1d9a2
movq 0x3061f(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1d9bf
movq 0x30602(%rip), %rdi     # 0x4dfc8
leaq -0x1fbd(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x190(%rbp)
jmp 0x1d9db
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1eeb0
movl %eax, -0x194(%rbp)
jmp 0x1d9f8
movl -0x194(%rbp), %esi
movq -0x190(%rbp), %rdi
callq 0x4370
movq %rax, -0x1a0(%rbp)
jmp 0x1da13
movq -0x1a0(%rbp), %rdi
leaq 0x20c02(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x1a8(%rbp)
jmp 0x1da2f
movq -0x1a8(%rbp), %rdi
movq 0x3057b(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1da44
movq 0x3057d(%rip), %rdi     # 0x4dfc8
leaq 0x2025c(%rip), %rsi     # 0x3dcae
callq 0x4260
jmp 0x1da59
movq 0x30568(%rip), %rdi     # 0x4dfc8
leaq 0x1fb71(%rip), %rsi     # 0x3d5d8
callq 0x4260
jmp 0x1da6e
movq 0x30553(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1da8b
movq 0x30536(%rip), %rdi     # 0x4dfc8
leaq -0x2089(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x1b0(%rbp)
jmp 0x1daa7
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1edb0
movl %eax, -0x1b4(%rbp)
jmp 0x1dac4
movl -0x1b4(%rbp), %esi
movq -0x1b0(%rbp), %rdi
callq 0x4370
movq %rax, -0x1c0(%rbp)
jmp 0x1dadf
movq -0x1c0(%rbp), %rdi
leaq 0x20b36(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x1c8(%rbp)
jmp 0x1dafb
movq -0x1c8(%rbp), %rdi
movq 0x304af(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1db10
movq 0x304b1(%rip), %rdi     # 0x4dfc8
leaq 0x20190(%rip), %rsi     # 0x3dcae
callq 0x4260
jmp 0x1db25
movq 0x3049c(%rip), %rdi     # 0x4dfc8
leaq 0x1fab5(%rip), %rsi     # 0x3d5e8
callq 0x4260
jmp 0x1db3a
movq 0x30487(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1db57
movq 0x3046a(%rip), %rdi     # 0x4dfc8
leaq -0x2155(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x1d0(%rbp)
jmp 0x1db73
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1edd0
movl %eax, -0x1d4(%rbp)
jmp 0x1db90
movl -0x1d4(%rbp), %esi
movq -0x1d0(%rbp), %rdi
callq 0x4370
movq %rax, -0x1e0(%rbp)
jmp 0x1dbab
movq -0x1e0(%rbp), %rdi
leaq 0x20a6a(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x1e8(%rbp)
jmp 0x1dbc7
movq -0x1e8(%rbp), %rdi
movq 0x303e3(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1dbdc
movq 0x303e5(%rip), %rdi     # 0x4dfc8
leaq 0x200c4(%rip), %rsi     # 0x3dcae
callq 0x4260
jmp 0x1dbf1
movq 0x303d0(%rip), %rdi     # 0x4dfc8
leaq 0x1f9f9(%rip), %rsi     # 0x3d5f8
callq 0x4260
jmp 0x1dc06
movq 0x303bb(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1dc23
movq 0x3039e(%rip), %rdi     # 0x4dfc8
leaq -0x2221(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x1f0(%rbp)
jmp 0x1dc3f
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1edf0
movss %xmm0, -0x1f4(%rbp)
jmp 0x1dc5e
movss -0x1f4(%rbp), %xmm0
movq -0x1f0(%rbp), %rdi
callq 0x41b0
movq %rax, -0x200(%rbp)
jmp 0x1dc7b
movq -0x200(%rbp), %rdi
leaq 0x2099a(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x208(%rbp)
jmp 0x1dc97
movq -0x208(%rbp), %rdi
movq 0x30313(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1dcac
movq 0x30315(%rip), %rdi     # 0x4dfc8
leaq 0x1fff4(%rip), %rsi     # 0x3dcae
callq 0x4260
jmp 0x1dcc1
movq 0x30300(%rip), %rdi     # 0x4dfc8
leaq 0x1f939(%rip), %rsi     # 0x3d608
callq 0x4260
jmp 0x1dcd6
movq 0x302eb(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1dcf3
movq 0x302ce(%rip), %rdi     # 0x4dfc8
leaq -0x22f1(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x210(%rbp)
jmp 0x1dd0f
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x20b50
movl %eax, -0x214(%rbp)
jmp 0x1dd2c
movl -0x214(%rbp), %esi
movq -0x210(%rbp), %rdi
callq 0x4370
movq %rax, -0x220(%rbp)
jmp 0x1dd47
movq -0x220(%rbp), %rdi
leaq 0x208ce(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x228(%rbp)
jmp 0x1dd63
movq -0x228(%rbp), %rdi
movq 0x30247(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1dd78
movq 0x30249(%rip), %rdi     # 0x4dfc8
leaq 0x1ff28(%rip), %rsi     # 0x3dcae
callq 0x4260
jmp 0x1dd8d
movq 0x30234(%rip), %rdi     # 0x4dfc8
leaq 0x1f87d(%rip), %rsi     # 0x3d618
callq 0x4260
jmp 0x1dda2
movq 0x3021f(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1ddbf
movq 0x30202(%rip), %rdi     # 0x4dfc8
leaq -0x23bd(%rip), %rsi     # 0x1ba10
callq 0x40d0
movq %rax, -0x230(%rbp)
jmp 0x1dddb
movq -0x10(%rbp), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x20b00
movl %eax, -0x234(%rbp)
jmp 0x1ddf8
movl -0x234(%rbp), %esi
movq -0x230(%rbp), %rdi
callq 0x4370
movq %rax, -0x240(%rbp)
jmp 0x1de13
movq -0x240(%rbp), %rdi
leaq 0x20802(%rip), %rsi     # 0x3e623
callq 0x4260
movq %rax, -0x248(%rbp)
jmp 0x1de2f
movq -0x248(%rbp), %rdi
movq 0x3017b(%rip), %rsi     # 0x4dfb8
callq 0x4290
jmp 0x1de44
leaq -0x70(%rbp), %rdi
callq 0x4160
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1d3d8
movq 0x30166(%rip), %rdi     # 0x4dfc8
leaq 0x1fe05(%rip), %rsi     # 0x3dc6e
callq 0x4260
movq %rax, %rdi
movq 0x30140(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq 0x30144(%rip), %rdi     # 0x4dfc8
leaq 0x1f550(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, -0x250(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5ad0
movq -0x250(%rbp), %rdi
imulq $0xb, %rax, %rax
movl $0x21, %esi
subq %rax, %rsi
callq 0x4080
movq %rax, %rdi
leaq 0x22188(%rip), %rsi     # 0x4004a
callq 0x4260
movq -0x10(%rbp), %rdi
callq 0x5ad0
cmpq $0x3, %rax
jne 0x1dee9
movq 0x300eb(%rip), %rdi     # 0x4dfc8
leaq 0x1fdeb(%rip), %rsi     # 0x3dccf
callq 0x4260
addq $0x250, %rsp            # imm = 0x250
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x4440
nopl (%rax,%rax)