// File: /workspace/github_cpp_makefile_star2_O1/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 0x22363(%rip), %r14     # 0x2efc8
leaq 0x1776f(%rip), %rsi     # 0x243db
movl $0x2, %edx
movq %r14, %rdi
callq 0x31e0
movl %ebx, %eax
subl %ebp, %eax
movq %rbp, (%rsp)
jle 0xcd6f
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 0x1aafe(%rip), %r15     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x31e0
leaq 0x1771c(%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 0x17769(%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 0xcde0
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 0x1aa0e(%rip), %rsi     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
leaq 0x176c8(%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 0xce12
movw $0x1, %r13w
movq 0x221d8(%rip), %r15     # 0x2efc8
leaq 0x17691(%rip), %r12     # 0x24488
movl $0x2d, %edx
movq %r15, %rdi
movq %r12, %rsi
callq 0x31e0
movswl %r13w, %eax
incl %r13d
cmpl %ebp, %eax
jl 0xcdf7
leaq 0x17d74(%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 0xce9d
movq 0x2216b(%rip), %r14     # 0x2efc8
leaq 0x17577(%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 0x1a916(%rip), %rsi     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x22124(%rip), %r14     # 0x2efc8
leaq 0x186e8(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
cmpl $0x0, (%rsp)
jle 0xcf72
xorl %ebp, %ebp
movl $0xffffff4f, %r15d      # imm = 0xFFFFFF4F
leaq 0x10(%rsp), %r12
leaq 0x186bd(%rip), %r13     # 0x25593
movl $0xe, %edx
movq %r14, %rdi
leaq 0x175d1(%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 0x108c2
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 0xcf64
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31b0
incl %ebp
movswl %bp, %eax
cmpl (%rsp), %eax
jl 0xced6
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 0xcfec
movq 0x2201c(%rip), %r14     # 0x2efc8
leaq 0x17428(%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 0x1a7c7(%rip), %rsi     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x21fd5(%rip), %r14     # 0x2efc8
leaq 0x18599(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
movq (%rsp), %rbx
testl %ebx, %ebx
movq 0x8(%rsp), %r15
jle 0xd08f
xorl %r13d, %r13d
movl $0xffffff4f, %ebp       # imm = 0xFFFFFF4F
leaq 0x18570(%rip), %r12     # 0x25593
movl $0xe, %edx
movq %r14, %rdi
leaq 0x17493(%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 0x108f0
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 0xd023
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 0xd108
movq 0x21f00(%rip), %r14     # 0x2efc8
leaq 0x1730c(%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 0x1a6ab(%rip), %rsi     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x21eb9(%rip), %r14     # 0x2efc8
leaq 0x1847d(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
leaq 0x60(%rsp), %r13
cmpl $0x0, (%rsp)
jle 0xd4e3
xorl %ebp, %ebp
movl $0xd1b71759, %r15d      # imm = 0xD1B71759
movswq %bp, %rbp
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x10904
movl %eax, %r12d
movl $0x1, %eax
cmpl $0xa, %r12d
jb 0xd19d
movl $0x4, %eax
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0xd196
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd19b
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd19d
movl %ecx, %edx
imulq %r15, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd165
addl $-0x3, %eax
jmp 0xd19d
addl $-0x2, %eax
jmp 0xd19d
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 0xef57
movq %rbx, %rdi
leaq 0x172fb(%rip), %rsi     # 0x244d4
callq 0x3310
movq %r13, 0x50(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd201
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0xd20b
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 0x108fa
movl %eax, %r12d
movl $0x1, %eax
cmpl $0xa, %r12d
jb 0xd282
movl $0x4, %eax
movl %r12d, %ecx
cmpl $0x63, %ecx
jbe 0xd27b
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd280
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd282
movl %ecx, %edx
imulq %r15, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd24a
addl $-0x3, %eax
jmp 0xd282
addl $-0x2, %eax
jmp 0xd282
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 0xef57
movq 0x50(%rsp), %rcx
movl $0xf, %esi
cmpq %r13, %rcx
je 0xd2bf
movq 0x60(%rsp), %rsi
movq 0x58(%rsp), %r8
movq 0x38(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
leaq 0x20(%rsp), %r12
jbe 0xd2f2
movl $0xf, %esi
leaq 0x40(%rsp), %rdi
cmpq %rdi, 0x30(%rsp)
je 0xd2ed
movq 0x40(%rsp), %rsi
cmpq %rsi, %rax
jbe 0xd303
movq 0x30(%rsp), %rsi
leaq 0x50(%rsp), %rdi
callq 0x3080
jmp 0xd311
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 0xd331
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0xd33b
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 0xd374
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0xd38b
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd3ad
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x10904
movl %eax, %r12d
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x108fa
movl %r12d, %ecx
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
movl %eax, %eax
cvtsi2sd %rax, %xmm1
mulsd 0x16f0c(%rip), %xmm1    # 0x242f8
movl $0x17, %edx
ucomisd %xmm1, %xmm0
leaq 0x170da(%rip), %rsi     # 0x244d6
jae 0xd463
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x10904
movl %eax, %r12d
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
callq 0x108fa
movl %r12d, %ecx
xorps %xmm0, %xmm0
cvtsi2sd %rcx, %xmm0
movl %eax, %eax
xorps %xmm1, %xmm1
cvtsi2sd %rax, %xmm1
mulsd 0x16ec0(%rip), %xmm1    # 0x24300
xorl %eax, %eax
ucomisd %xmm1, %xmm0
setae %al
leaq 0x1709e(%rip), %rsi     # 0x244ee
leaq 0x170b1(%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 0x180df(%rip), %rsi     # 0x25593
callq 0x31e0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd4d5
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31b0
incl %ebp
movswl %bp, %eax
cmpl (%rsp), %eax
jl 0xd13a
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 0xd55d
movq 0x21aab(%rip), %r14     # 0x2efc8
leaq 0x16eb7(%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 0x1a256(%rip), %rsi     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x21a64(%rip), %r14     # 0x2efc8
leaq 0x18028(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
cmpl $0x0, (%rsp)
jle 0xd885
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 0x18fe2
movl %eax, %ebp
movl $0x1, %eax
cmpl $0xa, %ebp
jb 0xd5f0
movl $0x4, %eax
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xd5e9
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd5ee
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd5f0
movl %ecx, %edx
imulq %r12, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd5b8
addl $-0x3, %eax
jmp 0xd5f0
addl $-0x2, %eax
jmp 0xd5f0
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 0xef57
movq %rbx, %rdi
leaq 0x19c1a(%rip), %rsi     # 0x27240
callq 0x3310
movq %r13, 0x50(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xd64e
movq %rdx, 0x50(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x60(%rsp)
jmp 0xd658
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 0x18fec
movl %eax, %ebp
movl $0x1, %eax
cmpl $0xa, %ebp
jb 0xd6cc
movl $0x4, %eax
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xd6c5
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xd6ca
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xd6cc
movl %ecx, %edx
imulq %r12, %rdx
shrq $0x2d, %rdx
addl $0x4, %eax
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xd694
addl $-0x3, %eax
jmp 0xd6cc
addl $-0x2, %eax
jmp 0xd6cc
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 0xef57
movq 0x50(%rsp), %rcx
movl $0xf, %esi
cmpq %r13, %rcx
je 0xd708
movq 0x60(%rsp), %rsi
movq 0x58(%rsp), %r8
movq 0x38(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
movq (%rsp), %rbp
jbe 0xd73a
movl $0xf, %esi
leaq 0x40(%rsp), %rdi
cmpq %rdi, 0x30(%rsp)
je 0xd735
movq 0x40(%rsp), %rsi
cmpq %rsi, %rax
jbe 0xd74b
movq 0x30(%rsp), %rsi
leaq 0x50(%rsp), %rdi
callq 0x3080
jmp 0xd759
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 0xd77e
movq %rdx, 0x10(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x20(%rsp)
jmp 0xd786
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 0xd7bf
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0xd7d6
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xd7f8
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x31b0
movl $0xe, %edx
movq %r14, %rdi
leaq 0x18d76(%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 0x17d3e(%rip), %rsi     # 0x25593
callq 0x31e0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xd876
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31b0
incl %r15d
movswl %r15w, %eax
cmpl %ebp, %eax
jl 0xd590
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 0xd8ff
movq 0x21709(%rip), %r14     # 0x2efc8
leaq 0x16b15(%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 0x19eb4(%rip), %rsi     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x216c2(%rip), %r14     # 0x2efc8
leaq 0x17c86(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
movq (%rsp), %rbx
testl %ebx, %ebx
movq 0x8(%rsp), %r15
jle 0xd9a2
xorl %r13d, %r13d
movl $0xffffff4f, %ebp       # imm = 0xFFFFFF4F
leaq 0x17c5d(%rip), %r12     # 0x25593
movl $0xe, %edx
movq %r14, %rdi
leaq 0x16bdb(%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 0x18e06
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 0xd936
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 0xda1b
movq 0x215ed(%rip), %r14     # 0x2efc8
leaq 0x169f9(%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 0x19d98(%rip), %rsi     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
movq 0x215a6(%rip), %r14     # 0x2efc8
leaq 0x17b6a(%rip), %rsi     # 0x25593
movl $0xa, %edx
movq %r14, %rdi
callq 0x31e0
movq (%rsp), %rbx
testl %ebx, %ebx
movq 0x8(%rsp), %r15
jle 0xdac0
xorl %r13d, %r13d
movl $0xffffff4f, %ebp       # imm = 0xFFFFFF4F
leaq 0x17b41(%rip), %r12     # 0x25593
movl $0xe, %edx
movq %r14, %rdi
leaq 0x16ace(%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 0x18e10
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 0xda52
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 0xdb3d
movq 0x214cd(%rip), %rbx     # 0x2efc8
leaq 0x168d9(%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 0x19c76(%rip), %rsi     # 0x277a6
movl $0x1, %edx
movq %rax, %rdi
callq 0x31e0
testl %r13d, %r13d
jle 0xdb71
movw $0x1, %r12w
movq 0x2147a(%rip), %rbx     # 0x2efc8
leaq 0x16933(%rip), %r15     # 0x24488
movl $0x2d, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x31e0
movswl %r12w, %eax
incl %r12d
cmpl %r13d, %eax
jl 0xdb55
leaq 0x17015(%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 0xdbc2
jmp 0xdbc7
movq %rax, %rbx
jmp 0xdc04
movq %rax, %rbx
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0xdbed
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31b0
jmp 0xdbed
jmp 0xdbea
movq %rax, %rbx
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0xdc04
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31b0
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0xdc43
movq 0x88(%rsp), %rsi
jmp 0xdc3b
jmp 0xdc24
jmp 0xdc24
movq %rax, %rbx
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0xdc43
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x31b0
movq %rbx, %rdi
callq 0x32f0
nop