// File: /workspace/github_cpp_makefile_star2_O1/xjrueda[P]fixprime/src/Protocol.cpp
// Function: fprime::Protocol::loadComponents()
void Protocol::loadComponents() {
        try {
            if (protocolSpec["Components"].empty()) {
                throw std::runtime_error("No components specified for current  protocol ");
            } else {

                vector<pair < fprime::Component::ComponentPtr, string>> componentDependencies;
                std::vector<string> names = protocolSpec["Components"].getMemberNames();
                // Process the components
                for (std::vector<string>::iterator itr = names.begin(); itr != names.end(); itr++) {
                    //gets the component json Value
                    Json::Value componentSpec = protocolSpec["Components"][*itr];

                    //gets the component's properties
                    string componentType = componentSpec["type"].asString();

                    string componentName = string(*itr);
                    // Creates the component pointer
                    fprime::Component::ComponentPtr component(new Component(componentName));

                    if (componentType == "BlockRepeating") {
                        try {
                            unsigned int controlfld = boost::lexical_cast<unsigned int>(componentSpec["controlField"].asString());
                            fprime::Field::FieldPtr fieldPtr = this->getField(controlfld);
                            component->setControlField(fieldPtr);
                            component->setType(componentType);
                        } catch (boost::bad_lexical_cast& e) {
                            throw runtime_error("Exception loading component " + string(*itr) + ", control field " + componentSpec["controlField"].asString() + " is not a valid field id.");
                        }

                    }

                    // Gets the current component's members array
                    Json::Value members = componentSpec["members"];
                    if (!members.isArray())
                        throw runtime_error("at Protocol.LoadComponents: component " + string(*itr) + " does not have a member array.");


                    // process the members
                    for (int i = 0; i < members.size(); i++) {

                        Json::Value fld = members[i];

                        if (fld.empty())
                            throw runtime_error("Empty member was specified for component " + string(*itr));

                        if (fld["memberId"].empty())
                            throw runtime_error("No memberId was specified in member list of component " + string(*itr));

                        string memberId = fld["memberId"].asString();

                        if (fld["isComponent"] == "Y") {
                            //Nested components
                            try {
                                fprime::Component::ComponentPtr nestedComponent = this->getComponent(memberId);
                                component->addNestedComponent(nestedComponent);
                            } catch (ComponentNotFound& e) {
                                pair<fprime::Component::ComponentPtr, string> depedency(component, memberId);
                                componentDependencies.push_back(depedency);
                            }
                        } else {
                            unsigned int field;

                            try {
                                field = boost::lexical_cast<unsigned int>(memberId);
                            } catch (boost::bad_lexical_cast& e) {
                                throw runtime_error("exception loading component " + string(*itr) + ", " + memberId + " is not a valid field id.");
                            }
                            //gets the field pointer from current protocol
                            fprime::Component::FieldT fieldt;
                            fieldt.field = this->getField(field);

                            if (fieldt.field->getDataType() == "NumInGroup") {
                                stringstream msg;
                                msg << "field " << fieldt.field->getId() << " " <<
                                        fieldt.field->getName() <<
                                        " is of type NumInGroup and cannot be assigned directly to components or messages. add the corresponding component.";
                                throw runtime_error(msg.str());

                            }
                            if (fld["isRequired"] == "Y")
                                fieldt.isRequired = true;
                            else
                                fieldt.isRequired = false;

                            // adds the field pointer to the current component
                            component->addField(fieldt);
                        }
                    }

                    this->addComponent(component);
                }
                std::vector<pair < fprime::Component::ComponentPtr, string>>::iterator depItr;
                // Stablishes all missing component dependencies
                for (depItr = componentDependencies.begin(); depItr != componentDependencies.end(); depItr++) {
                    fprime::Component::ComponentPtr dependent = depItr->first;
                    try {
                        dependent->addNestedComponent(this->getComponent(depItr->second));
                    } catch (ComponentNotFound& e) {
                        throw runtime_error("Component dependency " + depItr->second + " was not found.");
                    }
                }
            }
        } catch (exception& e) {
            throw std::runtime_error("at Protocol.LoadComponents: " + string(e.what()));
        }
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x448, %rsp            # imm = 0x448
movq %rdi, 0x28(%rsp)
addq $0x28, %rdi
leaq 0x1a721(%rip), %rsi     # 0x5c670
movq %rdi, 0x68(%rsp)
callq 0x2e870
movq %rax, %rdi
callq 0x30b40
testb %al, %al
jne 0x42b2a
xorps %xmm0, %xmm0
movaps %xmm0, 0x70(%rsp)
movq $0x0, 0x80(%rsp)
leaq 0x1a6ec(%rip), %rsi     # 0x5c670
movq 0x68(%rsp), %rdi
callq 0x2e870
leaq 0x1d0(%rsp), %rdi
movq %rax, %rsi
callq 0x2f2c0
movq 0x1d0(%rsp), %rax
movq %rax, (%rsp)
cmpq 0x1d8(%rsp), %rax
je 0x42718
leaq 0xe8(%rsp), %rbp
leaq 0x2a0(%rsp), %r14
leaq 0x128(%rsp), %r13
movq 0x68(%rsp), %rdi
leaq 0x1a694(%rip), %rsi     # 0x5c670
callq 0x2e870
movq %rax, %rdi
movq (%rsp), %rsi
callq 0x30de0
leaq 0x90(%rsp), %rdi
movq %rax, %rsi
callq 0x30690
leaq 0x90(%rsp), %rdi
leaq 0x1ac8e(%rip), %rsi     # 0x5cc9a
callq 0x2e870
leaq 0x1b0(%rsp), %rdi
movq %rax, %rsi
callq 0x30bf0
leaq 0x118(%rsp), %rax
movq %rax, 0x108(%rsp)
movq (%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x108(%rsp), %rdi
callq 0x2e8a0
movl $0x88, %edi
callq 0x2f830
movq %rax, %rbx
leaq 0xf8(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq 0x108(%rsp), %rsi
movq 0x110(%rsp), %rdx
addq %rsi, %rdx
movq %rbp, %rdi
callq 0x2e8a0
movq %rbp, %rsi
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x30cd0
movq %rbx, 0x38(%rsp)
xorl %ebp, %ebp
leaq 0x40(%rsp), %rdi
movq %rbx, %rsi
callq 0x2e1f0
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x420c0
callq 0x2f6c0
leaq 0x1b0(%rsp), %rdi
leaq 0x1a499(%rip), %rsi     # 0x5c568
callq 0x2e560
testl %eax, %eax
leaq 0xe8(%rsp), %rbp
jne 0x4225b
leaq 0x90(%rsp), %rdi
leaq 0x1a5b7(%rip), %rsi     # 0x5c6aa
callq 0x2e870
movq %r14, %rdi
movq %rax, %rsi
callq 0x30bf0
movl $0x0, 0x268(%rsp)
movq 0x2a0(%rsp), %rax
movq %rax, 0x430(%rsp)
movq 0x2a8(%rsp), %rcx
addq %rax, %rcx
movq %rcx, 0x438(%rsp)
movq %rax, 0x208(%rsp)
movq %rcx, 0x210(%rsp)
leaq 0x208(%rsp), %rdi
leaq 0x268(%rsp), %rsi
callq 0x30fa0
testb %al, %al
je 0x42a9f
movl 0x268(%rsp), %ebx
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x4217f
callq 0x2f6c0
movq %r14, %rdi
movq 0x28(%rsp), %rsi
movl %ebx, %edx
callq 0x30d40
movq 0x38(%rsp), %rdi
movq 0x2a0(%rsp), %rcx
movq 0x2a8(%rsp), %rax
movq %rcx, 0xd8(%rsp)
movq %rax, 0xe0(%rsp)
testq %rax, %rax
je 0x421cd
movq 0x2fc99(%rip), %rcx     # 0x71e58
cmpb $0x0, (%rcx)
je 0x421c9
incl 0x8(%rax)
jmp 0x421cd
lock
incl 0x8(%rax)
leaq 0xd8(%rsp), %rsi
callq 0x30ae0
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x421ec
callq 0x2f370
movq 0x38(%rsp), %rbx
leaq 0x258(%rsp), %rax
movq %rax, 0x248(%rsp)
movq 0x1b0(%rsp), %rsi
movq 0x1b8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x248(%rsp), %r15
movq %r15, %rdi
callq 0x2e8a0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2e5e0
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x42249
callq 0x2f6c0
movq 0x2a8(%rsp), %rdi
testq %rdi, %rdi
je 0x4225b
callq 0x2f370
leaq 0x90(%rsp), %rdi
leaq 0x1a495(%rip), %rsi     # 0x5c6ff
callq 0x2e870
leaq 0x150(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x30690
movq %rbx, %rdi
callq 0x307a0
testb %al, %al
je 0x42a16
xorl %r15d, %r15d
leaq 0x150(%rsp), %rdi
callq 0x30730
cmpl %eax, %r15d
jae 0x42649
leaq 0x150(%rsp), %rdi
movl %r15d, %esi
callq 0x2f970
movq %r13, %rdi
movq %rax, %rsi
callq 0x30690
movq %r13, %rdi
callq 0x30b40
testb %al, %al
jne 0x4288b
movq %r13, %rdi
leaq 0x1a497(%rip), %rsi     # 0x5c777
callq 0x2e870
movq %rax, %rdi
callq 0x30b40
testb %al, %al
jne 0x42815
movq %r13, %rdi
leaq 0x1a478(%rip), %rsi     # 0x5c777
callq 0x2e870
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x30bf0
movq %r13, %rdi
leaq 0x1a49c(%rip), %rsi     # 0x5c7b7
callq 0x2e870
movq %rax, %rbx
movq %r14, %rdi
leaq 0x197ac(%rip), %rsi     # 0x5bad9
callq 0x30860
movq %rbx, %rdi
movq %r14, %rsi
callq 0x30070
movl %eax, %ebx
movq %r14, %rdi
callq 0x2ebb0
testb %bl, %bl
je 0x423ec
leaq 0x238(%rsp), %rax
movq %rax, 0x228(%rsp)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
addq %rsi, %rdx
leaq 0x228(%rsp), %rbx
movq %rbx, %rdi
callq 0x2e8a0
movq %r14, %rdi
movq 0x28(%rsp), %rsi
movq %rbx, %rdx
callq 0x2e450
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x423a6
callq 0x2f6c0
movq 0x38(%rsp), %rdi
movq 0x2a0(%rsp), %rcx
movq 0x2a8(%rsp), %rax
movq %rcx, 0xc8(%rsp)
movq %rax, 0xd0(%rsp)
testq %rax, %rax
je 0x4251e
movq 0x2fa7d(%rip), %rcx     # 0x71e58
cmpb $0x0, (%rcx)
je 0x4251a
incl 0x8(%rax)
jmp 0x4251e
movl $0x0, 0x34(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x270(%rsp)
movq 0x10(%rsp), %rcx
addq %rax, %rcx
movq %rcx, 0x278(%rsp)
movq %rax, 0x290(%rsp)
movq %rcx, 0x298(%rsp)
leaq 0x290(%rsp), %rdi
leaq 0x34(%rsp), %rsi
callq 0x30fa0
testb %al, %al
je 0x429e5
movl 0x34(%rsp), %edx
movq %r14, %rdi
movq 0x28(%rsp), %rsi
callq 0x30d40
movq 0x2a0(%rsp), %rbx
movq 0x2a8(%rsp), %r12
xorps %xmm0, %xmm0
movaps %xmm0, 0x2a0(%rsp)
movq 0x2a8(%rsp), %rdi
testq %rdi, %rdi
je 0x42479
callq 0x2f370
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2fdd0
movq %r14, %rdi
leaq 0x1a355(%rip), %rsi     # 0x5c7e3
callq 0x2e560
movl %eax, %ebp
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x424af
callq 0x2f6c0
testl %ebp, %ebp
je 0x42901
movq %r13, %rdi
leaq 0x1a3a0(%rip), %rsi     # 0x5c861
callq 0x2e870
movq %rax, %rbp
movq %r14, %rdi
leaq 0x19606(%rip), %rsi     # 0x5bad9
callq 0x30860
movq %rbp, %rdi
movq %r14, %rsi
callq 0x30070
movl %eax, %ebp
movq %r14, %rdi
callq 0x2ebb0
movq 0x38(%rsp), %rdi
movq %rbx, 0x178(%rsp)
movq %r12, 0x180(%rsp)
testq %r12, %r12
je 0x42552
movq 0x2f94a(%rip), %rax     # 0x71e58
cmpb $0x0, (%rax)
je 0x4254c
incl 0x8(%r12)
jmp 0x42552
lock
incl 0x8(%rax)
leaq 0xc8(%rsp), %rsi
callq 0x2edf0
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x4253d
callq 0x2f370
movq 0x2a8(%rsp), %rdi
testq %rdi, %rdi
jne 0x42589
jmp 0x4258e
lock
incl 0x8(%r12)
movb %bpl, 0x188(%rsp)
leaq 0x178(%rsp), %rsi
callq 0x30030
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x42579
callq 0x2f370
testq %r12, %r12
leaq 0xe8(%rsp), %rbp
je 0x4258e
movq %r12, %rdi
callq 0x2f370
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x425a2
callq 0x2f6c0
movq %r13, %rdi
callq 0x2ebb0
incl %r15d
jmp 0x42295
movq %rdx, %r12
movq %rax, %rbx
movq 0xd0(%rsp), %rdi
testq %rdi, %rdi
je 0x425ca
callq 0x2f370
movq 0x2a8(%rsp), %rdi
testq %rdi, %rdi
je 0x42606
callq 0x2f370
jmp 0x42606
movq %rdx, %r12
movq %rax, %rbx
movq 0x228(%rsp), %rdi
leaq 0x238(%rsp), %rax
cmpq %rax, %rdi
je 0x42606
callq 0x2f6c0
jmp 0x42606
movq %rdx, %r12
movq %rax, %rbx
cmpl $0x3, %r12d
jne 0x42b61
movq %rbx, %rdi
callq 0x2e8b0
movq %r14, %rdi
leaq 0x38(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x30fd0
leaq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0x2f400
movq %r14, %rdi
callq 0x2e630
callq 0x30750
jmp 0x4258e
movq 0x38(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0xb8(%rsp)
movq %rax, 0xc0(%rsp)
testq %rax, %rax
je 0x4267d
movq 0x2f7e9(%rip), %rcx     # 0x71e58
cmpb $0x0, (%rcx)
je 0x42679
incl 0x8(%rax)
jmp 0x4267d
lock
incl 0x8(%rax)
movq 0x28(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x2f270
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x426a1
callq 0x2f370
leaq 0x150(%rsp), %rdi
callq 0x2ebb0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x426bd
callq 0x2f370
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x426d7
callq 0x2f6c0
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x426f1
callq 0x2f6c0
leaq 0x90(%rsp), %rdi
callq 0x2ebb0
movq (%rsp), %rax
addq $0x20, %rax
movq %rax, (%rsp)
cmpq 0x1d8(%rsp), %rax
jne 0x41fd0
movq 0x70(%rsp), %r14
cmpq 0x78(%rsp), %r14
je 0x427ec
addq $0x10, %r14
leaq 0x1e8(%rsp), %r15
leaq 0x280(%rsp), %r12
movq -0x10(%r14), %r13
movq -0x8(%r14), %rbx
testq %rbx, %rbx
je 0x4275e
movq 0x2f708(%rip), %rax     # 0x71e58
cmpb $0x0, (%rax)
je 0x4275a
incl 0x8(%rbx)
jmp 0x4275e
lock
incl 0x8(%rbx)
leaq -0x10(%r14), %rbp
leaq 0x1f8(%rsp), %rax
movq %rax, 0x1e8(%rsp)
movq 0x10(%rbp), %rsi
movq 0x18(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x2e8a0
movq %r12, %rdi
movq 0x28(%rsp), %rsi
movq %r15, %rdx
callq 0x2e450
movq %r13, %rdi
movq %r12, %rsi
callq 0x2edf0
movq 0x288(%rsp), %rdi
testq %rdi, %rdi
je 0x427b2
callq 0x2f370
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x427cc
callq 0x2f6c0
testq %rbx, %rbx
je 0x427d9
movq %rbx, %rdi
callq 0x2f370
addq $0x30, %r14
addq $0x30, %rbp
cmpq 0x78(%rsp), %rbp
jne 0x4273c
leaq 0x1d0(%rsp), %rdi
callq 0x2f170
leaq 0x70(%rsp), %rdi
callq 0x2ee20
addq $0x448, %rsp            # imm = 0x448
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
movq (%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x2e8a0
leaq 0x19f37(%rip), %rsi     # 0x5c780
leaq 0x2a0(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x30840
movb $0x1, %bpl
leaq 0x2a0(%rsp), %rsi
movq %rbx, %rdi
callq 0x30700
xorl %ebp, %ebp
movq 0x2f761(%rip), %rsi     # 0x71fd8
movq 0x2f542(%rip), %rdx     # 0x71dc0
movq %rbx, %rdi
callq 0x308f0
jmp 0x4365b
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
movq (%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x2e8a0
leaq 0x19e8e(%rip), %rsi     # 0x5c74d
leaq 0x2a0(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x30840
movb $0x1, %bpl
leaq 0x2a0(%rsp), %rsi
movq %rbx, %rdi
callq 0x30700
xorl %ebp, %ebp
movq 0x2f6eb(%rip), %rsi     # 0x71fd8
movq 0x2f4cc(%rip), %rdx     # 0x71dc0
movq %rbx, %rdi
callq 0x308f0
jmp 0x4365b
leaq 0x2a0(%rsp), %rdi
callq 0x2f130
leaq 0x2b0(%rsp), %r14
leaq 0x19d35(%rip), %rsi     # 0x5c652
movl $0x6, %edx
movq %r14, %rdi
callq 0x2fb20
movq %rbx, %rdi
callq 0x2f6e0
movl %eax, %esi
movq %r14, %rdi
callq 0x2f090
movq %rax, %r14
leaq 0x1ac19(%rip), %rsi     # 0x5d55f
movl $0x1, %edx
movq %rax, %rdi
callq 0x2fb20
leaq 0x48(%rsp), %rdi
movq %rbx, %rsi
callq 0x2f9a0
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq %r14, %rdi
callq 0x2fb20
leaq 0x19e75(%rip), %rsi     # 0x5c7ee
movl $0x72, %edx
movq %rax, %rdi
callq 0x2fb20
leaq 0x58(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x42999
callq 0x2f6c0
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x2b8(%rsp), %rsi
leaq 0x48(%rsp), %rdi
callq 0x305d0
movb $0x1, %bpl
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x30700
xorl %ebp, %ebp
movq 0x2f607(%rip), %rsi     # 0x71fd8
movq 0x2f3e8(%rip), %rdx     # 0x71dc0
movq %rbx, %rdi
callq 0x308f0
jmp 0x4365b
movq 0x2f414(%rip), %rax     # 0x71e00
addq $0x10, %rax
leaq 0x2a0(%rsp), %rdi
movq %rax, (%rdi)
movq 0x2f2ee(%rip), %rax     # 0x71cf0
movq %rax, 0x8(%rdi)
movq 0x2f51b(%rip), %rax     # 0x71f28
movq %rax, 0x10(%rdi)
callq 0x2fd10
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
movq (%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x2e8a0
leaq 0x19cbd(%rip), %rsi     # 0x5c707
leaq 0x128(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x30840
leaq 0x19ccb(%rip), %rsi     # 0x5c72e
leaq 0x128(%rsp), %rdi
callq 0x30e60
leaq 0x2b0(%rsp), %rcx
movq %rcx, 0x2a0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x42ad0
movups (%rcx), %xmm0
leaq 0x2b0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x42ae3
movq 0x2f35a(%rip), %rax     # 0x71e00
addq $0x10, %rax
leaq 0x150(%rsp), %rdi
movq %rax, (%rdi)
movq 0x2f234(%rip), %rax     # 0x71cf0
movq %rax, 0x8(%rdi)
movq 0x2f461(%rip), %rax     # 0x71f28
movq %rax, 0x10(%rdi)
callq 0x2fd10
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x2a0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x30700
xorl %ebp, %ebp
movq 0x2f4c2(%rip), %rsi     # 0x71fd8
movq 0x2f2a3(%rip), %rdx     # 0x71dc0
movq %rbx, %rdi
callq 0x308f0
jmp 0x4365b
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x19b3d(%rip), %rsi     # 0x5c67b
movq %rax, %rdi
callq 0x2e800
movq 0x2f48b(%rip), %rsi     # 0x71fd8
movq 0x2f26c(%rip), %rdx     # 0x71dc0
movq %rbx, %rdi
callq 0x308f0
jmp 0x4365b
movq %rbx, %r15
movq %r12, %r13
jmp 0x43528
jmp 0x4350d
movq %rdx, %r13
movq %rax, %r15
leaq 0x2a0(%rsp), %rdi
callq 0x2e630
jmp 0x42b8c
movq %rdx, %r13
movq %rax, %r15
callq 0x30750
jmp 0x43528
movq %rdx, %r13
movq %rax, %r15
movq %rbx, %rdi
callq 0x2f150
jmp 0x435d1
movq %rdx, %r13
movq %rax, %r15
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x42bc9
callq 0x2f6c0
jmp 0x42bc9
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x431d0
movq %rbx, %rdi
callq 0x2f150
jmp 0x431d0
movq %rdx, %r13
movq %rax, %r15
jmp 0x435c7
movq %rdx, %r13
movq %rax, %r15
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x42c15
callq 0x2f6c0
jmp 0x42c15
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
leaq 0x138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42c68
callq 0x2f6c0
jmp 0x42c68
movq %rdx, %r13
movq %rax, %r15
jmp 0x435d1
movq %rdx, %r13
movq %rax, %r15
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x431d0
callq 0x2f6c0
jmp 0x431d0
jmp 0x431ca
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x42d20
callq 0x2f6c0
jmp 0x42d20
jmp 0x42d36
movq %rdx, %r13
movq %rax, %r15
movq 0x248(%rsp), %rdi
leaq 0x258(%rsp), %rax
cmpq %rax, %rdi
je 0x42d03
callq 0x2f6c0
jmp 0x42d03
movq %rdx, %r13
movq %rax, %r15
leaq 0x150(%rsp), %rdi
callq 0x305c0
jmp 0x42ccf
movq %rdx, %r13
movq %rax, %r15
jmp 0x42d03
movq %rdx, %r13
movq %rax, %r15
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x42d3c
callq 0x2f6c0
jmp 0x42d3c
movq %rdx, %r13
movq %rax, %r15
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x42d03
callq 0x2f370
movq 0x2a8(%rsp), %rdi
testq %rdi, %rdi
je 0x42d3c
callq 0x2f370
jmp 0x42d3c
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x4355d
movq %rbx, %rdi
callq 0x2f150
jmp 0x4355d
movq %rdx, %r13
movq %rax, %r15
cmpl $0x2, %r13d
jne 0x4356a
movq %r15, %rdi
callq 0x2e8b0
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x48(%rsp), %rdi
callq 0x2e8a0
leaq 0x19934(%rip), %rsi     # 0x5c6b7
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x30840
leaq 0x1993b(%rip), %rsi     # 0x5c6d4
leaq 0x8(%rsp), %rdi
callq 0x30e60
leaq 0x138(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x42dc7
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x42dda
movq %rdx, 0x128(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x138(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x130(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x198ae(%rip), %rsi     # 0x5c6aa
leaq 0x90(%rsp), %rdi
callq 0x2e870
leaq 0x190(%rsp), %rdi
movq %rax, %rsi
callq 0x30bf0
leaq 0x150(%rsp), %rdi
leaq 0x128(%rsp), %rsi
leaq 0x190(%rsp), %rdx
callq 0x2f450
leaq 0x198a8(%rip), %rsi     # 0x5c6e5
leaq 0x150(%rsp), %rdi
callq 0x30e60
leaq 0x2b0(%rsp), %rcx
movq %rcx, 0x2a0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x42e79
movups (%rcx), %xmm0
leaq 0x2b0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x42e8c
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x2a0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x30700
xorl %ebp, %ebp
movq 0x2f119(%rip), %rsi     # 0x71fd8
movq 0x2eefa(%rip), %rdx     # 0x71dc0
movq %rbx, %rdi
callq 0x308f0
jmp 0x4365b
movq %rdx, %r13
movq %rax, %r12
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x42efe
callq 0x2f6c0
jmp 0x42efe
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0x160(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42f1f
callq 0x2f6c0
jmp 0x42f1f
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0x1a0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42f40
callq 0x2f6c0
jmp 0x42f40
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
movq 0x128(%rsp), %rdi
cmpq %r15, %rdi
je 0x42f5d
callq 0x2f6c0
jmp 0x42f5d
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x42f7c
callq 0x2f6c0
jmp 0x42f7c
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x42f96
callq 0x2f6c0
jmp 0x42f96
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
testb %bpl, %bpl
je 0x42fa3
movq %rbx, %rdi
callq 0x2f150
callq 0x30750
movq %r12, %r15
jmp 0x4356a
movq %rdx, %r13
movq %rax, %r15
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x4355d
callq 0x2f370
jmp 0x4355d
jmp 0x43542
movq %rdx, %r13
movq %rax, %r15
jmp 0x43593
movq %rdx, %r13
movq %rax, %r15
jmp 0x43579
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
jmp 0x4319e
movq %rdx, %r13
movq %rax, %r15
jmp 0x4303c
movq %rdx, %r13
movq %rax, %r15
jmp 0x43022
movq %rdx, %r13
movq %rax, %r15
movq 0x288(%rsp), %rdi
testq %rdi, %rdi
je 0x43022
callq 0x2f370
movq 0x1e8(%rsp), %rdi
leaq 0x1f8(%rsp), %rax
cmpq %rax, %rdi
je 0x4303c
callq 0x2f6c0
cmpl $0x3, %r13d
jne 0x4315d
movq %r15, %rdi
callq 0x2e8b0
movl $0x10, %edi
callq 0x2eae0
movq %rax, %r15
leaq 0x1980a(%rip), %rsi     # 0x5c86c
leaq 0x90(%rsp), %rdi
movq %r14, %rdx
callq 0x2f510
leaq 0x19809(%rip), %rsi     # 0x5c882
leaq 0x90(%rsp), %rdi
callq 0x30e60
leaq 0x2b0(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x430aa
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x430bd
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x2a0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r15, %rdi
callq 0x30700
xorl %ebp, %ebp
movq 0x2eee8(%rip), %rsi     # 0x71fd8
movq 0x2ecc9(%rip), %rdx     # 0x71dc0
movq %r15, %rdi
callq 0x308f0
jmp 0x4365b
movq %rdx, %r13
movq %rax, %r12
movq 0x2a0(%rsp), %rdi
cmpq %r14, %rdi
je 0x43127
callq 0x2f6c0
jmp 0x43127
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x43148
callq 0x2f6c0
jmp 0x43148
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
testb %bpl, %bpl
je 0x43155
movq %r15, %rdi
callq 0x2f150
callq 0x30750
movq %r12, %r15
testq %rbx, %rbx
je 0x435ba
movq %rbx, %rdi
callq 0x2f370
jmp 0x435ba
movq %rdx, %r13
movq %rax, %r15
jmp 0x4356a
movq %rdx, %r13
movq %rax, %r15
movq 0xe8(%rsp), %rdi
leaq 0xf8(%rsp), %rax
cmpq %rax, %rdi
je 0x4319e
callq 0x2f6c0
testb %bpl, %bpl
je 0x43579
movq %rbx, %rdi
callq 0x2f6c0
jmp 0x43579
movq %rdx, %r13
movq %rax, %r15
jmp 0x435ad
movq %rdx, %r13
movq %rax, %r15
jmp 0x435ba
movq %rdx, %r13
movq %rax, %r15
movq 0x2eaa9(%rip), %rsi     # 0x71c80
leaq 0x2a0(%rsp), %rdi
callq 0x2f190
leaq 0x320(%rsp), %rdi
callq 0x2e700
jmp 0x434ca
jmp 0x431fa
jmp 0x4321c
movq %rdx, %r13
movq %rax, %r15
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x43225
callq 0x2f6c0
jmp 0x43225
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x434e2
callq 0x2f6c0
jmp 0x434e2
jmp 0x434c4
movq %rdx, %r13
movq %rax, %r15
xorl %r12d, %r12d
jmp 0x434ca
jmp 0x434c4
movq %rdx, %r13
movq %rax, %r15
jmp 0x43292
jmp 0x434c4
movq %rdx, %r13
movq %rax, %r15
leaq 0x2a0(%rsp), %rdi
callq 0x2ebb0
jmp 0x434ca
movq %rdx, %r13
movq %rax, %r15
leaq 0x2a0(%rsp), %rdi
callq 0x305c0
cmpl $0x2, %r13d
jne 0x43528
movq %r15, %rdi
callq 0x2e8b0
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x218(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x208(%rsp), %rdi
callq 0x2e8a0
leaq 0x194e4(%rip), %rsi     # 0x5c7c3
leaq 0x428(%rsp), %rdi
leaq 0x208(%rsp), %rdx
callq 0x30840
leaq 0x194e5(%rip), %rsi     # 0x5c7e0
leaq 0x428(%rsp), %rdi
callq 0x30e60
leaq 0x1a0(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x4332c
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x4333f
movq %rdx, 0x190(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x190(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x303f0
leaq 0x19371(%rip), %rsi     # 0x5c6e5
leaq 0x48(%rsp), %rdi
callq 0x30e60
leaq 0x2b0(%rsp), %rcx
movq %rcx, 0x2a0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x433ad
movups (%rcx), %xmm0
leaq 0x2b0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x433c0
movq %rdx, 0x2a0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2b0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x2a0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x30700
xorl %ebp, %ebp
movq 0x2ebe5(%rip), %rsi     # 0x71fd8
movq 0x2e9c6(%rip), %rdx     # 0x71dc0
movq %rbx, %rdi
callq 0x308f0
jmp 0x4365b
movq %rdx, %r13
movq %rax, %r12
movq 0x2a0(%rsp), %rdi
leaq 0x2b0(%rsp), %rax
cmpq %rax, %rdi
je 0x43432
callq 0x2f6c0
jmp 0x43432
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x43450
callq 0x2f6c0
jmp 0x43450
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
movq 0x190(%rsp), %rdi
cmpq %r15, %rdi
je 0x4346d
callq 0x2f6c0
jmp 0x4346d
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0x438(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x43483
callq 0x2f6c0
movq %r12, %r15
jmp 0x43491
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
movq 0x208(%rsp), %rdi
cmpq %r14, %rdi
je 0x434ae
callq 0x2f6c0
jmp 0x434ae
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x434bb
movq %rbx, %rdi
callq 0x2f150
callq 0x30750
jmp 0x43528
jmp 0x434d9
movq %rdx, %r13
movq %rax, %r15
testq %r12, %r12
je 0x43528
movq %r12, %rdi
callq 0x2f370
jmp 0x43528
movq %rdx, %r13
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x43550
movq %rbx, %rdi
callq 0x2f150
jmp 0x43550
movq %rdx, %r13
movq %rax, %r15
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x434ca
callq 0x2f370
jmp 0x434ca
jmp 0x4350d
movq %rdx, %r13
movq %rax, %r15
jmp 0x43528
movq %rdx, %r13
movq %rax, %r15
leaq 0x2a0(%rsp), %rdi
callq 0x2ebb0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x43550
callq 0x2f6c0
jmp 0x43550
jmp 0x43542
jmp 0x4354a
movq %rdx, %r13
movq %rax, %r15
jmp 0x4355d
movq %rdx, %r13
movq %rax, %r15
leaq 0x128(%rsp), %rdi
callq 0x2ebb0
leaq 0x150(%rsp), %rdi
callq 0x2ebb0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x43579
callq 0x2f370
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x43593
callq 0x2f6c0
movq 0x1b0(%rsp), %rdi
leaq 0x1c0(%rsp), %rax
cmpq %rax, %rdi
je 0x435ad
callq 0x2f6c0
leaq 0x90(%rsp), %rdi
callq 0x2ebb0
leaq 0x1d0(%rsp), %rdi
callq 0x2f170
leaq 0x70(%rsp), %rdi
callq 0x2ee20
cmpl $0x1, %r13d
jne 0x436ac
movq %r15, %rdi
callq 0x2e8b0
movq %rax, %r14
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
leaq 0x90(%rsp), %rdi
leaq 0x150(%rsp), %rdx
movq %rax, %rsi
callq 0x2e880
leaq 0x19277(%rip), %rsi     # 0x5c892
leaq 0x2a0(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x30840
movb $0x1, %bpl
leaq 0x2a0(%rsp), %rsi
movq %rbx, %rdi
callq 0x30700
xorl %ebp, %ebp
movq 0x2e98c(%rip), %rsi     # 0x71fd8
movq 0x2e76d(%rip), %rdx     # 0x71dc0
movq %rbx, %rdi
callq 0x308f0
movq %rax, %r15
leaq 0x2b0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4367c
callq 0x2f6c0
jmp 0x4367c
movq %rax, %r15
movb $0x1, %bpl
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4369a
callq 0x2f6c0
jmp 0x4369a
movq %rax, %r15
movb $0x1, %bpl
testb %bpl, %bpl
je 0x436a7
movq %rbx, %rdi
callq 0x2f150
callq 0x30750
movq %r15, %rdi
callq 0x30a20
movq %rax, %rdi
callq 0x32108