// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rsi, %r15
movq %rdi, %r14
movq 0x10(%rdi), %rax
movq 0x8(%rax), %rbp
subq (%rax), %rbp
shrq $0x3, %rbp
movq 0x1bfef(%rip), %rdi     # 0x26fc8
callq 0x30d0
movzwl (%r15), %eax
pushq $0x2
popq %r12
cmpl %ebp, %eax
jle 0xb023
movq 0x1bfd7(%rip), %rdi     # 0x26fc8
leaq 0x103e3(%rip), %rsi     # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
idivl %r12d
movl %eax, %esi
callq 0x3320
leaq 0x137bb(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
movq 0x1bf9e(%rip), %rbx     # 0x26fc8
leaq 0x103aa(%rip), %rsi     # 0x1b3db
movq %rbx, %rdi
callq 0x31d0
movq %rax, %rdi
imull $0x1f, %ebp, %eax
addl $-0x1f, %eax
cltd
idivl %r12d
leal 0x7(%rax), %esi
callq 0x3320
leaq 0x13781(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x104da(%rip), %rsi     # 0x1b53e
movq %rbx, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x30d0
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb0b5
movq 0x1bf45(%rip), %rdi     # 0x26fc8
leaq 0x10351(%rip), %rsi     # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
idivl %r12d
movl %eax, %esi
callq 0x3320
leaq 0x13729(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
movq %r15, 0x8(%rsp)
xorl %r12d, %r12d
movq 0x1bf04(%rip), %rbx     # 0x26fc8
leaq 0x103bd(%rip), %r15     # 0x1b488
movswl %r12w, %eax
cmpl %ebp, %eax
jge 0xb0e3
movq %rbx, %rdi
movq %r15, %rsi
callq 0x31d0
incl %r12d
jmp 0xb0cb
movq %r14, (%rsp)
movq 0x1beda(%rip), %rbx     # 0x26fc8
leaq 0x10a98(%rip), %rsi     # 0x1bb8d
movq %rbx, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x30d0
movq 0x8(%rsp), %r15
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb14d
movq 0x1beaf(%rip), %rdi     # 0x26fc8
leaq 0x102bb(%rip), %rsi     # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x13691(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x1143f(%rip), %r14     # 0x1c593
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
xorl %r15d, %r15d
movl $0xffffff4f, %r12d      # imm = 0xFFFFFF4F
leaq 0x18(%rsp), %r13
movswl %r15w, %eax
cmpl %ebp, %eax
jge 0xb1e4
movq %rbx, %rdi
leaq 0x103d1(%rip), %rsi     # 0x1b550
callq 0x31d0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r12d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movswq %r15w, %rcx
movq (%rax), %rax
movq (%rax,%rcx,8), %rsi
movq %r13, %rdi
callq 0xced6
movq %rbx, %rdi
movq %r13, %rsi
callq 0x3190
movq %rax, %rdi
movq %r14, %rsi
callq 0x31d0
movq %r13, %rdi
callq 0x30c0
incl %r15d
jmp 0xb16d
movq 0x1bddd(%rip), %rbx     # 0x26fc8
movq %rbx, %rdi
callq 0x30d0
movq 0x8(%rsp), %r15
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb23b
movq 0x1bdc1(%rip), %rdi     # 0x26fc8
leaq 0x101cd(%rip), %rsi     # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x135a3(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x11351(%rip), %r14     # 0x1c593
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
xorl %r13d, %r13d
leaq 0x10314(%rip), %r12     # 0x1b56b
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
movswl %r13w, %eax
cmpl %ebp, %eax
jge 0xb2c4
movq %rbx, %rdi
movq %r12, %rsi
callq 0x31d0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r15d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movswq %r13w, %rcx
movq (%rax), %rax
movq (%rax,%rcx,8), %rdi
callq 0xcef2
movl %eax, %esi
movq %rbx, %rdi
callq 0x3120
movq %rax, %rdi
movq %r14, %rsi
callq 0x31d0
incl %r13d
jmp 0xb25d
movq 0x1bcfd(%rip), %r14     # 0x26fc8
movq %r14, %rdi
callq 0x30d0
movq 0x8(%rsp), %rbx
movzwl (%rbx), %eax
cmpl %ebp, %eax
jle 0xb319
movq 0x1bce2(%rip), %rdi     # 0x26fc8
leaq 0x100ee(%rip), %rsi     # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%rbx), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x134c5(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x11273(%rip), %rsi     # 0x1c593
movq %r14, %rdi
callq 0x31d0
xorl %ecx, %ecx
leaq 0x78(%rsp), %r13
leaq 0x58(%rsp), %r12
movswl %cx, %eax
cmpl %ebp, %eax
jge 0xb4dc
movq (%rsp), %r14
movq 0x10(%r14), %rax
movl %ecx, 0x14(%rsp)
movswq %cx, %rbx
movq (%rax), %rax
movq (%rax,%rbx,8), %rdi
callq 0xcf06
movq %r13, %rdi
movl %eax, %esi
callq 0xbcf1
leaq 0x38(%rsp), %rdi
movq %r13, %rsi
leaq 0x10160(%rip), %rdx     # 0x1b4d4
callq 0xbcd2
movq 0x10(%r14), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %rdi
callq 0xcefc
movq %r12, %r15
movq %r12, %rdi
movl %eax, %esi
callq 0xbcf1
movq %rbp, %r14
leaq 0x18(%rsp), %rdi
leaq 0x38(%rsp), %rbp
movq %rbp, %rsi
movq %r15, %rdx
callq 0xbc6b
movq %r15, %rdi
callq 0x30c0
movq %rbp, %rdi
callq 0x30c0
movq %r13, %rbp
movq %r13, %rdi
callq 0x30c0
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %rdi
callq 0xcf06
movq 0x1bbe4(%rip), %r15     # 0x26fc8
movl %eax, %r13d
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %rdi
callq 0xcefc
movl %r13d, %ecx
cvtsi2sd %rcx, %xmm0
movl %eax, %eax
cvtsi2sd %rax, %xmm1
mulsd 0xfee6(%rip), %xmm1     # 0x1b2f8
ucomisd %xmm1, %xmm0
leaq 0x1015e(%rip), %rsi     # 0x1b57b
jae 0xb475
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %rdi
callq 0xcf06
movl %eax, %r13d
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %rdi
callq 0xcefc
movl %r13d, %ecx
cvtsi2sd %rcx, %xmm0
movl %eax, %eax
cvtsi2sd %rax, %xmm1
mulsd 0xfe9f(%rip), %xmm1     # 0x1b300
ucomisd %xmm1, %xmm0
leaq 0x10143(%rip), %rsi     # 0x1b5af
jb 0xb475
leaq 0x1011f(%rip), %rsi     # 0x1b594
movq %r15, %rdi
callq 0x31d0
movq (%r15), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%r15,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r15,%rax), %ecx
movl $0xffffff4f, %edx       # imm = 0xFFFFFF4F
andl %edx, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r15,%rax)
movq %r15, %rdi
leaq 0x18(%rsp), %rsi
callq 0x3190
movq %rax, %rdi
leaq 0x110d7(%rip), %rsi     # 0x1c593
callq 0x31d0
leaq 0x18(%rsp), %rdi
callq 0x30c0
movl 0x14(%rsp), %ecx
incl %ecx
movq %rbp, %r13
movq %r14, %rbp
jmp 0xb334
movq 0x1bae5(%rip), %rbx     # 0x26fc8
movq %rbx, %rdi
callq 0x30d0
movq 0x8(%rsp), %r15
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb533
movq 0x1bac9(%rip), %rdi     # 0x26fc8
leaq 0xfed5(%rip), %rsi      # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x132ab(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x11059(%rip), %r14     # 0x1c593
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
xorl %r13d, %r13d
leaq 0x10079(%rip), %r12     # 0x1b5c8
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
movswl %r13w, %eax
cmpl %ebp, %eax
jge 0xb5bc
movq %rbx, %rdi
movq %r12, %rsi
callq 0x31d0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r15d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movswq %r13w, %rcx
movq (%rax), %rax
movq (%rax,%rcx,8), %rdi
callq 0xd0a0
movl %eax, %esi
movq %rbx, %rdi
callq 0x3120
movq %rax, %rdi
movq %r14, %rsi
callq 0x31d0
incl %r13d
jmp 0xb555
movq 0x1ba05(%rip), %rbx     # 0x26fc8
movq %rbx, %rdi
callq 0x30d0
movq 0x8(%rsp), %r15
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb613
movq 0x1b9e9(%rip), %rdi     # 0x26fc8
leaq 0xfdf5(%rip), %rsi      # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x131cb(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x10f79(%rip), %r14     # 0x1c593
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
xorl %r13d, %r13d
leaq 0xffa9(%rip), %r12      # 0x1b5d8
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
movswl %r13w, %eax
cmpl %ebp, %eax
jge 0xb69c
movq %rbx, %rdi
movq %r12, %rsi
callq 0x31d0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r15d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movswq %r13w, %rcx
movq (%rax), %rax
movq (%rax,%rcx,8), %rdi
callq 0xd066
movl %eax, %esi
movq %rbx, %rdi
callq 0x3120
movq %rax, %rdi
movq %r14, %rsi
callq 0x31d0
incl %r13d
jmp 0xb635
movq 0x1b925(%rip), %rbx     # 0x26fc8
movq %rbx, %rdi
callq 0x30d0
movq 0x8(%rsp), %r15
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb6f3
movq 0x1b909(%rip), %rdi     # 0x26fc8
leaq 0xfd15(%rip), %rsi      # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x130eb(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x10e99(%rip), %r14     # 0x1c593
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
xorl %r13d, %r13d
leaq 0xfed9(%rip), %r12      # 0x1b5e8
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
movswl %r13w, %eax
cmpl %ebp, %eax
jge 0xb77c
movq %rbx, %rdi
movq %r12, %rsi
callq 0x31d0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r15d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movswq %r13w, %rcx
movq (%rax), %rax
movq (%rax,%rcx,8), %rdi
callq 0xd06e
movl %eax, %esi
movq %rbx, %rdi
callq 0x3120
movq %rax, %rdi
movq %r14, %rsi
callq 0x31d0
incl %r13d
jmp 0xb715
movq 0x1b845(%rip), %rbx     # 0x26fc8
movq %rbx, %rdi
callq 0x30d0
movq 0x8(%rsp), %r15
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb7d3
movq 0x1b829(%rip), %rdi     # 0x26fc8
leaq 0xfc35(%rip), %rsi      # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x1300b(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x10db9(%rip), %r14     # 0x1c593
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
xorl %r13d, %r13d
leaq 0xfe09(%rip), %r12      # 0x1b5f8
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
movswl %r13w, %eax
cmpl %ebp, %eax
jge 0xb85a
movq %rbx, %rdi
movq %r12, %rsi
callq 0x31d0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r15d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movswq %r13w, %rcx
movq (%rax), %rax
movq (%rax,%rcx,8), %rdi
callq 0xd076
movq %rbx, %rdi
callq 0x3140
movq %rax, %rdi
movq %r14, %rsi
callq 0x31d0
incl %r13d
jmp 0xb7f5
movq 0x1b767(%rip), %rbx     # 0x26fc8
movq %rbx, %rdi
callq 0x30d0
movq 0x8(%rsp), %r15
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb8b1
movq 0x1b74b(%rip), %rdi     # 0x26fc8
leaq 0xfb57(%rip), %rsi      # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x12f2d(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x10cdb(%rip), %r14     # 0x1c593
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
xorl %r13d, %r13d
leaq 0xfd3b(%rip), %r12      # 0x1b608
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
movswl %r13w, %eax
cmpl %ebp, %eax
jge 0xb93a
movq %rbx, %rdi
movq %r12, %rsi
callq 0x31d0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r15d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movswq %r13w, %rcx
movq (%rax), %rax
movq (%rax,%rcx,8), %rdi
callq 0xdb56
movl %eax, %esi
movq %rbx, %rdi
callq 0x3120
movq %rax, %rdi
movq %r14, %rsi
callq 0x31d0
incl %r13d
jmp 0xb8d3
movq 0x1b687(%rip), %rbx     # 0x26fc8
movq %rbx, %rdi
callq 0x30d0
movq 0x8(%rsp), %r15
movzwl (%r15), %eax
cmpl %ebp, %eax
jle 0xb991
movq 0x1b66b(%rip), %rdi     # 0x26fc8
leaq 0xfa77(%rip), %rsi      # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%r15), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x12e4d(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
leaq 0x10bfb(%rip), %r14     # 0x1c593
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
xorl %r13d, %r13d
leaq 0xfc6b(%rip), %r12      # 0x1b618
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
movswl %r13w, %eax
cmpl %ebp, %eax
jge 0xba1a
movq %rbx, %rdi
movq %r12, %rsi
callq 0x31d0
movq (%rbx), %rax
movq -0x18(%rax), %rcx
movq $0xf, 0x10(%rbx,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%rbx,%rax), %ecx
andl %r15d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%rbx,%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movswq %r13w, %rcx
movq (%rax), %rax
movq (%rax,%rcx,8), %rdi
callq 0xdb3a
movl %eax, %esi
movq %rbx, %rdi
callq 0x3120
movq %rax, %rdi
movq %r14, %rsi
callq 0x31d0
incl %r13d
jmp 0xb9b3
movq 0x1b5a7(%rip), %rdi     # 0x26fc8
callq 0x30d0
movq 0x8(%rsp), %rbx
movzwl (%rbx), %eax
cmpl %ebp, %eax
jle 0xba6c
movq 0x1b58f(%rip), %rdi     # 0x26fc8
leaq 0xf99b(%rip), %rsi      # 0x1b3db
callq 0x31d0
movq %rax, %rdi
movzwl (%rbx), %eax
subl %ebp, %eax
imull $0x1f, %eax, %eax
cltd
pushq $0x2
popq %rcx
idivl %ecx
movl %eax, %esi
callq 0x3320
leaq 0x12d72(%rip), %rsi     # 0x1e7d6
movq %rax, %rdi
callq 0x31d0
xorl %r15d, %r15d
movq 0x1b552(%rip), %rbx     # 0x26fc8
leaq 0xfa0b(%rip), %r14      # 0x1b488
movswl %r15w, %eax
cmpl %ebp, %eax
jge 0xba95
movq %rbx, %rdi
movq %r14, %rsi
callq 0x31d0
incl %r15d
jmp 0xba7d
movq 0x1b52c(%rip), %rbx     # 0x26fc8
leaq 0x100ea(%rip), %rsi     # 0x1bb8d
movq %rbx, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x30d0
movq %rax, %rdi
callq 0x30d0
leaq 0x12794(%rip), %rsi     # 0x1e256
movq %rbx, %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x30d0
movq %rax, %rdi
callq 0x30d0
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0xbb0d
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x30c0
jmp 0xbb03
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x30c0
leaq 0x78(%rsp), %rdi
jmp 0xbb1e
jmp 0xbb16
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x30c0
movq %rbx, %rdi
callq 0x3330
nop