// File: /workspace/github_cpp_makefile_star2_O3/kaiming[P]Chamber-Crawler-3k/Board/board.cc
// Function: Board::movePlayer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
std::string Board::movePlayer(std::string direction) {
    std::shared_ptr<WalkableTile> destination = validDest(player, direction);
    std::string message = "";

    // Check if valid destination
    if (destination == nullptr) {
        return "Invalid Move Target. ";
    }

    // Check if destination is exit
    if (destination->isExit()) {
        if (floorNum == static_cast<int>(floors.size())) {
            // Game completed
            return "Dungeon cleared. You win!";
        } else {
            // Proceed to next floor
            changeFloor();
            return "Floor " + std::to_string(floorNum - 1) + " cleared. Proceeding to next floor. ";
        }
        
    }

    // Check if destination is occupied by an enemy
    if (destination->getOccupant() != nullptr) {
        return "Target Tile occupied by Enemy. ";
    }

    // Check if destination is occupied by a potion
    if (destination->getPotion() != nullptr) {
        // DLC EXTENSION LOCATION: Change this behaviour if we want to make potions walk-over to use
        return "Target Tile occupied by Potion. ";
    }

    // Check if destination is occupied by gold
    if (destination->getGold() != nullptr) {
        
        // Get gold pointer
        std::shared_ptr<Gold> gold = destination->getGold();
        
        // Check if Dragon Hoard
        if (std::dynamic_pointer_cast<DragonHoard>(gold)) {
            // Check if dragon is dead
            if (std::dynamic_pointer_cast<DragonHoard>(gold)->getDragon()->getState() == false) {
                // Dragon is dead
                // Player picks up gold
                std::dynamic_pointer_cast<Player>(player->getOccupant())->setGold(std::dynamic_pointer_cast<Player>(player->getOccupant())->getGold() + gold->getSize());
                // Gold is consumed
                message = gold->getType() + ", value " + std::to_string(gold->getSize()) + ", picked up. ";

                // Remove from dragonHoards
                for (auto it = dragonHoards[floorNum-1].begin(); it != dragonHoards[floorNum-1].end(); it++) {
                    if ((*it)->getGold() == gold) {
                        dragonHoards[floorNum-1].erase(it);
                        break;
                    }
                }

                destination->setGold(nullptr); 
            }

            // Dragon is still alive; Else do nothing

        } else {
            // Player picks up gold
            std::dynamic_pointer_cast<Player>(player->getOccupant())->setGold(std::dynamic_pointer_cast<Player>(player->getOccupant())->getGold() + gold->getSize());
            // Gold is consumed
            message = gold->getType() + ", value " + std::to_string(gold->getSize()) + ", picked up. ";
            destination->setGold(nullptr); 
        }
    

    }

    // Move the Player
    player = player->move(destination);
    message = playerPtr->getRace() + " moved " + direction + ". " + message;

    // Potion detection
    // Check surrounding tiles for potions
    std::shared_ptr<WalkableTile> target = 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");

    for (int i = 0; i < static_cast<int>(directions.size()); i++) {
        // Check if the direction is a WalkableTile and has a potion
        target = validDest(player, directions[i]);
        if (target && target->getPotion()) {
            // Potion found 
            std::string type = target->getPotion()->getType();

            // Search to see if type is in potionsUsed
            if (std::find(potionsUsed.begin(), potionsUsed.end(), type) != potionsUsed.end()) {
                // Potion found
                message += playerPtr->getRace() + " sees a " + type + " potion. ";
            } else {
                // Potion not found
                message += playerPtr->getRace() + " sees an unknown potion. ";
            }
        }
    }

    // Exit not reached
    return message;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq 0xb8(%rsi), %rax
movq %rax, 0x140(%rsp)
movq 0xc0(%rsi), %rax
movq %rax, 0x148(%rsp)
testq %rax, %rax
je 0xf47a
movq 0x15b54(%rip), %rcx     # 0x24fc0
cmpb $0x0, (%rcx)
je 0xf476
incl 0x8(%rax)
jmp 0xf47a
lock
incl 0x8(%rax)
leaq 0x160(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
leaq 0x150(%rsp), %rdi
callq 0x7898
leaq 0xf0(%rsp), %rdi
leaq 0x140(%rsp), %rdx
leaq 0x150(%rsp), %rcx
movq %r14, %rsi
callq 0xe860
movq 0x150(%rsp), %rdi
cmpq %r12, %rdi
je 0xf4db
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x148(%rsp), %rdi
testq %rdi, %rdi
je 0xf4ed
callq 0x7828
leaq 0xd8(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0xc98f(%rip), %rdx      # 0x1be8f
leaq 0xc8(%rsp), %rdi
movq %rdx, %rsi
callq 0x79f2
movq 0xf0(%rsp), %r12
testq %r12, %r12
je 0xf569
movq %r12, %rdi
callq 0x1aa4e
testb %al, %al
je 0xf58b
movq 0x8(%r14), %rax
subq (%r14), %rax
shrq $0x3, %rax
imull $0xaaaaaaab, %eax, %eax # imm = 0xAAAAAAAB
cmpl %eax, 0x108(%r14)
jne 0xf5e4
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0xbdc4(%rip), %rsi      # 0x1b319
leaq 0xbdd6(%rip), %rdx      # 0x1b332
movq %rbx, %rdi
callq 0x79f2
jmp 0x10797
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0xc771(%rip), %rsi      # 0x1bce8
leaq 0xc77f(%rip), %rdx      # 0x1bcfd
movq %rbx, %rdi
callq 0x79f2
jmp 0x10797
movq %rbx, 0xe8(%rsp)
movq %rsp, %rdi
movq %r12, %rsi
callq 0x1a98e
movq (%rsp), %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xf5b1
callq 0x7828
testq %rbx, %rbx
je 0xf65d
movq 0xe8(%rsp), %rbx
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0xc75a(%rip), %rsi      # 0x1bd2a
leaq 0xc772(%rip), %rdx      # 0x1bd49
movq %rbx, %rdi
callq 0x79f2
jmp 0x10797
movq %r14, %rdi
callq 0xf224
movq %rbx, %r12
movl 0x108(%r14), %ebx
decl %ebx
movl %ebx, %ebp
negl %ebp
cmovsl %ebx, %ebp
movl $0x1, %r14d
cmpl $0xa, %ebp
jb 0xf739
movl $0x4, %r14d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0xf730
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0xf736
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0xf739
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r14d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0xf61b
addl $-0x3, %r14d
jmp 0xf739
movq %rsp, %rdi
movq %r12, %rsi
callq 0x1a9ce
movq (%rsp), %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xf67b
callq 0x7828
testq %rbx, %rbx
je 0xf6aa
movq 0xe8(%rsp), %rbx
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0xc6b4(%rip), %rsi      # 0x1bd4a
leaq 0xc6cd(%rip), %rdx      # 0x1bd6a
movq %rbx, %rdi
callq 0x79f2
jmp 0x10797
movq %rsp, %rdi
movq %r12, %rsi
callq 0x1aa0e
movq (%rsp), %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xf6c8
callq 0x7828
testq %rbx, %rbx
je 0xfe18
leaq 0x60(%rsp), %rdi
movq %r12, %rsi
callq 0x1aa0e
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0xf855
leaq 0x1524d(%rip), %rsi     # 0x24940
leaq 0x14db6(%rip), %rdx     # 0x244b0
xorl %ecx, %ecx
callq 0x5230
testq %rax, %rax
je 0xf855
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0xfabc
movq 0x158a1(%rip), %rax     # 0x24fc0
cmpb $0x0, (%rax)
je 0xfab3
incl 0x8(%rdi)
jmp 0xfab7
addl $-0x2, %r14d
jmp 0xf739
decl %r14d
shrl $0x1f, %ebx
leal (%r14,%rbx), %esi
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x20(%rsp), %rdi
movl $0x2d, %edx
callq 0x5260
movl %ebx, %edi
leaq 0x20(%rsp), %r15
addq (%r15), %rdi
movl %r14d, %esi
movl %ebp, %edx
callq 0x775d
leaq 0xc58b(%rip), %rcx      # 0x1bcfe
movl $0x6, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x5220
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
movq %r12, %rbx
je 0xf7ae
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xf7b5
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rsp, %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xc52f(%rip), %rsi      # 0x1bd05
callq 0x53c0
leaq 0x10(%rbx), %rdx
movq %rdx, (%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0xf7fd
movq %rsi, (%rbx)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbx)
jmp 0xf803
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0xf830
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x10797
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10797
movq 0xb8(%r14), %rsi
leaq 0x20(%rsp), %rdi
callq 0x1a98e
movq %rsp, %r13
leaq 0x20(%rsp), %rsi
movq %r13, %rdi
callq 0x15c74
movq (%r13), %r13
movq 0xb8(%r14), %rsi
leaq 0x80(%rsp), %rdi
callq 0x1a98e
leaq 0x40(%rsp), %rbp
leaq 0x80(%rsp), %rsi
movq %rbp, %rdi
callq 0x15c74
movq (%rbp), %rdi
callq 0x18df8
movl %eax, %ebp
movq 0x60(%rsp), %rdi
callq 0x18468
addl %ebp, %eax
movq %r13, %rdi
movl %eax, %esi
callq 0x18dfc
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0xf8d3
callq 0x7828
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0xf8e5
callq 0x7828
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xf8f4
callq 0x7828
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0xf903
callq 0x7828
movq 0x60(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x1846c
leaq 0xc44f(%rip), %rsi      # 0x1bd6b
leaq 0x80(%rsp), %rdi
callq 0x53c0
leaq 0x50(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf950
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0xf957
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x60(%rsp), %rdi
callq 0x18468
leaq 0xa8(%rsp), %rdi
movl %eax, %esi
callq 0x15b6e
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x15cd8
leaq 0xc3ce(%rip), %rsi      # 0x1bd74
leaq 0x20(%rsp), %rdi
callq 0x53c0
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf9d6
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xf9dc
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rsp, %r13
movq %rdx, 0x8(%r13)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xc8(%rsp), %rdi
movq %r13, %rsi
callq 0x5270
movq (%r13), %rdi
cmpq %rbx, %rdi
je 0xfa1c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfa37
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfa58
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x40(%rsp), %rdi
cmpq %rbp, %rdi
je 0xfa6f
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfa90
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x51f0
xorps %xmm0, %xmm0
leaq 0x170(%rsp), %rsi
movaps %xmm0, (%rsi)
movq %r12, %rdi
callq 0x1aa3a
movq 0x178(%rsp), %rdi
jmp 0xfdf7
lock
incl 0x8(%rdi)
callq 0x7828
leaq 0x20(%rsp), %r12
leaq 0x60(%rsp), %rsi
movq %r12, %rdi
callq 0x15c10
movq (%r12), %rsi
movq %rsp, %rdi
callq 0x182ee
movq (%rsp), %rdi
callq 0x16848
movl %eax, %ebp
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xfaf4
callq 0x7828
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0xfb03
callq 0x7828
testb %bpl, %bpl
jne 0xfe01
movq 0xb8(%r14), %rsi
leaq 0x20(%rsp), %rdi
callq 0x1a98e
movq %rsp, %r12
leaq 0x20(%rsp), %rsi
movq %r12, %rdi
callq 0x15c74
movq (%r12), %r12
movq 0xb8(%r14), %rsi
leaq 0x80(%rsp), %rdi
callq 0x1a98e
leaq 0x40(%rsp), %r13
leaq 0x80(%rsp), %rsi
movq %r13, %rdi
callq 0x15c74
movq (%r13), %rdi
callq 0x18df8
movl %eax, %ebp
movq 0x60(%rsp), %rdi
callq 0x18468
addl %ebp, %eax
movq %r12, %rdi
movl %eax, %esi
callq 0x18dfc
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0xfb8a
callq 0x7828
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0xfb9c
callq 0x7828
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xfbab
callq 0x7828
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0xfbba
callq 0x7828
movq 0x60(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x1846c
leaq 0xc198(%rip), %rsi      # 0x1bd6b
leaq 0x80(%rsp), %rdi
callq 0x53c0
leaq 0x50(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfc07
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0xfc0f
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x60(%rsp), %rdi
callq 0x18468
leaq 0xa8(%rsp), %rdi
movl %eax, %esi
callq 0x15b6e
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x15cd8
leaq 0xc116(%rip), %rsi      # 0x1bd74
leaq 0x20(%rsp), %rdi
callq 0x53c0
leaq 0x10(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfc8e
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xfc94
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rsp, %r12
movq %rdx, 0x8(%r12)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xc8(%rsp), %rdi
movq %r12, %rsi
callq 0x5270
movq (%r12), %rdi
cmpq %rbx, %rdi
je 0xfcd5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfcf0
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd11
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
je 0xfd28
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xfd49
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x51f0
movslq 0x108(%r14), %rax
movq 0x70(%r14), %rcx
leaq (%rax,%rax,2), %rax
movq -0x18(%rcx,%rax,8), %rbx
cmpq -0x10(%rcx,%rax,8), %rbx
je 0xfdd4
movq %rbx, %r12
negq %r12
movq (%rbx), %rsi
movq %rsp, %rdi
callq 0x1aa0e
movq (%rsp), %rbp
movq 0x8(%rsp), %rdi
movq 0x60(%rsp), %r13
testq %rdi, %rdi
je 0xfd8d
callq 0x7828
cmpq %r13, %rbp
je 0xfdb2
addq $0x10, %rbx
movslq 0x108(%r14), %rax
movq 0x70(%r14), %rcx
leaq (%rax,%rax,2), %rax
addq $-0x10, %r12
cmpq -0x10(%rcx,%rax,8), %rbx
jne 0xfd6a
jmp 0xfdd4
movslq 0x108(%r14), %rax
movq 0x70(%r14), %rcx
leaq (%rax,%rax,2), %rax
leaq (%rcx,%rax,8), %rdi
addq $-0x18, %rdi
negq %r12
movq %r12, %rsi
callq 0x162e2
movq 0xf0(%rsp), %rdi
xorps %xmm0, %xmm0
leaq 0x180(%rsp), %rsi
movaps %xmm0, (%rsi)
callq 0x1aa3a
movq 0x188(%rsp), %rdi
testq %rdi, %rdi
je 0xfe01
callq 0x7828
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
je 0xfe10
callq 0x7828
movq 0xf0(%rsp), %r12
movq 0xb8(%r14), %rsi
movq %r12, 0x130(%rsp)
movq 0xf8(%rsp), %rax
movq %rax, 0x138(%rsp)
testq %rax, %rax
je 0xfe51
movq 0x1517d(%rip), %rcx     # 0x24fc0
cmpb $0x0, (%rcx)
je 0xfe4d
incl 0x8(%rax)
jmp 0xfe51
lock
incl 0x8(%rax)
movq %rsp, %rdi
leaq 0x130(%rsp), %rdx
callq 0x1aa60
movaps (%rsp), %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, (%rsp)
movq 0xc0(%r14), %rdi
movups %xmm0, 0xb8(%r14)
testq %rdi, %rdi
je 0xfe94
callq 0x7828
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xfe94
callq 0x7828
movq 0x138(%rsp), %rdi
testq %rdi, %rdi
je 0xfea6
callq 0x7828
movq 0xf8(%r14), %rsi
movq (%rsi), %rax
leaq 0xa8(%rsp), %rdi
callq *(%rax)
leaq 0xbec1(%rip), %rsi      # 0x1bd82
leaq 0xa8(%rsp), %rdi
callq 0x53c0
leaq 0x90(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xfefe
movq %rdx, 0x80(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x90(%rsp)
jmp 0xff04
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
leaq 0x80(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
callq 0x50b0
leaq 0x50(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xff56
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0xff5c
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xbf0e(%rip), %rsi      # 0x1be8d
callq 0x53c0
leaq 0x30(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xffab
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0xffb3
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0xc8(%rsp), %rsi
movq 0xd0(%rsp), %rdx
callq 0x50b0
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1000b
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x10013
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rsp, %r15
movq %rdx, 0x8(%r15)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
callq 0x5270
movq (%r15), %rdi
cmpq %r12, %rdi
je 0x10052
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x10069
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x10085
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x80(%rsp), %rdi
cmpq %rbx, %rdi
je 0x100a2
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x100c3
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
xorps %xmm0, %xmm0
movaps %xmm0, 0x60(%rsp)
movq $0x0, 0x70(%rsp)
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xb220(%rip), %rsi      # 0x1b301
leaq 0xb21b(%rip), %rdx      # 0x1b303
callq 0x79f2
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15d80
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10110
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xb1ea(%rip), %rsi      # 0x1b307
leaq 0xb1e5(%rip), %rdx      # 0x1b309
callq 0x79f2
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15d80
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1014c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xb1ab(%rip), %rsi      # 0x1b304
leaq 0xb1a6(%rip), %rdx      # 0x1b306
callq 0x79f2
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15d80
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10188
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xb175(%rip), %rsi      # 0x1b30a
leaq 0xb170(%rip), %rdx      # 0x1b30c
callq 0x79f2
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15d80
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x101c4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xb13c(%rip), %rsi      # 0x1b30d
leaq 0xb137(%rip), %rdx      # 0x1b30f
callq 0x79f2
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15d80
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10200
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xb103(%rip), %rsi      # 0x1b310
leaq 0xb0fe(%rip), %rdx      # 0x1b312
callq 0x79f2
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15d80
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1023c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xb0ca(%rip), %rsi      # 0x1b313
leaq 0xb0c5(%rip), %rdx      # 0x1b315
callq 0x79f2
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15d80
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x10278
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0xb091(%rip), %rsi      # 0x1b316
leaq 0xb08c(%rip), %rdx      # 0x1b318
callq 0x79f2
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15d80
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x102b4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
subq %rax, %rcx
shrq $0x5, %rcx
testl %ecx, %ecx
jle 0x10707
movl $0x8, %ebx
xorl %r13d, %r13d
leaq 0x40(%rsp), %r15
movq $0x0, 0xa0(%rsp)
movq %r15, %rbp
movq 0xa0(%rsp), %r15
movq 0xb8(%r14), %rcx
movq %rcx, 0x120(%rsp)
movq 0xc0(%r14), %rcx
movq %rcx, 0x128(%rsp)
testq %rcx, %rcx
je 0x1032d
movq 0x14ca5(%rip), %rdx     # 0x24fc0
cmpb $0x0, (%rdx)
leaq 0x100(%rsp), %r12
je 0x10337
incl 0x8(%rcx)
jmp 0x10340
leaq 0x100(%rsp), %r12
jmp 0x10340
lock
incl 0x8(%rcx)
movq 0x60(%rsp), %rax
leaq 0x110(%rsp), %rcx
movq %rcx, 0x100(%rsp)
movq -0x8(%rax,%rbx), %rsi
movq (%rax,%rbx), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x7898
movq %rsp, %rdi
movq %r14, %rsi
leaq 0x120(%rsp), %rdx
movq %r12, %rcx
callq 0xe860
movq (%rsp), %r12
movq 0x8(%rsp), %rax
movq %rax, 0xa0(%rsp)
testq %r15, %r15
je 0x10398
movq %r15, %rdi
callq 0x7828
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x103bd
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
movq %rbp, %r15
je 0x103d2
callq 0x7828
testq %r12, %r12
je 0x106e1
movq %rsp, %rdi
movq %r12, %rsi
callq 0x1a9ce
movq (%rsp), %r15
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x103f9
callq 0x7828
testq %r15, %r15
movq %rbp, %r15
je 0x106e1
leaq 0x20(%rsp), %rdi
movq %r12, %rsi
callq 0x1a9ce
movq 0x20(%rsp), %rsi
movq %rsp, %rdi
callq 0x19e04
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x1042e
callq 0x7828
movq 0xc8(%r14), %rdi
movq 0xd0(%r14), %rsi
movq %rsp, %rdx
callq 0x16379
cmpq 0xd0(%r14), %rax
leaq 0xa8(%rsp), %rdi
je 0x104a7
movq 0xf8(%r14), %rsi
movq (%rsi), %rax
movq %rdi, %r12
callq *(%rax)
movq %r12, %rdi
leaq 0xb91c(%rip), %rsi      # 0x1bd8a
callq 0x53c0
leaq 0x90(%rsp), %rsi
movq %rsi, 0x80(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x104f4
movq %rdx, 0x80(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x90(%rsp)
jmp 0x104fa
movq 0xf8(%r14), %rsi
movq (%rsi), %rax
movq %r15, %rdi
callq *(%rax)
movq %r15, %rdi
leaq 0xb8d3(%rip), %rsi      # 0x1bd93
callq 0x53c0
leaq 0x30(%rsp), %rsi
movq %rsi, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x10659
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x1065f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x88(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
leaq 0x80(%rsp), %rdi
callq 0x50b0
leaq 0x50(%rsp), %rsi
movq %rsi, 0x40(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x10553
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x10559
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x48(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %r15, %rdi
leaq 0xb828(%rip), %rsi      # 0x1bda3
callq 0x53c0
leaq 0x30(%rsp), %rsi
movq %rsi, 0x20(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x105a8
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x105ae
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
leaq 0xc8(%rsp), %rdi
callq 0x50b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x105f9
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x10615
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x1063a
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x106c6
movq 0xb8(%rsp), %rsi
jmp 0x106be
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
leaq 0xc8(%rsp), %rdi
callq 0x50b0
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x106aa
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x106c6
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x51f0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x106e1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
incq %r13
movq 0x60(%rsp), %rax
movq 0x68(%rsp), %rcx
subq %rax, %rcx
shrq $0x5, %rcx
movslq %ecx, %rcx
addq $0x20, %rbx
cmpq %rcx, %r13
jl 0x102e6
jmp 0x10713
movq $0x0, 0xa0(%rsp)
movq 0xe8(%rsp), %rbx
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
movq 0xc8(%rsp), %rcx
leaq 0xd8(%rsp), %r13
cmpq %r13, %rcx
je 0x10748
movq %rcx, (%rbx)
movq 0xd8(%rsp), %rax
movq %rax, 0x10(%rbx)
jmp 0x10750
movups (%r13), %xmm0
movups %xmm0, (%rax)
movq 0xa0(%rsp), %r14
movq 0xd0(%rsp), %rax
movq %rax, 0x8(%rbx)
movq %r13, 0xc8(%rsp)
movq $0x0, 0xd0(%rsp)
movb $0x0, 0xd8(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x77ca
testq %r14, %r14
je 0x10797
movq %r14, %rdi
callq 0x7828
movq 0xc8(%rsp), %rdi
cmpq %r13, %rdi
je 0x107b4
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x107c6
callq 0x7828
movq %rbx, %rax
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x10a55
movq %rax, %rbx
movq 0x188(%rsp), %rdi
jmp 0x10a49
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10813
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10813
movq %rax, %rbx
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1084d
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x1084d
jmp 0x108c5
jmp 0x10a55
jmp 0x108cf
jmp 0x10a55
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r13, %rdi
jne 0x108ee
jmp 0x108fb
jmp 0x108cf
movq %rax, %rbx
jmp 0x10a44
jmp 0x10a11
movq %rax, %rbx
movq 0x178(%rsp), %rdi
jmp 0x10a49
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x108a2
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x108a2
movq %rax, %rbx
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x108e4
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x108e4
movq %rax, %rbx
jmp 0x108fb
jmp 0x10a55
movq %rax, %rbx
jmp 0x10a35
jmp 0x10a55
jmp 0x10be7
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %rbp, %rdi
je 0x108fb
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10a58
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10a58
jmp 0x10941
jmp 0x1095c
jmp 0x10941
jmp 0x1095c
jmp 0x10941
jmp 0x1095c
jmp 0x10941
jmp 0x1095c
jmp 0x10941
jmp 0x1095c
jmp 0x10941
jmp 0x1095c
jmp 0x10941
jmp 0x1095c
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x1095f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x1095f
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x77ca
jmp 0x10c55
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r13, %rdi
je 0x1098d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x1098d
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x109ae
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x109ae
movq %rax, %rbx
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x109d8
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x109d8
movq %rax, %rbx
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x10c55
movq 0xb8(%rsp), %rsi
jmp 0x10af1
jmp 0x10be7
movq %rax, %rbx
movq 0x138(%rsp), %rdi
jmp 0x10a5d
jmp 0x10be7
movq %rax, %rbx
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x10a23
callq 0x7828
movq 0x88(%rsp), %rdi
testq %rdi, %rdi
je 0x10a35
callq 0x7828
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x10a44
callq 0x7828
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x10a58
callq 0x7828
jmp 0x10a58
movq %rax, %rbx
movq 0x68(%rsp), %rdi
testq %rdi, %rdi
jne 0x10c50
jmp 0x10c55
jmp 0x10be7
jmp 0x10be7
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x10a99
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10a99
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x10bc3
movq 0x50(%rsp), %rsi
jmp 0x10b9e
jmp 0x10bc0
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x10ad9
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10ad9
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x10c55
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10c55
jmp 0x10be7
jmp 0x10be7
jmp 0x10be7
movq %rax, %rbx
jmp 0x10b81
jmp 0x10bc0
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x10b3b
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10b3b
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x10b5c
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10b5c
movq %rax, %rbx
movq 0x80(%rsp), %rdi
leaq 0x90(%rsp), %rax
cmpq %rax, %rdi
je 0x10b81
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x10bc3
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10bc3
jmp 0x10be7
movq %rax, %rbx
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x10c33
callq 0x7828
jmp 0x10c33
jmp 0x10be2
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x10c33
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10c33
jmp 0x10be7
movq %rax, %rbx
jmp 0x10c33
movq %rax, %rbx
jmp 0x10c55
movq %rax, %rbx
jmp 0x10c19
movq %rax, %rbx
movq 0x100(%rsp), %rdi
leaq 0x110(%rsp), %rax
cmpq %rax, %rdi
je 0x10c19
movq 0x110(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x128(%rsp), %rdi
testq %rdi, %rdi
je 0x10c2b
callq 0x7828
movq %r15, 0xa0(%rsp)
leaq 0x60(%rsp), %rdi
callq 0x77ca
cmpq $0x0, 0xa0(%rsp)
je 0x10c55
movq 0xa0(%rsp), %rdi
callq 0x7828
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x10c7a
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0xf8(%rsp), %rdi
testq %rdi, %rdi
je 0x10c8c
callq 0x7828
movq %rbx, %rdi
callq 0x5380
movq %rax, %rbx
jmp 0x10c7a
movq %rax, %rbx
movq 0x150(%rsp), %rdi
cmpq %r12, %rdi
je 0x10cbe
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0x10cbe
movq %rax, %rbx
movq 0x148(%rsp), %rdi
jmp 0x10c82