// File: xjrueda[P]fixprime/src/Protocol.cpp
// Function: fprime::Protocol::populateNode(std::shared_ptr<fprime::Node>, Json::Value, bool)
void Protocol::populateNode(fprime::Node::NodePtr node, Json::Value nodeSpec, bool requiredFlag) {
        try {
            node->setProtocol(this);
            Json::Value members = nodeSpec["members"];
            for (int i = 0; i < members.size(); i++) {
                string memberId = members[i]["memberId"].asString();
                try {
                    if (memberId.empty())
                        throw runtime_error("Empty member was specified for node.");

                    fprime::Node::NodePtr child(new Node());
                    fprime::Field::FieldPtr fieldPtr;
                    child->setProtocol(this);

                    if (members[i]["isComponent"] == "Y") {

                        fprime::Component::ComponentPtr componentPtr = this->getComponent(string(memberId));
                        if (componentPtr == nullptr)
                            throw std::runtime_error("Component :" + memberId + " did not found.");
                        if (componentPtr->getType() == "BlockRepeating") {
                            try {
                                child->setType(fprime::Node::REPEATING_GROUP);
                                fieldPtr = componentPtr->getControlField();
                                if (fieldPtr == nullptr)
                                    throw std::runtime_error("control field for Component :" + memberId + " did not found.");
                                child->setRequired(requiredFlag);
                                child->setComponent(componentPtr);
                                child->setField(fieldPtr);
                                node->appendChild(child);
                            } catch (exception& e) {
                                throw std::runtime_error("Error trying to get the id of control field :" + string(e.what()));
                            }

                        } else
                            node->resolveComponent(componentPtr);
                    } else {
                        fieldPtr = this->getField(boost::lexical_cast<unsigned int>(memberId));
                        if (fieldPtr == nullptr)
                            throw std::runtime_error("Field " + memberId + " did not found.");
                        if (fieldPtr->getDataType() == "NumInGroup") {
                            stringstream msg;
                            msg << fieldPtr->getId() << " " <<
                                    fieldPtr->getName() <<
                                    " is of type NumInGroup and cannot be assigned directly to components or messages. add the corresponding component.";
                            throw std::runtime_error(msg.str());
                        }
                        child->setType(fprime::Node::FIELD_NODE);

                        if (members[i]["isRequired"] == "Y")
                            child->setRequired(true);
                        else
                            child->setRequired(false);

                        child->setField(fieldPtr);
                        node->appendChild(child);

                    }
                } catch (exception& e) {
                    throw std::runtime_error("Exception populating node member " + memberId + " : " + string(e.what()));
                }
            }
        } catch (exception& e) {
            throw std::runtime_error("at populateNode: " + string(e.what()));
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x730, %rsp            # imm = 0x730
movl %ecx, %eax
movq %rdx, -0x5d0(%rbp)
movq %rsi, -0x5c8(%rbp)
movq %rdi, %rcx
movq -0x5c8(%rbp), %rdi
movq %rcx, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x5c0(%rbp)
callq 0x98080
movq -0x5c0(%rbp), %rsi
movq %rax, %rdi
callq 0x98710
jmp 0xd4e17
movq -0x5d0(%rbp), %rdi
leaq 0x2e927(%rip), %rsi     # 0x10374c
callq 0x99470
movq %rax, -0x5d8(%rbp)
jmp 0xd4e33
movq -0x5d8(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0xa2280
jmp 0xd4e45
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movl %eax, -0x5e0(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xa24d0
movl %eax, -0x5dc(%rbp)
jmp 0xd4e66
movl -0x5e0(%rbp), %eax
movl -0x5dc(%rbp), %ecx
cmpl %ecx, %eax
jae 0xd5e06
movl -0x5c(%rbp), %esi
leaq -0x58(%rbp), %rdi
callq 0x9e400
movq %rax, -0x5e8(%rbp)
jmp 0xd4e8f
movq -0x5e8(%rbp), %rdi
leaq 0x2e927(%rip), %rsi     # 0x1037c4
callq 0x99470
movq %rax, -0x5f0(%rbp)
jmp 0xd4eab
movq -0x5f0(%rbp), %rsi
leaq -0x80(%rbp), %rdi
callq 0xa3d30
jmp 0xd4ebd
leaq -0x80(%rbp), %rdi
callq 0xa2940
testb $0x1, %al
jne 0xd4ecf
jmp 0xd4f63
movl $0x10, %edi
callq 0x99e80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x5f8(%rbp)
leaq 0x2eb1d(%rip), %rsi     # 0x103a0a
callq 0x99380
jmp 0xd4ef4
movq -0x5f8(%rbp), %rdi
movq 0x5e0d6(%rip), %rsi     # 0x132fd8
movq 0x5de97(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xd5f78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5e1d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5e14
movq -0x5f8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x9b9c0
jmp 0xd5c3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5c3a
movl $0xe8, %edi
callq 0x9dc00
movq %rax, -0x600(%rbp)
jmp 0xd4f76
movq -0x600(%rbp), %rdi
callq 0x9de70
jmp 0xd4f84
movq -0x600(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0xa2850
jmp 0xd4f99
leaq -0xa0(%rbp), %rdi
callq 0x9d880
leaq -0x90(%rbp), %rdi
callq 0x98080
movq -0x5c0(%rbp), %rsi
movq %rax, %rdi
callq 0x98710
jmp 0xd4fc2
movl -0x5c(%rbp), %esi
leaq -0x58(%rbp), %rdi
callq 0x9e400
movq %rax, -0x608(%rbp)
jmp 0xd4fd7
movq -0x608(%rbp), %rdi
leaq 0x2e81f(%rip), %rsi     # 0x103804
callq 0x99470
movq %rax, -0x610(%rbp)
jmp 0xd4ff3
leaq 0x2dbc2(%rip), %rsi     # 0x102bbc
leaq -0xc8(%rbp), %rdi
callq 0xa2ce0
jmp 0xd5008
movq -0x610(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xa04c0
movb %al, -0x611(%rbp)
jmp 0xd5023
leaq -0xc8(%rbp), %rdi
callq 0x9a180
movb -0x611(%rbp), %al
testb $0x1, %al
jne 0xd503e
jmp 0xd56ea
leaq -0xf8(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x998d0
jmp 0xd5050
movq -0x5c0(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rdx
callq 0x982a0
jmp 0xd506c
leaq -0xf8(%rbp), %rdi
callq 0xa4f00
leaq -0xd8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xa0400
testb $0x1, %al
jne 0xd5091
jmp 0xd51dd
movb $0x1, -0x139(%rbp)
movl $0x10, %edi
callq 0x99e80
movq %rax, -0x620(%rbp)
leaq 0x2e9a1(%rip), %rsi     # 0x103a51
leaq -0x138(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x9cf50
jmp 0xd50c2
leaq 0x2e966(%rip), %rdx     # 0x103a2f
leaq -0x118(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x98100
jmp 0xd50de
movq -0x620(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0xa2430
jmp 0xd50f3
movq -0x620(%rbp), %rdi
movb $0x0, -0x139(%rbp)
movq 0x5ded0(%rip), %rsi     # 0x132fd8
movq 0x5dc91(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xd5f78
movq -0x600(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x9d660
jmp 0xd5c3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5c22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x9a180
jmp 0xd5c22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0xa4f00
jmp 0xd5c22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd51c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd51b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0xa4f00
leaq -0x138(%rbp), %rdi
callq 0xa4f00
testb $0x1, -0x139(%rbp)
jne 0xd51cc
jmp 0xd51d8
movq -0x620(%rbp), %rdi
callq 0x9b9c0
jmp 0xd56d9
leaq -0xd8(%rbp), %rdi
callq 0x9e9a0
movq %rax, %rsi
leaq -0x160(%rbp), %rdi
callq 0x9b110
jmp 0xd51fa
leaq 0x2e3d7(%rip), %rsi     # 0x1035d8
leaq -0x160(%rbp), %rdi
callq 0xa4e10
movb %al, -0x621(%rbp)
jmp 0xd5215
leaq -0x160(%rbp), %rdi
callq 0xa4f00
movb -0x621(%rbp), %al
testb $0x1, %al
jne 0xd5230
jmp 0xd565e
leaq -0x90(%rbp), %rdi
callq 0x98080
movq %rax, %rdi
movl $0x2, %esi
callq 0x9eef0
jmp 0xd524b
leaq -0xd8(%rbp), %rdi
callq 0x9e9a0
movq %rax, %rsi
leaq -0x170(%rbp), %rdi
callq 0xa1850
jmp 0xd5268
leaq -0xa0(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0xa2b70
leaq -0x170(%rbp), %rdi
callq 0xa2ae0
leaq -0xa0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9b970
testb $0x1, %al
jne 0xd52a0
jmp 0xd53c3
movb $0x1, -0x1b1(%rbp)
movl $0x10, %edi
callq 0x99e80
movq %rax, -0x630(%rbp)
leaq 0x2e780(%rip), %rsi     # 0x103a3f
leaq -0x1b0(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x9cf50
jmp 0xd52d1
leaq 0x2e757(%rip), %rdx     # 0x103a2f
leaq -0x190(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x98100
jmp 0xd52ed
movq -0x630(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0xa2430
jmp 0xd5302
movq -0x630(%rbp), %rdi
movb $0x0, -0x1b1(%rbp)
movq 0x5dcc1(%rip), %rsi     # 0x132fd8
movq 0x5da82(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xd5f78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd56d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x160(%rbp), %rdi
callq 0xa4f00
jmp 0xd56d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd551b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd53a7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd539b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0xa4f00
leaq -0x1b0(%rbp), %rdi
callq 0xa4f00
testb $0x1, -0x1b1(%rbp)
jne 0xd53b2
jmp 0xd53be
movq -0x630(%rbp), %rdi
callq 0x9b9c0
jmp 0xd551b
leaq -0x90(%rbp), %rdi
callq 0x98080
movq %rax, %rdi
movzbl -0x19(%rbp), %esi
andl $0x1, %esi
callq 0x99040
jmp 0xd53e0
leaq -0x90(%rbp), %rdi
callq 0x98080
movq %rax, -0x640(%rbp)
leaq -0x1c8(%rbp), %rdi
movq %rdi, -0x638(%rbp)
leaq -0xd8(%rbp), %rsi
callq 0x9cbf0
movq -0x640(%rbp), %rdi
movq -0x638(%rbp), %rsi
callq 0x99850
jmp 0xd5422
leaq -0x1c8(%rbp), %rdi
callq 0x9f150
leaq -0x90(%rbp), %rdi
callq 0x98080
movq %rax, -0x650(%rbp)
leaq -0x1d8(%rbp), %rdi
movq %rdi, -0x648(%rbp)
leaq -0xa0(%rbp), %rsi
callq 0xa06b0
movq -0x650(%rbp), %rdi
movq -0x648(%rbp), %rsi
callq 0x9e6b0
jmp 0xd5470
leaq -0x1d8(%rbp), %rdi
callq 0xa2ae0
movq -0x5c8(%rbp), %rdi
callq 0x98080
movq %rax, -0x660(%rbp)
leaq -0x1e8(%rbp), %rdi
movq %rdi, -0x658(%rbp)
leaq -0x90(%rbp), %rsi
callq 0x97cd0
movq -0x660(%rbp), %rdi
movq -0x658(%rbp), %rsi
callq 0x9fad0
jmp 0xd54be
leaq -0x1e8(%rbp), %rdi
callq 0x997e0
jmp 0xd565c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x9f150
jmp 0xd551b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0xa2ae0
jmp 0xd551b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x997e0
movl -0x2c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xd56d9
movq -0x28(%rbp), %rdi
callq 0x99540
movq %rax, -0x1f0(%rbp)
movb $0x1, -0x232(%rbp)
movl $0x10, %edi
callq 0x99e80
movq %rax, -0x678(%rbp)
movq -0x1f0(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x670(%rbp)
leaq -0x231(%rbp), %rdi
movq %rdi, -0x668(%rbp)
callq 0xa35e0
movq -0x670(%rbp), %rsi
movq -0x668(%rbp), %rdx
leaq -0x230(%rbp), %rdi
callq 0xa0510
jmp 0xd5599
leaq 0x2e4bd(%rip), %rsi     # 0x103a5d
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rdx
callq 0xa2cb0
jmp 0xd55b5
movq -0x678(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0xa2430
jmp 0xd55ca
movq -0x678(%rbp), %rdi
movb $0x0, -0x232(%rbp)
movq 0x5d9f9(%rip), %rsi     # 0x132fd8
movq 0x5d7ba(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xd5f78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5630
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5624
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0xa4f00
leaq -0x230(%rbp), %rdi
callq 0xa4f00
leaq -0x231(%rbp), %rdi
callq 0x9e350
testb $0x1, -0x232(%rbp)
jne 0xd5647
jmp 0xd5653
movq -0x678(%rbp), %rdi
callq 0x9b9c0
callq 0xa2520
jmp 0xd565a
jmp 0xd56d9
jmp 0xd56c8
movq -0x5c8(%rbp), %rdi
callq 0x98080
movq %rax, -0x688(%rbp)
leaq -0x248(%rbp), %rdi
movq %rdi, -0x680(%rbp)
leaq -0xd8(%rbp), %rsi
callq 0x9cbf0
movq -0x688(%rbp), %rdi
movq -0x680(%rbp), %rsi
callq 0x9eb00
jmp 0xd56a0
leaq -0x248(%rbp), %rdi
callq 0x9f150
jmp 0xd56c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x9f150
jmp 0xd56d9
leaq -0xd8(%rbp), %rdi
callq 0x9f150
jmp 0xd5c05
leaq -0xd8(%rbp), %rdi
callq 0x9f150
jmp 0xd5c22
leaq -0x80(%rbp), %rdi
callq 0x99560
movl %eax, -0x68c(%rbp)
jmp 0xd56fb
movl -0x68c(%rbp), %edx
movq -0x5c0(%rbp), %rsi
leaq -0x258(%rbp), %rdi
callq 0xa4220
jmp 0xd5716
leaq -0xa0(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0xa2b70
leaq -0x258(%rbp), %rdi
callq 0xa2ae0
leaq -0xa0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9b970
testb $0x1, %al
jne 0xd574e
jmp 0xd5832
movb $0x1, -0x299(%rbp)
movl $0x10, %edi
callq 0x99e80
movq %rax, -0x698(%rbp)
leaq 0x2deb5(%rip), %rsi     # 0x103622
leaq -0x298(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x9cf50
jmp 0xd577f
leaq 0x2e2a9(%rip), %rdx     # 0x103a2f
leaq -0x278(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x98100
jmp 0xd579b
movq -0x698(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0xa2430
jmp 0xd57b0
movq -0x698(%rbp), %rdi
movb $0x0, -0x299(%rbp)
movq 0x5d813(%rip), %rsi     # 0x132fd8
movq 0x5d5d4(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xd5f78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5816
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd580a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x278(%rbp), %rdi
callq 0xa4f00
leaq -0x298(%rbp), %rdi
callq 0xa4f00
testb $0x1, -0x299(%rbp)
jne 0xd5821
jmp 0xd582d
movq -0x698(%rbp), %rdi
callq 0x9b9c0
jmp 0xd5c22
leaq -0xa0(%rbp), %rdi
callq 0x9d390
movq %rax, %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x9f700
jmp 0xd584f
leaq 0x2dfda(%rip), %rsi     # 0x103830
leaq -0x2c0(%rbp), %rdi
callq 0xa4e10
movb %al, -0x699(%rbp)
jmp 0xd586a
leaq -0x2c0(%rbp), %rdi
callq 0xa4f00
movb -0x699(%rbp), %al
testb $0x1, %al
jne 0xd5885
jmp 0xd5a4b
leaq -0x448(%rbp), %rdi
callq 0x9b940
jmp 0xd5893
leaq -0x438(%rbp), %rax
movq %rax, -0x6a8(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x9d390
movq %rax, %rdi
callq 0x9d720
movl %eax, -0x6a0(%rbp)
jmp 0xd58bd
movl -0x6a0(%rbp), %esi
movq -0x6a8(%rbp), %rdi
callq 0xa0150
movq %rax, -0x6b0(%rbp)
jmp 0xd58d8
movq -0x6b0(%rbp), %rdi
leaq 0x2f1fd(%rip), %rsi     # 0x104ae3
callq 0x9dba0
movq %rax, -0x6b8(%rbp)
jmp 0xd58f4
leaq -0xa0(%rbp), %rdi
callq 0x9d390
movq %rax, %rsi
leaq -0x468(%rbp), %rdi
callq 0x9e500
jmp 0xd5911
movq -0x6b8(%rbp), %rdi
leaq -0x468(%rbp), %rsi
callq 0x9cf40
movq %rax, -0x6c0(%rbp)
jmp 0xd592d
movq -0x6c0(%rbp), %rdi
leaq 0x2df00(%rip), %rsi     # 0x10383b
callq 0x9dba0
jmp 0xd5942
leaq -0x468(%rbp), %rdi
callq 0xa4f00
movb $0x1, -0x489(%rbp)
movl $0x10, %edi
callq 0x99e80
movq %rax, -0x6c8(%rbp)
leaq -0x488(%rbp), %rdi
leaq -0x448(%rbp), %rsi
callq 0x9da80
jmp 0xd597b
movq -0x6c8(%rbp), %rdi
leaq -0x488(%rbp), %rsi
callq 0xa2430
jmp 0xd5990
movq -0x6c8(%rbp), %rdi
movb $0x0, -0x489(%rbp)
movq 0x5d633(%rip), %rsi     # 0x132fd8
movq 0x5d3f4(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xd5f78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0xa4f00
jmp 0xd5c22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5a3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x468(%rbp), %rdi
callq 0xa4f00
jmp 0xd5a3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5a21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x488(%rbp), %rdi
callq 0xa4f00
testb $0x1, -0x489(%rbp)
jne 0xd5a2c
jmp 0xd5a38
movq -0x6c8(%rbp), %rdi
callq 0x9b9c0
jmp 0xd5a3a
leaq -0x448(%rbp), %rdi
callq 0x9bca0
jmp 0xd5c22
leaq -0x90(%rbp), %rdi
callq 0x98080
movq %rax, %rdi
movl $0x1, %esi
callq 0x9eef0
jmp 0xd5a66
movl -0x5c(%rbp), %esi
leaq -0x58(%rbp), %rdi
callq 0x9e400
movq %rax, -0x6d0(%rbp)
jmp 0xd5a7b
movq -0x6d0(%rbp), %rdi
leaq 0x2de25(%rip), %rsi     # 0x1038ae
callq 0x99470
movq %rax, -0x6d8(%rbp)
jmp 0xd5a97
leaq 0x2d11e(%rip), %rsi     # 0x102bbc
leaq -0x4b8(%rbp), %rdi
callq 0xa2ce0
jmp 0xd5aac
movq -0x6d8(%rbp), %rdi
leaq -0x4b8(%rbp), %rsi
callq 0xa04c0
movb %al, -0x6d9(%rbp)
jmp 0xd5ac7
leaq -0x4b8(%rbp), %rdi
callq 0x9a180
movb -0x6d9(%rbp), %al
testb $0x1, %al
jne 0xd5adf
jmp 0xd5b19
leaq -0x90(%rbp), %rdi
callq 0x98080
movq %rax, %rdi
movl $0x1, %esi
callq 0x99040
jmp 0xd5afa
jmp 0xd5b33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x4b8(%rbp), %rdi
callq 0x9a180
jmp 0xd5c22
leaq -0x90(%rbp), %rdi
callq 0x98080
movq %rax, %rdi
xorl %esi, %esi
callq 0x99040
jmp 0xd5b31
jmp 0xd5b33
leaq -0x90(%rbp), %rdi
callq 0x98080
movq %rax, -0x6f0(%rbp)
leaq -0x4c8(%rbp), %rdi
movq %rdi, -0x6e8(%rbp)
leaq -0xa0(%rbp), %rsi
callq 0xa06b0
movq -0x6f0(%rbp), %rdi
movq -0x6e8(%rbp), %rsi
callq 0x9e6b0
jmp 0xd5b75
leaq -0x4c8(%rbp), %rdi
callq 0xa2ae0
movq -0x5c8(%rbp), %rdi
callq 0x98080
movq %rax, -0x700(%rbp)
leaq -0x4d8(%rbp), %rdi
movq %rdi, -0x6f8(%rbp)
leaq -0x90(%rbp), %rsi
callq 0x97cd0
movq -0x700(%rbp), %rdi
movq -0x6f8(%rbp), %rsi
callq 0x9fad0
jmp 0xd5bc3
leaq -0x4d8(%rbp), %rdi
callq 0x997e0
jmp 0xd5c05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x4c8(%rbp), %rdi
callq 0xa2ae0
jmp 0xd5c22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0x997e0
jmp 0xd5c22
leaq -0xa0(%rbp), %rdi
callq 0xa2ae0
leaq -0x90(%rbp), %rdi
callq 0x997e0
jmp 0xd5de4
leaq -0xa0(%rbp), %rdi
callq 0xa2ae0
leaq -0x90(%rbp), %rdi
callq 0x997e0
movl -0x2c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xd5dfb
movq -0x28(%rbp), %rdi
callq 0x99540
movq %rax, -0x4e0(%rbp)
movb $0x1, -0x562(%rbp)
movl $0x10, %edi
callq 0x99e80
movq %rax, -0x708(%rbp)
leaq 0x2de12(%rip), %rsi     # 0x103a8b
leaq -0x540(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0x9cf50
jmp 0xd5c8b
leaq 0x2d906(%rip), %rdx     # 0x103598
leaq -0x520(%rbp), %rdi
leaq -0x540(%rbp), %rsi
callq 0x98100
jmp 0xd5ca7
movq -0x4e0(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x718(%rbp)
leaq -0x561(%rbp), %rdi
movq %rdi, -0x710(%rbp)
callq 0xa35e0
movq -0x718(%rbp), %rsi
movq -0x710(%rbp), %rdx
leaq -0x560(%rbp), %rdi
callq 0xa0510
jmp 0xd5ced
leaq -0x500(%rbp), %rdi
leaq -0x520(%rbp), %rsi
leaq -0x560(%rbp), %rdx
callq 0x9ca70
jmp 0xd5d09
movq -0x708(%rbp), %rdi
leaq -0x500(%rbp), %rsi
callq 0xa2430
jmp 0xd5d1e
movq -0x708(%rbp), %rdi
movb $0x0, -0x562(%rbp)
movq 0x5d2a5(%rip), %rsi     # 0x132fd8
movq 0x5d066(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xd5f78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5dc4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5db8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5da0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5d94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x500(%rbp), %rdi
callq 0xa4f00
leaq -0x560(%rbp), %rdi
callq 0xa4f00
leaq -0x561(%rbp), %rdi
callq 0x9e350
leaq -0x520(%rbp), %rdi
callq 0xa4f00
leaq -0x540(%rbp), %rdi
callq 0xa4f00
testb $0x1, -0x562(%rbp)
jne 0xd5dcf
jmp 0xd5ddb
movq -0x708(%rbp), %rdi
callq 0x9b9c0
callq 0xa2520
jmp 0xd5de2
jmp 0xd5dfb
leaq -0x80(%rbp), %rdi
callq 0xa4f00
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0xd4e4c
leaq -0x80(%rbp), %rdi
callq 0xa4f00
jmp 0xd5e14
leaq -0x58(%rbp), %rdi
callq 0x9a180
jmp 0xd5f5e
leaq -0x58(%rbp), %rdi
callq 0x9a180
movl -0x2c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xd5f67
movq -0x28(%rbp), %rdi
callq 0x99540
movq %rax, -0x570(%rbp)
movb $0x1, -0x5b2(%rbp)
movl $0x10, %edi
callq 0x99e80
movq %rax, -0x730(%rbp)
movq -0x570(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, -0x728(%rbp)
leaq -0x5b1(%rbp), %rdi
movq %rdi, -0x720(%rbp)
callq 0xa35e0
movq -0x728(%rbp), %rsi
movq -0x720(%rbp), %rdx
leaq -0x5b0(%rbp), %rdi
callq 0xa0510
jmp 0xd5e9b
leaq 0x2dc0b(%rip), %rsi     # 0x103aad
leaq -0x590(%rbp), %rdi
leaq -0x5b0(%rbp), %rdx
callq 0xa2cb0
jmp 0xd5eb7
movq -0x730(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0xa2430
jmp 0xd5ecc
movq -0x730(%rbp), %rdi
movb $0x0, -0x5b2(%rbp)
movq 0x5d0f7(%rip), %rsi     # 0x132fd8
movq 0x5ceb8(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xd5f78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5f32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xd5f26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x590(%rbp), %rdi
callq 0xa4f00
leaq -0x5b0(%rbp), %rdi
callq 0xa4f00
leaq -0x5b1(%rbp), %rdi
callq 0x9e350
testb $0x1, -0x5b2(%rbp)
jne 0xd5f49
jmp 0xd5f55
movq -0x730(%rbp), %rdi
callq 0x9b9c0
callq 0xa2520
jmp 0xd5f5c
jmp 0xd5f67
addq $0x730, %rsp            # imm = 0x730
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0xa3520
movq %rax, %rdi
callq 0xa6900
nopl (%rax,%rax)