// File: /workspace/github_cpp_makefile_star2_O3/MichaelXanth[P]RPG_Game/Game/Game.cpp
// Function: Game::DisplayMonstersStats(std::vector<Monster*, std::allocator<Monster*>>&)
void Game::DisplayMonstersStats(vector<Monster *>& monsters)
{
    int heroesNum = heroes.size();
    int monstersNum = monsters.size();

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    cout << "\033[" << ((monstersNum - 1) * 31) / 2 + 6 << "C";

    cout << "Monsters Statistics" << endl;

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    for (short int i = 0; i < monstersNum; i++)
        cout << "\033[1;33m+\033[0;34m==============================";

    cout << "\033[1;33m+\033[0m" << endl;

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < monstersNum; i++) {
        cout << "Name:         ";
        cout.width(16);
        cout << left << monsters[i]->GetName() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < monstersNum; i++) {
        cout << "Level:        ";
        cout.width(16);
        cout << left << monsters[i]->GetLevel() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < monstersNum; i++) {
        string str = to_string(monsters[i]->GetHP()) + "/" + to_string(monsters[i]->GetMaxHP());

        if (monsters[i]->GetHP() >= 2.0 / 3.0 * monsters[i]->GetMaxHP())
            cout << "HP:           \033[38;5;9m";
        else if (monsters[i]->GetHP() >= 1.0 / 3.0 * monsters[i]->GetMaxHP())
            cout << "HP:           \033[38;5;202m";
        else
            cout << "HP:           \033[38;5;2m";

        cout.width(16);
        cout << left << str << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < monstersNum; i++) {
        string str = to_string(monsters[i]->GetMinDamage()) + "-" + to_string(monsters[i]->GetMaxDamage());
        cout << "Damage Range: ";
        cout.width(16);
        cout << left << str << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < monstersNum; i++) {
        cout << "Defence:      ";
        cout.width(16);
        cout << left << monsters[i]->MonsterGetDefence() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    cout << "\033[34m|\033[0m";
    for (short i = 0; i < monstersNum; i++) {
        cout << "Avoidance:    ";
        cout.width(16);
        cout << left << monsters[i]->MonsterGetAvoidance() << "\033[34m|\033[0m";
    }
    cout << endl;

    if (monstersNum < heroesNum)
        cout << "\033[" << ((heroesNum - monstersNum) * 31) / 2 << "C";

    for (short int i = 0; i < monstersNum; i++)
        cout << "\033[1;33m+\033[0;34m==============================";

    cout << "\033[1;33m+\033[0m" << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rsi, 0x8(%rsp)
movq 0x10(%rdi), %rax
movq 0x8(%rax), %rbx
subq (%rax), %rbx
shrq $0x3, %rbx
movq 0x8(%rsi), %rbp
subq (%rsi), %rbp
shrq $0x3, %rbp
movq 0x223f3(%rip), %r14     # 0x2efc8
leaq 0x177ff(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
callq 0x31e0
movl %ebx, %eax
subl %ebp, %eax
movq %rbp, (%rsp)
jle 0xccdf
movl %eax, %ecx
shll $0x5, %ecx
subl %eax, %ecx
movl %ecx, %ebp
shrl $0x1f, %ebp
addl %ecx, %ebp
sarl %ebp
movq %r14, %rdi
movl %ebp, %esi
callq 0x32e0
leaq 0x1abbe(%rip), %r15     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x31e0
leaq 0x177ac(%rip), %r12     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x31e0
movq (%rsp), %rax
shll $0x5, %eax
subl (%rsp), %eax
movl %eax, %ecx
addl $-0x1f, %ecx
shrl $0x1f, %ecx
leal (%rax,%rcx), %esi
addl $-0x1f, %esi
sarl %esi
addl $0x6, %esi
movq %r14, %rdi
callq 0x32e0
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x31e0
leaq 0x177f9(%rip), %rsi     # 0x24474
movl $0x13, %edx
movq %r14, %rdi
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
movl $0x2, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x31e0
movq %r14, %rdi
movl %ebp, %esi
movq (%rsp), %rbp
callq 0x32e0
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x31e0
jmp 0xcd50
movl %ebp, %eax
shll $0x5, %eax
subl %ebp, %eax
movl %eax, %ecx
addl $-0x1f, %ecx
shrl $0x1f, %ecx
leal (%rax,%rcx), %esi
addl $-0x1f, %esi
sarl %esi
addl $0x6, %esi
movq %r14, %rdi
callq 0x32e0
leaq 0x1aace(%rip), %rsi     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
leaq 0x17758(%rip), %rsi     # 0x24474
movl $0x13, %edx
movq %r14, %rdi
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
testl %ebp, %ebp
jle 0xcd82
movw $0x1, %r13w
movq 0x22268(%rip), %r15     # 0x2efc8
leaq 0x17721(%rip), %r12     # 0x24488
movl $0x2d, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x31e0
movswl %r13w, %eax
incl %r13d
cmpl %ebp, %eax
jl 0xcd67
leaq 0x17e04(%rip), %rsi     # 0x24b8d
movl $0xc, %edx
movq %r14, %rdi
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
movq %rbp, %rax
movl %ebx, %ebp
subl %eax, %ebp
jle 0xce0d
movq 0x221fb(%rip), %r14     # 0x2efc8
leaq 0x17607(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
callq 0x31e0
movl %ebp, %eax
shll $0x5, %eax
subl %ebp, %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq %r14, %rdi
callq 0x32e0
leaq 0x1a9d6(%rip), %rsi     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x221b4(%rip), %r14     # 0x2efc8
leaq 0x18778(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
cmpl $0x0, (%rsp)
jle 0xcee2
xorl %ebp, %ebp
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
leaq 0x10(%rsp), %r12
leaq 0x1874d(%rip), %r13     # 0x25593
movl $0xe, %edx
movq %r14, %rdi
leaq 0x17661(%rip), %rsi     # 0x244b6
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x10, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %r15d, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
movswq %bp, %rax
movq 0x8(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%rax,8), %rsi
movq %r12, %rdi
callq 0x10812
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x31e0
movl $0xa, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x31e0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xced4
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31b0
incl %ebp
movswl %bp, %eax
cmpl (%rsp), %eax
jl 0xce46
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
movq %rbx, 0x70(%rsp)
movl %ebx, %ebp
subl (%rsp), %ebp
jle 0xcf5c
movq 0x220ac(%rip), %r14     # 0x2efc8
leaq 0x174b8(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
callq 0x31e0
movl %ebp, %eax
shll $0x5, %eax
subl %ebp, %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq %r14, %rdi
callq 0x32e0
leaq 0x1a887(%rip), %rsi     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x22065(%rip), %r14     # 0x2efc8
leaq 0x18629(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
movq (%rsp), %rbx
testl %ebx, %ebx
movq 0x8(%rsp), %r15
jle 0xcfff
xorl %r13d, %r13d
movl $0xffffff4f, %ebp       # imm = 0xFFFFFF4F
leaq 0x18600(%rip), %r12     # 0x25593
movl $0xe, %edx
movq %r14, %rdi
leaq 0x17523(%rip), %rsi     # 0x244c5
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x10, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %ebp, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
movswq %r13w, %rax
movq (%r15), %rcx
movq (%rcx,%rax,8), %rdi
callq 0x10840
movl %eax, %esi
movq %r14, %rdi
callq 0x30f0
movl $0xa, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x31e0
incl %r13d
movswl %r13w, %eax
cmpl %ebx, %eax
jl 0xcf93
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
movq 0x70(%rsp), %rax
movl %eax, %ebp
subl %ebx, %ebp
jle 0xd078
movq 0x21f90(%rip), %r14     # 0x2efc8
leaq 0x1739c(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
callq 0x31e0
movl %ebp, %eax
shll $0x5, %eax
subl %ebp, %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq %r14, %rdi
callq 0x32e0
leaq 0x1a76b(%rip), %rsi     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x21f49(%rip), %r14     # 0x2efc8
leaq 0x1850d(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
leaq 0x60(%rsp), %r13
cmpl $0x0, (%rsp)
jle 0xd451
xorl %ebp, %ebp
movl $0xd1b71759, %r15d      # imm = 0xD1B71759
movswq %bp, %rbp
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x10854
movl %eax, %r12d
movl $0x1, %eax
cmpl $0xa, %r12d
jb 0xd10d
movl $0x4, %eax
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0xd106
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd10b
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd10d
movl %ecx, %edx
imulq %r15, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd0d5
addl $-0x3, %eax
jmp 0xd10d
addl $-0x2, %eax
jmp 0xd10d
decl %eax
movl %eax, %esi
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
leaq 0x78(%rsp), %rbx
movq %rbx, %rdi
xorl %edx, %edx
callq 0x31f0
movq 0x78(%rsp), %rdi
movl 0x80(%rsp), %esi
movl %r12d, %edx
callq 0xeebe
movq %rbx, %rdi
leaq 0x1738b(%rip), %rsi     # 0x244d4
callq 0x3310
movq %r13, 0x50(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd171
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0xd17b
movupd (%rcx), %xmm0
movupd %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x1084a
movl %eax, %r12d
movl $0x1, %eax
cmpl $0xa, %r12d
jb 0xd1f2
movl $0x4, %eax
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0xd1eb
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd1f0
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd1f2
movl %ecx, %edx
imulq %r15, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd1ba
addl $-0x3, %eax
jmp 0xd1f2
addl $-0x2, %eax
jmp 0xd1f2
decl %eax
movl %eax, %esi
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
xorl %edx, %edx
callq 0x31f0
movq 0x30(%rsp), %rdi
movl 0x38(%rsp), %esi
movl %r12d, %edx
callq 0xeebe
movq 0x50(%rsp), %rcx
movl $0xf, %edi
cmpq %r13, %rcx
je 0xd22f
movq 0x60(%rsp), %rdi
movq 0x58(%rsp), %r8
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
leaq 0x20(%rsp), %r12
jbe 0xd265
movl $0xf, %edi
leaq 0x40(%rsp), %r9
cmpq %r9, %rsi
je 0xd260
movq 0x40(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xd271
leaq 0x50(%rsp), %rdi
callq 0x3080
jmp 0xd27f
leaq 0x30(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x31d0
movq %r12, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xd29f
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0xd2a9
movupd (%rcx), %xmm0
movupd %xmm0, (%r12)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xd2e2
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0xd2f9
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd31b
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x10854
movl %eax, %r12d
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x1084a
movl %r12d, %ecx
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
movl %eax, %eax
cvtsi2sd %rax, %xmm1
mulsd 0x16f9e(%rip), %xmm1    # 0x242f8
movl $0x17, %edx
ucomisd %xmm1, %xmm0
leaq 0x1716c(%rip), %rsi     # 0x244d6
jae 0xd3d1
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x10854
movl %eax, %r12d
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x1084a
movl %r12d, %ecx
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
movl %eax, %eax
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
mulsd 0x16f52(%rip), %xmm1    # 0x24300
xorl %eax, %eax
ucomisd %xmm1, %xmm0
setae %al
leaq 0x17130(%rip), %rsi     # 0x244ee
leaq 0x17143(%rip), %rcx     # 0x24508
cmovbq %rcx, %rsi
leaq 0x17(,%rax,2), %rdx
movq %r14, %rdi
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x10, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
movl $0xffffff4f, %edx       # imm = 0xFFFFFF4F
andl %edx, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x31e0
movl $0xa, %edx
movq %rax, %rdi
leaq 0x18171(%rip), %rsi     # 0x25593
callq 0x31e0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd443
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31b0
incl %ebp
movswl %bp, %eax
cmpl (%rsp), %eax
jl 0xd0aa
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
movq 0x70(%rsp), %rax
movl %eax, %ebp
subl (%rsp), %ebp
jle 0xd4cb
movq 0x21b3d(%rip), %r14     # 0x2efc8
leaq 0x16f49(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
callq 0x31e0
movl %ebp, %eax
shll $0x5, %eax
subl %ebp, %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq %r14, %rdi
callq 0x32e0
leaq 0x1a318(%rip), %rsi     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x21af6(%rip), %r14     # 0x2efc8
leaq 0x180ba(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
cmpl $0x0, (%rsp)
jle 0xd7f1
xorl %r15d, %r15d
leaq 0x78(%rsp), %rbx
movl $0xd1b71759, %r12d      # imm = 0xD1B71759
movswq %r15w, %r15
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r15,8), %rdi
callq 0x19012
movl %eax, %ebp
movl $0x1, %eax
cmpl $0xa, %ebp
jb 0xd55e
movl $0x4, %eax
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xd557
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd55c
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd55e
movl %ecx, %edx
imulq %r12, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd526
addl $-0x3, %eax
jmp 0xd55e
addl $-0x2, %eax
jmp 0xd55e
decl %eax
movl %eax, %esi
leaq 0x88(%rsp), %rax
movq %rax, 0x78(%rsp)
movq %rbx, %rdi
xorl %edx, %edx
callq 0x31f0
movq 0x78(%rsp), %rdi
movl 0x80(%rsp), %esi
movl %ebp, %edx
callq 0xeebe
movq %rbx, %rdi
leaq 0x19cdc(%rip), %rsi     # 0x27270
callq 0x3310
movq %r13, 0x50(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd5bc
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0xd5c6
movupd (%rcx), %xmm0
movupd %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x58(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r15,8), %rdi
callq 0x1901c
movl %eax, %ebp
movl $0x1, %eax
cmpl $0xa, %ebp
jb 0xd63a
movl $0x4, %eax
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xd633
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd638
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd63a
movl %ecx, %edx
imulq %r12, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd602
addl $-0x3, %eax
jmp 0xd63a
addl $-0x2, %eax
jmp 0xd63a
decl %eax
movl %eax, %esi
leaq 0x40(%rsp), %rax
movq %rax, 0x30(%rsp)
leaq 0x30(%rsp), %rdi
xorl %edx, %edx
callq 0x31f0
movq 0x30(%rsp), %rdi
movl 0x38(%rsp), %esi
movl %ebp, %edx
callq 0xeebe
movq 0x50(%rsp), %rcx
movl $0xf, %edi
cmpq %r13, %rcx
je 0xd676
movq 0x60(%rsp), %rdi
movq 0x58(%rsp), %r8
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rdi, %rax
movq (%rsp), %rbp
jbe 0xd6ab
movl $0xf, %edi
leaq 0x40(%rsp), %r9
cmpq %r9, %rsi
je 0xd6a6
movq 0x40(%rsp), %rdi
cmpq %rdi, %rax
jbe 0xd6b7
leaq 0x50(%rsp), %rdi
callq 0x3080
jmp 0xd6c5
leaq 0x30(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x31d0
leaq 0x20(%rsp), %rsi
movq %rsi, 0x10(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0xd6ea
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0xd6f2
movupd (%rcx), %xmm0
movupd %xmm0, (%rsi)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x18(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xd72b
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0xd742
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd764
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x31b0
movl $0xe, %edx
movq %r14, %rdi
leaq 0x18e0a(%rip), %rsi     # 0x2657d
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x10, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
movl $0xffffff4f, %edx       # imm = 0xFFFFFF4F
andl %edx, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x31e0
movl $0xa, %edx
movq %rax, %rdi
leaq 0x17dd2(%rip), %rsi     # 0x25593
callq 0x31e0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd7e2
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31b0
incl %r15d
movswl %r15w, %eax
cmpl %ebp, %eax
jl 0xd4fe
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
movq 0x70(%rsp), %rax
movl %eax, %ebp
subl (%rsp), %ebp
jle 0xd86b
movq 0x2179d(%rip), %r14     # 0x2efc8
leaq 0x16ba9(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
callq 0x31e0
movl %ebp, %eax
shll $0x5, %eax
subl %ebp, %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq %r14, %rdi
callq 0x32e0
leaq 0x19f78(%rip), %rsi     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x21756(%rip), %r14     # 0x2efc8
leaq 0x17d1a(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
movq (%rsp), %rbx
testl %ebx, %ebx
movq 0x8(%rsp), %r15
jle 0xd90e
xorl %r13d, %r13d
movl $0xffffff4f, %ebp       # imm = 0xFFFFFF4F
leaq 0x17cf1(%rip), %r12     # 0x25593
movl $0xe, %edx
movq %r14, %rdi
leaq 0x16c6f(%rip), %rsi     # 0x24520
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x10, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %ebp, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
movswq %r13w, %rax
movq (%r15), %rcx
movq (%rcx,%rax,8), %rdi
callq 0x18e36
movl %eax, %esi
movq %r14, %rdi
callq 0x30f0
movl $0xa, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x31e0
incl %r13d
movswl %r13w, %eax
cmpl %ebx, %eax
jl 0xd8a2
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
movq 0x70(%rsp), %rax
movl %eax, %ebp
subl %ebx, %ebp
jle 0xd987
movq 0x21681(%rip), %r14     # 0x2efc8
leaq 0x16a8d(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
callq 0x31e0
movl %ebp, %eax
shll $0x5, %eax
subl %ebp, %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq %r14, %rdi
callq 0x32e0
leaq 0x19e5c(%rip), %rsi     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x2163a(%rip), %r14     # 0x2efc8
leaq 0x17bfe(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
movq (%rsp), %rbx
testl %ebx, %ebx
movq 0x8(%rsp), %r15
jle 0xda2c
xorl %r13d, %r13d
movl $0xffffff4f, %ebp       # imm = 0xFFFFFF4F
leaq 0x17bd5(%rip), %r12     # 0x25593
movl $0xe, %edx
movq %r14, %rdi
leaq 0x16b62(%rip), %rsi     # 0x2452f
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rcx
movq $0x10, 0x10(%r14,%rcx)
movq -0x18(%rax), %rax
movl 0x18(%r14,%rax), %ecx
andl %ebp, %ecx
orl $0x20, %ecx
movl %ecx, 0x18(%r14,%rax)
movswq %r13w, %rax
movq (%r15), %rcx
movq (%rcx,%rax,8), %rdi
callq 0x18e40
cvtss2sd %xmm0, %xmm0
movq %r14, %rdi
callq 0x32a0
movl $0xa, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x31e0
incl %r13d
movswl %r13w, %eax
cmpl %ebx, %eax
jl 0xd9be
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
movq 0x70(%rsp), %r15
subl %ebx, %r15d
movq %rbx, %r13
jle 0xdaa9
movq 0x21561(%rip), %rbx     # 0x2efc8
leaq 0x1696d(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %rbx, %rdi
callq 0x31e0
movl %r15d, %eax
shll $0x5, %eax
subl %r15d, %eax
movl %eax, %esi
shrl $0x1f, %esi
addl %eax, %esi
sarl %esi
movq %rbx, %rdi
callq 0x32e0
leaq 0x19d3a(%rip), %rsi     # 0x277d6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
testl %r13d, %r13d
jle 0xdadd
movw $0x1, %r12w
movq 0x2150e(%rip), %rbx     # 0x2efc8
leaq 0x169c7(%rip), %r15     # 0x24488
movl $0x2d, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x31e0
movswl %r12w, %eax
incl %r12d
cmpl %r13d, %eax
jl 0xdac1
leaq 0x170a9(%rip), %rsi     # 0x24b8d
movl $0xc, %edx
movq %r14, %rdi
callq 0x31e0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x3190
movsbl %al, %esi
movq %r14, %rdi
callq 0x3040
movq %rax, %rdi
callq 0x3100
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xdb2e
jmp 0xdb33
movq %rax, %rbx
jmp 0xdb70
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xdb59
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31b0
jmp 0xdb59
jmp 0xdb56
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0xdb70
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xdbaf
movq 0x88(%rsp), %rsi
jmp 0xdba7
jmp 0xdb90
jmp 0xdb90
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xdbaf
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31b0
movq %rbx, %rdi
callq 0x32f0
nop