// File: MichaelXanth[P]RPG_Game/Game/Game.cpp
// Function: Game::DisplayHeroesStats(unsigned short const&)
void Game::DisplayHeroesStats(const unsigned short& monstersNum)
{
    int heroesNum = heroes.size();

    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[" << ((heroesNum - 1) * 31) / 2 + 7 << "C";

    /*cout << endl << "       ";
    for (short i = 0; i < ((heroesNum - 1) * 31) / 2; i++)
        cout << " ";*/

    cout << "Heroes Statistics" << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    for (short int i = 0; i < heroesNum; i++)
        cout << "\033[1;33m+\033[0;34m==============================";

    cout << "\033[1;33m+\033[0m" << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        cout << "Name:          \033[38;5;220m";
        cout.width(15);
        cout << left << heroes[i]->GetName() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        cout << "Level:         ";
        cout.width(15);
        cout << left << heroes[i]->GetLevel() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        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";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        cout << "Magic Power:   ";
        cout.width(15);
        cout << left << heroes[i]->GetMagicPower() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        cout << "Strength:      ";
        cout.width(15);
        cout << left << heroes[i]->GetStrength() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        cout << "Dexterity:     ";
        cout.width(15);
        cout << left << heroes[i]->GetDexterity() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        cout << "Agility:       ";
        cout.width(15);
        cout << left << heroes[i]->GetAgility() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        cout << "Armor Defence: ";
        cout.width(15);
        cout << left << heroes[i]->GetArmorDefence() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < heroesNum; i++) {
        cout << "Weapon Damage: ";
        cout.width(15);
        cout << left << heroes[i]->GetWeaponDamage() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum > heroesNum)
        cout << "\033[" << ((monstersNum - heroesNum) * 31) / 2 << "C";

    for (short int i = 0; i < heroesNum; i++)
        cout << "\033[1;33m+\033[0;34m==============================";

    cout << "\033[1;33m+\033[0m" << endl << endl;

    cout << "---------------------------" << endl << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq 0x10(%rax), %rdi
callq 0x5ad0
movl %eax, -0x14(%rbp)
movq 0x33967(%rip), %rdi     # 0x4dfc8
movq 0x33950(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1a6ba
movq 0x33948(%rip), %rdi     # 0x4dfc8
leaq 0x22d54(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x26161(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x33907(%rip), %rdi     # 0x4dfc8
leaq 0x22d13(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movl -0x14(%rbp), %eax
subl $0x1, %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
addl $0x7, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x26121(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x338c7(%rip), %rdi     # 0x4dfc8
leaq 0x22e36(%rip), %rsi     # 0x3d53e
callq 0x4260
movq %rax, %rdi
movq 0x338a1(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1a769
movq 0x33899(%rip), %rdi     # 0x4dfc8
leaq 0x22ca5(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x260b2(%rip), %rsi     # 0x40816
callq 0x4260
movw $0x0, -0x16(%rbp)
movswl -0x16(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1a799
movq 0x33849(%rip), %rdi     # 0x4dfc8
leaq 0x22d02(%rip), %rsi     # 0x3d488
callq 0x4260
movw -0x16(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x16(%rbp)
jmp 0x1a76f
movq 0x33828(%rip), %rdi     # 0x4dfc8
leaq 0x234ba(%rip), %rsi     # 0x3dc61
callq 0x4260
movq %rax, %rdi
movq 0x33802(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1a808
movq 0x337fa(%rip), %rdi     # 0x4dfc8
leaq 0x22c06(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x26013(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x337b9(%rip), %rdi     # 0x4dfc8
leaq 0x23e0d(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0x18(%rbp)
movswl -0x18(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1a90d
movq 0x33793(%rip), %rdi     # 0x4dfc8
movq %rdi, -0x100(%rbp)
leaq 0x22d0d(%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 0x119f(%rip), %rsi      # 0x1ba10
callq 0x40d0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0xf8(%rbp)
movq 0x10(%rax), %rdi
movswq -0x18(%rbp), %rsi
callq 0x5030
movq (%rax), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x1ea60
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
callq 0x4210
movq %rax, -0xe8(%rbp)
jmp 0x1a8c4
movq -0xe8(%rbp), %rdi
leaq 0x23d51(%rip), %rsi     # 0x3e623
callq 0x4260
jmp 0x1a8d9
leaq -0x38(%rbp), %rdi
callq 0x4160
movw -0x18(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x18(%rbp)
jmp 0x1a821
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4160
jmp 0x1b5dc
movq 0x336b4(%rip), %rdi     # 0x4dfc8
movq 0x3369d(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1a96d
movq 0x33695(%rip), %rdi     # 0x4dfc8
leaq 0x22aa1(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x25eae(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x33654(%rip), %rdi     # 0x4dfc8
leaq 0x23ca8(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0x46(%rbp)
movswl -0x46(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1aa2d
movq 0x3362e(%rip), %rdi     # 0x4dfc8
leaq 0x22bca(%rip), %rsi     # 0x3d56b
callq 0x4260
movq 0x3361b(%rip), %rax     # 0x4dfc8
movq (%rax), %rax
movq 0x33611(%rip), %rdi     # 0x4dfc8
addq -0x18(%rax), %rdi
movl $0xf, %esi
callq 0x1b9e0
movq 0x335fc(%rip), %rdi     # 0x4dfc8
leaq 0x103d(%rip), %rsi      # 0x1ba10
callq 0x40d0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0x108(%rbp)
movq 0x10(%rax), %rdi
movswq -0x46(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ea90
movq -0x108(%rbp), %rdi
movl %eax, %esi
callq 0x4370
movq %rax, %rdi
leaq 0x23c0c(%rip), %rsi     # 0x3e623
callq 0x4260
movw -0x46(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x46(%rbp)
jmp 0x1a986
movq 0x33594(%rip), %rdi     # 0x4dfc8
movq 0x3357d(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1aa8d
movq 0x33575(%rip), %rdi     # 0x4dfc8
leaq 0x22981(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x25d8e(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x33534(%rip), %rdi     # 0x4dfc8
leaq 0x23b88(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0x48(%rbp)
movswl -0x48(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1adbd
movq -0xe0(%rbp), %rax
movq 0x10(%rax), %rdi
movswq -0x48(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ead0
movl %eax, %esi
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x110(%rbp)
callq 0x1bb60
movq -0x110(%rbp), %rsi
leaq 0x229e1(%rip), %rdx     # 0x3d4d4
leaq -0x88(%rbp), %rdi
callq 0x1bb10
jmp 0x1ab01
movq -0xe0(%rbp), %rax
movq 0x10(%rax), %rdi
movswq -0x48(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1eab0
movl %eax, -0x114(%rbp)
jmp 0x1ab26
movl -0x114(%rbp), %esi
leaq -0xc8(%rbp), %rdi
callq 0x1bb60
jmp 0x1ab3a
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
leaq -0xc8(%rbp), %rdx
callq 0x1ba40
jmp 0x1ab53
leaq -0xc8(%rbp), %rdi
callq 0x4160
leaq -0x88(%rbp), %rdi
callq 0x4160
leaq -0xa8(%rbp), %rdi
callq 0x4160
movq -0xe0(%rbp), %rax
movq 0x10(%rax), %rdi
movswq -0x48(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ead0
movl %eax, -0x118(%rbp)
jmp 0x1ab9c
movq -0xe0(%rbp), %rax
movl -0x118(%rbp), %ecx
movl %ecx, %ecx
cvtsi2sd %rcx, %xmm0
movsd %xmm0, -0x128(%rbp)
movq 0x10(%rax), %rdi
movswq -0x48(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1eab0
movl %eax, -0x11c(%rbp)
jmp 0x1abd6
movsd -0x128(%rbp), %xmm0
movl -0x11c(%rbp), %eax
movl %eax, %eax
cvtsi2sd %rax, %xmm2
movsd 0x22705(%rip), %xmm1    # 0x3d2f8
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jb 0x1ac86
movq 0x333c0(%rip), %rdi     # 0x4dfc8
leaq 0x2296c(%rip), %rsi     # 0x3d57b
callq 0x4260
jmp 0x1ac16
jmp 0x1ad3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1ac5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1ac4f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x4160
leaq -0x88(%rbp), %rdi
callq 0x4160
leaq -0xa8(%rbp), %rdi
callq 0x4160
jmp 0x1b5dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x4160
jmp 0x1b5dc
movq -0xe0(%rbp), %rax
movq 0x10(%rax), %rdi
movswq -0x48(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ead0
movl %eax, -0x12c(%rbp)
jmp 0x1acab
movq -0xe0(%rbp), %rax
movl -0x12c(%rbp), %ecx
movl %ecx, %ecx
cvtsi2sd %rcx, %xmm0
movsd %xmm0, -0x138(%rbp)
movq 0x10(%rax), %rdi
movswq -0x48(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1eab0
movl %eax, -0x130(%rbp)
jmp 0x1ace5
movsd -0x138(%rbp), %xmm0
movl -0x130(%rbp), %eax
movl %eax, %eax
cvtsi2sd %rax, %xmm2
movsd 0x225fe(%rip), %xmm1    # 0x3d300
mulsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jb 0x1ad23
movq 0x332b5(%rip), %rdi     # 0x4dfc8
leaq 0x2287a(%rip), %rsi     # 0x3d594
callq 0x4260
jmp 0x1ad21
jmp 0x1ad3a
movq 0x3329e(%rip), %rdi     # 0x4dfc8
leaq 0x2287e(%rip), %rsi     # 0x3d5af
callq 0x4260
jmp 0x1ad38
jmp 0x1ad3a
jmp 0x1ad3c
movq 0x33285(%rip), %rdi     # 0x4dfc8
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
movl $0xf, %esi
callq 0x1b9e0
jmp 0x1ad59
movq 0x33268(%rip), %rdi     # 0x4dfc8
leaq 0xca9(%rip), %rsi       # 0x1ba10
callq 0x40d0
movq %rax, -0x140(%rbp)
jmp 0x1ad75
movq -0x140(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x4210
movq %rax, -0x148(%rbp)
jmp 0x1ad8e
movq -0x148(%rbp), %rdi
leaq 0x23887(%rip), %rsi     # 0x3e623
callq 0x4260
jmp 0x1ada3
leaq -0x68(%rbp), %rdi
callq 0x4160
movw -0x48(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x48(%rbp)
jmp 0x1aaa6
movq 0x33204(%rip), %rdi     # 0x4dfc8
movq 0x331ed(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1ae1d
movq 0x331e5(%rip), %rdi     # 0x4dfc8
leaq 0x225f1(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x259fe(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x331a4(%rip), %rdi     # 0x4dfc8
leaq 0x237f8(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0xca(%rbp)
movswl -0xca(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1aeec
movq 0x33178(%rip), %rdi     # 0x4dfc8
leaq 0x22771(%rip), %rsi     # 0x3d5c8
callq 0x4260
movq 0x33165(%rip), %rax     # 0x4dfc8
movq (%rax), %rax
movq 0x3315b(%rip), %rdi     # 0x4dfc8
addq -0x18(%rax), %rdi
movl $0xf, %esi
callq 0x1b9e0
movq 0x33146(%rip), %rdi     # 0x4dfc8
leaq 0xb87(%rip), %rsi       # 0x1ba10
callq 0x40d0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0x150(%rbp)
movq 0x10(%rax), %rdi
movswq -0xca(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1ee90
movq -0x150(%rbp), %rdi
movl %eax, %esi
callq 0x4370
movq %rax, %rdi
leaq 0x23753(%rip), %rsi     # 0x3e623
callq 0x4260
movw -0xca(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xca(%rbp)
jmp 0x1ae39
movq 0x330d5(%rip), %rdi     # 0x4dfc8
movq 0x330be(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1af4c
movq 0x330b6(%rip), %rdi     # 0x4dfc8
leaq 0x224c2(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x258cf(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x33075(%rip), %rdi     # 0x4dfc8
leaq 0x236c9(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0xcc(%rbp)
movswl -0xcc(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1b01b
movq 0x33049(%rip), %rdi     # 0x4dfc8
leaq 0x22652(%rip), %rsi     # 0x3d5d8
callq 0x4260
movq 0x33036(%rip), %rax     # 0x4dfc8
movq (%rax), %rax
movq 0x3302c(%rip), %rdi     # 0x4dfc8
addq -0x18(%rax), %rdi
movl $0xf, %esi
callq 0x1b9e0
movq 0x33017(%rip), %rdi     # 0x4dfc8
leaq 0xa58(%rip), %rsi       # 0x1ba10
callq 0x40d0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0x158(%rbp)
movq 0x10(%rax), %rdi
movswq -0xcc(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1edb0
movq -0x158(%rbp), %rdi
movl %eax, %esi
callq 0x4370
movq %rax, %rdi
leaq 0x23624(%rip), %rsi     # 0x3e623
callq 0x4260
movw -0xcc(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xcc(%rbp)
jmp 0x1af68
movq 0x32fa6(%rip), %rdi     # 0x4dfc8
movq 0x32f8f(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1b07b
movq 0x32f87(%rip), %rdi     # 0x4dfc8
leaq 0x22393(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x257a0(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x32f46(%rip), %rdi     # 0x4dfc8
leaq 0x2359a(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0xce(%rbp)
movswl -0xce(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1b14a
movq 0x32f1a(%rip), %rdi     # 0x4dfc8
leaq 0x22533(%rip), %rsi     # 0x3d5e8
callq 0x4260
movq 0x32f07(%rip), %rax     # 0x4dfc8
movq (%rax), %rax
movq 0x32efd(%rip), %rdi     # 0x4dfc8
addq -0x18(%rax), %rdi
movl $0xf, %esi
callq 0x1b9e0
movq 0x32ee8(%rip), %rdi     # 0x4dfc8
leaq 0x929(%rip), %rsi       # 0x1ba10
callq 0x40d0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0x160(%rbp)
movq 0x10(%rax), %rdi
movswq -0xce(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1edd0
movq -0x160(%rbp), %rdi
movl %eax, %esi
callq 0x4370
movq %rax, %rdi
leaq 0x234f5(%rip), %rsi     # 0x3e623
callq 0x4260
movw -0xce(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xce(%rbp)
jmp 0x1b097
movq 0x32e77(%rip), %rdi     # 0x4dfc8
movq 0x32e60(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1b1aa
movq 0x32e58(%rip), %rdi     # 0x4dfc8
leaq 0x22264(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x25671(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x32e17(%rip), %rdi     # 0x4dfc8
leaq 0x2346b(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0xd0(%rbp)
movswl -0xd0(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1b277
movq 0x32deb(%rip), %rdi     # 0x4dfc8
leaq 0x22414(%rip), %rsi     # 0x3d5f8
callq 0x4260
movq 0x32dd8(%rip), %rax     # 0x4dfc8
movq (%rax), %rax
movq 0x32dce(%rip), %rdi     # 0x4dfc8
addq -0x18(%rax), %rdi
movl $0xf, %esi
callq 0x1b9e0
movq 0x32db9(%rip), %rdi     # 0x4dfc8
leaq 0x7fa(%rip), %rsi       # 0x1ba10
callq 0x40d0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0x168(%rbp)
movq 0x10(%rax), %rdi
movswq -0xd0(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x1edf0
movq -0x168(%rbp), %rdi
callq 0x41b0
movq %rax, %rdi
leaq 0x233c8(%rip), %rsi     # 0x3e623
callq 0x4260
movw -0xd0(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xd0(%rbp)
jmp 0x1b1c6
movq 0x32d4a(%rip), %rdi     # 0x4dfc8
movq 0x32d33(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1b2d7
movq 0x32d2b(%rip), %rdi     # 0x4dfc8
leaq 0x22137(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x25544(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x32cea(%rip), %rdi     # 0x4dfc8
leaq 0x2333e(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0xd2(%rbp)
movswl -0xd2(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1b3a6
movq 0x32cbe(%rip), %rdi     # 0x4dfc8
leaq 0x222f7(%rip), %rsi     # 0x3d608
callq 0x4260
movq 0x32cab(%rip), %rax     # 0x4dfc8
movq (%rax), %rax
movq 0x32ca1(%rip), %rdi     # 0x4dfc8
addq -0x18(%rax), %rdi
movl $0xf, %esi
callq 0x1b9e0
movq 0x32c8c(%rip), %rdi     # 0x4dfc8
leaq 0x6cd(%rip), %rsi       # 0x1ba10
callq 0x40d0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0x170(%rbp)
movq 0x10(%rax), %rdi
movswq -0xd2(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x20b50
movq -0x170(%rbp), %rdi
movl %eax, %esi
callq 0x4370
movq %rax, %rdi
leaq 0x23299(%rip), %rsi     # 0x3e623
callq 0x4260
movw -0xd2(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xd2(%rbp)
jmp 0x1b2f3
movq 0x32c1b(%rip), %rdi     # 0x4dfc8
movq 0x32c04(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1b406
movq 0x32bfc(%rip), %rdi     # 0x4dfc8
leaq 0x22008(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x25415(%rip), %rsi     # 0x40816
callq 0x4260
movq 0x32bbb(%rip), %rdi     # 0x4dfc8
leaq 0x2320f(%rip), %rsi     # 0x3e623
callq 0x4260
movw $0x0, -0xd4(%rbp)
movswl -0xd4(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1b4d5
movq 0x32b8f(%rip), %rdi     # 0x4dfc8
leaq 0x221d8(%rip), %rsi     # 0x3d618
callq 0x4260
movq 0x32b7c(%rip), %rax     # 0x4dfc8
movq (%rax), %rax
movq 0x32b72(%rip), %rdi     # 0x4dfc8
addq -0x18(%rax), %rdi
movl $0xf, %esi
callq 0x1b9e0
movq 0x32b5d(%rip), %rdi     # 0x4dfc8
leaq 0x59e(%rip), %rsi       # 0x1ba10
callq 0x40d0
movq %rax, %rcx
movq -0xe0(%rbp), %rax
movq %rcx, -0x178(%rbp)
movq 0x10(%rax), %rdi
movswq -0xd4(%rbp), %rsi
callq 0x5030
movq (%rax), %rdi
callq 0x20b00
movq -0x178(%rbp), %rdi
movl %eax, %esi
callq 0x4370
movq %rax, %rdi
leaq 0x2316a(%rip), %rsi     # 0x3e623
callq 0x4260
movw -0xd4(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xd4(%rbp)
jmp 0x1b422
movq 0x32aec(%rip), %rdi     # 0x4dfc8
movq 0x32ad5(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
cmpl -0x14(%rbp), %eax
jle 0x1b535
movq 0x32acd(%rip), %rdi     # 0x4dfc8
leaq 0x21ed9(%rip), %rsi     # 0x3d3db
callq 0x4260
movq %rax, %rdi
movq -0x10(%rbp), %rax
movzwl (%rax), %eax
subl -0x14(%rbp), %eax
imull $0x1f, %eax, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %esi
callq 0x4430
movq %rax, %rdi
leaq 0x252e6(%rip), %rsi     # 0x40816
callq 0x4260
movw $0x0, -0xd6(%rbp)
movswl -0xd6(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x1b571
movq 0x32a77(%rip), %rdi     # 0x4dfc8
leaq 0x21f30(%rip), %rsi     # 0x3d488
callq 0x4260
movw -0xd6(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xd6(%rbp)
jmp 0x1b53e
movq 0x32a50(%rip), %rdi     # 0x4dfc8
leaq 0x226e2(%rip), %rsi     # 0x3dc61
callq 0x4260
movq %rax, %rdi
movq 0x32a2a(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq %rax, %rdi
movq 0x32a1b(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq 0x32a1f(%rip), %rdi     # 0x4dfc8
leaq 0x24ce6(%rip), %rsi     # 0x40296
callq 0x4260
movq %rax, %rdi
movq 0x329f9(%rip), %rsi     # 0x4dfb8
callq 0x4290
movq %rax, %rdi
movq 0x329ea(%rip), %rsi     # 0x4dfb8
callq 0x4290
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x4440
nopw %cs:(%rax,%rax)