// File: /workspace/github_cpp_makefile_star2_O2/Heptagon196[P]Gos/GosVM.cpp
// Function: GosVM::VMExecutable::Execute(ObjectPtr, std::vector<ObjectPtr, std::allocator<ObjectPtr>> const&)
SharedObject GosVM::VMExecutable::Execute(ObjectPtr instance, const std::vector<ObjectPtr>& params) {
    int progressBackup = readProgress;
    auto& memMgr = getMem();
    auto& mem = memMgr.mem;
    auto& cst = getConst();
    curContent = &getContent();
    auto& refl = ReflMgr::Instance();
    std::string* clsName;
    TypeID cls = Namespace::Global.Type();
    GosClass* clsInfo = nullptr;
    StartRead();
    while (readProgress < curContent->length() && readProgress < endPos) {
        int op = GetOperation();
        if (op == ATTR) {
            std::string attr = GetParamString();
            int len = GetParamInt();
            std::vector<std::string> attrs;
            while (len--) {
                attrs.push_back(GetParamString());
            }
            currentTag[attr] = attrs;
        } else if (op == DEF_CLASS) {
            clsName = &GetParamString();
            int len = GetParamInt();
            std::vector<std::string> inherits;
            while (len--) {
                inherits.push_back(GetParamString());
            }
            cls = ReflMgr::GetType(*clsName);
            if (!refl.HasClassInfo(cls)) {
                if (GosClass::classInfo.find(cls) == GosClass::classInfo.end()) {
                    GosClass::classInfo[cls] = GosClass(*clsName);
                }
                refl.AddVirtualClass(*clsName, [clsName](const std::vector<ObjectPtr>& params) {
                    auto ret = SharedObject::New<GosInstance>();
                    GosInstance& instance = ret.As<GosInstance>();
                    auto type = ReflMgr::GetType(*clsName);
                    GosClass* clsInfo = &GosClass::classInfo[type];
                    instance.info = clsInfo;
                    ret.ForceTypeTo(type);
                    for (auto [type, name] : clsInfo->vars) {
                        instance.field[name] = ReflMgr::Instance().New(type);
                    }
                    ret.ctor(params);
                    return ret;
                }, currentTag);
                currentTag = {};
                for (std::string& s : inherits) {
                    refl.AddVirtualInheritance(*clsName, s);
                }
            }
            clsInfo = &GosClass::classInfo[cls];
        } else if (op == DEF_MEMBER_VAR) {
            std::string& typeName = GetParamString();
            std::string& name = GetParamString();
            TypeID type = ReflMgr::GetType(typeName);
            clsInfo->vars.push_back({type, name});
            refl.RawAddField(cls, type, name, [&name](ObjectPtr instance) {
                return instance.As<GosInstance>().field[name];
            });
            refl.GetFieldTag(cls, name) = currentTag;
            currentTag = {};
        } else if (op == DEF_MEMBER_FUNC) {
            std::string& name = GetParamString();
            std::string& retName = GetParamString();
            TypeID ret = ReflMgr::GetType(retName);
            ArgsTypeList typeList;
            int cnt = GetParamInt();
            for (int i = 0; i < cnt; i++) {
                typeList.push_back(ReflMgr::GetType(GetParamString()));
            }
            int jmp = GetParamInt();
            clsInfo->method[name] = VMFunction(this, readProgress);
            auto* func = &clsInfo->method[name];
            refl.RawAddMethod(cls, name, ret, typeList, [func](ObjectPtr instance, const std::vector<ObjectPtr>& params) {
                return func->Execute(instance, params);
            });
            refl.GetMethodInfo(cls, name, typeList) = currentTag;
            currentTag = {};
            readProgress += jmp;
        } else if (op == DEF_STATIC_VAR) {
            TypeID type = ReflMgr::GetType(GetParamString());
            std::string& name = GetParamString();
            GosClass::staticVars[cls][name] = refl.New(type);
            SharedObject* obj = &GosClass::staticVars[cls][name];
            refl.RawAddStaticField(cls, type, name, [obj]() {
                return *obj;
            });
            refl.GetFieldTag(cls, name) = currentTag;
            currentTag = {};
        } else if (op == DEF_STATIC_FUNC) {
            std::string& name = GetParamString();
            std::string& retName = GetParamString();
            TypeID ret = ReflMgr::GetType(retName);
            ArgsTypeList typeList;
            int cnt = GetParamInt();
            for (int i = 0; i < cnt; i++) {
                typeList.push_back(ReflMgr::GetType(GetParamString()));
            }
            clsInfo->method[name] = VMFunction(this, readProgress);
            auto* func = &clsInfo->method[name];
            refl.RawAddStaticMethod(cls, name, ret, typeList, [func](const std::vector<ObjectPtr>& params) {
                return func->Execute(ObjectPtr::Null, params);
            });
            refl.GetMethodInfo(cls, name, typeList) = currentTag;
            currentTag = {};
            int jmp = GetParamInt();
            readProgress += jmp;
        } else if (op == ALLOC) {
            int size = GetParamInt();
            mem.resize(size);
        } else if (op == NS) {
            std::string& name = GetParamString();
            TypeID type = ReflMgr::GetType(name);
            GosClass::staticVars[cls][name] = SharedObject{ type, nullptr };
            SharedObject* obj = &GosClass::staticVars[cls][name];
            refl.RawAddStaticField(cls, type, name, [obj]() {
                return *obj;
            });
            refl.GetFieldTag(cls, name) = currentTag;
            currentTag = {};
        } else if (op == NEW) {
            auto& type = GetParamString();
            int id = GetParamInt();
            int len = GetParamInt();
            std::vector<ObjectPtr> params;
            while (len--) {
                params.push_back(mem[GetParamInt()]);
            }
            memMgr.NewVar(id, refl.New(type, params));
        } else if (op == NEW_STR) {
            int id = GetParamInt();
            std::string& s = GetParamString();
            memMgr.NewVar(id, SharedObject::New<std::string>(s));
        } else if (op == NEW_NUM) {
            int8_t type = GetParamByte();
            int id = GetParamInt();
            RTConstNum num = cst.nums[GetParamInt()];
            SharedObject obj;
            switch (type) {
                case 0: obj = SharedObject::New<int8_t>(num.data.i8); break;
                case 1: obj = SharedObject::New<int32_t>(num.data.i32); break;
                case 2: obj = SharedObject::New<int64_t>(num.data.i64); break;
                case 3: obj = SharedObject::New<float>(num.data.f); break;
                case 4: obj = SharedObject::New<double>(num.data.d); break;
            }
            memMgr.NewVar(id, obj);
        } else if (op == MOV) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].assign(mem[b]);
        } else if (op == REF) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a] = mem[b];
        } else if (op == CLONE) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a] = refl.New(mem[b].GetType());
            mem[a].assign(mem[b]);
        } else if (op == ARG) {
            int a = GetParamInt();
            int b = GetParamInt();
            SharedObject obj;
            if (b == 0) {
                obj = instance;
            } else {
                obj = params[b - 1];
                if (obj.GetType().getHash() == TypeID::get<ReflMgr::Any>().getHash()) {
                    obj = obj.As<ReflMgr::Any>().ToSharedPtr();
                }
            }
            memMgr.NewVar(a, obj);
        } else if (op == GET_FIELD) {
            int a = GetParamInt();
            int b = GetParamInt();
            std::string& field = GetParamString();
            mem[a] = mem[b].GetField(field);
        } else if (op == ADD) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].assign(mem[a] + mem[b]);
        } else if (op == SUB) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].assign(mem[a] - mem[b]);
        } else if (op == MUL) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].assign(mem[a] * mem[b]);
        } else if (op == DIV) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].assign(mem[a] / mem[b]);
        } else if (op == REM) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].assign(mem[a] % mem[b]);
        } else if (op == AND) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].As<bool>() = mem[a].Get<bool>() && mem[b].Get<bool>();
        } else if (op == OR) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].As<bool>() = mem[a].Get<bool>() || mem[b].Get<bool>();
        } else if (op == XOR) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a].assign(mem[a] ^ mem[b]);
        } else if (op == NOT) {
            int a = GetParamInt();
            mem[a].As<bool>() = !mem[a].Get<bool>();
        } else if (op == RET) {
            int a = GetParamInt();
            readProgress = progressBackup;
            return mem[a];
        } else if (op == JMP) {
            int a = GetParamInt();
            readProgress += a;
        } else if (op == IF) {
            int a = GetParamInt();
            int b = GetParamInt();
            if (mem[a].Get<bool>()) {
                readProgress += b;
            }
        } else if (op == BOX) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a] = SharedObject::New<SharedObject>(mem[b]);
        } else if (op == UNBOX) {
            int a = GetParamInt();
            int b = GetParamInt();
            mem[a] = mem[b].As<SharedObject>();
        } else if (op == CALL) {
            int i = GetParamInt();
            std::string& func = GetParamString();
            std::vector<ObjectPtr> params;
            int cnt = GetParamInt();
            while (cnt--) {
                int p = GetParamInt();
                params.push_back(mem[p]);
            }
            mem[0] = mem[i].Invoke(func, params);
            if (mem[0].GetType().getHash() == TypeID::get<ReflMgr::Any>().getHash()) {
                mem[0] = mem[0].As<ReflMgr::Any>().ToSharedPtr();
            }
        }
    }
    readProgress = progressBackup;
    return SharedObject::Null;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x558, %rsp            # imm = 0x558
movq %rcx, 0x168(%rsp)
movq %rdx, 0x160(%rsp)
movq %rsi, %r14
movq %rdi, 0x178(%rsp)
movl 0x18(%rsi), %eax
movl %eax, 0xdc(%rsp)
movq (%rsi), %rax
movq %rsi, %rdi
callq *(%rax)
movq %rax, %r13
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movq %rax, 0x170(%rsp)
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %rax, 0x8(%r14)
callq 0x1df9e
movq %rax, %r12
leaq 0x90408(%rip), %rsi     # 0x106320
leaq 0xb0(%rsp), %rdi
callq 0x16d40
movl 0x10(%r14), %eax
movl %eax, 0x18(%r14)
movq $0x0, 0x150(%rsp)
movq %r12, 0x48(%rsp)
movslq %eax, %rdx
movq 0x8(%r14), %rcx
cmpq %rdx, 0x8(%rcx)
jbe 0x773dd
cmpl 0x14(%r14), %eax
jge 0x773dd
leaq 0x1(%rdx), %rsi
movl %esi, 0x18(%r14)
movq (%rcx), %rcx
movzbl (%rcx,%rdx), %edi
decl %edi
cmpl $0x20, %edi
ja 0x773d4
leaq 0x32f1a(%rip), %r8      # 0xa8e94
movslq (%r8,%rdi,4), %rdi
addq %r8, %rdi
jmpq *%rdi
movq %r14, %rdi
callq 0x75dda
movq %rax, %r15
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebx
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
andq $0x0, 0x60(%rsp)
incl %ebx
decl %ebx
je 0x76e48
movq %r14, %rdi
callq 0x75dda
leaq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x79a38
jmp 0x75fb3
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
movq (%r13), %rcx
imulq $0x38, %rsi, %rbx
addq %rcx, %rbx
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x17694
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x16ff6
leaq 0x420(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %rbx, %rsi
callq 0x18724
leaq 0x420(%rsp), %rdi
jmp 0x76d1a
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %r15
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
callq 0x79e92
imulq $0x38, %r15, %rdi
movq 0x48(%rsp), %r12
addq (%r13), %rdi
movq %rbx, %rsi
callq 0x208e6
movq %rbx, %rdi
jmp 0x773cf
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %r15
imulq $0x38, %rsi, %rbx
movq (%r13), %rdi
addq %rbx, %rdi
callq 0x17016
cmpb $0x1, (%rax)
jne 0x77185
imulq $0x38, %r15, %rdi
addq (%r13), %rdi
callq 0x17016
movb (%rax), %bpl
jmp 0x77187
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rbp
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
imulq $0x38, %rax, %rbx
movq (%r13), %rsi
addq %rbx, %rsi
leaq 0x4c8(%rsp), %r15
movq %r15, %rdi
callq 0x17316
xorps %xmm0, %xmm0
leaq 0x50(%rsp), %rdx
movaps %xmm0, (%rdx)
andq $0x0, 0x10(%rdx)
movups (%r15), %xmm0
movups 0x10(%r15), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0xe0(%rsp), %rdi
movq %r12, %rsi
callq 0x1e73c
imulq $0x38, %rbp, %rbp
movq (%r13), %rdi
addq %rbp, %rdi
leaq 0xe0(%rsp), %r15
movq %r15, %rsi
callq 0x208e6
movq %r15, %rdi
callq 0x19b6c
leaq 0x50(%rsp), %rdi
callq 0x225a0
movq (%r13), %rax
addq %rax, %rbp
addq %rax, %rbx
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x16ff6
leaq 0x4e8(%rsp), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x18724
movq %rbx, %rdi
jmp 0x76d27
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rbx
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
imulq $0x38, %rax, %rdi
addq (%r13), %rdi
callq 0x17016
imulq $0x38, %rbx, %rdi
addq (%r13), %rdi
movq %rax, %rsi
jmp 0x76632
addl $0x5, %eax
movl %eax, 0x18(%r14)
movslq (%rcx,%rsi), %rbx
movq %r14, %rdi
callq 0x75dda
movq %rax, %rbp
andq $0x0, 0xa0(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %r15d
subl $0x1, %r15d
jb 0x76d49
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movslq (%rcx,%rax), %rax
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x16ff6
leaq 0x90(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x73ad6
jmp 0x76213
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
movq (%r13), %rcx
imulq $0x38, %rsi, %rbx
addq %rcx, %rbx
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x17916
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x16ff6
leaq 0x378(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %rbx, %rsi
callq 0x18724
leaq 0x378(%rsp), %rdi
jmp 0x76d1a
leaq 0x2(%rdx), %rdi
movl %edi, 0x18(%r14)
movzbl (%rcx,%rsi), %ebx
leaq 0x6(%rdx), %rsi
movl %esi, 0x18(%r14)
movl 0x2(%rcx,%rdx), %ebp
addl $0xa, %eax
movl %eax, 0x18(%r14)
movslq 0x6(%rcx,%rdx), %rax
movq 0x170(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq (%rcx,%rax,8), %rax
movq %rax, 0x90(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x17194
cmpq $0x4, %rbx
ja 0x77393
leaq 0x32bf3(%rip), %rax     # 0xa8f18
movslq (%rax,%rbx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x79bbc
jmp 0x77376
movq %r14, %rdi
callq 0x75dda
leaq 0xe0(%rsp), %rdi
movq %rax, %rsi
callq 0x2b71e
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebx
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
andq $0x0, 0x60(%rsp)
incl %ebx
decl %ebx
je 0x76e0b
movq %r14, %rdi
callq 0x75dda
leaq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x79a38
jmp 0x76382
movq %r14, %rdi
callq 0x75dda
movq %rax, %rbx
movq %r14, %rdi
callq 0x75dda
movq %rax, %rbp
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x1dffc
movq 0x150(%rsp), %rax
leaq 0x20(%rax), %r15
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
leaq 0xe0(%rsp), %rbx
movaps %xmm1, 0x10(%rbx)
movaps %xmm0, (%rbx)
leaq 0x100(%rsp), %rdi
movq %rbp, %rsi
callq 0x2b71e
movq %r15, %rdi
movq %rbx, %rsi
callq 0x7c86a
leaq 0x100(%rsp), %rdi
callq 0x209be
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x240(%rsp), %rcx
andq $0x0, 0x8(%rcx)
movq %rbp, (%rcx)
leaq 0x30f8(%rip), %rax      # 0x7952c
movq %rax, 0x18(%rcx)
leaq 0x315d(%rip), %rax      # 0x7959c
movq %rax, 0x10(%rcx)
movups 0x50(%rsp), %xmm0
movups 0x60(%rsp), %xmm1
movups %xmm1, 0x30(%rsp)
movups %xmm0, 0x20(%rsp)
movups 0xb0(%rsp), %xmm0
movups 0xc0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq 0x48(%rsp), %r12
movq %r12, %rdi
callq 0x1efc2
leaq 0x240(%rsp), %rdi
jmp 0x76969
movq %r14, %rdi
callq 0x75dda
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x1dffc
movq %r14, %rdi
callq 0x75dda
movq %rax, %rbp
xorps %xmm0, %xmm0
leaq 0x90(%rsp), %rdx
movaps %xmm0, (%rdx)
andq $0x0, 0x10(%rdx)
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0xe0(%rsp), %rdi
movq %r12, %rsi
callq 0x1e73c
leaq 0x900dd(%rip), %rdi     # 0x1065c8
leaq 0xb0(%rsp), %rsi
callq 0x7ce88
movq %rax, %rdi
movq %rbp, %rsi
callq 0x7bf44
leaq 0xe0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x208e6
movq %rbx, %rdi
callq 0x19b6c
leaq 0x90(%rsp), %rdi
callq 0x225a0
leaq 0x90096(%rip), %rdi     # 0x1065c8
leaq 0xb0(%rsp), %rbx
movq %rbx, %rsi
callq 0x7ce88
movq %rax, %rdi
movq %rbp, %rsi
callq 0x7bf44
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x200(%rsp), %rcx
andq $0x0, 0x8(%rcx)
movq %rax, (%rcx)
leaq 0x30d6(%rip), %rax      # 0x79642
movq %rax, 0x18(%rcx)
leaq 0x3115(%rip), %rax      # 0x7968c
movq %rax, 0x10(%rcx)
movups 0x50(%rsp), %xmm0
movups 0x60(%rsp), %xmm1
movups %xmm1, 0x30(%rsp)
movups %xmm0, 0x20(%rsp)
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r12, %rdi
callq 0x1f1c4
leaq 0x200(%rsp), %rdi
jmp 0x76969
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %r15
imulq $0x38, %rsi, %rbx
movq (%r13), %rdi
addq %rbx, %rdi
callq 0x17016
movb $0x1, %bpl
cmpb $0x0, (%rax)
jne 0x765f4
imulq $0x38, %r15, %rdi
addq (%r13), %rdi
callq 0x17016
movb (%rax), %bpl
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x17016
movb %bpl, (%rax)
jmp 0x76d2c
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rdi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
movq (%r13), %rcx
imulq $0x38, %rax, %rsi
addq %rcx, %rsi
imulq $0x38, %rdi, %rdi
addq %rcx, %rdi
callq 0x208e6
jmp 0x773d4
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
movq (%r13), %rcx
imulq $0x38, %rsi, %rbx
addq %rcx, %rbx
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x1776a
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x16ff6
leaq 0x3e8(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %rbx, %rsi
callq 0x18724
leaq 0x3e8(%rsp), %rdi
jmp 0x76d1a
movq %r14, %rdi
callq 0x75dda
movq %rax, %rbp
movq %r14, %rdi
callq 0x75dda
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x1dffc
andq $0x0, 0xa0(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %eax
xorl %ebx, %ebx
testl %eax, %eax
cmovgl %eax, %ebx
subl $0x1, %ebx
jb 0x76f21
movq %r14, %rdi
callq 0x75dda
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0x50(%rsp), %rdi
callq 0x1dffc
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x21f20
jmp 0x766ff
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
movq (%r13), %rcx
imulq $0x38, %rsi, %rbx
addq %rcx, %rbx
imulq $0x38, %rax, %rsi
addq %rcx, %rsi
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
callq 0x16ff6
leaq 0x520(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movq 0x48(%rsp), %r12
callq 0x18724
movq %rbp, %rdi
jmp 0x773cf
movq %r14, %rdi
callq 0x75dda
movq %rax, %rbp
movq %r14, %rdi
callq 0x75dda
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x1dffc
andq $0x0, 0xa0(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %eax
xorl %ebx, %ebx
testl %eax, %eax
cmovgl %eax, %ebx
subl $0x1, %ebx
jb 0x77047
movq %r14, %rdi
callq 0x75dda
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0x50(%rsp), %rdi
callq 0x1dffc
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x21f20
jmp 0x767e9
addl $0x5, %eax
movl %eax, 0x18(%r14)
movslq (%rcx,%rsi), %rax
imulq $0x38, %rax, %rbx
movq (%r13), %rdi
addq %rbx, %rdi
callq 0x17016
movb (%rax), %bpl
xorb $0x1, %bpl
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x17016
movb %bpl, (%rax)
jmp 0x773d4
addl $0x5, %eax
movl %eax, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
movq %r13, %rdi
callq 0x79b86
jmp 0x773d4
movq %r14, %rdi
callq 0x75dda
movq %rax, %rbp
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0x50(%rsp), %rbx
movq %rbx, %rdi
callq 0x1dffc
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0xe0(%rsp), %rdi
xorl %esi, %esi
callq 0x171e2
leaq 0x8fd16(%rip), %rdi     # 0x1065c8
leaq 0xb0(%rsp), %rsi
callq 0x7ce88
movq %rax, %rdi
movq %rbp, %rsi
callq 0x7bf44
leaq 0xe0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x208e6
movq %rbx, %rdi
callq 0x19b6c
leaq 0x8fcdc(%rip), %rdi     # 0x1065c8
leaq 0xb0(%rsp), %rbx
movq %rbx, %rsi
callq 0x7ce88
movq %rax, %rdi
movq %rbp, %rsi
callq 0x7bf44
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x1c0(%rsp), %rcx
andq $0x0, 0x8(%rcx)
movq %rax, (%rcx)
leaq 0x2dfa(%rip), %rax      # 0x79720
movq %rax, 0x18(%rcx)
leaq 0x2e39(%rip), %rax      # 0x7976a
movq %rax, 0x10(%rcx)
movups 0x50(%rsp), %xmm0
movups 0x60(%rsp), %xmm1
movups %xmm1, 0x30(%rsp)
movups %xmm0, 0x20(%rsp)
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r12, %rdi
callq 0x1f1c4
leaq 0x1c0(%rsp), %rdi
callq 0x21f04
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
movups 0xb0(%rsp), %xmm0
movups 0xc0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r12, %rdi
callq 0x1edf2
leaq 0x8fbba(%rip), %rbx     # 0x106558
movq %rax, %rdi
movq %rbx, %rsi
callq 0x2b298
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x7c618
jmp 0x773d4
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movl (%rcx,%rsi), %ebp
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rbx
leaq 0xe0(%rsp), %rdi
callq 0x17194
testq %rbx, %rbx
je 0x772df
movq 0x168(%rsp), %rax
movq (%rax), %rax
imulq $0x28, %rbx, %rcx
leaq (%rax,%rcx), %rsi
addq $-0x28, %rsi
leaq 0xe0(%rsp), %rdi
callq 0x79e54
leaq 0x50(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x17316
leaq 0x50(%rsp), %rdi
callq 0x1b9ca
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x21ea6
leaq 0x90(%rsp), %rdi
callq 0x1b9ca
cmpq %rax, %rbx
jne 0x772f4
leaq 0xe0(%rsp), %rdi
callq 0x17016
leaq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x17042
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rbx
movq %rbx, %rsi
callq 0x208e6
movq %rbx, %rdi
callq 0x19b6c
jmp 0x772f4
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %r15
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rbx
movq %r14, %rdi
callq 0x75dda
imulq $0x38, %rbx, %rsi
addq (%r13), %rsi
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
callq 0x17344
imulq $0x38, %r15, %rdi
movq 0x48(%rsp), %r12
addq (%r13), %rdi
movq %rbx, %rsi
callq 0x79e54
jmp 0x773d4
addl $0x5, %eax
movl %eax, 0x18(%r14)
movl (%rcx,%rsi), %ebx
movq %r14, %rdi
callq 0x75dda
leaq 0x340(%rsp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x661ca
movq %r13, %rdi
movl %ebx, %esi
movq %r15, %rdx
callq 0x78744
leaq 0x340(%rsp), %rdi
jmp 0x76d27
movq %r14, %rdi
callq 0x75dda
movq %rax, %rbx
movslq 0x18(%r14), %rax
leaq 0x4(%rax), %rcx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebp
leal 0x8(%rax), %edx
movl %edx, 0x18(%r14)
movl 0x4(%rcx,%rax), %r15d
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
andq $0x0, 0x60(%rsp)
subl $0x1, %r15d
jb 0x76ed2
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movslq (%rcx,%rax), %rax
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x16ff6
leaq 0x50(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x73ad6
jmp 0x76b5c
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
movq (%r13), %rcx
imulq $0x38, %rsi, %rbx
addq %rcx, %rbx
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x175be
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x16ff6
leaq 0x458(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %rbx, %rsi
callq 0x18724
leaq 0x458(%rsp), %rdi
jmp 0x76d1a
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
movq (%r13), %rcx
imulq $0x38, %rsi, %rbx
addq %rcx, %rbx
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x174e8
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x16ff6
leaq 0x490(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %rbx, %rsi
callq 0x18724
leaq 0x490(%rsp), %rdi
jmp 0x76d1a
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movl 0x5(%rcx,%rdx), %ebx
imulq $0x38, %rsi, %rdi
addq (%r13), %rdi
callq 0x17016
cmpb $0x1, (%rax)
jne 0x773d4
addl %ebx, 0x18(%r14)
jmp 0x773d4
leaq 0x5(%rdx), %rdi
movl %edi, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
addl $0x9, %eax
movl %eax, 0x18(%r14)
movslq 0x5(%rcx,%rdx), %rax
movq (%r13), %rcx
imulq $0x38, %rsi, %rbx
addq %rcx, %rbx
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0xe0(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x17840
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x16ff6
leaq 0x3b0(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %rbx, %rsi
callq 0x18724
leaq 0x3b0(%rsp), %rdi
callq 0x19b6c
leaq 0xe0(%rsp), %rdi
callq 0x19b6c
movq 0x48(%rsp), %r12
jmp 0x773d4
addl $0x5, %eax
movl %eax, 0x18(%r14)
addl (%rcx,%rsi), %eax
movl %eax, 0x18(%r14)
jmp 0x773d4
imulq $0x38, %rbx, %rsi
addq (%r13), %rsi
movq (%rbp), %rcx
movq 0x8(%rbp), %rdx
leaq 0xe0(%rsp), %rdi
leaq 0x90(%rsp), %r8
callq 0x173b6
movq (%r13), %rdi
leaq 0xe0(%rsp), %rbx
movq %rbx, %rsi
callq 0x208e6
movq %rbx, %rdi
callq 0x19b6c
movq (%r13), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x17316
movq 0x48(%rsp), %r12
leaq 0xe0(%rsp), %rdi
callq 0x1b9ca
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x21ea6
leaq 0x50(%rsp), %rdi
callq 0x1b9ca
cmpq %rax, %rbx
jne 0x76dfe
movq (%r13), %rdi
callq 0x17016
leaq 0xe0(%rsp), %rdi
movq %rax, %rsi
callq 0x17042
movq (%r13), %rdi
leaq 0xe0(%rsp), %rbx
movq %rbx, %rsi
callq 0x208e6
movq %rbx, %rdi
callq 0x19b6c
leaq 0x90(%rsp), %rdi
jmp 0x76f17
leaq 0x8f746(%rip), %rdi     # 0x106558
leaq 0xe0(%rsp), %rsi
callq 0x7b616
leaq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0x79a64
leaq 0x50(%rsp), %rdi
callq 0x2b668
leaq 0xe0(%rsp), %rdi
callq 0x209be
jmp 0x773d4
movq (%r15), %rdx
movq 0x8(%r15), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x1dffc
movups 0xe0(%rsp), %xmm0
movups 0xea(%rsp), %xmm1
movups %xmm1, 0xba(%rsp)
movaps %xmm0, 0xb0(%rsp)
movaps 0xb0(%rsp), %xmm0
movaps 0xc0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq 0x48(%rsp), %rdi
callq 0x1e08a
testb %al, %al
je 0x771a0
leaq 0x8f6e2(%rip), %rdi     # 0x106590
leaq 0xb0(%rsp), %rsi
callq 0x7bc1e
movq %rax, 0x150(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x2b668
jmp 0x76d2c
movq (%rbx), %rcx
movq 0x8(%rbx), %rdx
leaq 0x2d0(%rsp), %rdi
leaq 0x50(%rsp), %r8
movq 0x48(%rsp), %r12
movq %r12, %rsi
callq 0x1e8a8
leaq 0x2d0(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x78744
leaq 0x2d0(%rsp), %rdi
callq 0x19b6c
leaq 0x50(%rsp), %rdi
callq 0x225a0
jmp 0x773d4
movl 0x18(%r14), %r15d
movq 0x150(%rsp), %rax
leaq 0x38(%rax), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x7ca52
movl %r15d, 0x10(%rax)
movl $0x7fffffff, 0x14(%rax) # imm = 0x7FFFFFFF
movq %r14, 0x20(%rax)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x7ca52
movq 0x48(%rsp), %r12
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x1e0(%rsp), %r8
andq $0x0, 0x8(%r8)
movq %rax, (%r8)
leaq 0x2738(%rip), %rax      # 0x796b2
movq %rax, 0x18(%r8)
leaq 0x2775(%rip), %rax      # 0x796fa
movq %rax, 0x10(%r8)
movups 0xe0(%rsp), %xmm0
movups 0xf0(%rsp), %xmm1
movups %xmm1, 0x30(%rsp)
movups %xmm0, 0x20(%rsp)
movups 0xb0(%rsp), %xmm0
movups 0xc0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x90(%rsp), %rcx
movq %r12, %rdi
callq 0x1f8ae
leaq 0x1e0(%rsp), %rdi
callq 0x21f04
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
movups 0xb0(%rsp), %xmm0
movups 0xc0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x90(%rsp), %rcx
movq %r12, %rdi
callq 0x1eee6
leaq 0x8f547(%rip), %rsi     # 0x106558
movq %rax, %rdi
callq 0x2b298
leaq 0x8f538(%rip), %rdi     # 0x106558
xorl %esi, %esi
xorl %edx, %edx
callq 0x7c618
movslq 0x18(%r14), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
addl (%rdx,%rax), %ecx
movl %ecx, 0x18(%r14)
jmp 0x77173
movslq 0x18(%r14), %rax
leal 0x4(%rax), %r12d
movl %r12d, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %eax
movl %eax, 0x15c(%rsp)
movq 0x150(%rsp), %rax
leaq 0x38(%rax), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x7ca52
movl %r12d, 0x10(%rax)
movl $0x7fffffff, 0x14(%rax) # imm = 0x7FFFFFFF
movq %r14, 0x20(%rax)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x7ca52
movq 0x48(%rsp), %r12
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x220(%rsp), %r8
andq $0x0, 0x8(%r8)
movq %rax, (%r8)
leaq 0x2509(%rip), %rax      # 0x795c2
movq %rax, 0x18(%r8)
leaq 0x2558(%rip), %rax      # 0x7961c
movq %rax, 0x10(%r8)
movups 0xe0(%rsp), %xmm0
movups 0xf0(%rsp), %xmm1
movups %xmm1, 0x30(%rsp)
movups %xmm0, 0x20(%rsp)
movups 0xb0(%rsp), %xmm0
movups 0xc0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x90(%rsp), %rcx
movq %r12, %rdi
callq 0x1f3fa
leaq 0x220(%rsp), %rdi
callq 0x21f04
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
movups 0xb0(%rsp), %xmm0
movups 0xc0(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x90(%rsp), %rcx
movq %r12, %rdi
callq 0x1eee6
leaq 0x8f408(%rip), %rsi     # 0x106558
movq %rax, %rdi
callq 0x2b298
leaq 0x8f3f9(%rip), %rdi     # 0x106558
xorl %esi, %esi
xorl %edx, %edx
callq 0x7c618
movl 0x15c(%rsp), %eax
addl %eax, 0x18(%r14)
leaq 0x90(%rsp), %rdi
callq 0x22566
jmp 0x773d4
xorl %ebp, %ebp
movq 0x48(%rsp), %r12
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x17016
movb %bpl, (%rax)
jmp 0x773d4
leaq 0x8f3e9(%rip), %rdi     # 0x106590
leaq 0xb0(%rsp), %rsi
callq 0x7bb48
testq %rax, %rax
jne 0x7721a
leaq 0x1a0(%rsp), %rdi
movq %r15, %rsi
callq 0x2b71e
leaq 0xe0(%rsp), %rdi
leaq 0x1a0(%rsp), %rsi
callq 0x7768c
leaq 0x8f3ab(%rip), %rdi     # 0x106590
leaq 0xb0(%rsp), %rsi
callq 0x7bc1e
leaq 0xe0(%rsp), %rbx
movq %rax, %rdi
movq %rbx, %rsi
callq 0x79b2e
movq %rbx, %rdi
callq 0x79b66
leaq 0x1a0(%rsp), %rdi
callq 0x209be
movq (%r15), %rbx
movq 0x8(%r15), %rbp
andq $0x0, 0x188(%rsp)
movq %r15, 0x180(%rsp)
leaq 0x2147(%rip), %rax      # 0x79380
movq %rax, 0x198(%rsp)
leaq 0x22be(%rip), %rax      # 0x79506
movq %rax, 0x190(%rsp)
leaq 0x8f301(%rip), %rsi     # 0x106558
leaq 0x308(%rsp), %rdi
callq 0x2c37a
leaq 0x180(%rsp), %rcx
leaq 0x308(%rsp), %r8
movq 0x48(%rsp), %rdi
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x1ec80
leaq 0x308(%rsp), %rdi
callq 0x2b990
leaq 0x180(%rsp), %rdi
callq 0x21f04
leaq 0x8f2b3(%rip), %rdi     # 0x106558
xorl %esi, %esi
xorl %edx, %edx
callq 0x7c618
movq 0x50(%rsp), %rbx
movq 0x58(%rsp), %rbp
cmpq %rbp, %rbx
je 0x76ea7
movq (%r15), %rdx
movq 0x8(%r15), %rsi
movq (%rbx), %r8
movq 0x8(%rbx), %rcx
movq 0x48(%rsp), %rdi
callq 0x1ed06
addq $0x20, %rbx
jmp 0x772b8
leaq 0xe0(%rsp), %rdi
movq 0x160(%rsp), %rsi
callq 0x79e54
leaq 0x260(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x171ac
leaq 0x260(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x78744
leaq 0x260(%rsp), %rdi
jmp 0x773c2
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x79dae
jmp 0x77376
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x79c62
jmp 0x77376
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x79d08
jmp 0x77376
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x662ac
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rbx
movq %rbx, %rsi
callq 0x208e6
movq %rbx, %rdi
callq 0x19b6c
leaq 0x298(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x171ac
leaq 0x298(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x78744
leaq 0x298(%rsp), %rdi
callq 0x19b6c
leaq 0xe0(%rsp), %rdi
callq 0x19b6c
movl 0x18(%r14), %eax
jmp 0x75f3e
movl 0xdc(%rsp), %eax
movl %eax, 0x18(%r14)
leaq 0x8ef89(%rip), %rsi     # 0x106378
movq 0x178(%rsp), %rbx
movq %rbx, %rdi
callq 0x171ac
movq %rbx, %rax
addq $0x558, %rsp            # imm = 0x558
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
addl $0x5, %eax
movl %eax, 0x18(%r14)
movslq (%rcx,%rsi), %rax
movl 0xdc(%rsp), %ecx
movl %ecx, 0x18(%r14)
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
jmp 0x773ef
jmp 0x7759b
jmp 0x7759b
jmp 0x7759b
jmp 0x7759b
jmp 0x7759b
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x79b66
jmp 0x77467
jmp 0x775e0
movq %rax, %rbx
leaq 0x1a0(%rsp), %rdi
callq 0x209be
jmp 0x775e3
movq %rax, %rbx
jmp 0x77493
jmp 0x775e0
movq %rax, %rbx
leaq 0x308(%rsp), %rdi
callq 0x2b990
leaq 0x180(%rsp), %rdi
callq 0x21f04
jmp 0x775e3
jmp 0x7759b
jmp 0x775b7
jmp 0x7759b
jmp 0x77600
jmp 0x77600
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
jmp 0x7752c
jmp 0x775e0
jmp 0x775b7
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
jmp 0x7750a
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
jmp 0x775d9
movq %rax, %rbx
leaq 0x298(%rsp), %rdi
jmp 0x77541
movq %rax, %rbx
leaq 0x1e0(%rsp), %rdi
callq 0x21f04
jmp 0x77603
movq %rax, %rbx
leaq 0x200(%rsp), %rdi
jmp 0x7752c
movq %rax, %rbx
leaq 0x1c0(%rsp), %rdi
callq 0x21f04
jmp 0x77610
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0x19b6c
jmp 0x7759e
jmp 0x775ef
movq %rax, %rbx
leaq 0x2d0(%rsp), %rdi
callq 0x19b6c
jmp 0x775f2
movq %rax, %rbx
leaq 0x340(%rsp), %rdi
jmp 0x775a6
jmp 0x775ef
jmp 0x775b7
jmp 0x7759b
jmp 0x7759b
jmp 0x775b7
jmp 0x7759b
jmp 0x7759b
jmp 0x7759b
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x19b6c
jmp 0x775ba
jmp 0x775c4
jmp 0x7759b
jmp 0x7759b
jmp 0x7759b
jmp 0x7759b
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x19b6c
jmp 0x77610
jmp 0x775b7
jmp 0x775e0
jmp 0x77600
jmp 0x77600
jmp 0x775e0
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
jmp 0x775f7
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x2b668
leaq 0xe0(%rsp), %rdi
callq 0x209be
jmp 0x77610
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x2b668
jmp 0x77610
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x225a0
jmp 0x77610
jmp 0x77600
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x22566
movq %rbx, %rdi
callq 0x11570