// File: /workspace/github_cpp_makefile_star2_O1/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, 0x1b0(%rsp)
movq %rdx, 0x1a8(%rsp)
movq %rsi, %r15
movq %rdi, 0x158(%rsp)
movl 0x18(%rsi), %eax
movl %eax, 0x14c(%rsp)
movq (%rsi), %rax
movq %rsi, %rdi
callq *(%rax)
movq %rax, %r13
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movq %rax, 0x1b8(%rsp)
movq (%r15), %rax
movq %r15, %rdi
callq *0x10(%rax)
movq %rax, 0x8(%r15)
callq 0x23132
movq %rax, 0x48(%rsp)
leaq 0x891f4(%rip), %rsi     # 0x11e330
leaq 0x120(%rsp), %rdi
callq 0x18fd6
movl 0x10(%r15), %eax
movl %eax, 0x18(%r15)
leaq 0xa0(%rsp), %r14
movq $0x0, 0x150(%rsp)
movl 0x18(%r15), %edi
movslq %edi, %rax
movq 0x8(%r15), %rsi
cmpq %rax, 0x8(%rsi)
jbe 0x96e48
cmpl 0x14(%r15), %edi
jge 0x96e48
leaq 0x1(%rax), %rdx
movl %edx, 0x18(%r15)
movq (%rsi), %rcx
movzbl (%rcx,%rax), %r8d
decl %r8d
cmpl $0x20, %r8d
ja 0x96cb2
leaq 0x3ab04(%rip), %r9      # 0xcfcac
movslq (%r9,%r8,4), %r8
addq %r9, %r8
jmpq *%r8
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leaq 0x4(%rcx), %rdx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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(%r15)
movl 0x4(%rdx,%rcx), %ebx
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
incl %ebx
decl %ebx
je 0x9695f
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rsi
leaq 0x50(%rsp), %rdi
callq 0x9b36e
jmp 0x951fb
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
movq (%r13), %rbx
movq (%r13), %rcx
imulq $0x38, %rdx, %r12
leaq (%rcx,%r12), %rsi
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x19e5a
leaq 0xe0(%rsp), %rdi
movq %r14, %rsi
callq 0x1951c
addq %r12, %rbx
leaq 0x420(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1b7ce
leaq 0x420(%rsp), %rdi
jmp 0x968f7
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %r14
imulq $0x38, %rdx, %rbx
movq (%r13), %rdi
addq %rbx, %rdi
callq 0x1953c
cmpb $0x1, (%rax)
jne 0x96a3b
imulq $0x38, %r14, %rdi
addq (%r13), %rdi
callq 0x1953c
movb (%rax), %bpl
jmp 0x96a3d
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %r14
leal 0x9(%rax), %edx
movl %edx, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
imulq $0x38, %rax, %rbp
movq (%r13), %rsi
addq %rbp, %rsi
leaq 0x4c8(%rsp), %rbx
movq %rbx, %rdi
callq 0x198fc
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 0x23b72
movq (%r13), %rax
imulq $0x38, %r14, %rbx
leaq 0x70(%rsp), %r14
movups (%r14), %xmm0
movups 0xa(%r14), %xmm1
leaq (%rax,%rbx), %r12
addq $0x28, %r12
movups %xmm1, -0x1e(%r12)
movups %xmm0, -0x28(%r12)
movq 0x20(%r14), %rax
movq %rax, -0x8(%r12)
movq %r12, %rdi
leaq 0x98(%rsp), %rsi
callq 0x278a6
movq 0x30(%r14), %rax
movq %rax, 0x8(%r12)
movq %r14, %rdi
callq 0x1d01a
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x953d5
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
addq (%r13), %rbx
addq (%r13), %rbp
leaq 0x70(%rsp), %r14
movq %r14, %rdi
movq %rbp, %rsi
callq 0x1951c
leaq 0x4e8(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x1b7ce
movq %r12, %rdi
jmp 0x96901
addl $0x5, %eax
movl %eax, 0x18(%r15)
movslq (%rcx,%rdx), %rax
movl 0x14c(%rsp), %ecx
movl %ecx, 0x18(%r15)
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
movq 0x158(%rsp), %rdi
callq 0x196f0
xorl %eax, %eax
jmp 0x96cb4
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
movq (%r13), %rbx
movq (%r13), %rcx
imulq $0x38, %rdx, %r12
leaq (%rcx,%r12), %rsi
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x1a26e
leaq 0xe0(%rsp), %rdi
movq %r14, %rsi
callq 0x1951c
addq %r12, %rbx
leaq 0x378(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1b7ce
leaq 0x378(%rsp), %rdi
jmp 0x968f7
leaq 0x2(%rax), %rdi
movl %edi, 0x18(%r15)
movzbl (%rcx,%rdx), %ebx
movq %rax, %rdx
addq $0x6, %rdx
movl %edx, 0x18(%r15)
movl 0x2(%rcx,%rax), %ebp
leal 0xa(%rax), %ecx
movl %ecx, 0x18(%r15)
movq (%rsi), %rcx
movslq 0x6(%rcx,%rax), %rax
movq 0x1b8(%rsp), %rcx
movq 0x50(%rcx), %rcx
movq (%rcx,%rax,8), %rax
movq %rax, 0x50(%rsp)
leaq 0x70(%rsp), %rdi
callq 0x196b8
cmpq $0x4, %rbx
ja 0x96c77
leaq 0x3a822(%rip), %rax     # 0xcfd30
movslq (%rax,%rbx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9b5d0
jmp 0x96c29
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %r14
leal 0x9(%rax), %edx
movl %edx, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x9b960
movq (%r13), %rax
imulq $0x38, %r14, %rcx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
leaq (%rax,%rcx), %r14
addq $0x28, %r14
movups %xmm1, -0x1e(%r14)
movups %xmm0, -0x28(%r14)
movq 0x20(%rbx), %rax
movq %rax, -0x8(%r14)
movq %r14, %rdi
leaq 0x98(%rsp), %rsi
callq 0x278a6
movq 0x30(%rbx), %rax
movq %rax, 0x8(%r14)
leaq 0xa0(%rsp), %r14
movq %rbx, %rdi
jmp 0x96cad
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %r14
imulq $0x38, %rdx, %rbx
movq (%r13), %rdi
addq %rbx, %rdi
callq 0x1953c
cmpb $0x0, (%rax)
movb $0x1, %bpl
jne 0x955f2
imulq $0x38, %r14, %rdi
addq (%r13), %rdi
callq 0x1953c
movb (%rax), %bpl
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x1953c
movb %bpl, (%rax)
jmp 0x96906
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
movq (%r13), %rcx
imulq $0x38, %rax, %rax
imulq $0x38, %rdx, %rdx
leaq (%rcx,%rax), %rbx
addq $0x28, %rbx
movups -0x28(%rbx), %xmm0
movups -0x1e(%rbx), %xmm1
leaq 0x28(%rcx,%rdx), %r14
movups %xmm1, -0x1e(%r14)
movups %xmm0, -0x28(%r14)
movq -0x8(%rbx), %rax
movq %rax, -0x8(%r14)
movq %r14, %rdi
movq %rbx, %rsi
callq 0x278a6
movq 0x8(%rbx), %rax
jmp 0x958fb
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
movq (%r13), %rbx
movq (%r13), %rcx
imulq $0x38, %rdx, %r12
leaq (%rcx,%r12), %rsi
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x19fb6
leaq 0xe0(%rsp), %rdi
movq %r14, %rsi
callq 0x1951c
addq %r12, %rbx
leaq 0x3e8(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1b7ce
leaq 0x3e8(%rsp), %rdi
jmp 0x968f7
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq (%r15), %rdx
movq 0x8(%r15), %rsi
movq (%rsi), %rsi
movslq (%rsi,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rbx
movq %r15, %rdi
callq *0x8(%rdx)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq %r14, %r12
movq (%rax,%rcx), %r14
movq (%rbx), %rdx
movq 0x8(%rbx), %rsi
leaq 0xe0(%rsp), %rbx
movq %rbx, %rdi
callq 0x23156
movq 0x150(%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 (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq 0x90(%rsp), %rdi
callq 0x37586
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x9e07c
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0x957af
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x11360
movq (%r14), %rdx
movq 0x8(%r14), %rsi
xorps %xmm0, %xmm0
leaq 0x240(%rsp), %rcx
movaps %xmm0, (%rcx)
movaps %xmm0, 0x10(%rcx)
movq %r14, (%rcx)
leaq 0x5698(%rip), %rax      # 0x9ae6a
movq %rax, 0x18(%rcx)
leaq 0x56fd(%rip), %rax      # 0x9aeda
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 0x24670
movq 0x250(%rsp), %rax
testq %rax, %rax
je 0x9583d
leaq 0x240(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq (%r14), %rdx
movq 0x8(%r14), %rsi
movups 0x120(%rsp), %xmm0
movups 0x130(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq 0x48(%rsp), %rdi
callq 0x2442c
leaq 0x88cfa(%rip), %rcx     # 0x11e568
cmpq %rcx, %rax
je 0x95882
leaq 0x88cee(%rip), %rsi     # 0x11e568
movq %rax, %rdi
callq 0x36fda
leaq 0x88cdf(%rip), %rdi     # 0x11e568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9de24
jmp 0x96906
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %r14
leal 0x9(%rax), %edx
movl %edx, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
imulq $0x38, %rax, %rdi
addq (%r13), %rdi
callq 0x1953c
movq %rax, %rbx
movq (%r13), %rax
imulq $0x38, %r14, %rcx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
leaq (%rax,%rcx), %r14
addq $0x28, %r14
movups %xmm0, -0x28(%r14)
movups %xmm1, -0x1e(%r14)
movq 0x20(%rbx), %rax
movq %rax, -0x8(%r14)
leaq 0x28(%rbx), %rsi
movq %r14, %rdi
callq 0x278a6
movq 0x30(%rbx), %rax
movq %rax, 0x8(%r14)
jmp 0x96906
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq (%r15), %rdx
movq 0x8(%r15), %rsi
movq (%rsi), %rsi
movslq (%rsi,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rbp
movq %r15, %rdi
callq *0x8(%rdx)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x23156
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebx
testl %ebx, %ebx
jle 0x95a1d
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x23156
movq 0x58(%rsp), %rsi
cmpq 0x60(%rsp), %rsi
je 0x95a03
movups 0xe0(%rsp), %xmm0
movups 0xf0(%rsp), %xmm1
movups %xmm1, 0x10(%rsi)
movups %xmm0, (%rsi)
addq $0x20, %rsi
movq %rsi, 0x58(%rsp)
jmp 0x95a15
leaq 0x50(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x28126
decl %ebx
jne 0x95997
movl 0x18(%r15), %r14d
movq 0x150(%rsp), %rax
leaq 0x38(%rax), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9e32a
movl %r14d, 0x10(%rax)
movl $0x7fffffff, 0x14(%rax) # imm = 0x7FFFFFFF
movq %r15, 0x20(%rax)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9e32a
leaq 0xa0(%rsp), %r14
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
xorps %xmm0, %xmm0
leaq 0x1e0(%rsp), %r8
movaps %xmm0, (%r8)
movaps %xmm0, 0x10(%r8)
movq %rax, (%r8)
leaq 0x5570(%rip), %rax      # 0x9aff0
movq %rax, 0x18(%r8)
leaq 0x55ad(%rip), %rax      # 0x9b038
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 0x253de
movq 0x1f0(%rsp), %rax
testq %rax, %rax
je 0x95aed
leaq 0x1e0(%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 0x24564
leaq 0x88a44(%rip), %rcx     # 0x11e568
cmpq %rcx, %rax
je 0x95b38
leaq 0x88a38(%rip), %rsi     # 0x11e568
movq %rax, %rdi
callq 0x36fda
leaq 0x88a29(%rip), %rdi     # 0x11e568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9de24
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
addl (%rdx,%rax), %ecx
movl %ecx, 0x18(%r15)
jmp 0x96187
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
imulq $0x38, %rdx, %rbx
addq (%r13), %rbx
movslq 0x5(%rcx,%rax), %rax
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x1951c
leaq 0x520(%rsp), %rbp
movq %rbp, %rdi
movq %rbx, %rsi
movq %r14, %rdx
leaq 0xa0(%rsp), %r14
callq 0x1b7ce
movq %rbp, %rdi
jmp 0x96cad
addl $0x5, %eax
movl %eax, 0x18(%r15)
movslq (%rcx,%rdx), %rax
imulq $0x38, %rax, %rbx
movq (%r13), %rdi
addq %rbx, %rdi
callq 0x1953c
movb (%rax), %bpl
xorb $0x1, %bpl
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x1953c
movb %bpl, (%rax)
jmp 0x96cb2
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x37586
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebx
xorps %xmm0, %xmm0
movaps %xmm0, 0xe0(%rsp)
movq $0x0, 0xf0(%rsp)
incl %ebx
decl %ebx
je 0x969e2
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x9b36e
jmp 0x95c71
addl $0x5, %edi
movl %edi, 0x18(%r15)
movslq (%rcx,%rdx), %rsi
movq %r13, %rdi
callq 0x9b556
jmp 0x96cb2
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x23156
movups (%rbx), %xmm0
movups 0x10(%rbx), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x70(%rsp), %rdi
xorl %esi, %esi
callq 0x19732
leaq 0x888a9(%rip), %rdi     # 0x11e5d8
leaq 0x120(%rsp), %rsi
callq 0x9e730
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9d880
movq %rax, %rbx
leaq 0x70(%rsp), %r14
movups (%r14), %xmm0
movups 0xa(%r14), %xmm1
movups %xmm1, 0xa(%rax)
movups %xmm0, (%rax)
movq 0x20(%r14), %rax
movq %rax, 0x20(%rbx)
movq %rbx, %rdi
addq $0x28, %rdi
leaq 0x98(%rsp), %rsi
callq 0x278a6
movq 0x30(%r14), %rax
movq %rax, 0x30(%rbx)
movq %r14, %rdi
callq 0x1d01a
leaq 0x88846(%rip), %rdi     # 0x11e5d8
leaq 0x120(%rsp), %rbx
movq %rbx, %rsi
callq 0x9e730
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9d880
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
xorps %xmm0, %xmm0
leaq 0x1c0(%rsp), %rcx
movaps %xmm0, (%rcx)
movaps %xmm0, 0x10(%rcx)
movq %rax, (%rcx)
leaq 0x528d(%rip), %rax      # 0x9b05e
movq %rax, 0x18(%rcx)
leaq 0x52cc(%rip), %rax      # 0x9b0a8
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 0x24952
movq 0x1d0(%rsp), %rax
testq %rax, %rax
leaq 0xa0(%rsp), %r14
je 0x965d9
leaq 0x1c0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x965d9
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movl (%rcx,%rdx), %ebp
leal 0x9(%rax), %edx
movl %edx, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rbx
leaq 0x70(%rsp), %rdi
callq 0x196b8
testq %rbx, %rbx
je 0x96b98
movq 0x1b0(%rsp), %rax
movq (%rax), %rax
leaq (%rbx,%rbx,4), %rcx
leaq (%rax,%rcx,8), %rsi
addq $-0x28, %rsi
leaq 0x70(%rsp), %rdi
callq 0x9b8ea
leaq 0xe0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x198fc
leaq 0xe0(%rsp), %rdi
callq 0x1ff7a
movq %rax, %rbx
movabsq $-0x23244b0fbd3d03de, %rax # imm = 0xDCDBB4F042C2FC22
leaq 0x50(%rsp), %rdi
movq %rax, (%rdi)
movq $0xc, 0x8(%rdi)
leaq 0x270b1(%rip), %rax     # 0xbcf86
movq %rax, 0x10(%rdi)
movw $0x0, 0x18(%rdi)
callq 0x1ff7a
cmpq %rax, %rbx
jne 0x96baa
leaq 0x70(%rsp), %rdi
callq 0x1953c
leaq 0xe0(%rsp), %rdi
movq %rax, %rsi
callq 0x19568
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 0x278a6
movq 0x30(%rbx), %rax
movq %rax, 0xa0(%rsp)
movq %rbx, %rdi
callq 0x1d01a
jmp 0x96baa
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %r14
leal 0x9(%rax), %edx
movl %edx, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rbx
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x19944
imulq $0x38, %r14, %rdi
leaq 0xa0(%rsp), %r14
addq (%r13), %rdi
movq %rbx, %rsi
callq 0x9b8ea
jmp 0x96cb2
addl $0x5, %eax
movl %eax, 0x18(%r15)
movslq (%rcx,%rdx), %rbx
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leaq 0x4(%rcx), %rdx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rsi
movslq (%rsi,%rcx), %rsi
movq (%rax), %rax
shlq $0x4, %rsi
movq (%rax,%rsi), %r14
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
leal 0x8(%rcx), %eax
movl %eax, 0x18(%r15)
movq (%rdx), %rax
movl 0x4(%rax,%rcx), %ebp
testl %ebp, %ebp
je 0x9606c
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movslq (%rcx,%rax), %rax
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
leaq 0x70(%rsp), %rdi
callq 0x1951c
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x9236c
decl %ebp
jne 0x96031
imulq $0x38, %rbx, %rsi
addq (%r13), %rsi
movq (%r14), %rcx
movq 0x8(%r14), %rdx
leaq 0x70(%rsp), %rdi
leaq 0x50(%rsp), %r8
callq 0x19a0a
movq (%r13), %r14
leaq 0x70(%rsp), %rbx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
movups %xmm1, 0xa(%r14)
movups %xmm0, (%r14)
movq 0x20(%rbx), %rax
movq %rax, 0x20(%r14)
leaq 0x28(%r14), %rdi
leaq 0x98(%rsp), %rsi
callq 0x278a6
movq 0x30(%rbx), %rax
movq %rax, 0x30(%r14)
movq %rbx, %rdi
callq 0x1d01a
movq (%r13), %rsi
leaq 0x70(%rsp), %rdi
callq 0x198fc
leaq 0x70(%rsp), %rdi
callq 0x1ff7a
movq %rax, %rbx
movabsq $-0x23244b0fbd3d03de, %rax # imm = 0xDCDBB4F042C2FC22
leaq 0xe0(%rsp), %rdi
movq %rax, (%rdi)
movq $0xc, 0x8(%rdi)
leaq 0x26e7b(%rip), %rax     # 0xbcf86
movq %rax, 0x10(%rdi)
movw $0x0, 0x18(%rdi)
callq 0x1ff7a
leaq 0xa0(%rsp), %r14
cmpq %rax, %rbx
jne 0x96187
movq (%r13), %rdi
callq 0x1953c
leaq 0x70(%rsp), %rdi
movq %rax, %rsi
callq 0x19568
movq (%r13), %r14
leaq 0x70(%rsp), %rbx
movups (%rbx), %xmm0
movups 0xa(%rbx), %xmm1
movups %xmm1, 0xa(%r14)
movups %xmm0, (%r14)
movq 0x20(%rbx), %rax
movq %rax, 0x20(%r14)
leaq 0x28(%r14), %rdi
leaq 0x98(%rsp), %rsi
callq 0x278a6
movq 0x30(%rbx), %rax
movq %rax, 0x30(%r14)
movq %rbx, %rdi
callq 0x1d01a
leaq 0xa0(%rsp), %r14
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x96cb2
movq 0x60(%rsp), %rsi
jmp 0x96792
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq (%r15), %rdx
movq 0x8(%r15), %rsi
movq (%rsi), %rsi
movslq (%rsi,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rbp
movq %r15, %rdi
callq *0x8(%rdx)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x23156
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
movq $0x0, 0x60(%rsp)
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %ebx
testl %ebx, %ebx
jle 0x962b8
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x23156
movq 0x58(%rsp), %rsi
cmpq 0x60(%rsp), %rsi
je 0x9629e
movups 0xe0(%rsp), %xmm0
movups 0xf0(%rsp), %xmm1
movups %xmm1, 0x10(%rsi)
movups %xmm0, (%rsi)
addq $0x20, %rsi
movq %rsi, 0x58(%rsp)
jmp 0x962b0
leaq 0x50(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
callq 0x28126
decl %ebx
jne 0x96232
movslq 0x18(%r15), %rax
leal 0x4(%rax), %r12d
movl %r12d, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movl (%rcx,%rax), %r14d
movq 0x150(%rsp), %rax
leaq 0x38(%rax), %rbx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9e32a
movl %r12d, 0x10(%rax)
movl $0x7fffffff, 0x14(%rax) # imm = 0x7FFFFFFF
movq %r15, 0x20(%rax)
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9e32a
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
xorps %xmm0, %xmm0
leaq 0x220(%rsp), %r8
movaps %xmm0, (%r8)
movaps %xmm0, 0x10(%r8)
movq %rax, (%r8)
leaq 0x4bda(%rip), %rax      # 0x9af00
movq %rax, 0x18(%r8)
leaq 0x4c29(%rip), %rax      # 0x9af5a
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 0x24c72
movq 0x230(%rsp), %rax
testq %rax, %rax
je 0x96393
leaq 0x220(%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 0x24564
leaq 0x8819e(%rip), %rcx     # 0x11e568
cmpq %rcx, %rax
je 0x963de
leaq 0x88192(%rip), %rsi     # 0x11e568
movq %rax, %rdi
callq 0x36fda
leaq 0x88183(%rip), %rdi     # 0x11e568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9de24
addl %r14d, 0x18(%r15)
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x96906
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
jmp 0x96906
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x23156
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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 0x23b72
leaq 0x88122(%rip), %rdi     # 0x11e5d8
leaq 0x120(%rsp), %rsi
callq 0x9e730
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9d880
movq %rax, %rbx
leaq 0x70(%rsp), %r14
movups (%r14), %xmm0
movups 0xa(%r14), %xmm1
movups %xmm1, 0xa(%rax)
movups %xmm0, (%rax)
movq 0x20(%r14), %rax
movq %rax, 0x20(%rbx)
movq %rbx, %rdi
addq $0x28, %rdi
leaq 0x98(%rsp), %rsi
callq 0x278a6
movq 0x30(%r14), %rax
movq %rax, 0x30(%rbx)
movq %r14, %rdi
callq 0x1d01a
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x96529
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x11360
leaq 0x880a8(%rip), %rdi     # 0x11e5d8
leaq 0x120(%rsp), %rbx
movq %rbx, %rsi
callq 0x9e730
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9d880
movq (%rbp), %rdx
movq 0x8(%rbp), %rsi
xorps %xmm0, %xmm0
leaq 0x200(%rsp), %rcx
movaps %xmm0, (%rcx)
movaps %xmm0, 0x10(%rcx)
movq %rax, (%rcx)
leaq 0x4a11(%rip), %rax      # 0x9af80
movq %rax, 0x18(%rcx)
leaq 0x4a50(%rip), %rax      # 0x9afca
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 0x24952
leaq 0xa0(%rsp), %r14
movq 0x210(%rsp), %rax
testq %rax, %rax
je 0x965d9
leaq 0x200(%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 0x2442c
leaq 0x87f5d(%rip), %rcx     # 0x11e568
cmpq %rcx, %rax
je 0x9661f
leaq 0x87f51(%rip), %rsi     # 0x11e568
movq %rax, %rdi
callq 0x36fda
leaq 0x87f42(%rip), %rdi     # 0x11e568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9de24
jmp 0x96cb2
leal 0x5(%rax), %edx
movl %edx, 0x18(%r15)
movl 0x1(%rcx,%rax), %ebx
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leal 0x4(%rcx), %edx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %rdx
movq (%rdx), %rdx
movslq (%rdx,%rcx), %rcx
movq (%rax), %rax
shlq $0x4, %rcx
movq (%rax,%rcx), %rsi
leaq 0x340(%rsp), %r14
movq %r14, %rdi
callq 0x88970
movq %r13, %rdi
movl %ebx, %esi
movq %r14, %rdx
callq 0x99672
leaq 0x340(%rsp), %rdi
jmp 0x96901
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movslq 0x18(%r15), %rcx
leaq 0x4(%rcx), %rdx
movl %edx, 0x18(%r15)
movq 0x8(%r15), %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(%r15)
movl 0x4(%rdx,%rcx), %ebp
leal 0xc(%rcx), %eax
movl %eax, 0x18(%r15)
movl 0x8(%rdx,%rcx), %r14d
xorps %xmm0, %xmm0
movaps %xmm0, 0xe0(%rsp)
movq $0x0, 0xf0(%rsp)
testl %r14d, %r14d
je 0x96731
movslq 0x18(%r15), %rax
leal 0x4(%rax), %ecx
movl %ecx, 0x18(%r15)
movq 0x8(%r15), %rcx
movq (%rcx), %rcx
movslq (%rcx,%rax), %rax
imulq $0x38, %rax, %rsi
addq (%r13), %rsi
leaq 0x70(%rsp), %rdi
callq 0x1951c
leaq 0xe0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x9236c
decl %r14d
jne 0x966f2
movq (%rbx), %rcx
movq 0x8(%rbx), %rdx
leaq 0x308(%rsp), %rdi
leaq 0xe0(%rsp), %r8
movq 0x48(%rsp), %rsi
callq 0x23d0c
leaq 0x308(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x99672
leaq 0xa0(%rsp), %r14
leaq 0x308(%rsp), %rdi
callq 0x1d01a
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x96cb2
movq 0xf0(%rsp), %rsi
subq %rdi, %rsi
jmp 0x96a31
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
movq (%r13), %rbx
movq (%r13), %rcx
imulq $0x38, %rdx, %r12
leaq (%rcx,%r12), %rsi
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x19cfe
leaq 0xe0(%rsp), %rdi
movq %r14, %rsi
callq 0x1951c
addq %r12, %rbx
leaq 0x458(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1b7ce
leaq 0x458(%rsp), %rdi
jmp 0x968f7
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
movq (%r13), %rbx
movq (%r13), %rcx
imulq $0x38, %rdx, %r12
leaq (%rcx,%r12), %rsi
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x19ba2
leaq 0xe0(%rsp), %rdi
movq %r14, %rsi
callq 0x1951c
addq %r12, %rbx
leaq 0x490(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1b7ce
leaq 0x490(%rsp), %rdi
jmp 0x968f7
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movslq 0x5(%rcx,%rax), %rax
movq (%r13), %rbx
movq (%r13), %rcx
imulq $0x38, %rdx, %r12
leaq (%rcx,%r12), %rsi
imulq $0x38, %rax, %rdx
addq %rcx, %rdx
leaq 0x70(%rsp), %r14
movq %r14, %rdi
callq 0x1a112
leaq 0xe0(%rsp), %rdi
movq %r14, %rsi
callq 0x1951c
addq %r12, %rbx
leaq 0x3b0(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movq %rbx, %rsi
callq 0x1b7ce
leaq 0x3b0(%rsp), %rdi
callq 0x1d01a
leaq 0x70(%rsp), %rdi
callq 0x1d01a
leaq 0xa0(%rsp), %r14
jmp 0x96cb2
movq %rax, %rsi
addq $0x5, %rsi
movl %esi, 0x18(%r15)
movslq (%rcx,%rdx), %rdx
leal 0x9(%rax), %esi
movl %esi, 0x18(%r15)
movl 0x5(%rcx,%rax), %ebx
imulq $0x38, %rdx, %rdi
addq (%r13), %rdi
callq 0x1953c
cmpb $0x1, (%rax)
jne 0x96cb2
addl %ebx, 0x18(%r15)
jmp 0x96cb2
addl $0x5, %eax
movl %eax, 0x18(%r15)
addl (%rcx,%rdx), %eax
movl %eax, 0x18(%r15)
jmp 0x96cb2
movq (%r12), %rdx
movq 0x8(%r12), %rsi
leaq 0x70(%rsp), %rdi
callq 0x23156
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 0x2325c
testb %al, %al
je 0x96a59
leaq 0x87be2(%rip), %rdi     # 0x11e5a0
leaq 0x120(%rsp), %rsi
callq 0x9d564
movq %rax, 0x150(%rsp)
leaq 0x50(%rsp), %rdi
callq 0x3740c
jmp 0x96906
leaq 0x87b7f(%rip), %rdi     # 0x11e568
leaq 0x70(%rsp), %rsi
callq 0x9cf92
leaq 0xe0(%rsp), %rsi
movq %rax, %rdi
callq 0x9b3ac
leaq 0xe0(%rsp), %rdi
callq 0x3740c
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x96cb2
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0x96cb2
xorl %ebp, %ebp
leaq 0xa0(%rsp), %r14
addq (%r13), %rbx
movq %rbx, %rdi
callq 0x1953c
movb %bpl, (%rax)
jmp 0x96cb2
leaq 0x87b40(%rip), %rdi     # 0x11e5a0
leaq 0x120(%rsp), %rsi
callq 0x9d4aa
testq %rax, %rax
je 0x96cc1
movq (%r12), %rbx
movq 0x8(%r12), %r14
xorps %xmm0, %xmm0
movaps %xmm0, 0x160(%rsp)
movaps %xmm0, 0x170(%rsp)
movq %r12, 0x160(%rsp)
leaq 0x4159(%rip), %rax      # 0x9abfa
movq %rax, 0x178(%rsp)
leaq 0x4394(%rip), %rax      # 0x9ae44
movq %rax, 0x170(%rsp)
xorl %eax, %eax
leaq 0x260(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x87a9c(%rip), %rsi     # 0x11e568
movq 0x87a9d(%rip), %rcx     # 0x11e570
movq %rcx, 0x8(%rdi)
movq %rax, 0x10(%rdi)
movq 0x87a9e(%rip), %rcx     # 0x11e580
movq %rcx, 0x18(%rdi)
movups 0x87a9b(%rip), %xmm0    # 0x11e588
leaq 0x280(%rsp), %rcx
movups %xmm0, (%rcx)
movq %rax, 0x30(%rdi)
leaq 0x70(%rsp), %rdx
movq %rdi, (%rdx)
callq 0x382be
leaq 0x160(%rsp), %rcx
leaq 0x260(%rsp), %r8
movq 0x48(%rsp), %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x24210
leaq 0x260(%rsp), %rdi
callq 0x376f2
movq 0x170(%rsp), %rax
testq %rax, %rax
je 0x96b55
leaq 0x160(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x87a0c(%rip), %rdi     # 0x11e568
xorl %esi, %esi
xorl %edx, %edx
callq 0x9de24
movq 0x50(%rsp), %rbx
movq 0x58(%rsp), %r14
cmpq %r14, %rbx
je 0x969b7
movq (%r12), %rdx
movq 0x8(%r12), %rsi
movq (%rbx), %r8
movq 0x8(%rbx), %rcx
movq 0x48(%rsp), %rdi
callq 0x242c2
addq $0x20, %rbx
jmp 0x96b6f
leaq 0x70(%rsp), %rdi
movq 0x1a8(%rsp), %rsi
callq 0x9b8ea
leaq 0x298(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x196f0
leaq 0x298(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x99672
leaq 0x298(%rsp), %rdi
jmp 0x96ca3
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9b822
jmp 0x96c29
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9b694
jmp 0x96c29
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x9b75a
jmp 0x96c29
leaq 0xe0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x88a4c
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 0x278a6
movq 0x30(%rbx), %rax
movq %rax, 0xa0(%rsp)
movq %rbx, %rdi
callq 0x1d01a
leaq 0x2d0(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x196f0
leaq 0x2d0(%rsp), %rdx
movq %r13, %rdi
movl %ebp, %esi
callq 0x99672
leaq 0x2d0(%rsp), %rdi
callq 0x1d01a
leaq 0x70(%rsp), %rdi
callq 0x1d01a
movb $0x1, %al
testb %al, %al
jne 0x95165
jmp 0x96e67
leaq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
movq %rax, (%rdi)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
addq %rsi, %rdx
callq 0x37586
leaq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
movq %rax, (%rdi)
movq 0x188(%rsp), %rsi
movq 0x190(%rsp), %rdx
addq %rsi, %rdx
callq 0x37586
xorps %xmm0, %xmm0
leaq 0x90(%rsp), %rax
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
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 0x8783f(%rip), %rdi     # 0x11e5a0
leaq 0x120(%rsp), %rsi
callq 0x9d564
movq %rax, %rbx
leaq 0x70(%rsp), %r14
movq %rax, %rdi
movq %r14, %rsi
callq 0x11a68
leaq 0xe0(%rsp), %rdi
xorps %xmm0, %xmm0
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movups 0x20(%rbx), %xmm0
movq 0x30(%rbx), %rax
movups 0x20(%r14), %xmm1
movups %xmm1, 0x20(%rbx)
movq 0x30(%r14), %rcx
movq %rcx, 0x30(%rbx)
movq 0x10(%rdi), %rcx
movq %rax, 0x10(%rdi)
movaps (%rdi), %xmm1
movaps %xmm0, (%rdi)
movups %xmm1, 0x20(%r14)
movq %rcx, 0x30(%r14)
callq 0x9bc6c
addq $0x38, %rbx
movq %rbx, %rdi
leaq 0xa8(%rsp), %rbx
movq %rbx, %rsi
callq 0x11b04
movq %rbx, %rdi
callq 0x9bcf2
leaq 0x90(%rsp), %rdi
callq 0x9bc6c
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x96e1a
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x11360
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x96a76
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0x96a76
movl 0x14c(%rsp), %eax
movl %eax, 0x18(%r15)
leaq 0x8752e(%rip), %rsi     # 0x11e388
movq 0x158(%rsp), %rdi
callq 0x196f0
movq 0x158(%rsp), %rax
addq $0x558, %rsp            # imm = 0x558
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x970b8
jmp 0x970f3
jmp 0x970f3
jmp 0x970f3
jmp 0x970f3
jmp 0x970f3
jmp 0x970b8
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x9b526
jmp 0x96eb6
movq %rax, %rbx
movq 0x188(%rsp), %rdi
leaq 0x198(%rsp), %rax
cmpq %rax, %rdi
je 0x9717d
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0x9717d
jmp 0x9717a
movq %rax, %rbx
leaq 0x260(%rsp), %rdi
callq 0x376f2
jmp 0x96efe
movq %rax, %rbx
movq 0x170(%rsp), %rax
testq %rax, %rax
je 0x9717d
leaq 0x160(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x9717d
jmp 0x970b8
jmp 0x9717a
jmp 0x970b8
jmp 0x970b8
jmp 0x970b8
jmp 0x970b8
jmp 0x970b8
jmp 0x970f3
jmp 0x970f3
movq %rax, %rbx
leaq 0x340(%rsp), %rdi
jmp 0x970fb
movq %rax, %rbx
leaq 0x2d0(%rsp), %rdi
jmp 0x96f85
jmp 0x970f3
jmp 0x97111
movq %rax, %rbx
leaq 0x298(%rsp), %rdi
callq 0x1d01a
jmp 0x970f6
jmp 0x9712f
jmp 0x9712f
jmp 0x9712f
jmp 0x9717a
movq %rax, %rbx
movq 0x250(%rsp), %rax
testq %rax, %rax
je 0x97187
leaq 0x240(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x97187
jmp 0x970b8
movq %rax, %rbx
movq 0x90(%rsp), %rdi
cmpq %r12, %rdi
je 0x97187
movq 0xa0(%rsp), %rsi
jmp 0x97170
movq %rax, %rbx
movq 0x230(%rsp), %rax
testq %rax, %rax
je 0x97132
leaq 0x220(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x97132
jmp 0x970b8
jmp 0x9712f
movq %rax, %rbx
movq 0x210(%rsp), %rax
testq %rax, %rax
je 0x97187
leaq 0x200(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x97187
jmp 0x970b8
jmp 0x9712f
movq %rax, %rbx
movq 0x1f0(%rsp), %rax
testq %rax, %rax
je 0x97132
leaq 0x1e0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x97132
jmp 0x970b8
jmp 0x9712f
movq %rax, %rbx
movq 0x1d0(%rsp), %rax
testq %rax, %rax
je 0x97187
leaq 0x1c0(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0x97187
movq %rax, %rdi
callq 0x2789a
movq %rax, %rbx
leaq 0x308(%rsp), %rdi
callq 0x1d01a
jmp 0x97114
jmp 0x97111
jmp 0x970f3
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x1d01a
jmp 0x97132
jmp 0x970f3
jmp 0x970f3
jmp 0x970f3
jmp 0x970f3
jmp 0x970f3
jmp 0x970f3
jmp 0x970f3
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x1d01a
jmp 0x97187
jmp 0x9712f
jmp 0x97146
jmp 0x9717a
jmp 0x9712f
jmp 0x9712f
jmp 0x9717a
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x97187
movq 0xf0(%rsp), %rsi
jmp 0x97141
jmp 0x9712f
jmp 0x9712f
movq %rax, %rbx
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x97187
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
jmp 0x97173
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x3740c
movq 0x70(%rsp), %rdi
leaq 0x80(%rsp), %rax
cmpq %rax, %rdi
je 0x97187
movq 0x80(%rsp), %rsi
incq %rsi
callq 0x11360
jmp 0x97187
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0x3740c
movq %rbx, %rdi
callq 0x11580
nop