// File: /workspace/github_cpp_makefile_star2_O3/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 $0x548, %rsp            # imm = 0x548
movq %rcx, 0x198(%rsp)
movq %rdx, 0x190(%rsp)
movq %rsi, %r14
movq %rdi, 0x1a8(%rsp)
movl 0x18(%rsi), %eax
movl %eax, 0x144(%rsp)
movq (%rsi), %rax
movq %rsi, %rdi
callq *(%rax)
movq %rax, %r13
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movq %rax, 0x1a0(%rsp)
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %rax, 0x8(%r14)
callq 0x227b2
movq %rax, 0x48(%rsp)
leaq 0x88d22(%rip), %rsi     # 0x11d330
leaq 0x120(%rsp), %rdi
callq 0x1861a
movl 0x10(%r14), %eax
movl %eax, 0x18(%r14)
movslq %eax, %rdi
movq 0x8(%r14), %rcx
cmpq %rdi, 0x8(%rcx)
jbe 0x96281
cmpl 0x14(%r14), %eax
jge 0x96281
leaq 0xa0(%rsp), %r15
movq $0x0, 0x148(%rsp)
movslq %eax, %rdx
leaq 0x1(%rdx), %rsi
movl %esi, 0x18(%r14)
movq (%rcx), %rcx
movzbl (%rcx,%rdi), %edi
decl %edi
cmpl $0x20, %edi
ja 0x960e9
leaq 0x3a606(%rip), %r8      # 0xcec7c
movslq (%r8,%rdi,4), %rdi
addq %r8, %rdi
jmpq *%rdi
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leaq 0x4(%rcx), %rdx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rsi
movq (%rax), %rax
shlq $0x4, %rsi
movq (%rax,%rsi), %r12
leal 0x8(%rcx), %eax
movl %eax, 0x18(%r14)
movl 0x4(%rdx,%rcx), %ebx
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
incl %ebx
decl %ebx
je 0x95dfe
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rsi
leaq 0x50(%rsp), %rdi
callq 0x9a724
jmp 0x946c8
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 0x70(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x1949c
leaq 0xe0(%rsp), %rdi
movq %r15, %rsi
callq 0x18b5c
leaq 0x410(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1ae10
leaq 0x410(%rsp), %rdi
jmp 0x95d76
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 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x9ad32
movq (%r13), %rax
imulq $0x38, %r15, %rcx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
leaq (%rax,%rcx), %r15
addq $0x28, %r15
movups %xmm1, -0x1e(%r15)
movups %xmm0, -0x28(%r15)
movq 0x20(%rbx), %rax
movq %rax, -0x8(%r15)
movq %r15, %rdi
leaq 0x98(%rsp), %rsi
callq 0x26e44
movq 0x30(%rbx), %rax
movq %rax, 0x8(%r15)
leaq 0xa0(%rsp), %r15
movq %rbx, %rdi
jmp 0x960e4
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 0x18b7c
cmpb $0x1, (%rax)
jne 0x95e7d
imulq $0x38, %r15, %rdi
addq (%r13), %rdi
callq 0x18b7c
movb (%rax), %bpl
jmp 0x95e7f
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, %rbp
movq (%r13), %rsi
addq %rbp, %rsi
leaq 0x4b8(%rsp), %rbx
movq %rbx, %rdi
callq 0x18f3c
xorps %xmm0, %xmm0
leaq 0xe0(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x70(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x231ae
movq (%r13), %rax
imulq $0x38, %r15, %rbx
leaq 0x70(%rsp), %r15
movups (%r15), %xmm0
movups 0xa(%r15), %xmm1
leaq (%rax,%rbx), %r12
addq $0x28, %r12
movups %xmm1, -0x1e(%r12)
movups %xmm0, -0x28(%r12)
movq 0x20(%r15), %rax
movq %rax, -0x8(%r12)
movq %r12, %rdi
leaq 0x98(%rsp), %rsi
callq 0x26e44
movq 0x30(%r15), %rax
movq %rax, 0x8(%r12)
movq %r15, %rdi
callq 0x1c65c
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x94912
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
movq (%r13), %rax
addq %rax, %rbx
addq %rax, %rbp
leaq 0x70(%rsp), %r15
movq %r15, %rdi
movq %rbp, %rsi
callq 0x18b5c
leaq 0x4d8(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x1ae10
movq %r12, %rdi
jmp 0x95d80
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, %rdi
addq (%r13), %rdi
callq 0x18b7c
movq %rax, %rbx
movq (%r13), %rax
imulq $0x38, %r15, %rcx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
leaq (%rax,%rcx), %r15
addq $0x28, %r15
movups %xmm0, -0x28(%r15)
movups %xmm1, -0x1e(%r15)
movq 0x20(%rbx), %rax
movq %rax, -0x8(%r15)
leaq 0x28(%rbx), %rsi
movq %r15, %rdi
callq 0x26e44
movq 0x30(%rbx), %rax
jmp 0x95135
addl $0x5, %eax
movl %eax, 0x18(%r14)
movslq (%rcx,%rsi), %rbx
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leaq 0x4(%rcx), %rdx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rsi
movslq (%rsi,%rcx), %rsi
movq (%rax), %rax
shlq $0x4, %rsi
movq (%rax,%rsi), %r15
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
leal 0x8(%rcx), %eax
movl %eax, 0x18(%r14)
movq (%rdx), %rax
movl 0x4(%rax,%rcx), %ebp
testl %ebp, %ebp
je 0x94a44
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 0x70(%rsp), %rdi
callq 0x18b5c
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x917c0
decl %ebp
jne 0x94a09
imulq $0x38, %rbx, %rsi
addq (%r13), %rsi
movq (%r15), %rcx
movq 0x8(%r15), %rdx
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %r8
callq 0x1904c
movq (%r13), %r15
leaq 0x70(%rsp), %rbx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
movups %xmm1, 0xa(%r15)
movups %xmm0, (%r15)
movq 0x20(%rbx), %rax
movq %rax, 0x20(%r15)
leaq 0x28(%r15), %rdi
leaq 0x98(%rsp), %rsi
callq 0x26e44
movq 0x30(%rbx), %rax
movq %rax, 0x30(%r15)
movq %rbx, %rdi
callq 0x1c65c
movq (%r13), %rsi
leaq 0x70(%rsp), %rdi
callq 0x18f3c
leaq 0x70(%rsp), %rdi
callq 0x1f5de
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
movabsq $-0x23244b0fbd3d03de, %rax # imm = 0xDCDBB4F042C2FC22
movq %rax, (%rdi)
movq $0xc, 0x8(%rdi)
leaq 0x27473(%rip), %rax     # 0xbbf56
movq %rax, 0x10(%rdi)
movw $0x0, 0x18(%rdi)
callq 0x1f5de
leaq 0xa0(%rsp), %r15
cmpq %rax, %rbx
jne 0x95407
movq (%r13), %rdi
callq 0x18b7c
leaq 0x70(%rsp), %rdi
movq %rax, %rsi
callq 0x18ba8
movq (%r13), %r15
leaq 0x70(%rsp), %rbx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
movups %xmm1, 0xa(%r15)
movups %xmm0, (%r15)
movq 0x20(%rbx), %rax
movq %rax, 0x20(%r15)
leaq 0x28(%r15), %rdi
leaq 0x98(%rsp), %rsi
callq 0x26e44
movq 0x30(%rbx), %rax
movq %rax, 0x30(%r15)
movq %rbx, %rdi
callq 0x1c65c
leaq 0xa0(%rsp), %r15
jmp 0x95407
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 0x70(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x198b0
leaq 0xe0(%rsp), %rdi
movq %r15, %rsi
callq 0x18b5c
leaq 0x368(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1ae10
leaq 0x368(%rsp), %rdi
jmp 0x95d76
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 0x1a0(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq (%rcx,%rax,8), %rax
movq %rax, 0x50(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x18cf8
cmpq $0x4, %rbx
ja 0x960ae
leaq 0x3a0d5(%rip), %rax     # 0xced00
movslq (%rax,%rbx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9a9a2
jmp 0x96060
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
leaq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rcx
movq %rcx, (%rdi)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
callq 0x36954
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, 0xe0(%rsp)
movq $0x0, 0xf0(%rsp)
incl %ebx
decl %ebx
je 0x95da5
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x9a724
jmp 0x94cc2
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq (%r14), %rdx
movq 0x8(%r14), %rsi
movq (%rsi), %rsi
movslq (%rsi,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rbx
movq %r14, %rdi
callq *0x8(%rdx)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq %r15, %r12
movq (%rax,%rcx), %r15
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
callq 0x227d6
movq 0x148(%rsp), %rax
leaq 0x20(%rax), %rbp
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
leaq 0x70(%rsp), %rbx
movaps %xmm1, 0x10(%rbx)
movaps %xmm0, (%rbx)
movq %r12, 0x20(%rbx)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
leaq 0x90(%rsp), %rdi
callq 0x36954
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x9d3e8
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0x94dd3
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x11360
movq (%r15), %rdx
movq 0x8(%r15), %rsi
leaq 0x230(%rsp), %rcx
movq $0x0, 0x8(%rcx)
movq %r15, (%rcx)
leaq 0x5426(%rip), %rax      # 0x9a21a
movq %rax, 0x18(%rcx)
leaq 0x548b(%rip), %rax      # 0x9a28a
movq %rax, 0x10(%rcx)
movups 0xe0(%rsp), %xmm0
movups 0xf0(%rsp), %xmm1
movups %xmm1, 0x30(%rsp)
movups %xmm0, 0x20(%rsp)
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq 0x48(%rsp), %rdi
callq 0x23c88
movq 0x240(%rsp), %rax
testq %rax, %rax
je 0x94e5f
leaq 0x230(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq (%r15), %rdx
movq 0x8(%r15), %rsi
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq 0x48(%rsp), %rdi
callq 0x23a44
leaq 0x886d8(%rip), %rcx     # 0x11d568
cmpq %rcx, %rax
je 0x94ea4
leaq 0x886cc(%rip), %rsi     # 0x11d568
movq %rax, %rdi
callq 0x3639e
leaq 0x886bd(%rip), %rdi     # 0x11d568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9d19a
jmp 0x95d85
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
callq 0x227d6
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rbp
xorps %xmm0, %xmm0
leaq 0x50(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x70(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x231ae
leaq 0x8867b(%rip), %rdi     # 0x11d5d8
leaq 0x120(%rsp), %rsi
callq 0x9da9a
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9cc06
movq %rax, %rbx
leaq 0x70(%rsp), %r15
movups (%r15), %xmm0
movups 0xa(%r15), %xmm1
movups %xmm1, 0xa(%rax)
movups %xmm0, (%rax)
movq 0x20(%r15), %rax
movq %rax, 0x20(%rbx)
movq %rbx, %rdi
addq $0x28, %rdi
leaq 0x98(%rsp), %rsi
callq 0x26e44
movq 0x30(%r15), %rax
movq %rax, 0x30(%rbx)
movq %r15, %rdi
callq 0x1c65c
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x94fd0
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
leaq 0x88601(%rip), %rdi     # 0x11d5d8
leaq 0x120(%rsp), %rbx
movq %rbx, %rsi
callq 0x9da9a
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9cc06
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x1f0(%rsp), %rcx
movq $0x0, 0x8(%rcx)
movq %rax, (%rcx)
leaq 0x531c(%rip), %rax      # 0x9a330
movq %rax, 0x18(%rcx)
leaq 0x535b(%rip), %rax      # 0x9a37a
movq %rax, 0x10(%rcx)
movups 0xe0(%rsp), %xmm0
movups 0xf0(%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 0x48(%rsp), %rdi
callq 0x23f62
leaq 0xa0(%rsp), %r15
movq 0x200(%rsp), %rax
testq %rax, %rax
je 0x958aa
leaq 0x1f0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x958aa
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 0x18b7c
movb $0x1, %bpl
cmpb $0x0, (%rax)
jne 0x950c7
imulq $0x38, %r15, %rdi
addq (%r13), %rdi
callq 0x18b7c
movb (%rax), %bpl
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x18b7c
movb %bpl, (%rax)
jmp 0x95d85
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, %rax, %rax
imulq $0x38, %rsi, %rdx
leaq (%rcx,%rax), %rbx
addq $0x28, %rbx
movups -0x28(%rbx), %xmm0
movups -0x1e(%rbx), %xmm1
leaq 0x28(%rcx,%rdx), %r15
movups %xmm1, -0x1e(%r15)
movups %xmm0, -0x28(%r15)
movq -0x8(%rbx), %rax
movq %rax, -0x8(%r15)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x26e44
movq 0x8(%rbx), %rax
movq %rax, 0x8(%r15)
jmp 0x95d85
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 0x70(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x195f8
leaq 0xe0(%rsp), %rdi
movq %r15, %rsi
callq 0x18b5c
leaq 0x3d8(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1ae10
leaq 0x3d8(%rsp), %rdi
jmp 0x95d76
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq (%r14), %rdx
movq 0x8(%r14), %rsi
movq (%rsi), %rsi
movslq (%rsi,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rbp
movq %r14, %rdi
callq *0x8(%rdx)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0x70(%rsp), %rdi
callq 0x227d6
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
movslq 0x18(%r14), %rax
leal 0x4(%rax), %r15d
movl %r15d, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebx
testl %ebx, %ebx
jle 0x952cb
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x227d6
movq 0x58(%rsp), %rsi
cmpq 0x60(%rsp), %rsi
je 0x952ad
movups 0xe0(%rsp), %xmm0
movups 0xf0(%rsp), %xmm1
movups %xmm1, 0x10(%rsi)
movups %xmm0, (%rsi)
addq $0x20, %rsi
movq %rsi, 0x58(%rsp)
jmp 0x952bf
leaq 0x50(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x276da
decl %ebx
jne 0x95241
movl 0x18(%r14), %r15d
movq 0x148(%rsp), %rax
leaq 0x38(%rax), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9d69e
movl %r15d, 0x10(%rax)
movl $0x7fffffff, 0x14(%rax) # imm = 0x7FFFFFFF
movq %r14, 0x20(%rax)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9d69e
leaq 0xa0(%rsp), %r15
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x1d0(%rsp), %r8
movq $0x0, 0x8(%r8)
movq %rax, (%r8)
leaq 0x507a(%rip), %rax      # 0x9a3a0
movq %rax, 0x18(%r8)
leaq 0x50b7(%rip), %rax      # 0x9a3e8
movq %rax, 0x10(%r8)
movups 0x70(%rsp), %xmm0
movups 0x80(%rsp), %xmm1
movups %xmm1, 0x30(%rsp)
movups %xmm0, 0x20(%rsp)
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x50(%rsp), %rcx
movq 0x48(%rsp), %rdi
callq 0x249c2
movq 0x1e0(%rsp), %rax
testq %rax, %rax
je 0x95393
leaq 0x1d0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x50(%rsp), %rcx
movq 0x48(%rsp), %rdi
callq 0x23b7c
leaq 0x8819e(%rip), %rcx     # 0x11d568
cmpq %rcx, %rax
je 0x953de
leaq 0x88192(%rip), %rsi     # 0x11d568
movq %rax, %rdi
callq 0x3639e
leaq 0x88183(%rip), %rdi     # 0x11d568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9d19a
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)
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x960e9
movq 0x60(%rsp), %rsi
jmp 0x95bf0
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 0x70(%rsp), %r15
movq %r15, %rdi
callq 0x18b5c
leaq 0x510(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
movq %r15, %rdx
leaq 0xa0(%rsp), %r15
callq 0x1ae10
movq %rbp, %rdi
jmp 0x960e4
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq (%r14), %rdx
movq 0x8(%r14), %rsi
movq (%rsi), %rsi
movslq (%rsi,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rbp
movq %r14, %rdi
callq *0x8(%rdx)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0x70(%rsp), %rdi
callq 0x227d6
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
movslq 0x18(%r14), %rdx
leal 0x4(%rdx), %eax
movl %eax, 0x18(%r14)
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
movl (%rcx,%rdx), %ebx
testl %ebx, %ebx
jle 0x955a0
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
movq (%rax), %rdx
movq 0x8(%rax), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x227d6
movq 0x58(%rsp), %rsi
cmpq 0x60(%rsp), %rsi
je 0x9557b
movups 0xe0(%rsp), %xmm0
movups 0xf0(%rsp), %xmm1
movups %xmm1, 0x10(%rsi)
movups %xmm0, (%rsi)
addq $0x20, %rsi
movq %rsi, 0x58(%rsp)
jmp 0x9558d
leaq 0x50(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x276da
decl %ebx
jne 0x9550f
movl 0x18(%r14), %eax
movq 0x8(%r14), %rcx
movq (%rcx), %rcx
leal 0x4(%rax), %r12d
movl %r12d, 0x18(%r14)
cltq
movl (%rcx,%rax), %r15d
movq 0x148(%rsp), %rax
leaq 0x38(%rax), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9d69e
movl %r12d, 0x10(%rax)
movl $0x7fffffff, 0x14(%rax) # imm = 0x7FFFFFFF
movq %r14, 0x20(%rax)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9d69e
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x210(%rsp), %r8
movq $0x0, 0x8(%r8)
movq %rax, (%r8)
leaq 0x4caf(%rip), %rax      # 0x9a2b0
movq %rax, 0x18(%r8)
leaq 0x4cfe(%rip), %rax      # 0x9a30a
movq %rax, 0x10(%r8)
movups 0x70(%rsp), %xmm0
movups 0x80(%rsp), %xmm1
movups %xmm1, 0x30(%rsp)
movups %xmm0, 0x20(%rsp)
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x50(%rsp), %rcx
movq 0x48(%rsp), %rdi
callq 0x24278
movq 0x220(%rsp), %rax
testq %rax, %rax
je 0x9566e
leaq 0x210(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x50(%rsp), %rcx
movq 0x48(%rsp), %rdi
callq 0x23b7c
leaq 0x87ec3(%rip), %rcx     # 0x11d568
cmpq %rcx, %rax
je 0x956b9
leaq 0x87eb7(%rip), %rsi     # 0x11d568
movq %rax, %rdi
callq 0x3639e
leaq 0x87ea8(%rip), %rdi     # 0x11d568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9d19a
addl %r15d, 0x18(%r14)
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x95d85
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
jmp 0x95d85
addl $0x5, %eax
movl %eax, 0x18(%r14)
movslq (%rcx,%rsi), %rax
imulq $0x38, %rax, %rbx
movq (%r13), %rdi
addq %rbx, %rdi
callq 0x18b7c
movb (%rax), %bpl
xorb $0x1, %bpl
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x18b7c
movb %bpl, (%rax)
jmp 0x960e9
addl $0x5, %eax
movl %eax, 0x18(%r14)
movslq (%rcx,%rsi), %rsi
movq %r13, %rdi
callq 0x9a928
jmp 0x960e9
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rbp
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
callq 0x227d6
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
callq 0x18d72
leaq 0x87e38(%rip), %rdi     # 0x11d5d8
leaq 0x120(%rsp), %rsi
callq 0x9da9a
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9cc06
movq %rax, %rbx
leaq 0x70(%rsp), %r15
movups (%r15), %xmm0
movups 0xa(%r15), %xmm1
movups %xmm1, 0xa(%rax)
movups %xmm0, (%rax)
movq 0x20(%r15), %rax
movq %rax, 0x20(%rbx)
movq %rbx, %rdi
addq $0x28, %rdi
leaq 0x98(%rsp), %rsi
callq 0x26e44
movq 0x30(%r15), %rax
movq %rax, 0x30(%rbx)
movq %r15, %rdi
callq 0x1c65c
leaq 0x87dd5(%rip), %rdi     # 0x11d5d8
leaq 0x120(%rsp), %rbx
movq %rbx, %rsi
callq 0x9da9a
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9cc06
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
leaq 0x1b0(%rsp), %rcx
movq $0x0, 0x8(%rcx)
movq %rax, (%rcx)
leaq 0x4bce(%rip), %rax      # 0x9a40e
movq %rax, 0x18(%rcx)
leaq 0x4c0d(%rip), %rax      # 0x9a458
movq %rax, 0x10(%rcx)
movups 0xe0(%rsp), %xmm0
movups 0xf0(%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 0x48(%rsp), %rdi
callq 0x23f62
movq 0x1c0(%rsp), %rax
testq %rax, %rax
leaq 0xa0(%rsp), %r15
je 0x958aa
leaq 0x1b0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq 0x48(%rsp), %rdi
callq 0x23a44
leaq 0x87c8c(%rip), %rcx     # 0x11d568
cmpq %rcx, %rax
je 0x958f0
leaq 0x87c80(%rip), %rsi     # 0x11d568
movq %rax, %rdi
callq 0x3639e
leaq 0x87c71(%rip), %rdi     # 0x11d568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9d19a
jmp 0x960e9
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 0x70(%rsp), %rdi
callq 0x18cf8
testq %rbx, %rbx
je 0x95fcf
movq 0x198(%rsp), %rax
movq (%rax), %rax
leaq (%rbx,%rbx,4), %rcx
leaq (%rax,%rcx,8), %rsi
addq $-0x28, %rsi
leaq 0x70(%rsp), %rdi
callq 0x9acbc
leaq 0xe0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x18f3c
leaq 0xe0(%rsp), %rdi
callq 0x1f5de
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
movabsq $-0x23244b0fbd3d03de, %rax # imm = 0xDCDBB4F042C2FC22
movq %rax, (%rdi)
movq $0xc, 0x8(%rdi)
leaq 0x265c3(%rip), %rax     # 0xbbf56
movq %rax, 0x10(%rdi)
movw $0x0, 0x18(%rdi)
callq 0x1f5de
cmpq %rax, %rbx
jne 0x95fe1
leaq 0x70(%rsp), %rdi
callq 0x18b7c
leaq 0xe0(%rsp), %rdi
movq %rax, %rsi
callq 0x18ba8
leaq 0xe0(%rsp), %rbx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
movups %xmm1, 0x7a(%rsp)
movaps %xmm0, 0x70(%rsp)
movq 0x20(%rbx), %rax
movq %rax, 0x90(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x26e44
movq 0x30(%rbx), %rax
movq %rax, 0xa0(%rsp)
movq %rbx, %rdi
callq 0x1c65c
jmp 0x95fe1
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), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rax
imulq $0x38, %rbx, %rsi
addq (%r13), %rsi
movq (%rax), %rcx
movq 0x8(%rax), %rdx
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x18f84
imulq $0x38, %r15, %rdi
leaq 0xa0(%rsp), %r15
addq (%r13), %rdi
movq %rbx, %rsi
callq 0x9acbc
jmp 0x960e9
addl $0x5, %eax
movl %eax, 0x18(%r14)
movl (%rcx,%rsi), %ebx
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rsi
leaq 0x330(%rsp), %r15
movq %r15, %rdi
callq 0x87efe
movq %r13, %rdi
movl %ebx, %esi
movq %r15, %rdx
callq 0x98a5e
leaq 0x330(%rsp), %rdi
jmp 0x95d80
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movslq 0x18(%r14), %rcx
leaq 0x4(%rcx), %rdx
movl %edx, 0x18(%r14)
movq 0x8(%r14), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rsi
movq (%rax), %rax
shlq $0x4, %rsi
movq (%rax,%rsi), %rbx
leaq 0x8(%rcx), %rax
movl %eax, 0x18(%r14)
movl 0x4(%rdx,%rcx), %ebp
leal 0xc(%rcx), %eax
movl %eax, 0x18(%r14)
movl 0x8(%rdx,%rcx), %r15d
xorps %xmm0, %xmm0
movaps %xmm0, 0xe0(%rsp)
movq $0x0, 0xf0(%rsp)
testl %r15d, %r15d
je 0x95b8f
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 0x70(%rsp), %rdi
callq 0x18b5c
leaq 0xe0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x917c0
decl %r15d
jne 0x95b50
movq (%rbx), %rcx
movq 0x8(%rbx), %rdx
leaq 0x2f8(%rsp), %rdi
leaq 0xe0(%rsp), %r8
movq 0x48(%rsp), %rsi
callq 0x23348
leaq 0x2f8(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x98a5e
leaq 0xa0(%rsp), %r15
leaq 0x2f8(%rsp), %rdi
callq 0x1c65c
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x960e9
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
jmp 0x95df4
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 0x70(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x19340
leaq 0xe0(%rsp), %rdi
movq %r15, %rsi
callq 0x18b5c
leaq 0x448(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1ae10
leaq 0x448(%rsp), %rdi
jmp 0x95d76
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 0x70(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x191e4
leaq 0xe0(%rsp), %rdi
movq %r15, %rsi
callq 0x18b5c
leaq 0x480(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1ae10
leaq 0x480(%rsp), %rdi
jmp 0x95d76
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 0x18b7c
cmpb $0x1, (%rax)
jne 0x960e9
addl %ebx, 0x18(%r14)
jmp 0x960e9
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 0x70(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rsi
callq 0x19754
leaq 0xe0(%rsp), %rdi
movq %r15, %rsi
callq 0x18b5c
leaq 0x3a0(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1ae10
leaq 0x3a0(%rsp), %rdi
callq 0x1c65c
leaq 0x70(%rsp), %rdi
callq 0x1c65c
leaq 0xa0(%rsp), %r15
jmp 0x960e9
addl $0x5, %eax
movl %eax, 0x18(%r14)
addl (%rcx,%rsi), %eax
movl %eax, 0x18(%r14)
jmp 0x960e9
leaq 0x877bc(%rip), %rdi     # 0x11d568
leaq 0x70(%rsp), %rsi
callq 0x9c324
leaq 0xe0(%rsp), %rsi
movq %rax, %rdi
callq 0x9a762
leaq 0xe0(%rsp), %rdi
callq 0x367d6
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x960e9
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0x960e9
movq (%r12), %rdx
movq 0x8(%r12), %rsi
leaq 0x70(%rsp), %rdi
callq 0x227d6
movups 0x70(%rsp), %xmm0
movups 0x7a(%rsp), %xmm1
movups %xmm1, 0x12a(%rsp)
movaps %xmm0, 0x120(%rsp)
movaps 0x120(%rsp), %xmm0
movaps 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq 0x48(%rsp), %rdi
callq 0x228dc
testb %al, %al
je 0x95e9b
leaq 0x87747(%rip), %rdi     # 0x11d5a0
leaq 0x120(%rsp), %rsi
callq 0x9c8f2
movq %rax, 0x148(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x367d6
jmp 0x95d85
xorl %ebp, %ebp
leaq 0xa0(%rsp), %r15
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x18b7c
movb %bpl, (%rax)
jmp 0x960e9
leaq 0x876fe(%rip), %rdi     # 0x11d5a0
leaq 0x120(%rsp), %rsi
callq 0x9c832
testq %rax, %rax
je 0x9610d
movq (%r12), %rbx
movq 0x8(%r12), %r15
xorl %eax, %eax
movq %rax, 0x178(%rsp)
movq %r12, 0x170(%rsp)
leaq 0x40d0(%rip), %rcx      # 0x99faa
movq %rcx, 0x188(%rsp)
leaq 0x430b(%rip), %rcx      # 0x9a1f4
movq %rcx, 0x180(%rsp)
leaq 0x250(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x87665(%rip), %rsi     # 0x11d568
movq 0x87666(%rip), %rcx     # 0x11d570
movq %rcx, 0x8(%rdi)
movq %rax, 0x10(%rdi)
movq 0x87667(%rip), %rcx     # 0x11d580
movq %rcx, 0x18(%rdi)
movups 0x87664(%rip), %xmm0    # 0x11d588
leaq 0x270(%rsp), %rcx
movups %xmm0, (%rcx)
movq %rax, 0x30(%rdi)
leaq 0x70(%rsp), %rdx
movq %rdi, (%rdx)
callq 0x37680
leaq 0x170(%rsp), %rcx
leaq 0x250(%rsp), %r8
movq 0x48(%rsp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x23828
leaq 0x250(%rsp), %rdi
callq 0x36ac6
movq 0x180(%rsp), %rax
testq %rax, %rax
je 0x95f8c
leaq 0x170(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x875d5(%rip), %rdi     # 0x11d568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9d19a
movq 0x50(%rsp), %rbx
movq 0x58(%rsp), %r15
cmpq %r15, %rbx
je 0x95e52
movq (%r12), %rdx
movq 0x8(%r12), %rsi
movq (%rbx), %r8
movq 0x8(%rbx), %rcx
movq 0x48(%rsp), %rdi
callq 0x238da
addq $0x20, %rbx
jmp 0x95fa6
leaq 0x70(%rsp), %rdi
movq 0x190(%rsp), %rsi
callq 0x9acbc
leaq 0x288(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x18d30
leaq 0x288(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x98a5e
leaq 0x288(%rsp), %rdi
jmp 0x960da
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9abf4
jmp 0x96060
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9aa66
jmp 0x96060
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9ab2c
jmp 0x96060
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x87fda
leaq 0xe0(%rsp), %rbx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
movups %xmm1, 0x7a(%rsp)
movaps %xmm0, 0x70(%rsp)
movq 0x20(%rbx), %rax
movq %rax, 0x90(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x108(%rsp), %rsi
callq 0x26e44
movq 0x30(%rbx), %rax
movq %rax, 0xa0(%rsp)
movq %rbx, %rdi
callq 0x1c65c
leaq 0x2c0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x18d30
leaq 0x2c0(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x98a5e
leaq 0x2c0(%rsp), %rdi
callq 0x1c65c
leaq 0x70(%rsp), %rdi
callq 0x1c65c
movl 0x18(%r14), %eax
movslq %eax, %rdi
movq 0x8(%r14), %rcx
cmpq %rdi, 0x8(%rcx)
jbe 0x96281
cmpl 0x14(%r14), %eax
jl 0x94652
jmp 0x96281
leaq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
movq %rax, (%rdi)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
addq %rsi, %rdx
callq 0x36954
leaq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
movq %rax, (%rdi)
movq 0x150(%rsp), %rsi
movq 0x158(%rsp), %rdx
addq %rsi, %rdx
callq 0x36954
leaq 0x90(%rsp), %rbp
xorps %xmm0, %xmm0
movups %xmm0, (%rbp)
movq $0x0, 0x10(%rbp)
leaq 0xd8(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq $0x1, 0xb0(%rsp)
leaq 0x98(%rsp), %rax
movups %xmm0, 0x20(%rax)
movl $0x3f800000, 0xc8(%rsp) # imm = 0x3F800000
movups %xmm0, 0x38(%rax)
leaq 0x873f2(%rip), %rdi     # 0x11d5a0
leaq 0x120(%rsp), %rsi
callq 0x9c8f2
movq %rax, %rbx
leaq 0x70(%rsp), %r15
movq %rax, %rdi
movq %r15, %rsi
callq 0x11a66
movq 0x30(%rbx), %rax
movups 0x20(%r15), %xmm0
movups 0x20(%rbx), %xmm1
movups %xmm0, 0x20(%rbx)
movq 0x30(%r15), %rcx
movq %rcx, 0x30(%rbx)
leaq 0xe0(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rbp)
movq $0x0, 0x10(%rbp)
callq 0x9b03e
addq $0x38, %rbx
movq %rbx, %rdi
leaq 0xa8(%rsp), %r15
movq %r15, %rsi
callq 0x11b14
movq %r15, %rdi
callq 0x9b0c6
movq %rbp, %rdi
callq 0x9b03e
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x96253
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x95eb8
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0x95eb8
movl 0x144(%rsp), %eax
movl %eax, 0x18(%r14)
leaq 0x870f5(%rip), %rsi     # 0x11d388
movq 0x1a8(%rsp), %rbx
movq %rbx, %rdi
callq 0x18d30
movq %rbx, %rax
addq $0x548, %rsp            # imm = 0x548
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 0x144(%rsp), %ecx
movl %ecx, 0x18(%r14)
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
jmp 0x96293
jmp 0x964d3
jmp 0x96531
jmp 0x96531
jmp 0x96531
jmp 0x96531
jmp 0x96531
jmp 0x964d3
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x9a8f8
jmp 0x9630d
movq %rax, %rbx
movq 0x150(%rsp), %rdi
leaq 0x160(%rsp), %rax
cmpq %rax, %rdi
je 0x965c8
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0x965c8
jmp 0x965c5
movq %rax, %rbx
leaq 0x250(%rsp), %rdi
callq 0x36ac6
jmp 0x96355
movq %rax, %rbx
movq 0x180(%rsp), %rax
testq %rax, %rax
je 0x965c8
leaq 0x170(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x965c8
jmp 0x964d3
jmp 0x965c5
jmp 0x964d3
jmp 0x964d3
jmp 0x964d3
jmp 0x964d3
jmp 0x964d3
jmp 0x96531
jmp 0x96531
jmp 0x9657a
jmp 0x9657a
jmp 0x9657a
jmp 0x965c5
movq %rax, %rbx
movq 0x240(%rsp), %rax
testq %rax, %rax
je 0x965d2
leaq 0x230(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x965d2
jmp 0x964d3
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0x965d2
movq 0xa0(%rsp), %rsi
jmp 0x965bb
movq %rax, %rbx
movq 0x220(%rsp), %rax
testq %rax, %rax
je 0x9657d
leaq 0x210(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x9657d
jmp 0x964d3
jmp 0x9657a
movq %rax, %rbx
movq 0x200(%rsp), %rax
testq %rax, %rax
je 0x965d2
leaq 0x1f0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x965d2
jmp 0x964d3
jmp 0x9657a
movq %rax, %rbx
movq 0x1e0(%rsp), %rax
testq %rax, %rax
je 0x9657d
leaq 0x1d0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x9657d
jmp 0x964d3
jmp 0x9657a
movq %rax, %rbx
movq 0x1c0(%rsp), %rax
testq %rax, %rax
je 0x965d2
leaq 0x1b0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x965d2
movq %rax, %rdi
callq 0x26e38
movq %rax, %rbx
leaq 0x2f8(%rsp), %rdi
callq 0x1c65c
jmp 0x96561
jmp 0x9655e
movq %rax, %rbx
leaq 0x330(%rsp), %rdi
jmp 0x96539
movq %rax, %rbx
leaq 0x2c0(%rsp), %rdi
jmp 0x96518
jmp 0x96531
jmp 0x9655e
movq %rax, %rbx
leaq 0x288(%rsp), %rdi
callq 0x1c65c
jmp 0x96534
jmp 0x96531
jmp 0x96531
jmp 0x96531
jmp 0x96531
jmp 0x96531
jmp 0x96531
jmp 0x96591
jmp 0x96531
jmp 0x96531
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x1c65c
jmp 0x965d2
jmp 0x9657a
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x1c65c
jmp 0x9657d
jmp 0x965c5
jmp 0x9657a
jmp 0x9657a
jmp 0x965c5
jmp 0x9657a
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x965d2
movq 0xf0(%rsp), %rsi
jmp 0x9658c
jmp 0x9657a
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x965d2
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
jmp 0x965be
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x367d6
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x965d2
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0x965d2
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x367d6
movq %rbx, %rdi
callq 0x11580