// File: /workspace/github_cpp_makefile_star2_O3/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 $0x438, %rsp            # imm = 0x438
movq %rdi, 0x30(%rsp)
addq $0x28, %rdi
leaq 0x19a05(%rip), %rsi     # 0x5b670
movq %rdi, 0x70(%rsp)
callq 0x2e870
movq %rax, %rdi
callq 0x30b30
testb %al, %al
jne 0x4280a
xorps %xmm0, %xmm0
movaps %xmm0, 0xa0(%rsp)
movq $0x0, 0xb0(%rsp)
leaq 0x199cd(%rip), %rsi     # 0x5b670
movq 0x70(%rsp), %rdi
callq 0x2e870
leaq 0x1f8(%rsp), %rdi
movq %rax, %rsi
callq 0x2f2c0
movq 0x1f8(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq 0x200(%rsp), %rax
je 0x423e9
leaq 0x1b8(%rsp), %r12
leaq 0x2b0(%rsp), %r14
leaq 0x110(%rsp), %r13
movq 0x70(%rsp), %rdi
leaq 0x19974(%rip), %rsi     # 0x5b670
callq 0x2e870
movq %rax, %rdi
movq 0x8(%rsp), %rsi
callq 0x30dd0
leaq 0x78(%rsp), %rdi
movq %rax, %rsi
callq 0x30680
leaq 0x78(%rsp), %rdi
leaq 0x19f73(%rip), %rsi     # 0x5bc9a
callq 0x2e870
leaq 0x1d8(%rsp), %rdi
movq %rax, %rsi
callq 0x30be0
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0xf0(%rsp), %rdi
callq 0x2e8a0
movl $0x88, %edi
callq 0x2f830
movq %rax, %rbx
leaq 0x1c8(%rsp), %rax
movq %rax, 0x1b8(%rsp)
movq 0xf0(%rsp), %rsi
movq 0xf8(%rsp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x2e8a0
movb $0x1, %bpl
movq %rbx, %rdi
movq %r12, %rsi
callq 0x30cc0
movq %rbx, 0x40(%rsp)
xorl %ebp, %ebp
leaq 0x48(%rsp), %rdi
movq %rbx, %rsi
callq 0x2e1f0
movq 0x1b8(%rsp), %rdi
leaq 0x1c8(%rsp), %rax
cmpq %rax, %rdi
je 0x41ddc
callq 0x2f6c0
leaq 0x1d8(%rsp), %rdi
leaq 0x1977d(%rip), %rsi     # 0x5b568
callq 0x2e560
testl %eax, %eax
jne 0x41f5c
leaq 0x78(%rsp), %rdi
leaq 0x198a6(%rip), %rsi     # 0x5b6aa
callq 0x2e870
movq %r14, %rdi
movq %rax, %rsi
callq 0x30be0
movl $0x0, 0x178(%rsp)
movq 0x2b0(%rsp), %rax
movq 0x2b8(%rsp), %rcx
addq %rax, %rcx
movq %rax, 0x280(%rsp)
movq %rcx, 0x288(%rsp)
leaq 0x280(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0x30f90
testb %al, %al
je 0x4277f
movl 0x178(%rsp), %ebx
movq 0x2b0(%rsp), %rdi
leaq 0x2c0(%rsp), %rax
cmpq %rax, %rdi
je 0x41e80
callq 0x2f6c0
movq %r14, %rdi
movq 0x30(%rsp), %rsi
movl %ebx, %edx
callq 0x30d30
movq 0x40(%rsp), %rdi
movq 0x2b0(%rsp), %rcx
movq 0x2b8(%rsp), %rax
movq %rcx, 0xe0(%rsp)
movq %rax, 0xe8(%rsp)
testq %rax, %rax
je 0x41ece
movq 0x2ef98(%rip), %rcx     # 0x70e58
cmpb $0x0, (%rcx)
je 0x41eca
incl 0x8(%rax)
jmp 0x41ece
lock
incl 0x8(%rax)
leaq 0xe0(%rsp), %rsi
callq 0x30ad0
movq 0xe8(%rsp), %rdi
testq %rdi, %rdi
je 0x41eed
callq 0x2f370
movq 0x40(%rsp), %rbx
leaq 0x260(%rsp), %rax
movq %rax, 0x250(%rsp)
movq 0x1d8(%rsp), %rsi
movq 0x1e0(%rsp), %rdx
addq %rsi, %rdx
leaq 0x250(%rsp), %r15
movq %r15, %rdi
callq 0x2e8a0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2e5e0
movq 0x250(%rsp), %rdi
leaq 0x260(%rsp), %rax
cmpq %rax, %rdi
je 0x41f4a
callq 0x2f6c0
movq 0x2b8(%rsp), %rdi
testq %rdi, %rdi
je 0x41f5c
callq 0x2f370
leaq 0x78(%rsp), %rdi
leaq 0x19797(%rip), %rsi     # 0x5b6ff
callq 0x2e870
leaq 0x138(%rsp), %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0x30680
movq %rbx, %rdi
callq 0x30790
testb %al, %al
je 0x426f5
xorl %r15d, %r15d
leaq 0x138(%rsp), %rdi
callq 0x30720
cmpl %eax, %r15d
jae 0x4231b
leaq 0x138(%rsp), %rdi
movl %r15d, %esi
callq 0x2f970
movq %r13, %rdi
movq %rax, %rsi
callq 0x30680
movq %r13, %rdi
callq 0x30b30
leaq 0x197a4(%rip), %rbx     # 0x5b777
leaq 0x230(%rsp), %r12
testb %al, %al
jne 0x42569
movq %r13, %rdi
movq %rbx, %rsi
callq 0x2e870
movq %rax, %rdi
callq 0x30b30
testb %al, %al
jne 0x424f2
movq %r13, %rdi
movq %rbx, %rsi
callq 0x2e870
leaq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x30be0
movq %r13, %rdi
leaq 0x19797(%rip), %rsi     # 0x5b7b7
callq 0x2e870
movq %rax, %rbx
movq %r14, %rdi
leaq 0x18aa7(%rip), %rsi     # 0x5aad9
callq 0x30850
movq %rbx, %rdi
movq %r14, %rsi
callq 0x30060
movl %eax, %ebx
movq %r14, %rdi
callq 0x2ebb0
testb %bl, %bl
je 0x420e9
leaq 0x240(%rsp), %rax
movq %rax, 0x230(%rsp)
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x2e8a0
movq %r14, %rdi
movq 0x30(%rsp), %rsi
movq %r12, %rdx
callq 0x2e450
movq 0x230(%rsp), %rdi
leaq 0x240(%rsp), %rax
cmpq %rax, %rdi
je 0x420a3
callq 0x2f6c0
movq 0x40(%rsp), %rdi
movq 0x2b0(%rsp), %rcx
movq 0x2b8(%rsp), %rax
movq %rcx, 0xd0(%rsp)
movq %rax, 0xd8(%rsp)
testq %rax, %rax
je 0x421ee
movq 0x2ed80(%rip), %rcx     # 0x70e58
cmpb $0x0, (%rcx)
je 0x421ea
incl 0x8(%rax)
jmp 0x421ee
movl $0x0, 0x3c(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
addq %rax, %rcx
movq %rax, 0x2a0(%rsp)
movq %rcx, 0x2a8(%rsp)
leaq 0x2a0(%rsp), %rdi
leaq 0x3c(%rsp), %rsi
callq 0x30f90
testb %al, %al
je 0x426c4
movl 0x3c(%rsp), %edx
movq %r14, %rdi
movq 0x30(%rsp), %rsi
callq 0x30d30
movq 0x2b0(%rsp), %rbx
movq 0x2b8(%rsp), %r12
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2fdc0
movq %r14, %rdi
leaq 0x19685(%rip), %rsi     # 0x5b7e3
callq 0x2e560
movl %eax, %ebp
movq 0x2b0(%rsp), %rdi
leaq 0x2c0(%rsp), %rax
cmpq %rax, %rdi
je 0x4217f
callq 0x2f6c0
testl %ebp, %ebp
je 0x425e0
movq %r13, %rdi
leaq 0x196d0(%rip), %rsi     # 0x5b861
callq 0x2e870
movq %rax, %rbp
movq %r14, %rdi
leaq 0x18936(%rip), %rsi     # 0x5aad9
callq 0x30850
movq %rbp, %rdi
movq %r14, %rsi
callq 0x30060
movl %eax, %ebp
movq %r14, %rdi
callq 0x2ebb0
movq 0x40(%rsp), %rdi
movq %rbx, 0x160(%rsp)
movq %r12, 0x168(%rsp)
testq %r12, %r12
je 0x42222
movq 0x2ec7a(%rip), %rax     # 0x70e58
cmpb $0x0, (%rax)
je 0x4221c
incl 0x8(%r12)
jmp 0x42222
lock
incl 0x8(%rax)
leaq 0xd0(%rsp), %rsi
callq 0x2edf0
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x4220d
callq 0x2f370
movq 0x2b8(%rsp), %rdi
testq %rdi, %rdi
jne 0x42251
jmp 0x42256
lock
incl 0x8(%r12)
movb %bpl, 0x170(%rsp)
leaq 0x160(%rsp), %rsi
callq 0x30020
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x42249
callq 0x2f370
testq %r12, %r12
je 0x42256
movq %r12, %rdi
callq 0x2f370
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x4226a
callq 0x2f6c0
movq %r13, %rdi
callq 0x2ebb0
incl %r15d
leaq 0x1b8(%rsp), %r12
jmp 0x41f93
movq %rdx, %rbp
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
testq %rdi, %rdi
je 0x4229a
callq 0x2f370
movq 0x2b8(%rsp), %rdi
testq %rdi, %rdi
je 0x422d6
callq 0x2f370
jmp 0x422d6
movq %rdx, %rbp
movq %rax, %rbx
movq 0x230(%rsp), %rdi
leaq 0x240(%rsp), %rax
cmpq %rax, %rdi
je 0x422d6
callq 0x2f6c0
jmp 0x422d6
movq %rdx, %rbp
movq %rax, %rbx
cmpl $0x3, %ebp
jne 0x42841
movq %rbx, %rdi
callq 0x2e8b0
movq %r14, %rdi
leaq 0x40(%rsp), %rsi
leaq 0x10(%rsp), %rdx
callq 0x30fc0
leaq 0xa0(%rsp), %rdi
movq %r14, %rsi
callq 0x2f400
movq %r14, %rdi
callq 0x2e630
callq 0x30740
jmp 0x42256
movq 0x40(%rsp), %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0xc0(%rsp)
movq %rax, 0xc8(%rsp)
testq %rax, %rax
je 0x4234f
movq 0x2eb17(%rip), %rcx     # 0x70e58
cmpb $0x0, (%rcx)
je 0x4234b
incl 0x8(%rax)
jmp 0x4234f
lock
incl 0x8(%rax)
movq 0x30(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x2f270
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x42373
callq 0x2f370
leaq 0x138(%rsp), %rdi
callq 0x2ebb0
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x4238f
callq 0x2f370
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x423a9
callq 0x2f6c0
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x423c3
callq 0x2f6c0
leaq 0x78(%rsp), %rdi
callq 0x2ebb0
movq 0x8(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x8(%rsp)
cmpq 0x200(%rsp), %rax
jne 0x41cf0
movq 0xa0(%rsp), %r14
cmpq 0xa8(%rsp), %r14
je 0x424c6
addq $0x10, %r14
leaq 0x210(%rsp), %r15
leaq 0x270(%rsp), %r12
movq -0x10(%r14), %r13
movq -0x8(%r14), %rbx
testq %rbx, %rbx
je 0x42435
movq 0x2ea31(%rip), %rax     # 0x70e58
cmpb $0x0, (%rax)
je 0x42431
incl 0x8(%rbx)
jmp 0x42435
lock
incl 0x8(%rbx)
leaq -0x10(%r14), %rbp
leaq 0x220(%rsp), %rax
movq %rax, 0x210(%rsp)
movq 0x10(%rbp), %rsi
movq 0x18(%rbp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x2e8a0
movq %r12, %rdi
movq 0x30(%rsp), %rsi
movq %r15, %rdx
callq 0x2e450
movq %r13, %rdi
movq %r12, %rsi
callq 0x2edf0
movq 0x278(%rsp), %rdi
testq %rdi, %rdi
je 0x42489
callq 0x2f370
movq 0x210(%rsp), %rdi
leaq 0x220(%rsp), %rax
cmpq %rax, %rdi
je 0x424a3
callq 0x2f6c0
testq %rbx, %rbx
je 0x424b0
movq %rbx, %rdi
callq 0x2f370
addq $0x30, %r14
addq $0x30, %rbp
cmpq 0xa8(%rsp), %rbp
jne 0x42413
leaq 0x1f8(%rsp), %rdi
callq 0x2f170
leaq 0xa0(%rsp), %rdi
callq 0x2ee20
addq $0x438, %rsp            # imm = 0x438
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x2e8a0
leaq 0x19259(%rip), %rsi     # 0x5b780
leaq 0x2b0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x30830
movb $0x1, %bpl
leaq 0x2b0(%rsp), %rsi
movq %rbx, %rdi
callq 0x306f0
xorl %ebp, %ebp
movq 0x2ea83(%rip), %rsi     # 0x70fd8
movq 0x2e864(%rip), %rdx     # 0x70dc0
movq %rbx, %rdi
callq 0x308e0
jmp 0x43377
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x2e8a0
leaq 0x191af(%rip), %rsi     # 0x5b74d
leaq 0x2b0(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x30830
movb $0x1, %bpl
leaq 0x2b0(%rsp), %rsi
movq %rbx, %rdi
callq 0x306f0
xorl %ebp, %ebp
movq 0x2ea0c(%rip), %rsi     # 0x70fd8
movq 0x2e7ed(%rip), %rdx     # 0x70dc0
movq %rbx, %rdi
callq 0x308e0
jmp 0x43377
leaq 0x2b0(%rsp), %rdi
callq 0x2f130
leaq 0x2c0(%rsp), %r14
leaq 0x19056(%rip), %rsi     # 0x5b652
movl $0x6, %edx
movq %r14, %rdi
callq 0x2fb10
movq %rbx, %rdi
callq 0x2f6e0
movl %eax, %esi
movq %r14, %rdi
callq 0x2f090
movq %rax, %r14
leaq 0x19f3a(%rip), %rsi     # 0x5c55f
movl $0x1, %edx
movq %rax, %rdi
callq 0x2fb10
leaq 0x50(%rsp), %rdi
movq %rbx, %rsi
callq 0x2f9a0
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq %r14, %rdi
callq 0x2fb10
leaq 0x19196(%rip), %rsi     # 0x5b7ee
movl $0x72, %edx
movq %rax, %rdi
callq 0x2fb10
leaq 0x60(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x42678
callq 0x2f6c0
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x2c8(%rsp), %rsi
leaq 0x50(%rsp), %rdi
callq 0x305c0
movb $0x1, %bpl
leaq 0x50(%rsp), %rsi
movq %rbx, %rdi
callq 0x306f0
xorl %ebp, %ebp
movq 0x2e928(%rip), %rsi     # 0x70fd8
movq 0x2e709(%rip), %rdx     # 0x70dc0
movq %rbx, %rdi
callq 0x308e0
jmp 0x43377
movq 0x2e735(%rip), %rax     # 0x70e00
addq $0x10, %rax
leaq 0x2b0(%rsp), %rdi
movq %rax, (%rdi)
movq 0x2e60f(%rip), %rax     # 0x70cf0
movq %rax, 0x8(%rdi)
movq 0x2e83c(%rip), %rax     # 0x70f28
movq %rax, 0x10(%rdi)
callq 0x2fd00
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
movq %rax, (%rdi)
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x2e8a0
leaq 0x18fdd(%rip), %rsi     # 0x5b707
leaq 0x110(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x30830
leaq 0x18feb(%rip), %rsi     # 0x5b72e
leaq 0x110(%rsp), %rdi
callq 0x30e50
leaq 0x2c0(%rsp), %rcx
movq %rcx, 0x2b0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x427b0
movups (%rcx), %xmm0
leaq 0x2c0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x427c3
movq 0x2e67a(%rip), %rax     # 0x70e00
addq $0x10, %rax
leaq 0x138(%rsp), %rdi
movq %rax, (%rdi)
movq 0x2e554(%rip), %rax     # 0x70cf0
movq %rax, 0x8(%rdi)
movq 0x2e781(%rip), %rax     # 0x70f28
movq %rax, 0x10(%rdi)
callq 0x2fd00
movq %rdx, 0x2b0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2c0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x2b0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x306f0
xorl %ebp, %ebp
movq 0x2e7e2(%rip), %rsi     # 0x70fd8
movq 0x2e5c3(%rip), %rdx     # 0x70dc0
movq %rbx, %rdi
callq 0x308e0
jmp 0x43377
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x18e5d(%rip), %rsi     # 0x5b67b
movq %rax, %rdi
callq 0x2e800
movq 0x2e7ab(%rip), %rsi     # 0x70fd8
movq 0x2e58c(%rip), %rdx     # 0x70dc0
movq %rbx, %rdi
callq 0x308e0
jmp 0x43377
movq %rbx, %r15
jmp 0x4324b
jmp 0x43230
movq %rdx, %rbp
movq %rax, %r15
leaq 0x2b0(%rsp), %rdi
callq 0x2e630
jmp 0x42869
movq %rdx, %rbp
movq %rax, %r15
callq 0x30740
jmp 0x4324b
movq %rdx, %rbp
movq %rax, %r15
movq %rbx, %rdi
callq 0x2f150
jmp 0x432f4
movq %rdx, %r13
movq %rax, %r15
movq 0x50(%rsp), %rdi
cmpq %r14, %rdi
je 0x4289b
callq 0x2f6c0
testb %bpl, %bpl
movq %r13, %rbp
jne 0x428ae
jmp 0x42ed5
movq %rdx, %rbp
movq %rax, %r15
movq %rbx, %rdi
callq 0x2f150
jmp 0x42ed5
movq %rdx, %rbp
movq %rax, %r15
jmp 0x432e7
movq %rdx, %r14
movq %rax, %r15
movq 0x2b0(%rsp), %rdi
leaq 0x2c0(%rsp), %rax
cmpq %rax, %rdi
je 0x428f1
callq 0x2f6c0
jmp 0x428f1
movq %rdx, %r14
movq %rax, %r15
movb $0x1, %bpl
leaq 0x120(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42907
callq 0x2f6c0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x4291b
callq 0x2f6c0
testb %bpl, %bpl
movq %r14, %rbp
jne 0x42a19
jmp 0x43280
movq %rdx, %rbp
movq %rax, %r15
jmp 0x432f4
movq %rdx, %rbp
movq %rax, %r15
leaq 0x60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42ed5
callq 0x2f6c0
jmp 0x42ed5
jmp 0x42ecf
movq %rdx, %rbp
movq %rax, %r15
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x42a19
callq 0x2f6c0
jmp 0x42a19
jmp 0x42a26
movq %rdx, %rbp
movq %rax, %r15
movq 0x250(%rsp), %rdi
leaq 0x260(%rsp), %rax
cmpq %rax, %rdi
je 0x429ff
callq 0x2f6c0
jmp 0x429ff
movq %rdx, %rbp
movq %rax, %r15
leaq 0x138(%rsp), %rdi
callq 0x305b0
jmp 0x429cb
movq %rdx, %rbp
movq %rax, %r15
jmp 0x429ff
movq %rdx, %rbp
movq %rax, %r15
movq 0x2b0(%rsp), %rdi
leaq 0x2c0(%rsp), %rax
cmpq %rax, %rdi
je 0x42a2c
callq 0x2f6c0
jmp 0x42a2c
movq %rdx, %rbp
movq %rax, %r15
movq 0xe8(%rsp), %rdi
testq %rdi, %rdi
je 0x429ff
callq 0x2f370
movq 0x2b8(%rsp), %rdi
testq %rdi, %rdi
je 0x42a2c
callq 0x2f370
jmp 0x42a2c
movq %rdx, %rbp
movq %rax, %r15
movq %rbx, %rdi
callq 0x2f150
jmp 0x43280
movq %rdx, %rbp
movq %rax, %r15
cmpl $0x2, %ebp
jne 0x4328d
movq %r15, %rdi
callq 0x2e8b0
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x60(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x2e8a0
leaq 0x18c44(%rip), %rsi     # 0x5b6b7
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x30830
leaq 0x18c4b(%rip), %rsi     # 0x5b6d4
leaq 0x10(%rsp), %rdi
callq 0x30e50
leaq 0x120(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x42ab7
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x42aca
movq %rdx, 0x110(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x120(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x118(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x18bbe(%rip), %rsi     # 0x5b6aa
leaq 0x78(%rsp), %rdi
callq 0x2e870
leaq 0x198(%rsp), %rdi
movq %rax, %rsi
callq 0x30be0
leaq 0x138(%rsp), %rdi
leaq 0x110(%rsp), %rsi
leaq 0x198(%rsp), %rdx
callq 0x2f450
leaq 0x18bbb(%rip), %rsi     # 0x5b6e5
leaq 0x138(%rsp), %rdi
callq 0x30e50
leaq 0x2c0(%rsp), %rcx
movq %rcx, 0x2b0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x42b66
movups (%rcx), %xmm0
leaq 0x2c0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x42b79
movq %rdx, 0x2b0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2c0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x2b0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x306f0
xorl %ebp, %ebp
movq 0x2e42c(%rip), %rsi     # 0x70fd8
movq 0x2e20d(%rip), %rdx     # 0x70dc0
movq %rbx, %rdi
callq 0x308e0
jmp 0x43377
movq %rdx, %r13
movq %rax, %r12
movq 0x2b0(%rsp), %rdi
leaq 0x2c0(%rsp), %rax
cmpq %rax, %rdi
je 0x42beb
callq 0x2f6c0
jmp 0x42beb
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0x148(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42c0c
callq 0x2f6c0
jmp 0x42c0c
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0x1a8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42c2d
callq 0x2f6c0
jmp 0x42c2d
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
movq 0x110(%rsp), %rdi
cmpq %r15, %rdi
je 0x42c4a
callq 0x2f6c0
jmp 0x42c4a
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x42c5e
callq 0x2f6c0
movq 0x50(%rsp), %rdi
cmpq %r14, %rdi
je 0x42c6d
callq 0x2f6c0
testb %bpl, %bpl
jne 0x42c91
jmp 0x42c99
movq %rdx, %r13
movq %rax, %r12
movq 0x50(%rsp), %rdi
cmpq %r14, %rdi
je 0x42c91
callq 0x2f6c0
jmp 0x42c91
movq %rdx, %r13
movq %rax, %r12
movq %rbx, %rdi
callq 0x2f150
callq 0x30740
movq %r12, %r15
movq %r13, %rbp
jmp 0x4328d
movq %rdx, %rbp
movq %rax, %r15
movq 0xc8(%rsp), %rdi
testq %rdi, %rdi
je 0x43280
callq 0x2f370
jmp 0x43280
jmp 0x43265
movq %rdx, %rbp
movq %rax, %r15
jmp 0x432b6
movq %rdx, %rbp
movq %rax, %r15
jmp 0x4329c
movq %rdx, %rbp
movq %rax, %r15
jmp 0x42eac
movq %rdx, %rbp
movq %rax, %r15
jmp 0x42d32
movq %rdx, %rbp
movq %rax, %r15
jmp 0x42d18
movq %rdx, %rbp
movq %rax, %r15
movq 0x278(%rsp), %rdi
testq %rdi, %rdi
je 0x42d18
callq 0x2f370
movq 0x210(%rsp), %rdi
leaq 0x220(%rsp), %rax
cmpq %rax, %rdi
je 0x42d32
callq 0x2f6c0
cmpl $0x3, %ebp
jne 0x42e5f
movq %r15, %rdi
callq 0x2e8b0
movl $0x10, %edi
callq 0x2eae0
movq %rax, %r15
leaq 0x18b15(%rip), %rsi     # 0x5b86c
leaq 0x78(%rsp), %rdi
movq %r14, %rdx
callq 0x2f510
leaq 0x18b17(%rip), %rsi     # 0x5b882
leaq 0x78(%rsp), %rdi
callq 0x30e50
leaq 0x2c0(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x42d99
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x42dac
movq %rdx, 0x2b0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2c0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x2b0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %r15, %rdi
callq 0x306f0
xorl %ebp, %ebp
movq 0x2e1f9(%rip), %rsi     # 0x70fd8
movq 0x2dfda(%rip), %rdx     # 0x70dc0
movq %r15, %rdi
callq 0x308e0
jmp 0x43377
movq %rdx, %r13
movq %rax, %r12
movq 0x2b0(%rsp), %rdi
cmpq %r14, %rdi
je 0x42e0b
callq 0x2f6c0
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42e21
callq 0x2f6c0
testb %bpl, %bpl
jne 0x42e4c
jmp 0x42e54
movq %rdx, %r13
movq %rax, %r12
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x42e4c
callq 0x2f6c0
jmp 0x42e4c
movq %rdx, %r13
movq %rax, %r12
movq %r15, %rdi
callq 0x2f150
callq 0x30740
movq %r12, %r15
movq %r13, %rbp
testq %rbx, %rbx
je 0x432da
movq %rbx, %rdi
callq 0x2f370
jmp 0x432da
movq %rdx, %rbp
movq %rax, %r15
jmp 0x4328d
movq %rdx, %r14
movq %rax, %r15
movq 0x1b8(%rsp), %rdi
leaq 0x1c8(%rsp), %rax
cmpq %rax, %rdi
je 0x42ea0
callq 0x2f6c0
testb %bpl, %bpl
movq %r14, %rbp
je 0x4329c
movq %rbx, %rdi
callq 0x2f6c0
jmp 0x4329c
movq %rdx, %rbp
movq %rax, %r15
jmp 0x432d0
movq %rdx, %rbp
movq %rax, %r15
jmp 0x432da
movq %rdx, %rbp
movq %rax, %r15
movq 0x2dda4(%rip), %rsi     # 0x70c80
leaq 0x2b0(%rsp), %rdi
callq 0x2f190
leaq 0x330(%rsp), %rdi
callq 0x2e700
jmp 0x431f5
jmp 0x42eff
jmp 0x42f44
movq %rdx, %r14
movq %rax, %r15
movq 0x2b0(%rsp), %rdi
leaq 0x2c0(%rsp), %rax
cmpq %rax, %rdi
je 0x42f1f
callq 0x2f6c0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x42f33
callq 0x2f6c0
testb %bpl, %bpl
movq %r14, %rbp
jne 0x4320a
jmp 0x43273
movq %rdx, %rbp
movq %rax, %r15
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x4320a
callq 0x2f6c0
jmp 0x4320a
jmp 0x431ef
jmp 0x43230
jmp 0x431ef
movq %rdx, %rbp
movq %rax, %r15
jmp 0x42fae
jmp 0x431ef
movq %rdx, %rbp
movq %rax, %r15
leaq 0x2b0(%rsp), %rdi
callq 0x2ebb0
jmp 0x431f5
movq %rdx, %rbp
movq %rax, %r15
leaq 0x2b0(%rsp), %rdi
callq 0x305b0
cmpl $0x2, %ebp
jne 0x4324b
movq %r15, %rdi
callq 0x2e8b0
movl $0x10, %edi
callq 0x2eae0
movq %rax, %rbx
leaq 0x188(%rsp), %r14
movq %r14, -0x10(%r14)
movq 0x8(%rsp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq 0x178(%rsp), %rdi
callq 0x2e8a0
leaq 0x187c8(%rip), %rsi     # 0x5b7c3
leaq 0x280(%rsp), %rdi
leaq 0x178(%rsp), %rdx
callq 0x30830
leaq 0x187c9(%rip), %rsi     # 0x5b7e0
leaq 0x280(%rsp), %rdi
callq 0x30e50
leaq 0x1a8(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x43048
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x4305b
movq %rdx, 0x198(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x1a8(%rsp)
movq 0x8(%rax), %rdx
leaq 0x198(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x50(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x303e0
leaq 0x18655(%rip), %rsi     # 0x5b6e5
leaq 0x50(%rsp), %rdi
callq 0x30e50
leaq 0x2c0(%rsp), %rcx
movq %rcx, 0x2b0(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x430c9
movups (%rcx), %xmm0
leaq 0x2c0(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x430dc
movq %rdx, 0x2b0(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x2c0(%rsp)
movq 0x8(%rax), %rdx
leaq 0x2b0(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movb $0x1, %bpl
movq %rbx, %rdi
callq 0x306f0
xorl %ebp, %ebp
movq 0x2dec9(%rip), %rsi     # 0x70fd8
movq 0x2dcaa(%rip), %rdx     # 0x70dc0
movq %rbx, %rdi
callq 0x308e0
jmp 0x43377
movq %rdx, %r13
movq %rax, %r12
movq 0x2b0(%rsp), %rdi
leaq 0x2c0(%rsp), %rax
cmpq %rax, %rdi
je 0x4314e
callq 0x2f6c0
jmp 0x4314e
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0x60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4316c
callq 0x2f6c0
jmp 0x4316c
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
movq 0x198(%rsp), %rdi
cmpq %r15, %rdi
je 0x43189
callq 0x2f6c0
jmp 0x43189
movq %rdx, %r13
movq %rax, %r12
movb $0x1, %bpl
leaq 0x290(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x4319f
callq 0x2f6c0
movq 0x178(%rsp), %rdi
cmpq %r14, %rdi
je 0x431b1
callq 0x2f6c0
testb %bpl, %bpl
movq %r12, %r15
movq %r13, %rbp
jne 0x431de
jmp 0x431e6
movq %rdx, %rbp
movq %rax, %r15
movq 0x178(%rsp), %rdi
cmpq %r14, %rdi
je 0x431de
callq 0x2f6c0
jmp 0x431de
movq %rdx, %rbp
movq %rax, %r15
movq %rbx, %rdi
callq 0x2f150
callq 0x30740
jmp 0x4324b
jmp 0x43204
movq %rdx, %rbp
movq %rax, %r15
testq %r12, %r12
je 0x4324b
movq %r12, %rdi
callq 0x2f370
jmp 0x4324b
movq %rdx, %rbp
movq %rax, %r15
movq %rbx, %rdi
callq 0x2f150
jmp 0x43273
movq %rdx, %rbp
movq %rax, %r15
movq 0x168(%rsp), %rdi
testq %rdi, %rdi
je 0x431f5
callq 0x2f370
jmp 0x431f5
jmp 0x43230
movq %rdx, %rbp
movq %rax, %r15
jmp 0x4324b
movq %rdx, %rbp
movq %rax, %r15
leaq 0x2b0(%rsp), %rdi
callq 0x2ebb0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x43273
callq 0x2f6c0
jmp 0x43273
jmp 0x43265
jmp 0x4326d
movq %rdx, %rbp
movq %rax, %r15
jmp 0x43280
movq %rdx, %rbp
movq %rax, %r15
leaq 0x110(%rsp), %rdi
callq 0x2ebb0
leaq 0x138(%rsp), %rdi
callq 0x2ebb0
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x4329c
callq 0x2f370
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0x432b6
callq 0x2f6c0
movq 0x1d8(%rsp), %rdi
leaq 0x1e8(%rsp), %rax
cmpq %rax, %rdi
je 0x432d0
callq 0x2f6c0
leaq 0x78(%rsp), %rdi
callq 0x2ebb0
leaq 0x1f8(%rsp), %rdi
callq 0x2f170
leaq 0xa0(%rsp), %rdi
callq 0x2ee20
cmpl $0x1, %ebp
jne 0x433d8
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 0x78(%rsp), %rdi
leaq 0x138(%rsp), %rdx
movq %rax, %rsi
callq 0x2e880
leaq 0x18558(%rip), %rsi     # 0x5b892
leaq 0x2b0(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x30830
movb $0x1, %bpl
leaq 0x2b0(%rsp), %rsi
movq %rbx, %rdi
callq 0x306f0
xorl %ebp, %ebp
movq 0x2dc70(%rip), %rsi     # 0x70fd8
movq 0x2da51(%rip), %rdx     # 0x70dc0
movq %rbx, %rdi
callq 0x308e0
movq %rax, %r15
leaq 0x2c0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x43390
callq 0x2f6c0
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x433a6
callq 0x2f6c0
testb %bpl, %bpl
jne 0x433cb
jmp 0x433d3
movq %rax, %r15
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x433cb
callq 0x2f6c0
jmp 0x433cb
movq %rax, %r15
movq %rbx, %rdi
callq 0x2f150
callq 0x30740
movq %r15, %rdi
callq 0x30a10
movq %rax, %rdi
callq 0x320e8