// File: millanek[P]Dsuite/./Dsuite_fBranch.h
// Function: Tree::Tree(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
Tree(string treeString) {
        // First take care of any branch lengths
        std::regex branchLengths(":.*?(?=,|\\))");
        string treeNoBranchLengths = std::regex_replace(treeString,branchLengths,"");
        std::vector<string> tmpBranchEndNodeId;
        std::vector<string> tmpBranchStartNodeId;
        int numberOfInternalNodes = 0;
        std::regex sistersRegEx("\\(([a-zA-Z0-9.[:s:]_-]+),([a-zA-Z0-9.[:s:]_-]+)\\)");
        std::regex sistersRegExNoGroups("\\([a-zA-Z0-9.[:s:]_-]+,[a-zA-Z0-9.[:s:]_-]+\\)");
        std::regex comma(",");
        std::smatch match;
        string workingTreeCopy = treeNoBranchLengths;
        while (std::regex_search(workingTreeCopy,match,sistersRegEx)) {
            assert(match.size() == 3);
            // for (auto x:match) std::cout << x << " "; std::cout << std::endl;
            string nodeId = "internalNode"+numToString(numberOfInternalNodes)+"X";
            tmpBranchStartNodeId.push_back(nodeId);
            tmpBranchStartNodeId.push_back(nodeId);
            if (std::count(tmpBranchEndNodeId.begin(),tmpBranchEndNodeId.end(),match[1])) duplicateTreeValueError(match[1]);
            else tmpBranchEndNodeId.push_back(match[1]);
            if (std::count(tmpBranchEndNodeId.begin(),tmpBranchEndNodeId.end(),match[2])) duplicateTreeValueError(match[2]);
            else tmpBranchEndNodeId.push_back(match[2]);
            
            workingTreeCopy = std::regex_replace(workingTreeCopy, sistersRegExNoGroups, nodeId, std::regex_constants::format_first_only);
            // std::cout << workingTreeCopy << std::endl;
            numberOfInternalNodes++;
        }
        if (std::regex_search(workingTreeCopy,comma)) {
            std::cerr << "ERROR: The tree string could not be parsed correctly! The remaining unparsed tree string is:"  << std::endl;
            std::cerr << workingTreeCopy << std::endl;
            exit(1);
        }
        
        // Prepare arrays for temporary branch format.
        std::vector<string> tmp2BranchID;
        std::vector<string> tmp2BranchParentId;
        std::vector<string> tmp2BranchDaughterId1;
        std::vector<string> tmp2BranchDaughterId2;
        std::vector<string> tmp2BranchEndNodeId;
        
        // Prepare the first two branches in temporary format (tmpBranchEndNodeId[-1] and tmpBranchEndNodeId[-2] are the two oldest branches).
        // Test if the first root branch ends in an internal node.
        std::regex internalNodeRegEx("internalNode[0-9]+X");
        tmp2BranchID.push_back("b0");
        tmp2BranchParentId.push_back("treeOrigin");
        tmp2BranchEndNodeId.push_back(tmpBranchEndNodeId[tmpBranchEndNodeId.size()-1]);
        if (std::regex_match(tmpBranchEndNodeId[tmpBranchEndNodeId.size()-1],internalNodeRegEx)) {
            tmp2BranchDaughterId1.push_back("unborn"); tmp2BranchDaughterId2.push_back("unborn");
        } else {
            tmp2BranchDaughterId1.push_back("none"); tmp2BranchDaughterId2.push_back("none");
        }
        // Repeat the above for the second branch.
        // Test if the second root branch ends in an internal node.
        tmp2BranchID.push_back("b1");
        tmp2BranchParentId.push_back("treeOrigin");
        tmp2BranchEndNodeId.push_back(tmpBranchEndNodeId[tmpBranchEndNodeId.size()-2]);
        if (std::regex_match(tmpBranchEndNodeId[tmpBranchEndNodeId.size()-2],internalNodeRegEx)) {
            tmp2BranchDaughterId1.push_back("unborn"); tmp2BranchDaughterId2.push_back("unborn");
        } else {
            tmp2BranchDaughterId1.push_back("none"); tmp2BranchDaughterId2.push_back("none");
        }
        
        // Find out about all remaining branches until either all branches end with extinctions, or all branches have reached the present.
        int branchIdCounter = 2;
        bool treeComplete = false;
        while (!treeComplete) {
            bool change = false;
            //std::cout << "tmp2BranchID.size(): " << tmp2BranchID.size() << std::endl;
            for (int i = 0; i < tmp2BranchID.size(); i++) {
                // if a branch terminated with a speciation event in the past, then add the two daughter branches
                if (tmp2BranchDaughterId1[i] == "unborn" && tmp2BranchDaughterId2[i] == "unborn") {
                    //std::cout << "tmp2BranchEndNodeId.size(): " << tmp2BranchEndNodeId.size() << std::endl;
                    // Find the two branches that have the same start node as this branch's end node.
                    for (int j = 0; j < tmpBranchStartNodeId.size(); j++) {
                       // std::cout << "j: " << j << " i: " << i << std::endl;
                        if (tmpBranchStartNodeId[j] == tmp2BranchEndNodeId[i]) {
                            tmp2BranchID.push_back("b"+numToString(branchIdCounter));
                            //std::cout << "tmp2BranchID.size(): " << tmp2BranchID.size() << " i: " << i << std::endl;
                            tmp2BranchParentId.push_back(tmp2BranchID[i]);
                            //std::cout << "tmpBranchEndNodeId.size(): " << tmpBranchEndNodeId.size() << " j: " << j << std::endl;
                            tmp2BranchEndNodeId.push_back(tmpBranchEndNodeId[j]);
                            if (std::regex_match(tmpBranchEndNodeId[j],internalNodeRegEx)) {
                                tmp2BranchDaughterId1.push_back("unborn");
                                tmp2BranchDaughterId2.push_back("unborn");
                            } else {
                                tmp2BranchDaughterId1.push_back("none");
                                tmp2BranchDaughterId2.push_back("none");
                            }
                            // Update daughter ids of temporary parent.
                            //std::cout << "tmp2BranchDaughterId1.size(): " << tmp2BranchDaughterId1.size() << " i: " << i << std::endl;
                           // std::cout << "tmp2BranchDaughterId2.size(): " << tmp2BranchDaughterId2.size() << " i: " << i << std::endl;
                            if (tmp2BranchDaughterId1[i] == "unborn") {
                                tmp2BranchDaughterId1[i] = "b"+numToString(branchIdCounter);
                            } else {
                                tmp2BranchDaughterId2[i] = "b"+numToString(branchIdCounter);
                            }
                            // Increase the branchIdCounter
                            branchIdCounter += 1;
                            change = true;
                        }
                    }
                }
            }
            if (change == false) treeComplete = true;
        }
        
        // Fill array @branch, and at the same time, add species for terminal branches.
        std::vector<string> species;
        for (int i = 0; i < tmp2BranchID.size(); i++) {
            string speciesId;
            if (std::regex_match(tmp2BranchEndNodeId[i], internalNodeRegEx)) {
                speciesId = "unknown";
            } else {
                speciesId = tmp2BranchEndNodeId[i];
                //if (tmp2BranchParentId[i] != "treeOrigin")
                allSpecies.push_back(speciesId);
            }
            branches.push_back(new Branch(tmp2BranchID[i], tmp2BranchParentId[i], tmp2BranchDaughterId1[i], tmp2BranchDaughterId2[i], speciesId));
            
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x8c0, %rsp            # imm = 0x8C0
movq %rsi, -0x750(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x740(%rbp)
movq %rdi, %rax
movq %rax, -0x748(%rbp)
callq 0x11d80
movq -0x740(%rbp), %rdi
addq $0x18, %rdi
movq %rdi, -0x738(%rbp)
callq 0x49b20
leaq 0x438b7(%rip), %rsi     # 0x8b389
leaq -0x30(%rbp), %rdi
movl $0x10, %edx
callq 0x49de0
jmp 0x47ae2
movq -0x750(%rbp), %rsi
leaq 0x43879(%rip), %rcx     # 0x8b369
leaq -0x60(%rbp), %rdi
leaq -0x30(%rbp), %rdx
xorl %r8d, %r8d
callq 0x49e80
jmp 0x47b02
leaq -0x78(%rbp), %rdi
callq 0x11d80
leaq -0x90(%rbp), %rdi
callq 0x11d80
movl $0x0, -0x94(%rbp)
leaq 0x4386e(%rip), %rsi     # 0x8b396
leaq -0xb8(%rbp), %rdi
movl $0x10, %edx
callq 0x49de0
jmp 0x47b3b
leaq 0x43886(%rip), %rsi     # 0x8b3c8
leaq -0xd8(%rbp), %rdi
movl $0x10, %edx
callq 0x49de0
jmp 0x47b55
leaq 0x437e6(%rip), %rsi     # 0x8b342
leaq -0xf8(%rbp), %rdi
movl $0x10, %edx
callq 0x49de0
jmp 0x47b6f
leaq -0x118(%rbp), %rdi
callq 0x49f60
jmp 0x47b7d
leaq -0x138(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x8250
jmp 0x47b8f
jmp 0x47b91
leaq -0x138(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x49fa0
movb %al, -0x751(%rbp)
jmp 0x47bb5
movb -0x751(%rbp), %al
testb $0x1, %al
jne 0x47bc4
jmp 0x48068
leaq -0x118(%rbp), %rdi
callq 0x4a000
cmpq $0x3, %rax
jne 0x47bdb
jmp 0x47c82
leaq 0x43814(%rip), %rdi     # 0x8b3f6
leaq 0x4381f(%rip), %rsi     # 0x8b408
movl $0x49, %edx
leaq 0x43826(%rip), %rcx     # 0x8b41b
callq 0x83b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4946c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x49463
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x49445
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x49439
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4942d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x49421
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x49415
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x49409
movl -0x94(%rbp), %esi
leaq -0x198(%rbp), %rdi
callq 0x204f0
jmp 0x47c96
leaq 0x43791(%rip), %rsi     # 0x8b42e
leaq -0x178(%rbp), %rdi
leaq -0x198(%rbp), %rdx
callq 0x4a050
jmp 0x47cb2
leaq 0x437f1(%rip), %rdx     # 0x8b4aa
leaq -0x158(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x20300
jmp 0x47cce
leaq -0x178(%rbp), %rdi
callq 0x8c08
leaq -0x198(%rbp), %rdi
callq 0x8c08
leaq -0x90(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x11d10
jmp 0x47cfb
leaq -0x90(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x11d10
jmp 0x47d10
leaq -0x78(%rbp), %rdi
movq %rdi, -0x768(%rbp)
callq 0x10640
movq -0x768(%rbp), %rdi
movq %rax, -0x1a0(%rbp)
callq 0x10670
movq %rax, -0x1a8(%rbp)
leaq -0x118(%rbp), %rdi
movl $0x1, %esi
callq 0x4a0f0
movq %rax, -0x760(%rbp)
jmp 0x47d54
movq -0x760(%rbp), %rdx
movq -0x1a0(%rbp), %rdi
movq -0x1a8(%rbp), %rsi
callq 0x4a0a0
movq %rax, -0x770(%rbp)
jmp 0x47d77
movq -0x770(%rbp), %rax
cmpq $0x0, %rax
je 0x47e3b
leaq -0x118(%rbp), %rdi
movl $0x1, %esi
callq 0x4a0f0
movq %rax, -0x778(%rbp)
jmp 0x47da2
movq -0x778(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
callq 0x4a160
jmp 0x47db7
leaq -0x1c8(%rbp), %rdi
callq 0x7ff40
jmp 0x47dc5
leaq -0x1c8(%rbp), %rdi
callq 0x8c08
jmp 0x47ea7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x47dfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x8c08
leaq -0x198(%rbp), %rdi
callq 0x8c08
jmp 0x49409
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48057
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x8c08
jmp 0x48057
leaq -0x118(%rbp), %rdi
movl $0x1, %esi
callq 0x4a0f0
movq %rax, -0x780(%rbp)
jmp 0x47e55
movq -0x780(%rbp), %rsi
leaq -0x1e8(%rbp), %rdi
callq 0x4a160
jmp 0x47e6a
leaq -0x78(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
callq 0x446f0
jmp 0x47e7c
leaq -0x1e8(%rbp), %rdi
callq 0x8c08
jmp 0x47ea7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x8c08
jmp 0x48057
leaq -0x78(%rbp), %rdi
movq %rdi, -0x790(%rbp)
callq 0x10640
movq -0x790(%rbp), %rdi
movq %rax, -0x1f0(%rbp)
callq 0x10670
movq %rax, -0x1f8(%rbp)
leaq -0x118(%rbp), %rdi
movl $0x2, %esi
callq 0x4a0f0
movq %rax, -0x788(%rbp)
jmp 0x47eeb
movq -0x788(%rbp), %rdx
movq -0x1f0(%rbp), %rdi
movq -0x1f8(%rbp), %rsi
callq 0x4a0a0
movq %rax, -0x798(%rbp)
jmp 0x47f0e
movq -0x798(%rbp), %rax
cmpq $0x0, %rax
je 0x47f86
leaq -0x118(%rbp), %rdi
movl $0x2, %esi
callq 0x4a0f0
movq %rax, -0x7a0(%rbp)
jmp 0x47f35
movq -0x7a0(%rbp), %rsi
leaq -0x218(%rbp), %rdi
callq 0x4a160
jmp 0x47f4a
leaq -0x218(%rbp), %rdi
callq 0x7ff40
jmp 0x47f58
leaq -0x218(%rbp), %rdi
callq 0x8c08
jmp 0x47fef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x8c08
jmp 0x48057
leaq -0x118(%rbp), %rdi
movl $0x2, %esi
callq 0x4a0f0
movq %rax, -0x7a8(%rbp)
jmp 0x47fa0
movq -0x7a8(%rbp), %rsi
leaq -0x238(%rbp), %rdi
callq 0x4a160
jmp 0x47fb5
leaq -0x78(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x446f0
jmp 0x47fc7
leaq -0x238(%rbp), %rdi
callq 0x8c08
jmp 0x47fef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x238(%rbp), %rdi
callq 0x8c08
jmp 0x48057
leaq -0x258(%rbp), %rdi
leaq -0x138(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
leaq -0x158(%rbp), %rcx
movl $0x400, %r8d            # imm = 0x400
callq 0x4a190
jmp 0x48018
leaq -0x138(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x86f0
leaq -0x258(%rbp), %rdi
callq 0x8c08
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x8c08
jmp 0x47b91
leaq -0x158(%rbp), %rdi
callq 0x8c08
jmp 0x49409
leaq -0x138(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
xorl %edx, %edx
callq 0x4a270
movb %al, -0x7a9(%rbp)
jmp 0x48085
movb -0x7a9(%rbp), %al
testb $0x1, %al
jne 0x48091
jmp 0x480fd
movq 0x76f58(%rip), %rdi     # 0xbeff0
leaq 0x4339c(%rip), %rsi     # 0x8b43b
callq 0x8590
movq %rax, -0x7b8(%rbp)
jmp 0x480ad
movq -0x7b8(%rbp), %rdi
movq 0x76ea5(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x480c2
movq 0x76f27(%rip), %rdi     # 0xbeff0
leaq -0x138(%rbp), %rsi
callq 0x8520
movq %rax, -0x7c0(%rbp)
jmp 0x480de
movq -0x7c0(%rbp), %rdi
movq 0x76e74(%rip), %rsi     # 0xbef60
callq 0x85f0
jmp 0x480f3
movl $0x1, %edi
callq 0x86e0
leaq -0x270(%rbp), %rdi
callq 0x11d80
leaq -0x288(%rbp), %rdi
callq 0x11d80
leaq -0x2a0(%rbp), %rdi
callq 0x11d80
leaq -0x2b8(%rbp), %rdi
callq 0x11d80
leaq -0x2d0(%rbp), %rdi
callq 0x11d80
leaq 0x43358(%rip), %rsi     # 0x8b498
leaq -0x2f0(%rbp), %rdi
movl $0x10, %edx
callq 0x49de0
jmp 0x48153
leaq -0x311(%rbp), %rdi
movq %rdi, -0x7c8(%rbp)
callq 0x8a60
movq -0x7c8(%rbp), %rdx
leaq 0x43338(%rip), %rsi     # 0x8b4ac
leaq -0x310(%rbp), %rdi
callq 0x9a00
jmp 0x48182
leaq -0x270(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x446f0
jmp 0x48197
leaq -0x310(%rbp), %rdi
callq 0x8c08
leaq -0x311(%rbp), %rdi
callq 0x8610
leaq -0x339(%rbp), %rdi
movq %rdi, -0x7d0(%rbp)
callq 0x8a60
movq -0x7d0(%rbp), %rdx
leaq 0x43174(%rip), %rsi     # 0x8b344
leaq -0x338(%rbp), %rdi
callq 0x9a00
jmp 0x481de
leaq -0x288(%rbp), %rdi
leaq -0x338(%rbp), %rsi
callq 0x446f0
jmp 0x481f3
leaq -0x338(%rbp), %rdi
callq 0x8c08
leaq -0x339(%rbp), %rdi
callq 0x8610
leaq -0x78(%rbp), %rdi
movq %rdi, -0x7d8(%rbp)
callq 0x10740
movq -0x7d8(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x10b10
movq %rax, %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x11d10
jmp 0x4823e
leaq -0x78(%rbp), %rdi
movq %rdi, -0x7e8(%rbp)
callq 0x10740
movq -0x7e8(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x10b10
movq %rax, %rdi
leaq -0x2f0(%rbp), %rsi
xorl %edx, %edx
callq 0x4a2c0
movb %al, -0x7d9(%rbp)
jmp 0x48279
movb -0x7d9(%rbp), %al
testb $0x1, %al
jne 0x48288
jmp 0x48443
leaq -0x361(%rbp), %rdi
movq %rdi, -0x7f0(%rbp)
callq 0x8a60
movq -0x7f0(%rbp), %rdx
leaq 0x43206(%rip), %rsi     # 0x8b4af
leaq -0x360(%rbp), %rdi
callq 0x9a00
jmp 0x482b7
leaq -0x2a0(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x446f0
jmp 0x482cc
leaq -0x360(%rbp), %rdi
callq 0x8c08
leaq -0x361(%rbp), %rdi
callq 0x8610
leaq -0x389(%rbp), %rdi
movq %rdi, -0x7f8(%rbp)
callq 0x8a60
movq -0x7f8(%rbp), %rdx
leaq 0x431aa(%rip), %rsi     # 0x8b4af
leaq -0x388(%rbp), %rdi
callq 0x9a00
jmp 0x48313
leaq -0x2b8(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x446f0
jmp 0x48328
leaq -0x388(%rbp), %rdi
callq 0x8c08
leaq -0x389(%rbp), %rdi
callq 0x8610
jmp 0x4856b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x493cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4837c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x8c08
leaq -0x311(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x483b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x8c08
leaq -0x339(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x483fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x360(%rbp), %rdi
callq 0x8c08
leaq -0x361(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48432
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x8c08
leaq -0x389(%rbp), %rdi
callq 0x8610
jmp 0x493c1
leaq -0x3b1(%rbp), %rdi
movq %rdi, -0x800(%rbp)
callq 0x8a60
movq -0x800(%rbp), %rdx
leaq 0x42f20(%rip), %rsi     # 0x8b384
leaq -0x3b0(%rbp), %rdi
callq 0x9a00
jmp 0x48472
leaq -0x2a0(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x446f0
jmp 0x48487
leaq -0x3b0(%rbp), %rdi
callq 0x8c08
leaq -0x3b1(%rbp), %rdi
callq 0x8610
leaq -0x3d9(%rbp), %rdi
movq %rdi, -0x808(%rbp)
callq 0x8a60
movq -0x808(%rbp), %rdx
leaq 0x42ec4(%rip), %rsi     # 0x8b384
leaq -0x3d8(%rbp), %rdi
callq 0x9a00
jmp 0x484ce
leaq -0x2b8(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x446f0
jmp 0x484e3
leaq -0x3d8(%rbp), %rdi
callq 0x8c08
leaq -0x3d9(%rbp), %rdi
callq 0x8610
jmp 0x4856b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48523
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x8c08
leaq -0x3b1(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4855a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x3d8(%rbp), %rdi
callq 0x8c08
leaq -0x3d9(%rbp), %rdi
callq 0x8610
jmp 0x493c1
leaq -0x401(%rbp), %rdi
movq %rdi, -0x810(%rbp)
callq 0x8a60
movq -0x810(%rbp), %rdx
leaq 0x42f2a(%rip), %rsi     # 0x8b4b6
leaq -0x400(%rbp), %rdi
callq 0x9a00
jmp 0x4859a
leaq -0x270(%rbp), %rdi
leaq -0x400(%rbp), %rsi
callq 0x446f0
jmp 0x485af
leaq -0x400(%rbp), %rdi
callq 0x8c08
leaq -0x401(%rbp), %rdi
callq 0x8610
leaq -0x429(%rbp), %rdi
movq %rdi, -0x818(%rbp)
callq 0x8a60
movq -0x818(%rbp), %rdx
leaq 0x42d5c(%rip), %rsi     # 0x8b344
leaq -0x428(%rbp), %rdi
callq 0x9a00
jmp 0x485f6
leaq -0x288(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x446f0
jmp 0x4860b
leaq -0x428(%rbp), %rdi
callq 0x8c08
leaq -0x429(%rbp), %rdi
callq 0x8610
leaq -0x78(%rbp), %rdi
movq %rdi, -0x820(%rbp)
callq 0x10740
movq -0x820(%rbp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
callq 0x10b10
movq %rax, %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x11d10
jmp 0x48657
leaq -0x78(%rbp), %rdi
movq %rdi, -0x830(%rbp)
callq 0x10740
movq -0x830(%rbp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
callq 0x10b10
movq %rax, %rdi
leaq -0x2f0(%rbp), %rsi
xorl %edx, %edx
callq 0x4a2c0
movb %al, -0x821(%rbp)
jmp 0x48693
movb -0x821(%rbp), %al
testb $0x1, %al
jne 0x486a2
jmp 0x4883b
leaq -0x451(%rbp), %rdi
movq %rdi, -0x838(%rbp)
callq 0x8a60
movq -0x838(%rbp), %rdx
leaq 0x42dec(%rip), %rsi     # 0x8b4af
leaq -0x450(%rbp), %rdi
callq 0x9a00
jmp 0x486d1
leaq -0x2a0(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x446f0
jmp 0x486e6
leaq -0x450(%rbp), %rdi
callq 0x8c08
leaq -0x451(%rbp), %rdi
callq 0x8610
leaq -0x479(%rbp), %rdi
movq %rdi, -0x840(%rbp)
callq 0x8a60
movq -0x840(%rbp), %rdx
leaq 0x42d90(%rip), %rsi     # 0x8b4af
leaq -0x478(%rbp), %rdi
callq 0x9a00
jmp 0x4872d
leaq -0x2b8(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0x446f0
jmp 0x48742
leaq -0x478(%rbp), %rdi
callq 0x8c08
leaq -0x479(%rbp), %rdi
callq 0x8610
jmp 0x48963
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48785
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x400(%rbp), %rdi
callq 0x8c08
leaq -0x401(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x487bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x428(%rbp), %rdi
callq 0x8c08
leaq -0x429(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x487f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x450(%rbp), %rdi
callq 0x8c08
leaq -0x451(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4882a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x8c08
leaq -0x479(%rbp), %rdi
callq 0x8610
jmp 0x493c1
leaq -0x4a1(%rbp), %rdi
movq %rdi, -0x848(%rbp)
callq 0x8a60
movq -0x848(%rbp), %rdx
leaq 0x42b28(%rip), %rsi     # 0x8b384
leaq -0x4a0(%rbp), %rdi
callq 0x9a00
jmp 0x4886a
leaq -0x2a0(%rbp), %rdi
leaq -0x4a0(%rbp), %rsi
callq 0x446f0
jmp 0x4887f
leaq -0x4a0(%rbp), %rdi
callq 0x8c08
leaq -0x4a1(%rbp), %rdi
callq 0x8610
leaq -0x4c9(%rbp), %rdi
movq %rdi, -0x850(%rbp)
callq 0x8a60
movq -0x850(%rbp), %rdx
leaq 0x42acc(%rip), %rsi     # 0x8b384
leaq -0x4c8(%rbp), %rdi
callq 0x9a00
jmp 0x488c6
leaq -0x2b8(%rbp), %rdi
leaq -0x4c8(%rbp), %rsi
callq 0x446f0
jmp 0x488db
leaq -0x4c8(%rbp), %rdi
callq 0x8c08
leaq -0x4c9(%rbp), %rdi
callq 0x8610
jmp 0x48963
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x4891b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x4a0(%rbp), %rdi
callq 0x8c08
leaq -0x4a1(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48952
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0x8c08
leaq -0x4c9(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movl $0x2, -0x4d0(%rbp)
movb $0x0, -0x4d1(%rbp)
movb -0x4d1(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x48985
jmp 0x48fc3
movb $0x0, -0x4d2(%rbp)
movl $0x0, -0x4d8(%rbp)
movslq -0x4d8(%rbp), %rax
movq %rax, -0x858(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x10740
movq %rax, %rcx
movq -0x858(%rbp), %rax
cmpq %rcx, %rax
jae 0x48fa7
movslq -0x4d8(%rbp), %rsi
leaq -0x2a0(%rbp), %rdi
callq 0x10b10
movq %rax, %rdi
leaq 0x42acf(%rip), %rsi     # 0x8b4af
callq 0x9ab0
movb %al, -0x859(%rbp)
jmp 0x489ed
movb -0x859(%rbp), %al
testb $0x1, %al
jne 0x489fc
jmp 0x48f91
movslq -0x4d8(%rbp), %rsi
leaq -0x2b8(%rbp), %rdi
callq 0x10b10
movq %rax, %rdi
leaq 0x42a96(%rip), %rsi     # 0x8b4af
callq 0x9ab0
movb %al, -0x85a(%rbp)
jmp 0x48a26
movb -0x85a(%rbp), %al
testb $0x1, %al
jne 0x48a35
jmp 0x48f91
movl $0x0, -0x4dc(%rbp)
movslq -0x4dc(%rbp), %rax
movq %rax, -0x868(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x10740
movq %rax, %rcx
movq -0x868(%rbp), %rax
cmpq %rcx, %rax
jae 0x48f8f
movslq -0x4dc(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x10b10
movq %rax, -0x870(%rbp)
movslq -0x4d8(%rbp), %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x10b10
movq -0x870(%rbp), %rdi
movq %rax, %rsi
callq 0x18dd0
testb $0x1, %al
jne 0x48ab1
jmp 0x48f79
movl -0x4d0(%rbp), %esi
leaq -0x520(%rbp), %rdi
callq 0x204f0
jmp 0x48ac5
leaq 0x42f0b(%rip), %rsi     # 0x8b9d7
leaq -0x500(%rbp), %rdi
leaq -0x520(%rbp), %rdx
callq 0x4a050
jmp 0x48ae1
leaq -0x270(%rbp), %rdi
leaq -0x500(%rbp), %rsi
callq 0x446f0
jmp 0x48af6
leaq -0x500(%rbp), %rdi
callq 0x8c08
leaq -0x520(%rbp), %rdi
callq 0x8c08
movslq -0x4d8(%rbp), %rsi
leaq -0x270(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x288(%rbp), %rdi
callq 0x11d10
jmp 0x48b32
movslq -0x4dc(%rbp), %rsi
leaq -0x78(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x11d10
jmp 0x48b53
movslq -0x4dc(%rbp), %rsi
leaq -0x78(%rbp), %rdi
callq 0x10b10
movq %rax, %rdi
leaq -0x2f0(%rbp), %rsi
xorl %edx, %edx
callq 0x4a2c0
movb %al, -0x871(%rbp)
jmp 0x48b7c
movb -0x871(%rbp), %al
testb $0x1, %al
jne 0x48b8b
jmp 0x48ced
leaq -0x541(%rbp), %rdi
movq %rdi, -0x880(%rbp)
callq 0x8a60
movq -0x880(%rbp), %rdx
leaq 0x42903(%rip), %rsi     # 0x8b4af
leaq -0x540(%rbp), %rdi
callq 0x9a00
jmp 0x48bba
leaq -0x2a0(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x446f0
jmp 0x48bcf
leaq -0x540(%rbp), %rdi
callq 0x8c08
leaq -0x541(%rbp), %rdi
callq 0x8610
leaq -0x569(%rbp), %rdi
movq %rdi, -0x888(%rbp)
callq 0x8a60
movq -0x888(%rbp), %rdx
leaq 0x428a7(%rip), %rsi     # 0x8b4af
leaq -0x568(%rbp), %rdi
callq 0x9a00
jmp 0x48c16
leaq -0x2b8(%rbp), %rdi
leaq -0x568(%rbp), %rsi
callq 0x446f0
jmp 0x48c2b
leaq -0x568(%rbp), %rdi
callq 0x8c08
leaq -0x569(%rbp), %rdi
callq 0x8610
jmp 0x48e15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48c6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x500(%rbp), %rdi
callq 0x8c08
leaq -0x520(%rbp), %rdi
callq 0x8c08
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48ca5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x540(%rbp), %rdi
callq 0x8c08
leaq -0x541(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48cdc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x568(%rbp), %rdi
callq 0x8c08
leaq -0x569(%rbp), %rdi
callq 0x8610
jmp 0x493c1
leaq -0x591(%rbp), %rdi
movq %rdi, -0x890(%rbp)
callq 0x8a60
movq -0x890(%rbp), %rdx
leaq 0x42676(%rip), %rsi     # 0x8b384
leaq -0x590(%rbp), %rdi
callq 0x9a00
jmp 0x48d1c
leaq -0x2a0(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x446f0
jmp 0x48d31
leaq -0x590(%rbp), %rdi
callq 0x8c08
leaq -0x591(%rbp), %rdi
callq 0x8610
leaq -0x5b9(%rbp), %rdi
movq %rdi, -0x898(%rbp)
callq 0x8a60
movq -0x898(%rbp), %rdx
leaq 0x4261a(%rip), %rsi     # 0x8b384
leaq -0x5b8(%rbp), %rdi
callq 0x9a00
jmp 0x48d78
leaq -0x2b8(%rbp), %rdi
leaq -0x5b8(%rbp), %rsi
callq 0x446f0
jmp 0x48d8d
leaq -0x5b8(%rbp), %rdi
callq 0x8c08
leaq -0x5b9(%rbp), %rdi
callq 0x8610
jmp 0x48e15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48dcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x590(%rbp), %rdi
callq 0x8c08
leaq -0x591(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x48e04
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x5b8(%rbp), %rdi
callq 0x8c08
leaq -0x5b9(%rbp), %rdi
callq 0x8610
jmp 0x493c1
movslq -0x4d8(%rbp), %rsi
leaq -0x2a0(%rbp), %rdi
callq 0x10b10
movq %rax, %rdi
leaq 0x4267d(%rip), %rsi     # 0x8b4af
callq 0x9ab0
movb %al, -0x899(%rbp)
jmp 0x48e3f
movb -0x899(%rbp), %al
testb $0x1, %al
jne 0x48e4e
jmp 0x48eda
movl -0x4d0(%rbp), %esi
leaq -0x600(%rbp), %rdi
callq 0x204f0
jmp 0x48e62
leaq 0x42b6e(%rip), %rsi     # 0x8b9d7
leaq -0x5e0(%rbp), %rdi
leaq -0x600(%rbp), %rdx
callq 0x4a050
jmp 0x48e7e
movslq -0x4d8(%rbp), %rsi
leaq -0x2a0(%rbp), %rdi
callq 0x10b10
movq %rax, %rdi
leaq -0x5e0(%rbp), %rsi
callq 0x86f0
leaq -0x5e0(%rbp), %rdi
callq 0x8c08
leaq -0x600(%rbp), %rdi
callq 0x8c08
jmp 0x48f63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x600(%rbp), %rdi
callq 0x8c08
jmp 0x493c1
movl -0x4d0(%rbp), %esi
leaq -0x640(%rbp), %rdi
callq 0x204f0
jmp 0x48eee
leaq 0x42ae2(%rip), %rsi     # 0x8b9d7
leaq -0x620(%rbp), %rdi
leaq -0x640(%rbp), %rdx
callq 0x4a050
jmp 0x48f0a
movslq -0x4d8(%rbp), %rsi
leaq -0x2b8(%rbp), %rdi
callq 0x10b10
movq %rax, %rdi
leaq -0x620(%rbp), %rsi
callq 0x86f0
leaq -0x620(%rbp), %rdi
callq 0x8c08
leaq -0x640(%rbp), %rdi
callq 0x8c08
jmp 0x48f63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x640(%rbp), %rdi
callq 0x8c08
jmp 0x493c1
movl -0x4d0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4d0(%rbp)
movb $0x1, -0x4d2(%rbp)
jmp 0x48f7b
movl -0x4dc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4dc(%rbp)
jmp 0x48a3f
jmp 0x48f91
jmp 0x48f93
movl -0x4d8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4d8(%rbp)
jmp 0x48996
movb -0x4d2(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x48fbe
movb $0x1, -0x4d1(%rbp)
jmp 0x48974
leaq -0x658(%rbp), %rdi
callq 0x11d80
movl $0x0, -0x65c(%rbp)
movslq -0x65c(%rbp), %rax
movq %rax, -0x8a8(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x10740
movq %rax, %rcx
movq -0x8a8(%rbp), %rax
cmpq %rcx, %rax
jae 0x49301
leaq -0x680(%rbp), %rdi
callq 0x87d0
movslq -0x65c(%rbp), %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x10b10
movq %rax, %rdi
leaq -0x2f0(%rbp), %rsi
xorl %edx, %edx
callq 0x4a2c0
movb %al, -0x8a9(%rbp)
jmp 0x4903e
movb -0x8a9(%rbp), %al
testb $0x1, %al
jne 0x4904a
jmp 0x49072
leaq 0x42468(%rip), %rsi     # 0x8b4b9
leaq -0x680(%rbp), %rdi
callq 0x87c0
jmp 0x4905f
jmp 0x490ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x492e4
movslq -0x65c(%rbp), %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x680(%rbp), %rdi
callq 0x8070
jmp 0x49096
movq -0x748(%rbp), %rdi
leaq -0x680(%rbp), %rsi
callq 0x11d10
jmp 0x490ab
jmp 0x490ad
movq -0x748(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x8c0(%rbp)
movl $0x118, %edi            # imm = 0x118
callq 0x85a0
movq %rax, -0x8b8(%rbp)
jmp 0x490d2
movb $0x1, -0x729(%rbp)
movslq -0x65c(%rbp), %rsi
leaq -0x270(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x6a8(%rbp), %rdi
callq 0x8250
jmp 0x490fd
movslq -0x65c(%rbp), %rsi
leaq -0x288(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x6c8(%rbp), %rdi
callq 0x8250
jmp 0x49121
movslq -0x65c(%rbp), %rsi
leaq -0x2a0(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x6e8(%rbp), %rdi
callq 0x8250
jmp 0x49145
movslq -0x65c(%rbp), %rsi
leaq -0x2b8(%rbp), %rdi
callq 0x10b10
movq %rax, %rsi
leaq -0x708(%rbp), %rdi
callq 0x8250
jmp 0x49169
leaq -0x728(%rbp), %rdi
leaq -0x680(%rbp), %rsi
callq 0x8250
jmp 0x4917e
movq -0x8b8(%rbp), %rdi
leaq -0x6a8(%rbp), %rsi
leaq -0x6c8(%rbp), %rdx
leaq -0x6e8(%rbp), %rcx
leaq -0x708(%rbp), %r8
leaq -0x728(%rbp), %r9
callq 0x4a340
jmp 0x491af
movq -0x8c0(%rbp), %rdi
movq -0x8b8(%rbp), %rax
movb $0x0, -0x729(%rbp)
movq %rax, -0x688(%rbp)
leaq -0x688(%rbp), %rsi
callq 0x4a310
jmp 0x491d9
leaq -0x728(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
callq 0x8c08
leaq -0x6e8(%rbp), %rdi
callq 0x8c08
leaq -0x6c8(%rbp), %rdi
callq 0x8c08
leaq -0x6a8(%rbp), %rdi
callq 0x8c08
leaq -0x680(%rbp), %rdi
callq 0x8c08
movl -0x65c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x65c(%rbp)
jmp 0x48fd9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x492c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x492ba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x492ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x492a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x49296
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x728(%rbp), %rdi
callq 0x8c08
leaq -0x708(%rbp), %rdi
callq 0x8c08
leaq -0x6e8(%rbp), %rdi
callq 0x8c08
leaq -0x6c8(%rbp), %rdi
callq 0x8c08
leaq -0x6a8(%rbp), %rdi
callq 0x8c08
testb $0x1, -0x729(%rbp)
jne 0x492d1
jmp 0x492e2
movq -0x8b8(%rbp), %rdi
movl $0x118, %esi            # imm = 0x118
callq 0x85b0
jmp 0x492e4
leaq -0x680(%rbp), %rdi
callq 0x8c08
leaq -0x658(%rbp), %rdi
callq 0x10760
jmp 0x493c1
leaq -0x658(%rbp), %rdi
callq 0x10760
leaq -0x2f0(%rbp), %rdi
callq 0x4a5c0
leaq -0x2d0(%rbp), %rdi
callq 0x10760
leaq -0x2b8(%rbp), %rdi
callq 0x10760
leaq -0x2a0(%rbp), %rdi
callq 0x10760
leaq -0x288(%rbp), %rdi
callq 0x10760
leaq -0x270(%rbp), %rdi
callq 0x10760
leaq -0x138(%rbp), %rdi
callq 0x8c08
leaq -0x118(%rbp), %rdi
callq 0x4a5f0
leaq -0xf8(%rbp), %rdi
callq 0x4a5c0
leaq -0xd8(%rbp), %rdi
callq 0x4a5c0
leaq -0xb8(%rbp), %rdi
callq 0x4a5c0
leaq -0x90(%rbp), %rdi
callq 0x10760
leaq -0x78(%rbp), %rdi
callq 0x10760
leaq -0x60(%rbp), %rdi
callq 0x8c08
leaq -0x30(%rbp), %rdi
callq 0x4a5c0
addq $0x8c0, %rsp            # imm = 0x8C0
popq %rbp
retq
leaq -0x2f0(%rbp), %rdi
callq 0x4a5c0
leaq -0x2d0(%rbp), %rdi
callq 0x10760
leaq -0x2b8(%rbp), %rdi
callq 0x10760
leaq -0x2a0(%rbp), %rdi
callq 0x10760
leaq -0x288(%rbp), %rdi
callq 0x10760
leaq -0x270(%rbp), %rdi
callq 0x10760
leaq -0x138(%rbp), %rdi
callq 0x8c08
leaq -0x118(%rbp), %rdi
callq 0x4a5f0
leaq -0xf8(%rbp), %rdi
callq 0x4a5c0
leaq -0xd8(%rbp), %rdi
callq 0x4a5c0
leaq -0xb8(%rbp), %rdi
callq 0x4a5c0
leaq -0x90(%rbp), %rdi
callq 0x10760
leaq -0x78(%rbp), %rdi
callq 0x10760
leaq -0x60(%rbp), %rdi
callq 0x8c08
leaq -0x30(%rbp), %rdi
callq 0x4a5c0
movq -0x738(%rbp), %rdi
callq 0x49cc0
movq -0x740(%rbp), %rdi
callq 0x10760
movq -0x38(%rbp), %rdi
callq 0x8a50
nopl (%rax)