// File: kaiming[P]Chamber-Crawler-3k/Board/board.cc
// Function: Board::moveEnemies[abi:cxx11]()
std::string Board::moveEnemies() {
    std::string message = "";
    
    // If enemies frozen, do nothing
    if (enemiesFrozen) {
        return "Enemies frozen. ";
    }

    // Iterate through enemies and dragons to execute their turn
    for (auto it = enemies[floorNum-1].begin(); it != enemies[floorNum-1].end(); ++it) {

        // Check if merchant
        if (std::dynamic_pointer_cast<Merchant>((*it)->getOccupant())) {
            
            // Check if merchants are hostile
            if (!merchantAgro) {
                // Not hostile, just move
                std::shared_ptr<WalkableTile> destination = nullptr;
                std::vector<std::string> directions;
                directions.push_back("no");
                directions.push_back("ea");
                directions.push_back("so");
                directions.push_back("we");
                directions.push_back("ne");
                directions.push_back("nw");
                directions.push_back("se");
                directions.push_back("sw");
                int i = 0;

                do {
                    // Exit case in event that no suitable location found
                    if (i > 80) {
                        destination = nullptr;
                        break;
                    } else {
                        i++;
                    }
                    
                    int rng = std::rand() % directions.size();

                    destination = validDest(*it, directions[rng]);

                } while (!destination || !isUnoccupied(destination)); 


                // Swap Merchant pointers
                if (destination != nullptr) {
                    (*it) = (*it)->move(destination);
                }

                // End Merchant turn
                continue;
            } // If agro, then check for attack
        }// Not a merchant

        // Check distance from player
        std::pair<int, int> p_coord = player->getCoord();
        std::pair<int, int> e_coord = (*it)->getCoord();

        double distance = std::floor(std::sqrt(std::pow((p_coord.first - e_coord.first), 2) + std::pow((p_coord.second - e_coord.second), 2)));

        // DLC EXTENSION HERE: add else if (distance < radius) -> move towards player

        if (distance == 1) {
            double ogHP = player->getOccupant()->getHP();

            // 1 tile away, attack player
            bool killed = std::dynamic_pointer_cast<Player>(player->getOccupant())->getAttacked(*(std::dynamic_pointer_cast<Enemy>((*it)->getOccupant())));
            std::stringstream dealt;
            dealt << std::fixed << std::setprecision(2) << ogHP - playerPtr->getHP();
            
            message += player->getOccupant()->getRace() + " attacked by " + std::dynamic_pointer_cast<Enemy>((*it)->getOccupant())->getRace() + " for " + dealt.str() + "HP. ";  
            
            if (killed) {
                // Player is dead, game is over
                return message += player->getOccupant()->getRace() + " was killed. Game Over!";
            }
        } else if (enemyTracking && distance <= radius) {
            // Player is within targeting distance

            // Determine direction to travel
            double x_direction = p_coord.first - e_coord.first;
            double y_direction = p_coord.second - e_coord.second;
            
            // Make the move
            std::shared_ptr<WalkableTile> destination = nullptr;
            std::vector<std::string> directions;

            if (x_direction > 0) {
                if (y_direction > 0) {
                    // pos x, pos y = se/ea/so
                    directions.push_back("se");
                    directions.push_back("ea");
                    directions.push_back("so");

                } else if (y_direction == 0) {
                    // pos x, zero y = ea/ne/se
                    directions.push_back("ea");
                    directions.push_back("ne");
                    directions.push_back("se");
                } else if (y_direction < 0) {
                    // pos x, neg y = ne/ea/ne
                    directions.push_back("ne");
                    directions.push_back("ea");
                    directions.push_back("ne");
                }

            } else if (x_direction == 0) {
                if (y_direction > 0) {
                    // zero x, pos y = so/se/sw
                    directions.push_back("so");
                    directions.push_back("se");
                    directions.push_back("sw");
                } else if (y_direction == 0) {
                    // zero x, zero y == enemy = player -> do nothing
                    directions.push_back("no");
                    directions.push_back("ea");
                    directions.push_back("so");
                    directions.push_back("we");
                    directions.push_back("ne");
                    directions.push_back("nw");
                    directions.push_back("se");
                    directions.push_back("sw");
                } else if (y_direction < 0) {
                    // zero x, neg y = no/ne/nw
                    directions.push_back("no");
                    directions.push_back("ne");
                    directions.push_back("nw");
                }
            } else if (x_direction < 0) {
                if (y_direction > 0) {
                    // neg x, pos y = sw/we/so
                    directions.push_back("sw");
                    directions.push_back("we");
                    directions.push_back("so");
                } else if (y_direction == 0) {
                    // neg x, zero y = we/nw/sw
                    directions.push_back("we");
                    directions.push_back("nw");
                    directions.push_back("sw");
                } else if (y_direction < 0) {
                    // neg x, neg y = nw/we/no
                    directions.push_back("nw");
                    directions.push_back("we");
                    directions.push_back("no");
                }
            }

            int i = 0;

            do {
                // Exit case in event that no suitable location found
                if (i > 80) {
                    destination = nullptr;
                    break;
                } else {
                    i++;
                }

                int rng = std::rand() % directions.size();
                destination = validDest(*it, directions[rng]);
            } while (!destination || !isUnoccupied(destination) || destination->getRoom() > -1); 
            
            // Swap Enemy pointers
            if (destination != nullptr) {
                (*it) = (*it)->move(destination);
            }

        } else {
            // Too far away to attack, do a random move
            std::shared_ptr<WalkableTile> destination = nullptr;
            std::vector<std::string> directions;
            directions.push_back("no");
            directions.push_back("ea");
            directions.push_back("so");
            directions.push_back("we");
            directions.push_back("ne");
            directions.push_back("nw");
            directions.push_back("se");
            directions.push_back("sw");
            int i = 0;

            do {
                // Exit case in event that no suitable location found
                if (i > 80) {
                    break;
                } else {
                    i++;
                }
                
                int rng = std::rand() % directions.size();

                destination = validDest(*it, directions[rng]);

            } while (!destination || !isUnoccupied(destination)); 


            // Swap Enemy pointers
            if (destination != nullptr) {
                (*it) = (*it)->move(destination);
            }

        }

        // Print to Text Display here

    } // end of Enemies loop

    // Iterate through dragons to see if they attack the player
    for (auto it = dragonHoards[floorNum-1].begin(); it != dragonHoards[floorNum-1].end(); ++it) {

        // Check if associated dragon is still alive
        if (std::dynamic_pointer_cast<DragonHoard>((*it)->getGold())->getDragon()->getState() == false) {
            // Dragon is dead
            continue;
        }

        // Check dragon distance from player
        std::pair<int, int> pCoord = player->getCoord();
        std::pair<int, int> eCoord = std::dynamic_pointer_cast<DragonHoard>((*it)->getGold())->getDragonTile()->getCoord(); 

        double distance = std::floor(std::sqrt(std::pow((pCoord.first - eCoord.first), 2) + std::pow((pCoord.second - eCoord.second), 2))); 

        std::pair<int, int> hoardCoord = (*it)->getCoord();
        double hoardDistance = std::floor(std::sqrt(std::pow((pCoord.first - hoardCoord.first), 2) + std::pow((pCoord.second - hoardCoord.second), 2)));


        if (distance == 1 || hoardDistance == 1) {
            double ogHP = player->getOccupant()->getHP();
            std::stringstream dealt;
            dealt << std::fixed << std::setprecision(2) << ogHP - playerPtr->getHP();

            // 1 tile away from either the dragon or the dragon hoard, attack player
            bool killed = std::dynamic_pointer_cast<Player>(player->getOccupant())->getAttacked(*(std::dynamic_pointer_cast<Dragon>(std::static_pointer_cast<DragonHoard>((*it)->getGold())->getDragon())));
            message += player->getOccupant()->getRace() + " attacked by Dragon for "+ dealt.str() + "HP. "; 

            if (killed) {
                // Player is dead, game is over
                return message += player->getOccupant()->getRace() + " was killed. Game Over!";
            }
        }

        // DLC EXTENSION HERE: Make dragons roam around the hoard
        
        // Print to Text Display here
    } // end of Dragons loop

    // End of Enemies turn
    // Player is still alive
    return message;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x14e0, %rsp           # imm = 0x14E0
movq %rdi, -0x1170(%rbp)
movq %rdi, %rax
movq %rax, -0x1168(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x1160(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x1158(%rbp)
callq 0x6550
movq -0x1158(%rbp), %rdx
leaq 0x1431a(%rip), %rsi     # 0x3de37
leaq -0x30(%rbp), %rdi
callq 0x8a00
jmp 0x29b28
leaq -0x31(%rbp), %rdi
callq 0x6340
movq -0x1160(%rbp), %rax
testb $0x1, 0x10d(%rax)
je 0x29bb6
leaq -0x45(%rbp), %rdi
movq %rdi, -0x1178(%rbp)
callq 0x6550
movq -0x1170(%rbp), %rdi
movq -0x1178(%rbp), %rdx
leaq 0x142e7(%rip), %rsi     # 0x3de4d
callq 0x8a00
jmp 0x29b6d
leaq -0x45(%rbp), %rdi
callq 0x6340
movl $0x1, -0x4c(%rbp)
jmp 0x2d525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x6340
jmp 0x2d547
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x45(%rbp), %rdi
callq 0x6340
jmp 0x2d53e
movq -0x1160(%rbp), %rax
movq %rax, %rdi
addq $0x58, %rdi
movl 0x108(%rax), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x12870
movq %rax, %rdi
callq 0x1e020
movq %rax, -0x58(%rbp)
movq -0x1160(%rbp), %rax
movq %rax, %rdi
addq $0x58, %rdi
movl 0x108(%rax), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x12870
movq %rax, %rdi
callq 0x1ddd0
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x2e780
testb $0x1, %al
jne 0x29c22
jmp 0x2cb38
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x80(%rbp), %rdi
callq 0x3bf60
jmp 0x29c41
leaq -0x70(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x2eaf0
leaq -0x70(%rbp), %rdi
callq 0x2eb80
movb %al, -0x1179(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x12ef0
leaq -0x80(%rbp), %rdi
callq 0x11fa0
movb -0x1179(%rbp), %al
testb $0x1, %al
jne 0x29c7e
jmp 0x2a46f
movq -0x1160(%rbp), %rax
testb $0x1, 0x10c(%rax)
jne 0x2a46d
xorl %eax, %eax
movl %eax, %esi
leaq -0x90(%rbp), %rdi
callq 0x2dc90
leaq -0xa8(%rbp), %rdi
callq 0x2dcb0
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x1188(%rbp)
callq 0x6550
movq -0x1188(%rbp), %rdx
leaq 0x13632(%rip), %rsi     # 0x3d301
leaq -0xc8(%rbp), %rdi
callq 0x8a00
jmp 0x29cdd
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x2e970
jmp 0x29cf2
leaq -0xc8(%rbp), %rdi
callq 0x61c0
leaq -0xc9(%rbp), %rdi
callq 0x6340
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x1190(%rbp)
callq 0x6550
movq -0x1190(%rbp), %rdx
leaq 0x135dc(%rip), %rsi     # 0x3d307
leaq -0xf0(%rbp), %rdi
callq 0x8a00
jmp 0x29d39
leaq -0xa8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x2e970
jmp 0x29d4e
leaq -0xf0(%rbp), %rdi
callq 0x61c0
leaq -0xf1(%rbp), %rdi
callq 0x6340
leaq -0x119(%rbp), %rdi
movq %rdi, -0x1198(%rbp)
callq 0x6550
movq -0x1198(%rbp), %rdx
leaq 0x1357d(%rip), %rsi     # 0x3d304
leaq -0x118(%rbp), %rdi
callq 0x8a00
jmp 0x29d95
leaq -0xa8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x2e970
jmp 0x29daa
leaq -0x118(%rbp), %rdi
callq 0x61c0
leaq -0x119(%rbp), %rdi
callq 0x6340
leaq -0x141(%rbp), %rdi
movq %rdi, -0x11a0(%rbp)
callq 0x6550
movq -0x11a0(%rbp), %rdx
leaq 0x13527(%rip), %rsi     # 0x3d30a
leaq -0x140(%rbp), %rdi
callq 0x8a00
jmp 0x29df1
leaq -0xa8(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x2e970
jmp 0x29e06
leaq -0x140(%rbp), %rdi
callq 0x61c0
leaq -0x141(%rbp), %rdi
callq 0x6340
leaq -0x169(%rbp), %rdi
movq %rdi, -0x11a8(%rbp)
callq 0x6550
movq -0x11a8(%rbp), %rdx
leaq 0x134ce(%rip), %rsi     # 0x3d30d
leaq -0x168(%rbp), %rdi
callq 0x8a00
jmp 0x29e4d
leaq -0xa8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x2e970
jmp 0x29e62
leaq -0x168(%rbp), %rdi
callq 0x61c0
leaq -0x169(%rbp), %rdi
callq 0x6340
leaq -0x191(%rbp), %rdi
movq %rdi, -0x11b0(%rbp)
callq 0x6550
movq -0x11b0(%rbp), %rdx
leaq 0x13475(%rip), %rsi     # 0x3d310
leaq -0x190(%rbp), %rdi
callq 0x8a00
jmp 0x29ea9
leaq -0xa8(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x2e970
jmp 0x29ebe
leaq -0x190(%rbp), %rdi
callq 0x61c0
leaq -0x191(%rbp), %rdi
callq 0x6340
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x11b8(%rbp)
callq 0x6550
movq -0x11b8(%rbp), %rdx
leaq 0x1341c(%rip), %rsi     # 0x3d313
leaq -0x1b8(%rbp), %rdi
callq 0x8a00
jmp 0x29f05
leaq -0xa8(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
callq 0x2e970
jmp 0x29f1a
leaq -0x1b8(%rbp), %rdi
callq 0x61c0
leaq -0x1b9(%rbp), %rdi
callq 0x6340
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x11c0(%rbp)
callq 0x6550
movq -0x11c0(%rbp), %rdx
leaq 0x133c3(%rip), %rsi     # 0x3d316
leaq -0x1e0(%rbp), %rdi
callq 0x8a00
jmp 0x29f61
leaq -0xa8(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x2e970
jmp 0x29f76
leaq -0x1e0(%rbp), %rdi
callq 0x61c0
leaq -0x1e1(%rbp), %rdi
callq 0x6340
movl $0x0, -0x1e8(%rbp)
cmpl $0x50, -0x1e8(%rbp)
jle 0x2a1a2
leaq -0x1f8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2dc90
leaq -0x90(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x2e8f0
leaq -0x1f8(%rbp), %rdi
callq 0x99e0
jmp 0x2a320
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d53e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a010
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x61c0
leaq -0xc9(%rbp), %rdi
callq 0x6340
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a047
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x61c0
leaq -0xf1(%rbp), %rdi
callq 0x6340
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a07e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x61c0
leaq -0x119(%rbp), %rdi
callq 0x6340
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a0b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x61c0
leaq -0x141(%rbp), %rdi
callq 0x6340
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a0ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x61c0
leaq -0x169(%rbp), %rdi
callq 0x6340
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a123
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x61c0
leaq -0x191(%rbp), %rdi
callq 0x6340
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a15a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x61c0
leaq -0x1b9(%rbp), %rdi
callq 0x6340
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a191
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x61c0
leaq -0x1e1(%rbp), %rdi
callq 0x6340
jmp 0x2a450
movl -0x1e8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1e8(%rbp)
callq 0x60c0
cltq
movq %rax, -0x11d0(%rbp)
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x11c8(%rbp)
callq 0x2e9a0
movq %rax, %rcx
movq -0x11d0(%rbp), %rax
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, -0x1fc(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rsi
leaq -0x220(%rbp), %rdi
callq 0xd550
movq -0x11c8(%rbp), %rdi
movslq -0x1fc(%rbp), %rsi
callq 0x2e9c0
movq %rax, %rsi
leaq -0x240(%rbp), %rdi
callq 0x6130
jmp 0x2a225
movq -0x1160(%rbp), %rsi
leaq -0x210(%rbp), %rdi
leaq -0x220(%rbp), %rdx
leaq -0x240(%rbp), %rcx
callq 0x250e0
jmp 0x2a248
leaq -0x90(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x2e8f0
leaq -0x210(%rbp), %rdi
callq 0x99e0
leaq -0x240(%rbp), %rdi
callq 0x61c0
leaq -0x220(%rbp), %rdi
callq 0x99e0
leaq -0x90(%rbp), %rdi
callq 0x1ed00
movb %al, %cl
movb $0x0, -0x251(%rbp)
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x11d1(%rbp)
jne 0x2a2a3
jmp 0x2a2ed
leaq -0x250(%rbp), %rdi
movq %rdi, -0x11e0(%rbp)
leaq -0x90(%rbp), %rsi
callq 0xd550
movq -0x1160(%rbp), %rdi
movq -0x11e0(%rbp), %rsi
movb $0x1, -0x251(%rbp)
callq 0x26090
movb %al, -0x11d2(%rbp)
jmp 0x2a2df
movb -0x11d2(%rbp), %al
xorb $-0x1, %al
movb %al, -0x11d1(%rbp)
movb -0x11d1(%rbp), %al
movb %al, -0x11e1(%rbp)
testb $0x1, -0x251(%rbp)
jne 0x2a304
jmp 0x2a310
leaq -0x250(%rbp), %rdi
callq 0x99e0
movb -0x11e1(%rbp), %al
testb $0x1, %al
jne 0x29f98
jmp 0x2a320
leaq -0x90(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2ee10
testb $0x1, %al
jne 0x2a339
jmp 0x2a42c
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, -0x11f8(%rbp)
leaq -0x278(%rbp), %rdi
movq %rdi, -0x11f0(%rbp)
leaq -0x90(%rbp), %rsi
callq 0xd550
movq -0x11f8(%rbp), %rsi
movq -0x11f0(%rbp), %rdx
leaq -0x268(%rbp), %rdi
callq 0x3c100
jmp 0x2a387
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
leaq -0x268(%rbp), %rsi
callq 0x2e8f0
leaq -0x268(%rbp), %rdi
callq 0x99e0
leaq -0x278(%rbp), %rdi
callq 0x99e0
jmp 0x2a42c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2a3df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x61c0
leaq -0x220(%rbp), %rdi
callq 0x99e0
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0x251(%rbp)
jne 0x2a404
jmp 0x2a410
leaq -0x250(%rbp), %rdi
callq 0x99e0
jmp 0x2a450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x99e0
jmp 0x2a450
movl $0x4, -0x4c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x9980
leaq -0x90(%rbp), %rdi
callq 0x99e0
jmp 0x2cb2a
leaq -0xa8(%rbp), %rdi
callq 0x9980
leaq -0x90(%rbp), %rdi
callq 0x99e0
jmp 0x2d53e
jmp 0x2a46f
movq -0x1160(%rbp), %rdi
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rdi
callq 0x3be40
movq %rax, -0x1200(%rbp)
jmp 0x2a493
movq -0x1200(%rbp), %rax
movq %rax, -0x280(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, %rdi
callq 0x3be40
movq %rax, -0x1208(%rbp)
jmp 0x2a4c3
movq -0x1208(%rbp), %rax
movq %rax, -0x288(%rbp)
movl -0x280(%rbp), %edi
movl -0x288(%rbp), %eax
subl %eax, %edi
movl $0x2, %esi
callq 0x12a90
movsd %xmm0, -0x1210(%rbp)
jmp 0x2a4f3
movl -0x27c(%rbp), %edi
movl -0x284(%rbp), %eax
subl %eax, %edi
movl $0x2, %esi
callq 0x12a90
movsd %xmm0, -0x1218(%rbp)
jmp 0x2a515
movsd -0x1218(%rbp), %xmm1
movsd -0x1210(%rbp), %xmm0
addsd %xmm1, %xmm0
callq 0x6240
callq 0x64f0
movsd %xmm0, -0x290(%rbp)
movsd -0x290(%rbp), %xmm0
movsd 0x12fb5(%rip), %xmm1    # 0x3d500
ucomisd %xmm1, %xmm0
jne 0x2ac27
jp 0x2ac27
movq -0x1160(%rbp), %rdi
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x2a8(%rbp), %rdi
callq 0x3bf60
jmp 0x2a57f
leaq -0x2a8(%rbp), %rdi
callq 0x2e3e0
movq %rax, %rdi
callq 0x34760
movsd %xmm0, -0x1220(%rbp)
jmp 0x2a59d
leaq -0x2a8(%rbp), %rdi
callq 0x11fa0
movsd -0x1220(%rbp), %xmm0
movq -0x1160(%rbp), %rdi
movsd %xmm0, -0x298(%rbp)
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x3bf60
jmp 0x2a5dd
leaq -0x2c0(%rbp), %rdi
movq %rdi, -0x1230(%rbp)
leaq -0x2d0(%rbp), %rsi
callq 0x2e600
movq -0x1230(%rbp), %rdi
callq 0x2e020
movq %rax, -0x1228(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x3bf60
jmp 0x2a62c
leaq -0x2e0(%rbp), %rdi
movq %rdi, -0x1240(%rbp)
leaq -0x2f0(%rbp), %rsi
callq 0x2eba0
movq -0x1240(%rbp), %rdi
callq 0x2ee40
movq -0x1228(%rbp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
movq 0x8(%rax), %rax
callq *%rax
movb %al, -0x1231(%rbp)
jmp 0x2a66d
leaq -0x2e0(%rbp), %rdi
callq 0x2ec80
leaq -0x2f0(%rbp), %rdi
callq 0x11fa0
leaq -0x2c0(%rbp), %rdi
callq 0x9960
leaq -0x2d0(%rbp), %rdi
callq 0x11fa0
movb -0x1231(%rbp), %al
andb $0x1, %al
movb %al, -0x2a9(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x6200
jmp 0x2a6b9
leaq -0x468(%rbp), %rdi
leaq 0x46f9(%rip), %rsi      # 0x2edc0
callq 0x60f0
movq %rax, -0x1248(%rbp)
jmp 0x2a6d5
movl $0x2, %edi
callq 0x2edf0
movl %eax, -0x124c(%rbp)
jmp 0x2a6e7
movq -0x1248(%rbp), %rdi
movl -0x124c(%rbp), %eax
movl %eax, -0x47c(%rbp)
movl -0x47c(%rbp), %esi
callq 0x6490
movq %rax, -0x1258(%rbp)
jmp 0x2a70e
movq -0x1160(%rbp), %rdi
movsd -0x298(%rbp), %xmm0
movsd %xmm0, -0x1268(%rbp)
addq $0xf8, %rdi
callq 0x2e020
movq %rax, %rdi
callq 0x34760
movsd %xmm0, -0x1260(%rbp)
jmp 0x2a743
movq -0x1258(%rbp), %rdi
movsd -0x1260(%rbp), %xmm1
movsd -0x1268(%rbp), %xmm0
subsd %xmm1, %xmm0
callq 0x6590
jmp 0x2a765
movq -0x1160(%rbp), %rdi
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x550(%rbp), %rdi
callq 0x3bf60
jmp 0x2a789
leaq -0x550(%rbp), %rdi
callq 0x2e3e0
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x540(%rbp), %rdi
callq *%rax
jmp 0x2a7a9
leaq 0x136ae(%rip), %rdx     # 0x3de5e
leaq -0x520(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x2e400
jmp 0x2a7c5
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x590(%rbp), %rdi
callq 0x3bf60
jmp 0x2a7e7
leaq -0x580(%rbp), %rdi
movq %rdi, -0x1270(%rbp)
leaq -0x590(%rbp), %rsi
callq 0x2eba0
movq -0x1270(%rbp), %rdi
callq 0x2ec30
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x570(%rbp), %rdi
callq *%rax
jmp 0x2a821
leaq -0x500(%rbp), %rdi
leaq -0x520(%rbp), %rsi
leaq -0x570(%rbp), %rdx
callq 0x2e6b0
jmp 0x2a83d
leaq 0x135d9(%rip), %rdx     # 0x3de1d
leaq -0x4e0(%rbp), %rdi
leaq -0x500(%rbp), %rsi
callq 0x2e400
jmp 0x2a859
leaq -0x5b0(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x62d0
jmp 0x2a86e
leaq -0x4c0(%rbp), %rdi
leaq -0x4e0(%rbp), %rsi
leaq -0x5b0(%rbp), %rdx
callq 0x2e6b0
jmp 0x2a88a
leaq 0x135db(%rip), %rdx     # 0x3de6c
leaq -0x4a0(%rbp), %rdi
leaq -0x4c0(%rbp), %rsi
callq 0x2e400
jmp 0x2a8a6
leaq -0x30(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x63f0
jmp 0x2a8b8
leaq -0x4a0(%rbp), %rdi
callq 0x61c0
leaq -0x4c0(%rbp), %rdi
callq 0x61c0
leaq -0x5b0(%rbp), %rdi
callq 0x61c0
leaq -0x4e0(%rbp), %rdi
callq 0x61c0
leaq -0x500(%rbp), %rdi
callq 0x61c0
leaq -0x570(%rbp), %rdi
callq 0x61c0
leaq -0x580(%rbp), %rdi
callq 0x2ec80
leaq -0x590(%rbp), %rdi
callq 0x11fa0
leaq -0x520(%rbp), %rdi
callq 0x61c0
leaq -0x540(%rbp), %rdi
callq 0x61c0
leaq -0x550(%rbp), %rdi
callq 0x11fa0
testb $0x1, -0x2a9(%rbp)
je 0x2abf1
movq -0x1160(%rbp), %rdi
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x600(%rbp), %rdi
callq 0x3bf60
jmp 0x2a96d
leaq -0x600(%rbp), %rdi
callq 0x2e3e0
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x5f0(%rbp), %rdi
callq *%rax
jmp 0x2a98d
leaq 0x134dd(%rip), %rdx     # 0x3de71
leaq -0x5d0(%rbp), %rdi
leaq -0x5f0(%rbp), %rsi
callq 0x2e400
jmp 0x2a9a9
leaq -0x30(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0x63f0
movq %rax, -0x1278(%rbp)
jmp 0x2a9c2
movq -0x1278(%rbp), %rsi
movq -0x1170(%rbp), %rdi
callq 0x6130
jmp 0x2a9d7
leaq -0x5d0(%rbp), %rdi
callq 0x61c0
leaq -0x5f0(%rbp), %rdi
callq 0x61c0
leaq -0x600(%rbp), %rdi
callq 0x11fa0
movl $0x1, -0x4c(%rbp)
jmp 0x2abf8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x2a8(%rbp), %rdi
callq 0x11fa0
jmp 0x2d53e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2aa56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x2e0(%rbp), %rdi
callq 0x2ec80
leaq -0x2f0(%rbp), %rdi
callq 0x11fa0
leaq -0x2c0(%rbp), %rdi
callq 0x9960
leaq -0x2d0(%rbp), %rdi
callq 0x11fa0
jmp 0x2d53e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ac16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab65
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab59
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab41
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ab29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x61c0
leaq -0x4c0(%rbp), %rdi
callq 0x61c0
leaq -0x5b0(%rbp), %rdi
callq 0x61c0
leaq -0x4e0(%rbp), %rdi
callq 0x61c0
leaq -0x500(%rbp), %rdi
callq 0x61c0
leaq -0x570(%rbp), %rdi
callq 0x61c0
leaq -0x580(%rbp), %rdi
callq 0x2ec80
leaq -0x590(%rbp), %rdi
callq 0x11fa0
leaq -0x520(%rbp), %rdi
callq 0x61c0
leaq -0x540(%rbp), %rdi
callq 0x61c0
leaq -0x550(%rbp), %rdi
callq 0x11fa0
jmp 0x2ac16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2abe3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2abd7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x5d0(%rbp), %rdi
callq 0x61c0
leaq -0x5f0(%rbp), %rdi
callq 0x61c0
leaq -0x600(%rbp), %rdi
callq 0x11fa0
jmp 0x2ac16
movl $0x0, -0x4c(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x6220
movl -0x4c(%rbp), %eax
testl %eax, %eax
jne 0x2d525
jmp 0x2ac11
jmp 0x2cb28
leaq -0x478(%rbp), %rdi
callq 0x6220
jmp 0x2d53e
movq -0x1160(%rbp), %rax
testb $0x1, 0xa8(%rax)
je 0x2c395
movq -0x1160(%rbp), %rax
movsd -0x290(%rbp), %xmm1
cvtsi2sdl 0xac(%rax), %xmm0
ucomisd %xmm1, %xmm0
jb 0x2c395
movl -0x280(%rbp), %eax
subl -0x288(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x608(%rbp)
movl -0x27c(%rbp), %eax
subl -0x284(%rbp), %eax
cvtsi2sd %eax, %xmm0
movsd %xmm0, -0x610(%rbp)
leaq -0x620(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2dc90
leaq -0x638(%rbp), %rdi
callq 0x2dcb0
movsd -0x608(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2b241
movsd -0x610(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2ae90
leaq -0x659(%rbp), %rdi
movq %rdi, -0x1280(%rbp)
callq 0x6550
movq -0x1280(%rbp), %rdx
leaq 0x12620(%rip), %rsi     # 0x3d313
leaq -0x658(%rbp), %rdi
callq 0x8a00
jmp 0x2ad01
leaq -0x638(%rbp), %rdi
leaq -0x658(%rbp), %rsi
callq 0x2e970
jmp 0x2ad16
leaq -0x658(%rbp), %rdi
callq 0x61c0
leaq -0x659(%rbp), %rdi
callq 0x6340
leaq -0x681(%rbp), %rdi
movq %rdi, -0x1288(%rbp)
callq 0x6550
movq -0x1288(%rbp), %rdx
leaq 0x125b8(%rip), %rsi     # 0x3d307
leaq -0x680(%rbp), %rdi
callq 0x8a00
jmp 0x2ad5d
leaq -0x638(%rbp), %rdi
leaq -0x680(%rbp), %rsi
callq 0x2e970
jmp 0x2ad72
leaq -0x680(%rbp), %rdi
callq 0x61c0
leaq -0x681(%rbp), %rdi
callq 0x6340
leaq -0x6a9(%rbp), %rdi
movq %rdi, -0x1290(%rbp)
callq 0x6550
movq -0x1290(%rbp), %rdx
leaq 0x12559(%rip), %rsi     # 0x3d304
leaq -0x6a8(%rbp), %rdi
callq 0x8a00
jmp 0x2adb9
leaq -0x638(%rbp), %rdi
leaq -0x6a8(%rbp), %rsi
callq 0x2e970
jmp 0x2adce
leaq -0x6a8(%rbp), %rdi
callq 0x61c0
leaq -0x6a9(%rbp), %rdi
callq 0x6340
jmp 0x2b23c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ae11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x658(%rbp), %rdi
callq 0x61c0
leaq -0x659(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ae48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x680(%rbp), %rdi
callq 0x61c0
leaq -0x681(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ae7f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x6a8(%rbp), %rdi
callq 0x61c0
leaq -0x6a9(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movsd -0x610(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2b069
jp 0x2b069
leaq -0x6d1(%rbp), %rdi
movq %rdi, -0x1298(%rbp)
callq 0x6550
movq -0x1298(%rbp), %rdx
leaq 0x1243b(%rip), %rsi     # 0x3d307
leaq -0x6d0(%rbp), %rdi
callq 0x8a00
jmp 0x2aeda
leaq -0x638(%rbp), %rdi
leaq -0x6d0(%rbp), %rsi
callq 0x2e970
jmp 0x2aeef
leaq -0x6d0(%rbp), %rdi
callq 0x61c0
leaq -0x6d1(%rbp), %rdi
callq 0x6340
leaq -0x6f9(%rbp), %rdi
movq %rdi, -0x12a0(%rbp)
callq 0x6550
movq -0x12a0(%rbp), %rdx
leaq 0x123e5(%rip), %rsi     # 0x3d30d
leaq -0x6f8(%rbp), %rdi
callq 0x8a00
jmp 0x2af36
leaq -0x638(%rbp), %rdi
leaq -0x6f8(%rbp), %rsi
callq 0x2e970
jmp 0x2af4b
leaq -0x6f8(%rbp), %rdi
callq 0x61c0
leaq -0x6f9(%rbp), %rdi
callq 0x6340
leaq -0x721(%rbp), %rdi
movq %rdi, -0x12a8(%rbp)
callq 0x6550
movq -0x12a8(%rbp), %rdx
leaq 0x1238f(%rip), %rsi     # 0x3d313
leaq -0x720(%rbp), %rdi
callq 0x8a00
jmp 0x2af92
leaq -0x638(%rbp), %rdi
leaq -0x720(%rbp), %rsi
callq 0x2e970
jmp 0x2afa7
leaq -0x720(%rbp), %rdi
callq 0x61c0
leaq -0x721(%rbp), %rdi
callq 0x6340
jmp 0x2b23a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2afea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x6d0(%rbp), %rdi
callq 0x61c0
leaq -0x6d1(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b021
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x6f8(%rbp), %rdi
callq 0x61c0
leaq -0x6f9(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b058
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x720(%rbp), %rdi
callq 0x61c0
leaq -0x721(%rbp), %rdi
callq 0x6340
jmp 0x2c378
xorps %xmm0, %xmm0
ucomisd -0x610(%rbp), %xmm0
jbe 0x2b238
leaq -0x749(%rbp), %rdi
movq %rdi, -0x12b0(%rbp)
callq 0x6550
movq -0x12b0(%rbp), %rdx
leaq 0x12272(%rip), %rsi     # 0x3d30d
leaq -0x748(%rbp), %rdi
callq 0x8a00
jmp 0x2b0a9
leaq -0x638(%rbp), %rdi
leaq -0x748(%rbp), %rsi
callq 0x2e970
jmp 0x2b0be
leaq -0x748(%rbp), %rdi
callq 0x61c0
leaq -0x749(%rbp), %rdi
callq 0x6340
leaq -0x771(%rbp), %rdi
movq %rdi, -0x12b8(%rbp)
callq 0x6550
movq -0x12b8(%rbp), %rdx
leaq 0x12210(%rip), %rsi     # 0x3d307
leaq -0x770(%rbp), %rdi
callq 0x8a00
jmp 0x2b105
leaq -0x638(%rbp), %rdi
leaq -0x770(%rbp), %rsi
callq 0x2e970
jmp 0x2b11a
leaq -0x770(%rbp), %rdi
callq 0x61c0
leaq -0x771(%rbp), %rdi
callq 0x6340
leaq -0x799(%rbp), %rdi
movq %rdi, -0x12c0(%rbp)
callq 0x6550
movq -0x12c0(%rbp), %rdx
leaq 0x121ba(%rip), %rsi     # 0x3d30d
leaq -0x798(%rbp), %rdi
callq 0x8a00
jmp 0x2b161
leaq -0x638(%rbp), %rdi
leaq -0x798(%rbp), %rsi
callq 0x2e970
jmp 0x2b176
leaq -0x798(%rbp), %rdi
callq 0x61c0
leaq -0x799(%rbp), %rdi
callq 0x6340
jmp 0x2b238
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b1b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x748(%rbp), %rdi
callq 0x61c0
leaq -0x749(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b1f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x770(%rbp), %rdi
callq 0x61c0
leaq -0x771(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b227
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x798(%rbp), %rdi
callq 0x61c0
leaq -0x799(%rbp), %rdi
callq 0x6340
jmp 0x2c378
jmp 0x2b23a
jmp 0x2b23c
jmp 0x2c055
movsd -0x608(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2babf
jp 0x2babf
movsd -0x610(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2b42f
leaq -0x7c1(%rbp), %rdi
movq %rdi, -0x12c8(%rbp)
callq 0x6550
movq -0x12c8(%rbp), %rdx
leaq 0x12072(%rip), %rsi     # 0x3d304
leaq -0x7c0(%rbp), %rdi
callq 0x8a00
jmp 0x2b2a0
leaq -0x638(%rbp), %rdi
leaq -0x7c0(%rbp), %rsi
callq 0x2e970
jmp 0x2b2b5
leaq -0x7c0(%rbp), %rdi
callq 0x61c0
leaq -0x7c1(%rbp), %rdi
callq 0x6340
leaq -0x7e9(%rbp), %rdi
movq %rdi, -0x12d0(%rbp)
callq 0x6550
movq -0x12d0(%rbp), %rdx
leaq 0x12025(%rip), %rsi     # 0x3d313
leaq -0x7e8(%rbp), %rdi
callq 0x8a00
jmp 0x2b2fc
leaq -0x638(%rbp), %rdi
leaq -0x7e8(%rbp), %rsi
callq 0x2e970
jmp 0x2b311
leaq -0x7e8(%rbp), %rdi
callq 0x61c0
leaq -0x7e9(%rbp), %rdi
callq 0x6340
leaq -0x811(%rbp), %rdi
movq %rdi, -0x12d8(%rbp)
callq 0x6550
movq -0x12d8(%rbp), %rdx
leaq 0x11fcc(%rip), %rsi     # 0x3d316
leaq -0x810(%rbp), %rdi
callq 0x8a00
jmp 0x2b358
leaq -0x638(%rbp), %rdi
leaq -0x810(%rbp), %rsi
callq 0x2e970
jmp 0x2b36d
leaq -0x810(%rbp), %rdi
callq 0x61c0
leaq -0x811(%rbp), %rdi
callq 0x6340
jmp 0x2baba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b3b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x7c0(%rbp), %rdi
callq 0x61c0
leaq -0x7c1(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b3e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x7e8(%rbp), %rdi
callq 0x61c0
leaq -0x7e9(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b41e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x810(%rbp), %rdi
callq 0x61c0
leaq -0x811(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movsd -0x610(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2b8e7
jp 0x2b8e7
leaq -0x839(%rbp), %rdi
movq %rdi, -0x12e0(%rbp)
callq 0x6550
movq -0x12e0(%rbp), %rdx
leaq 0x11e96(%rip), %rsi     # 0x3d301
leaq -0x838(%rbp), %rdi
callq 0x8a00
jmp 0x2b479
leaq -0x638(%rbp), %rdi
leaq -0x838(%rbp), %rsi
callq 0x2e970
jmp 0x2b48e
leaq -0x838(%rbp), %rdi
callq 0x61c0
leaq -0x839(%rbp), %rdi
callq 0x6340
leaq -0x861(%rbp), %rdi
movq %rdi, -0x12e8(%rbp)
callq 0x6550
movq -0x12e8(%rbp), %rdx
leaq 0x11e40(%rip), %rsi     # 0x3d307
leaq -0x860(%rbp), %rdi
callq 0x8a00
jmp 0x2b4d5
leaq -0x638(%rbp), %rdi
leaq -0x860(%rbp), %rsi
callq 0x2e970
jmp 0x2b4ea
leaq -0x860(%rbp), %rdi
callq 0x61c0
leaq -0x861(%rbp), %rdi
callq 0x6340
leaq -0x889(%rbp), %rdi
movq %rdi, -0x12f0(%rbp)
callq 0x6550
movq -0x12f0(%rbp), %rdx
leaq 0x11de1(%rip), %rsi     # 0x3d304
leaq -0x888(%rbp), %rdi
callq 0x8a00
jmp 0x2b531
leaq -0x638(%rbp), %rdi
leaq -0x888(%rbp), %rsi
callq 0x2e970
jmp 0x2b546
leaq -0x888(%rbp), %rdi
callq 0x61c0
leaq -0x889(%rbp), %rdi
callq 0x6340
leaq -0x8b1(%rbp), %rdi
movq %rdi, -0x12f8(%rbp)
callq 0x6550
movq -0x12f8(%rbp), %rdx
leaq 0x11d8b(%rip), %rsi     # 0x3d30a
leaq -0x8b0(%rbp), %rdi
callq 0x8a00
jmp 0x2b58d
leaq -0x638(%rbp), %rdi
leaq -0x8b0(%rbp), %rsi
callq 0x2e970
jmp 0x2b5a2
leaq -0x8b0(%rbp), %rdi
callq 0x61c0
leaq -0x8b1(%rbp), %rdi
callq 0x6340
leaq -0x8d9(%rbp), %rdi
movq %rdi, -0x1300(%rbp)
callq 0x6550
movq -0x1300(%rbp), %rdx
leaq 0x11d32(%rip), %rsi     # 0x3d30d
leaq -0x8d8(%rbp), %rdi
callq 0x8a00
jmp 0x2b5e9
leaq -0x638(%rbp), %rdi
leaq -0x8d8(%rbp), %rsi
callq 0x2e970
jmp 0x2b5fe
leaq -0x8d8(%rbp), %rdi
callq 0x61c0
leaq -0x8d9(%rbp), %rdi
callq 0x6340
leaq -0x901(%rbp), %rdi
movq %rdi, -0x1308(%rbp)
callq 0x6550
movq -0x1308(%rbp), %rdx
leaq 0x11cd9(%rip), %rsi     # 0x3d310
leaq -0x900(%rbp), %rdi
callq 0x8a00
jmp 0x2b645
leaq -0x638(%rbp), %rdi
leaq -0x900(%rbp), %rsi
callq 0x2e970
jmp 0x2b65a
leaq -0x900(%rbp), %rdi
callq 0x61c0
leaq -0x901(%rbp), %rdi
callq 0x6340
leaq -0x929(%rbp), %rdi
movq %rdi, -0x1310(%rbp)
callq 0x6550
movq -0x1310(%rbp), %rdx
leaq 0x11c80(%rip), %rsi     # 0x3d313
leaq -0x928(%rbp), %rdi
callq 0x8a00
jmp 0x2b6a1
leaq -0x638(%rbp), %rdi
leaq -0x928(%rbp), %rsi
callq 0x2e970
jmp 0x2b6b6
leaq -0x928(%rbp), %rdi
callq 0x61c0
leaq -0x929(%rbp), %rdi
callq 0x6340
leaq -0x951(%rbp), %rdi
movq %rdi, -0x1318(%rbp)
callq 0x6550
movq -0x1318(%rbp), %rdx
leaq 0x11c27(%rip), %rsi     # 0x3d316
leaq -0x950(%rbp), %rdi
callq 0x8a00
jmp 0x2b6fd
leaq -0x638(%rbp), %rdi
leaq -0x950(%rbp), %rsi
callq 0x2e970
jmp 0x2b712
leaq -0x950(%rbp), %rdi
callq 0x61c0
leaq -0x951(%rbp), %rdi
callq 0x6340
jmp 0x2bab8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b755
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x838(%rbp), %rdi
callq 0x61c0
leaq -0x839(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b78c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x860(%rbp), %rdi
callq 0x61c0
leaq -0x861(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b7c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x888(%rbp), %rdi
callq 0x61c0
leaq -0x889(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b7fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x8b0(%rbp), %rdi
callq 0x61c0
leaq -0x8b1(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b831
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x8d8(%rbp), %rdi
callq 0x61c0
leaq -0x8d9(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b868
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x900(%rbp), %rdi
callq 0x61c0
leaq -0x901(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b89f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x928(%rbp), %rdi
callq 0x61c0
leaq -0x929(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2b8d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x950(%rbp), %rdi
callq 0x61c0
leaq -0x951(%rbp), %rdi
callq 0x6340
jmp 0x2c378
xorps %xmm0, %xmm0
ucomisd -0x610(%rbp), %xmm0
jbe 0x2bab6
leaq -0x979(%rbp), %rdi
movq %rdi, -0x1320(%rbp)
callq 0x6550
movq -0x1320(%rbp), %rdx
leaq 0x119e8(%rip), %rsi     # 0x3d301
leaq -0x978(%rbp), %rdi
callq 0x8a00
jmp 0x2b927
leaq -0x638(%rbp), %rdi
leaq -0x978(%rbp), %rsi
callq 0x2e970
jmp 0x2b93c
leaq -0x978(%rbp), %rdi
callq 0x61c0
leaq -0x979(%rbp), %rdi
callq 0x6340
leaq -0x9a1(%rbp), %rdi
movq %rdi, -0x1328(%rbp)
callq 0x6550
movq -0x1328(%rbp), %rdx
leaq 0x11998(%rip), %rsi     # 0x3d30d
leaq -0x9a0(%rbp), %rdi
callq 0x8a00
jmp 0x2b983
leaq -0x638(%rbp), %rdi
leaq -0x9a0(%rbp), %rsi
callq 0x2e970
jmp 0x2b998
leaq -0x9a0(%rbp), %rdi
callq 0x61c0
leaq -0x9a1(%rbp), %rdi
callq 0x6340
leaq -0x9c9(%rbp), %rdi
movq %rdi, -0x1330(%rbp)
callq 0x6550
movq -0x1330(%rbp), %rdx
leaq 0x1193f(%rip), %rsi     # 0x3d310
leaq -0x9c8(%rbp), %rdi
callq 0x8a00
jmp 0x2b9df
leaq -0x638(%rbp), %rdi
leaq -0x9c8(%rbp), %rsi
callq 0x2e970
jmp 0x2b9f4
leaq -0x9c8(%rbp), %rdi
callq 0x61c0
leaq -0x9c9(%rbp), %rdi
callq 0x6340
jmp 0x2bab6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ba37
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x978(%rbp), %rdi
callq 0x61c0
leaq -0x979(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2ba6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x9a0(%rbp), %rdi
callq 0x61c0
leaq -0x9a1(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2baa5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x9c8(%rbp), %rdi
callq 0x61c0
leaq -0x9c9(%rbp), %rdi
callq 0x6340
jmp 0x2c378
jmp 0x2bab8
jmp 0x2baba
jmp 0x2c053
xorps %xmm0, %xmm0
ucomisd -0x608(%rbp), %xmm0
jbe 0x2c051
movsd -0x610(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x2bca3
leaq -0x9f1(%rbp), %rdi
movq %rdi, -0x1338(%rbp)
callq 0x6550
movq -0x1338(%rbp), %rdx
leaq 0x11810(%rip), %rsi     # 0x3d316
leaq -0x9f0(%rbp), %rdi
callq 0x8a00
jmp 0x2bb14
leaq -0x638(%rbp), %rdi
leaq -0x9f0(%rbp), %rsi
callq 0x2e970
jmp 0x2bb29
leaq -0x9f0(%rbp), %rdi
callq 0x61c0
leaq -0x9f1(%rbp), %rdi
callq 0x6340
leaq -0xa19(%rbp), %rdi
movq %rdi, -0x1340(%rbp)
callq 0x6550
movq -0x1340(%rbp), %rdx
leaq 0x117a8(%rip), %rsi     # 0x3d30a
leaq -0xa18(%rbp), %rdi
callq 0x8a00
jmp 0x2bb70
leaq -0x638(%rbp), %rdi
leaq -0xa18(%rbp), %rsi
callq 0x2e970
jmp 0x2bb85
leaq -0xa18(%rbp), %rdi
callq 0x61c0
leaq -0xa19(%rbp), %rdi
callq 0x6340
leaq -0xa41(%rbp), %rdi
movq %rdi, -0x1348(%rbp)
callq 0x6550
movq -0x1348(%rbp), %rdx
leaq 0x11746(%rip), %rsi     # 0x3d304
leaq -0xa40(%rbp), %rdi
callq 0x8a00
jmp 0x2bbcc
leaq -0x638(%rbp), %rdi
leaq -0xa40(%rbp), %rsi
callq 0x2e970
jmp 0x2bbe1
leaq -0xa40(%rbp), %rdi
callq 0x61c0
leaq -0xa41(%rbp), %rdi
callq 0x6340
jmp 0x2c04f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2bc24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x9f0(%rbp), %rdi
callq 0x61c0
leaq -0x9f1(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2bc5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xa18(%rbp), %rdi
callq 0x61c0
leaq -0xa19(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2bc92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xa40(%rbp), %rdi
callq 0x61c0
leaq -0xa41(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movsd -0x610(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x2be7c
jp 0x2be7c
leaq -0xa69(%rbp), %rdi
movq %rdi, -0x1350(%rbp)
callq 0x6550
movq -0x1350(%rbp), %rdx
leaq 0x1162b(%rip), %rsi     # 0x3d30a
leaq -0xa68(%rbp), %rdi
callq 0x8a00
jmp 0x2bced
leaq -0x638(%rbp), %rdi
leaq -0xa68(%rbp), %rsi
callq 0x2e970
jmp 0x2bd02
leaq -0xa68(%rbp), %rdi
callq 0x61c0
leaq -0xa69(%rbp), %rdi
callq 0x6340
leaq -0xa91(%rbp), %rdi
movq %rdi, -0x1358(%rbp)
callq 0x6550
movq -0x1358(%rbp), %rdx
leaq 0x115d5(%rip), %rsi     # 0x3d310
leaq -0xa90(%rbp), %rdi
callq 0x8a00
jmp 0x2bd49
leaq -0x638(%rbp), %rdi
leaq -0xa90(%rbp), %rsi
callq 0x2e970
jmp 0x2bd5e
leaq -0xa90(%rbp), %rdi
callq 0x61c0
leaq -0xa91(%rbp), %rdi
callq 0x6340
leaq -0xab9(%rbp), %rdi
movq %rdi, -0x1360(%rbp)
callq 0x6550
movq -0x1360(%rbp), %rdx
leaq 0x1157f(%rip), %rsi     # 0x3d316
leaq -0xab8(%rbp), %rdi
callq 0x8a00
jmp 0x2bda5
leaq -0x638(%rbp), %rdi
leaq -0xab8(%rbp), %rsi
callq 0x2e970
jmp 0x2bdba
leaq -0xab8(%rbp), %rdi
callq 0x61c0
leaq -0xab9(%rbp), %rdi
callq 0x6340
jmp 0x2c04d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2bdfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xa68(%rbp), %rdi
callq 0x61c0
leaq -0xa69(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2be34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xa90(%rbp), %rdi
callq 0x61c0
leaq -0xa91(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2be6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xab8(%rbp), %rdi
callq 0x61c0
leaq -0xab9(%rbp), %rdi
callq 0x6340
jmp 0x2c378
xorps %xmm0, %xmm0
ucomisd -0x610(%rbp), %xmm0
jbe 0x2c04b
leaq -0xae1(%rbp), %rdi
movq %rdi, -0x1368(%rbp)
callq 0x6550
movq -0x1368(%rbp), %rdx
leaq 0x11462(%rip), %rsi     # 0x3d310
leaq -0xae0(%rbp), %rdi
callq 0x8a00
jmp 0x2bebc
leaq -0x638(%rbp), %rdi
leaq -0xae0(%rbp), %rsi
callq 0x2e970
jmp 0x2bed1
leaq -0xae0(%rbp), %rdi
callq 0x61c0
leaq -0xae1(%rbp), %rdi
callq 0x6340
leaq -0xb09(%rbp), %rdi
movq %rdi, -0x1370(%rbp)
callq 0x6550
movq -0x1370(%rbp), %rdx
leaq 0x11400(%rip), %rsi     # 0x3d30a
leaq -0xb08(%rbp), %rdi
callq 0x8a00
jmp 0x2bf18
leaq -0x638(%rbp), %rdi
leaq -0xb08(%rbp), %rsi
callq 0x2e970
jmp 0x2bf2d
leaq -0xb08(%rbp), %rdi
callq 0x61c0
leaq -0xb09(%rbp), %rdi
callq 0x6340
leaq -0xb31(%rbp), %rdi
movq %rdi, -0x1378(%rbp)
callq 0x6550
movq -0x1378(%rbp), %rdx
leaq 0x1139b(%rip), %rsi     # 0x3d301
leaq -0xb30(%rbp), %rdi
callq 0x8a00
jmp 0x2bf74
leaq -0x638(%rbp), %rdi
leaq -0xb30(%rbp), %rsi
callq 0x2e970
jmp 0x2bf89
leaq -0xb30(%rbp), %rdi
callq 0x61c0
leaq -0xb31(%rbp), %rdi
callq 0x6340
jmp 0x2c04b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2bfcc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xae0(%rbp), %rdi
callq 0x61c0
leaq -0xae1(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c003
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb08(%rbp), %rdi
callq 0x61c0
leaq -0xb09(%rbp), %rdi
callq 0x6340
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c03a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb30(%rbp), %rdi
callq 0x61c0
leaq -0xb31(%rbp), %rdi
callq 0x6340
jmp 0x2c378
jmp 0x2c04d
jmp 0x2c04f
jmp 0x2c051
jmp 0x2c053
jmp 0x2c055
movl $0x0, -0xb38(%rbp)
cmpl $0x50, -0xb38(%rbp)
jle 0x2c09c
leaq -0xb48(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2dc90
leaq -0x620(%rbp), %rdi
leaq -0xb48(%rbp), %rsi
callq 0x2e8f0
leaq -0xb48(%rbp), %rdi
callq 0x99e0
jmp 0x2c24f
movl -0xb38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb38(%rbp)
callq 0x60c0
cltq
movq %rax, -0x1388(%rbp)
leaq -0x638(%rbp), %rdi
movq %rdi, -0x1380(%rbp)
callq 0x2e9a0
movq %rax, %rcx
movq -0x1388(%rbp), %rax
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, -0xb4c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rsi
leaq -0xb70(%rbp), %rdi
callq 0xd550
movq -0x1380(%rbp), %rdi
movslq -0xb4c(%rbp), %rsi
callq 0x2e9c0
movq %rax, %rsi
leaq -0xb90(%rbp), %rdi
callq 0x6130
jmp 0x2c11f
movq -0x1160(%rbp), %rsi
leaq -0xb60(%rbp), %rdi
leaq -0xb70(%rbp), %rdx
leaq -0xb90(%rbp), %rcx
callq 0x250e0
jmp 0x2c142
leaq -0x620(%rbp), %rdi
leaq -0xb60(%rbp), %rsi
callq 0x2e8f0
leaq -0xb60(%rbp), %rdi
callq 0x99e0
leaq -0xb90(%rbp), %rdi
callq 0x61c0
leaq -0xb70(%rbp), %rdi
callq 0x99e0
leaq -0x620(%rbp), %rdi
callq 0x1ed00
movb %al, %cl
movb $0x0, -0xba1(%rbp)
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1389(%rbp)
jne 0x2c19d
jmp 0x2c21c
leaq -0xba0(%rbp), %rdi
movq %rdi, -0x1398(%rbp)
leaq -0x620(%rbp), %rsi
callq 0xd550
movq -0x1160(%rbp), %rdi
movq -0x1398(%rbp), %rsi
movb $0x1, -0xba1(%rbp)
callq 0x26090
movb %al, -0x138a(%rbp)
jmp 0x2c1d9
movb -0x138a(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1389(%rbp)
jne 0x2c1ee
jmp 0x2c21c
leaq -0x620(%rbp), %rdi
callq 0x2e040
movq %rax, %rdi
callq 0x3c0c0
movl %eax, -0x139c(%rbp)
jmp 0x2c20a
movl -0x139c(%rbp), %eax
cmpl $-0x1, %eax
setg %al
movb %al, -0x1389(%rbp)
movb -0x1389(%rbp), %al
movb %al, -0x139d(%rbp)
testb $0x1, -0xba1(%rbp)
jne 0x2c233
jmp 0x2c23f
leaq -0xba0(%rbp), %rdi
callq 0x99e0
movb -0x139d(%rbp), %al
testb $0x1, %al
jne 0x2c05f
jmp 0x2c24f
leaq -0x620(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2ee10
testb $0x1, %al
jne 0x2c268
jmp 0x2c35b
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, -0x13b0(%rbp)
leaq -0xbc8(%rbp), %rdi
movq %rdi, -0x13a8(%rbp)
leaq -0x620(%rbp), %rsi
callq 0xd550
movq -0x13b0(%rbp), %rsi
movq -0x13a8(%rbp), %rdx
leaq -0xbb8(%rbp), %rdi
callq 0x3c100
jmp 0x2c2b6
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
leaq -0xbb8(%rbp), %rsi
callq 0x2e8f0
leaq -0xbb8(%rbp), %rdi
callq 0x99e0
leaq -0xbc8(%rbp), %rdi
callq 0x99e0
jmp 0x2c35b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c30e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb90(%rbp), %rdi
callq 0x61c0
leaq -0xb70(%rbp), %rdi
callq 0x99e0
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0xba1(%rbp)
jne 0x2c333
jmp 0x2c33f
leaq -0xba0(%rbp), %rdi
callq 0x99e0
jmp 0x2c378
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xbc8(%rbp), %rdi
callq 0x99e0
jmp 0x2c378
leaq -0x638(%rbp), %rdi
callq 0x9980
leaq -0x620(%rbp), %rdi
callq 0x99e0
jmp 0x2cb26
leaq -0x638(%rbp), %rdi
callq 0x9980
leaq -0x620(%rbp), %rdi
callq 0x99e0
jmp 0x2d53e
xorl %eax, %eax
movl %eax, %esi
leaq -0xbd8(%rbp), %rdi
callq 0x2dc90
leaq -0xbf0(%rbp), %rdi
callq 0x2dcb0
leaq -0xc11(%rbp), %rdi
movq %rdi, -0x13b8(%rbp)
callq 0x6550
movq -0x13b8(%rbp), %rdx
leaq 0x10f2f(%rip), %rsi     # 0x3d301
leaq -0xc10(%rbp), %rdi
callq 0x8a00
jmp 0x2c3e0
leaq -0xbf0(%rbp), %rdi
leaq -0xc10(%rbp), %rsi
callq 0x2e970
jmp 0x2c3f5
leaq -0xc10(%rbp), %rdi
callq 0x61c0
leaq -0xc11(%rbp), %rdi
callq 0x6340
leaq -0xc39(%rbp), %rdi
movq %rdi, -0x13c0(%rbp)
callq 0x6550
movq -0x13c0(%rbp), %rdx
leaq 0x10ed9(%rip), %rsi     # 0x3d307
leaq -0xc38(%rbp), %rdi
callq 0x8a00
jmp 0x2c43c
leaq -0xbf0(%rbp), %rdi
leaq -0xc38(%rbp), %rsi
callq 0x2e970
jmp 0x2c451
leaq -0xc38(%rbp), %rdi
callq 0x61c0
leaq -0xc39(%rbp), %rdi
callq 0x6340
leaq -0xc61(%rbp), %rdi
movq %rdi, -0x13c8(%rbp)
callq 0x6550
movq -0x13c8(%rbp), %rdx
leaq 0x10e7a(%rip), %rsi     # 0x3d304
leaq -0xc60(%rbp), %rdi
callq 0x8a00
jmp 0x2c498
leaq -0xbf0(%rbp), %rdi
leaq -0xc60(%rbp), %rsi
callq 0x2e970
jmp 0x2c4ad
leaq -0xc60(%rbp), %rdi
callq 0x61c0
leaq -0xc61(%rbp), %rdi
callq 0x6340
leaq -0xc89(%rbp), %rdi
movq %rdi, -0x13d0(%rbp)
callq 0x6550
movq -0x13d0(%rbp), %rdx
leaq 0x10e24(%rip), %rsi     # 0x3d30a
leaq -0xc88(%rbp), %rdi
callq 0x8a00
jmp 0x2c4f4
leaq -0xbf0(%rbp), %rdi
leaq -0xc88(%rbp), %rsi
callq 0x2e970
jmp 0x2c509
leaq -0xc88(%rbp), %rdi
callq 0x61c0
leaq -0xc89(%rbp), %rdi
callq 0x6340
leaq -0xcb1(%rbp), %rdi
movq %rdi, -0x13d8(%rbp)
callq 0x6550
movq -0x13d8(%rbp), %rdx
leaq 0x10dcb(%rip), %rsi     # 0x3d30d
leaq -0xcb0(%rbp), %rdi
callq 0x8a00
jmp 0x2c550
leaq -0xbf0(%rbp), %rdi
leaq -0xcb0(%rbp), %rsi
callq 0x2e970
jmp 0x2c565
leaq -0xcb0(%rbp), %rdi
callq 0x61c0
leaq -0xcb1(%rbp), %rdi
callq 0x6340
leaq -0xcd9(%rbp), %rdi
movq %rdi, -0x13e0(%rbp)
callq 0x6550
movq -0x13e0(%rbp), %rdx
leaq 0x10d72(%rip), %rsi     # 0x3d310
leaq -0xcd8(%rbp), %rdi
callq 0x8a00
jmp 0x2c5ac
leaq -0xbf0(%rbp), %rdi
leaq -0xcd8(%rbp), %rsi
callq 0x2e970
jmp 0x2c5c1
leaq -0xcd8(%rbp), %rdi
callq 0x61c0
leaq -0xcd9(%rbp), %rdi
callq 0x6340
leaq -0xd01(%rbp), %rdi
movq %rdi, -0x13e8(%rbp)
callq 0x6550
movq -0x13e8(%rbp), %rdx
leaq 0x10d19(%rip), %rsi     # 0x3d313
leaq -0xd00(%rbp), %rdi
callq 0x8a00
jmp 0x2c608
leaq -0xbf0(%rbp), %rdi
leaq -0xd00(%rbp), %rsi
callq 0x2e970
jmp 0x2c61d
leaq -0xd00(%rbp), %rdi
callq 0x61c0
leaq -0xd01(%rbp), %rdi
callq 0x6340
leaq -0xd29(%rbp), %rdi
movq %rdi, -0x13f0(%rbp)
callq 0x6550
movq -0x13f0(%rbp), %rdx
leaq 0x10cc0(%rip), %rsi     # 0x3d316
leaq -0xd28(%rbp), %rdi
callq 0x8a00
jmp 0x2c664
leaq -0xbf0(%rbp), %rdi
leaq -0xd28(%rbp), %rsi
callq 0x2e970
jmp 0x2c679
leaq -0xd28(%rbp), %rdi
callq 0x61c0
leaq -0xd29(%rbp), %rdi
callq 0x6340
movl $0x0, -0xd30(%rbp)
cmpl $0x50, -0xd30(%rbp)
jle 0x2c865
jmp 0x2c9e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c6d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc10(%rbp), %rdi
callq 0x61c0
leaq -0xc11(%rbp), %rdi
callq 0x6340
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c70a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc38(%rbp), %rdi
callq 0x61c0
leaq -0xc39(%rbp), %rdi
callq 0x6340
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c741
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc60(%rbp), %rdi
callq 0x61c0
leaq -0xc61(%rbp), %rdi
callq 0x6340
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c778
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc88(%rbp), %rdi
callq 0x61c0
leaq -0xc89(%rbp), %rdi
callq 0x6340
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c7af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xcb0(%rbp), %rdi
callq 0x61c0
leaq -0xcb1(%rbp), %rdi
callq 0x6340
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c7e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xcd8(%rbp), %rdi
callq 0x61c0
leaq -0xcd9(%rbp), %rdi
callq 0x6340
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c81d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd00(%rbp), %rdi
callq 0x61c0
leaq -0xd01(%rbp), %rdi
callq 0x6340
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2c854
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd28(%rbp), %rdi
callq 0x61c0
leaq -0xd29(%rbp), %rdi
callq 0x6340
jmp 0x2cb09
movl -0xd30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd30(%rbp)
callq 0x60c0
cltq
movq %rax, -0x1400(%rbp)
leaq -0xbf0(%rbp), %rdi
movq %rdi, -0x13f8(%rbp)
callq 0x2e9a0
movq %rax, %rcx
movq -0x1400(%rbp), %rax
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, -0xd34(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rsi
leaq -0xd58(%rbp), %rdi
callq 0xd550
movq -0x13f8(%rbp), %rdi
movslq -0xd34(%rbp), %rsi
callq 0x2e9c0
movq %rax, %rsi
leaq -0xd78(%rbp), %rdi
callq 0x6130
jmp 0x2c8e8
movq -0x1160(%rbp), %rsi
leaq -0xd48(%rbp), %rdi
leaq -0xd58(%rbp), %rdx
leaq -0xd78(%rbp), %rcx
callq 0x250e0
jmp 0x2c90b
leaq -0xbd8(%rbp), %rdi
leaq -0xd48(%rbp), %rsi
callq 0x2e8f0
leaq -0xd48(%rbp), %rdi
callq 0x99e0
leaq -0xd78(%rbp), %rdi
callq 0x61c0
leaq -0xd58(%rbp), %rdi
callq 0x99e0
leaq -0xbd8(%rbp), %rdi
callq 0x1ed00
movb %al, %cl
movb $0x0, -0xd89(%rbp)
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x1401(%rbp)
jne 0x2c966
jmp 0x2c9b0
leaq -0xd88(%rbp), %rdi
movq %rdi, -0x1410(%rbp)
leaq -0xbd8(%rbp), %rsi
callq 0xd550
movq -0x1160(%rbp), %rdi
movq -0x1410(%rbp), %rsi
movb $0x1, -0xd89(%rbp)
callq 0x26090
movb %al, -0x1402(%rbp)
jmp 0x2c9a2
movb -0x1402(%rbp), %al
xorb $-0x1, %al
movb %al, -0x1401(%rbp)
movb -0x1401(%rbp), %al
movb %al, -0x1411(%rbp)
testb $0x1, -0xd89(%rbp)
jne 0x2c9c7
jmp 0x2c9d3
leaq -0xd88(%rbp), %rdi
callq 0x99e0
movb -0x1411(%rbp), %al
testb $0x1, %al
jne 0x2c69b
jmp 0x2c9e3
leaq -0xbd8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2ee10
testb $0x1, %al
jne 0x2c9fc
jmp 0x2caef
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, -0x1428(%rbp)
leaq -0xdb0(%rbp), %rdi
movq %rdi, -0x1420(%rbp)
leaq -0xbd8(%rbp), %rsi
callq 0xd550
movq -0x1428(%rbp), %rsi
movq -0x1420(%rbp), %rdx
leaq -0xda0(%rbp), %rdi
callq 0x3c100
jmp 0x2ca4a
leaq -0x58(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
leaq -0xda0(%rbp), %rsi
callq 0x2e8f0
leaq -0xda0(%rbp), %rdi
callq 0x99e0
leaq -0xdb0(%rbp), %rdi
callq 0x99e0
jmp 0x2caef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2caa2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd78(%rbp), %rdi
callq 0x61c0
leaq -0xd58(%rbp), %rdi
callq 0x99e0
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
testb $0x1, -0xd89(%rbp)
jne 0x2cac7
jmp 0x2cad3
leaq -0xd88(%rbp), %rdi
callq 0x99e0
jmp 0x2cb09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xdb0(%rbp), %rdi
callq 0x99e0
jmp 0x2cb09
leaq -0xbf0(%rbp), %rdi
callq 0x9980
leaq -0xbd8(%rbp), %rdi
callq 0x99e0
jmp 0x2cb26
leaq -0xbf0(%rbp), %rdi
callq 0x9980
leaq -0xbd8(%rbp), %rdi
callq 0x99e0
jmp 0x2d53e
jmp 0x2cb28
jmp 0x2cb2a
leaq -0x58(%rbp), %rdi
callq 0x2ece0
jmp 0x29be1
movq -0x1160(%rbp), %rax
movq %rax, %rdi
addq $0x70, %rdi
movl 0x108(%rax), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x12870
movq %rax, %rdi
callq 0x1e020
movq %rax, -0xdb8(%rbp)
movq -0x1160(%rbp), %rax
movq %rax, %rdi
addq $0x70, %rdi
movl 0x108(%rax), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x12870
movq %rax, %rdi
callq 0x1ddd0
movq %rax, -0xdc0(%rbp)
leaq -0xdb8(%rbp), %rdi
leaq -0xdc0(%rbp), %rsi
callq 0x2e780
testb $0x1, %al
jne 0x2cbb0
jmp 0x2d50e
leaq -0xdb8(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0xdf0(%rbp), %rdi
callq 0x3c020
jmp 0x2cbd5
leaq -0xde0(%rbp), %rdi
movq %rdi, -0x1430(%rbp)
leaq -0xdf0(%rbp), %rsi
callq 0x2e530
movq -0x1430(%rbp), %rdi
callq 0x12af0
movq %rax, %rsi
leaq -0xdd0(%rbp), %rdi
callq 0x38670
jmp 0x2cc0c
leaq -0xdd0(%rbp), %rdi
callq 0x2e5e0
movq %rax, %rdi
callq 0x348b0
movb %al, -0x1431(%rbp)
jmp 0x2cc28
movb -0x1431(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x1438(%rbp)
leaq -0xdd0(%rbp), %rdi
callq 0x12b30
leaq -0xde0(%rbp), %rdi
callq 0x12910
leaq -0xdf0(%rbp), %rdi
callq 0x11f60
movl -0x1438(%rbp), %eax
cmpl $0x0, %eax
jne 0x2ccb0
jmp 0x2d4fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2cc93
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xdd0(%rbp), %rdi
callq 0x12b30
leaq -0xde0(%rbp), %rdi
callq 0x12910
leaq -0xdf0(%rbp), %rdi
callq 0x11f60
jmp 0x2d53e
movq -0x1160(%rbp), %rdi
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rdi
callq 0x3be40
movq %rax, -0x1440(%rbp)
jmp 0x2ccd4
movq -0x1440(%rbp), %rax
movq %rax, -0xdf8(%rbp)
leaq -0xdb8(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0xe30(%rbp), %rdi
callq 0x3c020
jmp 0x2cd07
leaq -0xe20(%rbp), %rdi
movq %rdi, -0x1448(%rbp)
leaq -0xe30(%rbp), %rsi
callq 0x2e530
movq -0x1448(%rbp), %rdi
callq 0x12af0
movq %rax, %rsi
leaq -0xe10(%rbp), %rdi
callq 0x386a0
jmp 0x2cd3e
leaq -0xe10(%rbp), %rdi
callq 0x2e040
movq %rax, %rdi
callq 0x3be40
movq %rax, -0x1450(%rbp)
jmp 0x2cd5b
movq -0x1450(%rbp), %rax
movq %rax, -0xe00(%rbp)
leaq -0xe10(%rbp), %rdi
callq 0x99e0
leaq -0xe20(%rbp), %rdi
callq 0x12910
leaq -0xe30(%rbp), %rdi
callq 0x11f60
movl -0xdf8(%rbp), %edi
movl -0xe00(%rbp), %eax
subl %eax, %edi
movl $0x2, %esi
callq 0x12a90
movsd %xmm0, -0x1458(%rbp)
jmp 0x2cdaf
movl -0xdf4(%rbp), %edi
movl -0xdfc(%rbp), %eax
subl %eax, %edi
movl $0x2, %esi
callq 0x12a90
movsd %xmm0, -0x1460(%rbp)
jmp 0x2cdd1
movsd -0x1460(%rbp), %xmm1
movsd -0x1458(%rbp), %xmm0
addsd %xmm1, %xmm0
callq 0x6240
callq 0x64f0
movsd %xmm0, -0xe38(%rbp)
leaq -0xdb8(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, %rdi
callq 0x3be40
movq %rax, -0x1468(%rbp)
jmp 0x2ce1c
movq -0x1468(%rbp), %rax
movq %rax, -0xe40(%rbp)
movl -0xdf8(%rbp), %edi
movl -0xe40(%rbp), %eax
subl %eax, %edi
movl $0x2, %esi
callq 0x12a90
movsd %xmm0, -0x1470(%rbp)
jmp 0x2ce4c
movl -0xdf4(%rbp), %edi
movl -0xe3c(%rbp), %eax
subl %eax, %edi
movl $0x2, %esi
callq 0x12a90
movsd %xmm0, -0x1478(%rbp)
jmp 0x2ce6e
movsd -0x1478(%rbp), %xmm1
movsd -0x1470(%rbp), %xmm0
addsd %xmm1, %xmm0
callq 0x6240
callq 0x64f0
movsd %xmm0, -0xe48(%rbp)
movsd -0xe38(%rbp), %xmm0
movsd 0x1065c(%rip), %xmm1    # 0x3d500
ucomisd %xmm1, %xmm0
jne 0x2ceae
jp 0x2ceae
jmp 0x2cece
movsd -0xe48(%rbp), %xmm0
movsd 0x10642(%rip), %xmm1    # 0x3d500
ucomisd %xmm1, %xmm0
jne 0x2d4fb
jp 0x2d4fb
movq -0x1160(%rbp), %rdi
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0xe60(%rbp), %rdi
callq 0x3bf60
jmp 0x2cef2
leaq -0xe60(%rbp), %rdi
callq 0x2e3e0
movq %rax, %rdi
callq 0x34760
movsd %xmm0, -0x1480(%rbp)
jmp 0x2cf10
leaq -0xe60(%rbp), %rdi
callq 0x11fa0
movsd -0x1480(%rbp), %xmm0
movsd %xmm0, -0xe50(%rbp)
leaq -0xfe8(%rbp), %rdi
callq 0x6200
jmp 0x2cf3a
leaq -0xfd8(%rbp), %rdi
leaq 0x1e78(%rip), %rsi      # 0x2edc0
callq 0x60f0
movq %rax, -0x1488(%rbp)
jmp 0x2cf56
movl $0x2, %edi
callq 0x2edf0
movl %eax, -0x148c(%rbp)
jmp 0x2cf68
movq -0x1488(%rbp), %rdi
movl -0x148c(%rbp), %eax
movl %eax, -0xfec(%rbp)
movl -0xfec(%rbp), %esi
callq 0x6490
movq %rax, -0x1498(%rbp)
jmp 0x2cf8f
movq -0x1160(%rbp), %rdi
movsd -0xe50(%rbp), %xmm0
movsd %xmm0, -0x14a8(%rbp)
addq $0xf8, %rdi
callq 0x2e020
movq %rax, %rdi
callq 0x34760
movsd %xmm0, -0x14a0(%rbp)
jmp 0x2cfc4
movq -0x1498(%rbp), %rdi
movsd -0x14a0(%rbp), %xmm1
movsd -0x14a8(%rbp), %xmm0
subsd %xmm1, %xmm0
callq 0x6590
jmp 0x2cfe6
movq -0x1160(%rbp), %rdi
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x1010(%rbp), %rdi
callq 0x3bf60
jmp 0x2d00a
leaq -0x1000(%rbp), %rdi
movq %rdi, -0x14b8(%rbp)
leaq -0x1010(%rbp), %rsi
callq 0x2e600
movq -0x14b8(%rbp), %rdi
callq 0x2e020
movq %rax, -0x14b0(%rbp)
leaq -0xdb8(%rbp), %rdi
callq 0x1e350
movq %rax, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x1050(%rbp), %rdi
callq 0x3c020
jmp 0x2d05c
leaq -0x1040(%rbp), %rdi
movq %rdi, -0x14c0(%rbp)
leaq -0x1050(%rbp), %rsi
callq 0x2eed0
movq -0x14c0(%rbp), %rdi
callq 0x12af0
movq %rax, %rsi
leaq -0x1030(%rbp), %rdi
callq 0x38670
jmp 0x2d093
leaq -0x1020(%rbp), %rdi
movq %rdi, -0x14d0(%rbp)
leaq -0x1030(%rbp), %rsi
callq 0x2ee70
movq -0x14d0(%rbp), %rdi
callq 0x2ef20
movq -0x14b0(%rbp), %rdi
movq %rax, %rsi
movq (%rdi), %rax
movq 0x8(%rax), %rax
callq *%rax
movb %al, -0x14c1(%rbp)
jmp 0x2d0d4
leaq -0x1020(%rbp), %rdi
callq 0x12b30
leaq -0x1030(%rbp), %rdi
callq 0x12b30
leaq -0x1040(%rbp), %rdi
callq 0x12910
leaq -0x1050(%rbp), %rdi
callq 0x11f60
leaq -0x1000(%rbp), %rdi
callq 0x9960
leaq -0x1010(%rbp), %rdi
callq 0x11fa0
movb -0x14c1(%rbp), %al
movq -0x1160(%rbp), %rdi
andb $0x1, %al
movb %al, -0xfed(%rbp)
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x10e0(%rbp), %rdi
callq 0x3bf60
jmp 0x2d14e
leaq -0x10e0(%rbp), %rdi
callq 0x2e3e0
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x10d0(%rbp), %rdi
callq *%rax
jmp 0x2d16e
leaq 0x10d14(%rip), %rdx     # 0x3de89
leaq -0x10b0(%rbp), %rdi
leaq -0x10d0(%rbp), %rsi
callq 0x2e400
jmp 0x2d18a
leaq -0x1100(%rbp), %rdi
leaq -0xfe8(%rbp), %rsi
callq 0x62d0
jmp 0x2d19f
leaq -0x1090(%rbp), %rdi
leaq -0x10b0(%rbp), %rsi
leaq -0x1100(%rbp), %rdx
callq 0x2e6b0
jmp 0x2d1bb
leaq 0x10caa(%rip), %rdx     # 0x3de6c
leaq -0x1070(%rbp), %rdi
leaq -0x1090(%rbp), %rsi
callq 0x2e400
jmp 0x2d1d7
leaq -0x30(%rbp), %rdi
leaq -0x1070(%rbp), %rsi
callq 0x63f0
jmp 0x2d1e9
leaq -0x1070(%rbp), %rdi
callq 0x61c0
leaq -0x1090(%rbp), %rdi
callq 0x61c0
leaq -0x1100(%rbp), %rdi
callq 0x61c0
leaq -0x10b0(%rbp), %rdi
callq 0x61c0
leaq -0x10d0(%rbp), %rdi
callq 0x61c0
leaq -0x10e0(%rbp), %rdi
callq 0x11fa0
testb $0x1, -0xfed(%rbp)
je 0x2d4cf
movq -0x1160(%rbp), %rdi
addq $0xb8, %rdi
callq 0x2e040
movq %rax, %rsi
leaq -0x1150(%rbp), %rdi
callq 0x3bf60
jmp 0x2d262
leaq -0x1150(%rbp), %rdi
callq 0x2e3e0
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x1140(%rbp), %rdi
callq *%rax
jmp 0x2d282
leaq 0x10be8(%rip), %rdx     # 0x3de71
leaq -0x1120(%rbp), %rdi
leaq -0x1140(%rbp), %rsi
callq 0x2e400
jmp 0x2d29e
leaq -0x30(%rbp), %rdi
leaq -0x1120(%rbp), %rsi
callq 0x63f0
movq %rax, -0x14d8(%rbp)
jmp 0x2d2b7
movq -0x14d8(%rbp), %rsi
movq -0x1170(%rbp), %rdi
callq 0x6130
jmp 0x2d2cc
leaq -0x1120(%rbp), %rdi
callq 0x61c0
leaq -0x1140(%rbp), %rdi
callq 0x61c0
leaq -0x1150(%rbp), %rdi
callq 0x11fa0
movl $0x1, -0x4c(%rbp)
jmp 0x2d4d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d322
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe10(%rbp), %rdi
callq 0x99e0
leaq -0xe20(%rbp), %rdi
callq 0x12910
leaq -0xe30(%rbp), %rdi
callq 0x11f60
jmp 0x2d53e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe60(%rbp), %rdi
callq 0x11fa0
jmp 0x2d53e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d4ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d3c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d3ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1020(%rbp), %rdi
callq 0x12b30
leaq -0x1030(%rbp), %rdi
callq 0x12b30
leaq -0x1040(%rbp), %rdi
callq 0x12910
leaq -0x1050(%rbp), %rdi
callq 0x11f60
leaq -0x1000(%rbp), %rdi
callq 0x9960
leaq -0x1010(%rbp), %rdi
callq 0x11fa0
jmp 0x2d4ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d473
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d467
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d45b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d44f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d443
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1070(%rbp), %rdi
callq 0x61c0
leaq -0x1090(%rbp), %rdi
callq 0x61c0
leaq -0x1100(%rbp), %rdi
callq 0x61c0
leaq -0x10b0(%rbp), %rdi
callq 0x61c0
leaq -0x10d0(%rbp), %rdi
callq 0x61c0
leaq -0x10e0(%rbp), %rdi
callq 0x11fa0
jmp 0x2d4ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d4c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x2d4b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1120(%rbp), %rdi
callq 0x61c0
leaq -0x1140(%rbp), %rdi
callq 0x61c0
leaq -0x1150(%rbp), %rdi
callq 0x11fa0
jmp 0x2d4ed
movl $0x0, -0x4c(%rbp)
leaq -0xfe8(%rbp), %rdi
callq 0x6220
movl -0x4c(%rbp), %eax
testl %eax, %eax
jne 0x2d525
jmp 0x2d4eb
jmp 0x2d4fb
leaq -0xfe8(%rbp), %rdi
callq 0x6220
jmp 0x2d53e
jmp 0x2d4fd
leaq -0xdb8(%rbp), %rdi
callq 0x2ece0
jmp 0x2cb66
movq -0x1170(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x61a0
movl $0x1, -0x4c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x61c0
movq -0x1168(%rbp), %rax
addq $0x14e0, %rsp           # imm = 0x14E0
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x61c0
movq -0x40(%rbp), %rdi
callq 0x6540