diff options
-rw-r--r-- | src/ast/branch-utils.h | 55 | ||||
-rw-r--r-- | src/ast/label-utils.h | 62 | ||||
-rw-r--r-- | src/mixed_arena.h | 4 | ||||
-rw-r--r-- | src/pass.h | 23 | ||||
-rw-r--r-- | src/passes/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/passes/CodeFolding.cpp | 603 | ||||
-rw-r--r-- | src/passes/NameManager.cpp | 80 | ||||
-rw-r--r-- | src/passes/pass.cpp | 7 | ||||
-rw-r--r-- | src/passes/passes.h | 2 | ||||
-rw-r--r-- | src/wasm-traversal.h | 2 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm | 8016 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm.clamp | 8016 | ||||
-rw-r--r-- | test/emcc_hello_world.fromasm.imprecise | 8016 | ||||
-rw-r--r-- | test/memorygrowth.fromasm | 8459 | ||||
-rw-r--r-- | test/memorygrowth.fromasm.clamp | 8459 | ||||
-rw-r--r-- | test/memorygrowth.fromasm.imprecise | 8459 | ||||
-rw-r--r-- | test/passes/remove-unused-names_code-folding.txt | 1681 | ||||
-rw-r--r-- | test/passes/remove-unused-names_code-folding.wast | 1176 | ||||
-rw-r--r-- | test/wasm-only.fromasm | 25 | ||||
-rw-r--r-- | test/wasm-only.fromasm.clamp | 25 | ||||
-rw-r--r-- | test/wasm-only.fromasm.imprecise | 25 |
21 files changed, 28204 insertions, 24993 deletions
diff --git a/src/ast/branch-utils.h b/src/ast/branch-utils.h index a54b8151f..bdf52d36a 100644 --- a/src/ast/branch-utils.h +++ b/src/ast/branch-utils.h @@ -18,6 +18,7 @@ #define wasm_ast_branch_h #include "wasm.h" +#include "wasm-traversal.h" namespace wasm { @@ -36,6 +37,60 @@ inline bool isBranchTaken(Switch* sw) { sw->condition->type != unreachable; } +// returns the set of targets to which we branch that are +// outside of a node +inline std::set<Name> getExitingBranches(Expression* ast) { + struct Scanner : public PostWalker<Scanner> { + std::set<Name> targets; + + void visitBreak(Break* curr) { + targets.insert(curr->name); + } + void visitSwitch(Switch* curr) { + for (auto target : targets) { + targets.insert(target); + } + targets.insert(curr->default_); + } + void visitBlock(Block* curr) { + if (curr->name.is()) { + targets.erase(curr->name); + } + } + void visitLoop(Loop* curr) { + if (curr->name.is()) { + targets.erase(curr->name); + } + } + }; + Scanner scanner; + scanner.walk(ast); + // anything not erased is a branch out + return scanner.targets; +} + +// returns the list of all branch targets in a node + +inline std::set<Name> getBranchTargets(Expression* ast) { + struct Scanner : public PostWalker<Scanner> { + std::set<Name> targets; + + void visitBlock(Block* curr) { + if (curr->name.is()) { + targets.insert(curr->name); + } + } + void visitLoop(Loop* curr) { + if (curr->name.is()) { + targets.insert(curr->name); + } + } + }; + Scanner scanner; + scanner.walk(ast); + return scanner.targets; +} + } // namespace BranchUtils } // namespace wasm diff --git a/src/ast/label-utils.h b/src/ast/label-utils.h new file mode 100644 index 000000000..6ec9ecf5d --- /dev/null +++ b/src/ast/label-utils.h @@ -0,0 +1,62 @@ +/* + * Copyright 2017 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef wasm_ast_label_h +#define wasm_ast_label_h + +#include "wasm.h" +#include "wasm-traversal.h" + +namespace wasm { + +namespace LabelUtils { + +// Handles branch/loop labels in a function; makes it easy to add new +// ones without duplicates +class LabelManager : public PostWalker<LabelManager> { +public: + LabelManager(Function* func) { + walkFunction(func); + } + + Name getUnique(std::string prefix) { + while (1) { + auto curr = Name(prefix + std::to_string(counter++)); + if (labels.find(curr) == labels.end()) { + labels.insert(curr); + return curr; + } + } + } + + void visitBlock(Block* curr) { + labels.insert(curr->name); + } + void visitLoop(Loop* curr) { + labels.insert(curr->name); + } + +private: + std::set<Name> labels; + size_t counter = 0; +}; + +} // namespace LabelUtils + +} // namespace wasm + +#endif // wasm_ast_label_h + diff --git a/src/mixed_arena.h b/src/mixed_arena.h index af585092e..47e718454 100644 --- a/src/mixed_arena.h +++ b/src/mixed_arena.h @@ -172,6 +172,10 @@ public: return usedElements; } + bool empty() const { + return size() == 0; + } + void resize(size_t size) { if (size > allocatedElements) { reallocate(size); diff --git a/src/pass.h b/src/pass.h index 198d5dcb5..21836ebf9 100644 --- a/src/pass.h +++ b/src/pass.h @@ -237,29 +237,6 @@ public: // but registering them here in addition allows them to communicate // e.g. through PassRunner::getLast -// Handles names in a module, in particular adding names without duplicates -class NameManager : public WalkerPass<PostWalker<NameManager>> { - public: - Name getUnique(std::string prefix); - // TODO: getUniqueInFunction - - // visitors - void visitBlock(Block* curr); - void visitLoop(Loop* curr); - void visitBreak(Break* curr); - void visitSwitch(Switch* curr); - void visitCall(Call* curr); - void visitCallImport(CallImport* curr); - void visitFunctionType(FunctionType* curr); - void visitFunction(Function* curr); - void visitImport(Import* curr); - void visitExport(Export* curr); - -private: - std::set<Name> names; - size_t counter = 0; -}; - // Prints out a module class Printer : public Pass { protected: diff --git a/src/passes/CMakeLists.txt b/src/passes/CMakeLists.txt index d05390d45..7c0166786 100644 --- a/src/passes/CMakeLists.txt +++ b/src/passes/CMakeLists.txt @@ -2,6 +2,7 @@ SET(passes_SOURCES pass.cpp CoalesceLocals.cpp CodePushing.cpp + CodeFolding.cpp DeadCodeElimination.cpp DuplicateFunctionElimination.cpp ExtractFunction.cpp @@ -15,7 +16,6 @@ SET(passes_SOURCES MemoryPacking.cpp MergeBlocks.cpp Metrics.cpp - NameManager.cpp NameList.cpp OptimizeInstructions.cpp PickLoadSigns.cpp diff --git a/src/passes/CodeFolding.cpp b/src/passes/CodeFolding.cpp new file mode 100644 index 000000000..ae2f81283 --- /dev/null +++ b/src/passes/CodeFolding.cpp @@ -0,0 +1,603 @@ +/* + * Copyright 2017 WebAssembly Community Group participants + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// Folds duplicate code together, saving space. +// +// We fold tails of code where they merge and moving the code +// to the merge point is helpful. There are two cases here: (1) expressions, +// in which we merge to right after the expression itself, in these cases: +// * blocks, we merge the fallthrough + the breaks +// * if-else, we merge the arms +// and (2) the function body as a whole, in which we can merge returns or +// unreachables, putting the merged code at the end of the function body. +// +// For example, with an if-else, we might merge this: +// (if (condition) +// (block +// A +// C +// ) +// (block +// B +// C +// ) +// ) +// to +// (if (condition) +// (block +// A +// ) +// (block +// B +// ) +// ) +// C +// +// Note that the merged code, C in the example above, can be anything, +// including code with control flow. If C is identical in all the locations, +// then it must be safe to merge (if it contains a branch to something +// higher up, then since our branch target names are unique, it must be +// to the same thing, and after merging it can still reach it). +// + +#include <iterator> + +#include "wasm.h" +#include "pass.h" +#include "wasm-builder.h" +#include "ast_utils.h" +#include "ast/branch-utils.h" +#include "ast/label-utils.h" + +namespace wasm { + +static const Index WORTH_ADDING_BLOCK_TO_REMOVE_THIS_MUCH = 3; + +struct ExpressionMarker : public PostWalker<ExpressionMarker, UnifiedExpressionVisitor<ExpressionMarker>> { + std::set<Expression*>& marked; + + ExpressionMarker(std::set<Expression*>& marked, Expression* expr) : marked(marked) { + walk(expr); + } + + void visitExpression(Expression* expr) { + marked.insert(expr); + } +}; + +struct CodeFolding : public WalkerPass<ControlFlowWalker<CodeFolding>> { + bool isFunctionParallel() override { return true; } + + Pass* create() override { return new CodeFolding; } + + // information about a "tail" - code that reaches a point that we can + // merge (e.g., a branch and some code leading up to it) + struct Tail { + Expression* expr; // nullptr if this is a fallthrough + Block* block; // the enclosing block of code we hope to merge at its tail + Expression** pointer; // for an expr with no parent block, the location it is at, so we can replace it + + // For a fallthrough + Tail(Block* block) : expr(nullptr), block(block), pointer(nullptr) {} + // For a break + Tail(Expression* expr, Block* block) : expr(expr), block(block), pointer(nullptr) { + validate(); + } + Tail(Expression* expr, Expression** pointer) : expr(expr), block(nullptr), pointer(pointer) {} + + bool isFallthrough() const { return expr == nullptr; } + + void validate() const { + if (expr && block) { + assert(block->list.back() == expr); + } + } + }; + + // state + + bool anotherPass; + + // pass state + + std::map<Name, std::vector<Tail>> breakTails; // break target name => tails that reach it + std::vector<Tail> unreachableTails; // tails leading to (unreachable) + std::vector<Tail> returnTails; // tails leading to (return) + std::set<Name> unoptimizables; // break target names that we can't handle + std::set<Expression*> modifieds; // modified code should not be processed again, wait for next pass + + // walking + + void visitBreak(Break* curr) { + if (curr->condition || curr->value) { + unoptimizables.insert(curr->name); + } else { + // we can only optimize if we are at the end of the parent block + Block* parent = controlFlowStack.back()->dynCast<Block>(); + if (parent && curr == parent->list.back()) { + breakTails[curr->name].push_back(Tail(curr, parent)); + } else { + unoptimizables.insert(curr->name); + } + } + } + + void visitSwitch(Switch* curr) { + for (auto target : curr->targets) { + unoptimizables.insert(target); + } + unoptimizables.insert(curr->default_); + } + + void visitUnreachable(Unreachable* curr) { + // we can only optimize if we are at the end of the parent block + if (!controlFlowStack.empty()) { + Block* parent = controlFlowStack.back()->dynCast<Block>(); + if (parent && curr == parent->list.back()) { + unreachableTails.push_back(Tail(curr, parent)); + } + } + } + + void visitReturn(Return* curr) { + if (!controlFlowStack.empty()) { + // we can easily optimize if we are at the end of the parent block + Block* parent = controlFlowStack.back()->dynCast<Block>(); + if (parent && curr == parent->list.back()) { + returnTails.push_back(Tail(curr, parent)); + return; + } + } + // otherwise, if we have a large value, it might be worth optimizing us as well + returnTails.push_back(Tail(curr, getCurrentPointer())); + } + + void visitBlock(Block* curr) { + if (!curr->name.is()) return; + if (unoptimizables.count(curr->name) > 0) return; + auto iter = breakTails.find(curr->name); + if (iter == breakTails.end()) return; + // looks promising + auto& tails = iter->second; + // see if there is a fallthrough + bool hasFallthrough = true; + for (auto* child : curr->list) { + if (child->type == unreachable) { + hasFallthrough = false; + } + } + if (hasFallthrough) { + tails.push_back({ Tail(curr) }); + } + optimizeExpressionTails(tails, curr); + } + + void visitIf(If* curr) { + if (!curr->ifFalse) return; + // if both sides are identical, this is easy to fold + // (except if the condition is unreachable and we return a value, then we can't just replace + // outselves with a drop + if (ExpressionAnalyzer::equal(curr->ifTrue, curr->ifFalse)) { + Builder builder(*getModule()); + // remove if (4 bytes), remove one arm, add drop (1), add block (3), + // so this must be a net savings + markAsModified(curr); + auto* ret = builder.makeSequence( + builder.makeDrop(curr->condition), + curr->ifTrue + ); + // we must ensure we present the same type as the if had + ret->finalize(curr->type); + replaceCurrent(ret); + } else { + // if both are blocks, look for a tail we can merge + auto* left = curr->ifTrue->dynCast<Block>(); + auto* right = curr->ifFalse->dynCast<Block>(); + // we need nameless blocks, as if there is a name, someone might branch + // to the end, skipping the code we want to merge + if (left && right && + !left->name.is() && !right->name.is()) { + std::vector<Tail> tails = { Tail(left), Tail(right) }; + optimizeExpressionTails(tails, curr); + } + } + } + + void doWalkFunction(Function* func) { + anotherPass = true; + while (anotherPass) { + anotherPass = false; + WalkerPass<ControlFlowWalker<CodeFolding>>::doWalkFunction(func); + optimizeTerminatingTails(unreachableTails); + // optimize returns at the end, so we can benefit from a fallthrough if there is a value TODO: separate passes for them? + optimizeTerminatingTails(returnTails); + // TODO add fallthrough for returns + // TODO optimzier returns not in blocks, a big return value can be worth it + // clean up + breakTails.clear(); + unreachableTails.clear(); + returnTails.clear(); + unoptimizables.clear(); + modifieds.clear(); + } + } + +private: + // check if we can move a list of items out of another item. we can't do so + // if one of the items has a branch to something inside outOf that is not + // inside that item + bool canMove(const std::vector<Expression*>& items, Expression* outOf) { + auto allTargets = BranchUtils::getBranchTargets(outOf); + for (auto* item : items) { + auto exiting = BranchUtils::getExitingBranches(item); + std::vector<Name> intersection; + std::set_intersection(allTargets.begin(), allTargets.end(), exiting.begin(), exiting.end(), + std::back_inserter(intersection)); + if (intersection.size() > 0) { + // anything exiting that is in all targets is something bad + return false; + } + } + return true; + } + + // optimize tails that reach the outside of an expression. code that is identical in all + // paths leading to the block exit can be merged. + template<typename T> + void optimizeExpressionTails(std::vector<Tail>& tails, T* curr) { + if (tails.size() < 2) return; + // see if anything is untoward, and we should not do this + for (auto& tail : tails) { + if (tail.expr && modifieds.count(tail.expr) > 0) return; + if (modifieds.count(tail.block) > 0) return; + // if we were not modified, then we should be valid for processing + tail.validate(); + } + // we can ignore the final br in a tail + auto effectiveSize = [&](const Tail& tail) { + auto ret = tail.block->list.size(); + if (!tail.isFallthrough()) { + ret--; + } + return ret; + }; + // the mergeable items do not include the final br in a tail + auto getMergeable = [&](const Tail& tail, Index num) { + return tail.block->list[effectiveSize(tail) - num - 1]; + }; + // we are going to remove duplicate elements and add a block. + // so for this to make sense, we need the size of the duplicate + // elements to be worth that extra block (although, there is + // some chance the block would get merged higher up, see later) + std::vector<Expression*> mergeable; // the elements we can merge + Index num = 0; // how many elements back from the tail to look at + Index saved = 0; // how much we can save + while (1) { + // check if this num is still relevant + bool stop = false; + for (auto& tail : tails) { + assert(tail.block); + if (num >= effectiveSize(tail)) { + // one of the lists is too short + stop = true; + break; + } + } + if (stop) break; + auto* item = getMergeable(tails[0], num); + for (auto& tail : tails) { + if (!ExpressionAnalyzer::equal(item, getMergeable(tail, num))) { + // one of the lists has a different item + stop = true; + break; + } + } + if (stop) break; + // we may have found another one we can merge - can we move it? + if (!canMove({ item }, curr)) break; + // we found another one we can merge + mergeable.push_back(item); + num++; + saved += Measurer::measure(item); + } + if (saved == 0) return; + // we may be able to save enough. + if (saved < WORTH_ADDING_BLOCK_TO_REMOVE_THIS_MUCH) { + // it's not obvious we can save enough. see if we get rid + // of a block, that would justify this + bool willEmptyBlock = false; + for (auto& tail : tails) { + // it is enough to zero out the block, or leave just one + // element, as then the block can be replaced with that + if (num >= tail.block->list.size() - 1) { + willEmptyBlock = true; + break; + } + } + if (!willEmptyBlock) { + // last chance, if our parent is a block, then it should be + // fine to create a new block here, it will be merged up + assert(curr == controlFlowStack.back()); // we are an if or a block, at the top + if (controlFlowStack.size() <= 1) { + return; // no parent at all + // TODO: if we are the toplevel in the function, then in the binary format + // we might avoid emitting a block, so the same logic applies here? + } + auto* parent = controlFlowStack[controlFlowStack.size() - 2]->dynCast<Block>(); + if (!parent) { + return; // parent is not a block + } + bool isChild = false; + for (auto* child : parent->list) { + if (child == curr) { + isChild = true; + break; + } + } + if (!isChild) { + return; // not a child, something in between + } + } + } + // this is worth doing, do it! + for (auto& tail : tails) { + // remove the items we are merging / moving + // first, mark them as modified, so we don't try to handle them + // again in this pass, which might be buggy + markAsModified(tail.block); + // we must preserve the br if there is one + Expression* last = nullptr; + if (!tail.isFallthrough()) { + last = tail.block->list.back(); + tail.block->list.pop_back(); + } + for (Index i = 0; i < mergeable.size(); i++) { + tail.block->list.pop_back(); + } + if (!tail.isFallthrough()) { + tail.block->list.push_back(last); + } + // the blocks lose their endings, so any values are gone, and the blocks + // are now either none or unreachable + tail.block->finalize(); + } + // since we managed a merge, then it might open up more opportunities later + anotherPass = true; + // make a block with curr + the merged code + Builder builder(*getModule()); + auto* block = builder.makeBlock(); + block->list.push_back(curr); + while (!mergeable.empty()) { + block->list.push_back(mergeable.back()); + mergeable.pop_back(); + } + auto oldType = curr->type; + // NB: we template-specialize so that this calls the proper finalizer for + // the type + curr->finalize(); + // ensure the replacement has the same type, so the outside is not surprised + block->finalize(oldType); + replaceCurrent(block); + } + + // optimize tails that terminate control flow in this function, so we + // are (1) merge just a few of them, we don't need all like with the + // branches to a block, and (2) we do it on the function body. + // num is the depth, i.e., how many tail items we can merge. 0 means + // we are just starting; num > 0 means that tails is guaranteed to be + // equal in the last num items, so we can merge there, but we look for + // deeper merges first. + // returns whether we optimized something. + bool optimizeTerminatingTails(std::vector<Tail>& tails, Index num = 0) { + if (tails.size() < 2) return false; + // remove things that are untoward and cannot be optimized + tails.erase(std::remove_if(tails.begin(), tails.end(), [&](Tail& tail) { + if (tail.expr && modifieds.count(tail.expr) > 0) return true; + if (tail.block && modifieds.count(tail.block) > 0) return true; + // if we were not modified, then we should be valid for processing + tail.validate(); + return false; + }), tails.end()); + // now let's try to find subsets that are mergeable. we don't look hard + // for the most optimal; further passes may find more + // effectiveSize: TODO: special-case fallthrough, matters for returns + auto effectiveSize = [&](Tail& tail) -> Index { + if (tail.block) { + return tail.block->list.size(); + } else { + return 1; + } + }; + // getItem: returns the relevant item from the tail. this includes the + // final item + // TODO: special-case fallthrough, matters for returns + auto getItem = [&](Tail& tail, Index num) { + if (tail.block) { + return tail.block->list[effectiveSize(tail) - num - 1]; + } else { + return tail.expr; + } + }; + // gets the tail elements of a certain depth + auto getTailItems = [&](Index num, std::vector<Tail>& tails) { + std::vector<Expression*> items; + for (Index i = 0; i < num; i++) { + auto item = getItem(tails[0], i); + items.push_back(item); + } + return items; + }; + // estimate if a merging is worth the cost + auto worthIt = [&](Index num, std::vector<Tail>& tails) { + auto items = getTailItems(num, tails); // the elements we can merge + Index saved = 0; // how much we can save + for (auto* item : items) { + saved += Measurer::measure(item) * (tails.size() - 1); + } + // compure the cost: in non-fallthroughs, we are replacing the final + // element with a br; for a fallthrough, if there is one, we must + // add a return element (for the function body, so it doesn't reach us) + // TODO: handle fallthroughts for return + Index cost = tails.size(); + // we also need to add two blocks: for us to break to, and to contain + // that block and the merged code. very possibly one of the blocks + // can be removed, though + cost += WORTH_ADDING_BLOCK_TO_REMOVE_THIS_MUCH; + // if we cannot merge to the end, then we definitely need 2 blocks, + // and a branch + if (!canMove(items, getFunction()->body)) { // TODO: efficiency, entire body + cost += 1 + WORTH_ADDING_BLOCK_TO_REMOVE_THIS_MUCH; + // TODO: to do this, we need to maintain a map of element=>parent, + // so that we can insert the new blocks in the right place + // for now, just don't do this optimization + return false; + } + // is it worth it? + return saved > cost; + }; + // let's see if we can merge deeper than num, to num + 1 + auto next = tails; + // remove tails that are too short + next.erase(std::remove_if(next.begin(), next.end(), [&](Tail& tail) { + return effectiveSize(tail) < num + 1; + }), next.end()); + // if we have enough to investigate, do so + if (next.size() >= 2) { + // now we want to find a mergeable item - any item that is equal among a subset + std::map<uint32_t, std::vector<Expression*>> hashed; // hash value => expressions with that hash + for (auto& tail : next) { + auto* item = getItem(tail, num); + hashed[ExpressionAnalyzer::hash(item)].push_back(item); + } + for (auto& iter : hashed) { + auto& items = iter.second; + if (items.size() == 1) continue; + assert(items.size() > 0); + // look for an item that has another match. + while (items.size() >= 2) { + auto first = items[0]; + std::vector<Expression*> others; + items.erase(std::remove_if(items.begin(), items.end(), [&](Expression* item) { + if (item == first || // don't bother comparing the first + ExpressionAnalyzer::equal(item, first)) { + // equal, keep it + return false; + } else { + // unequal, look at it later + others.push_back(item); + return true; + } + }), items.end()); + if (items.size() >= 2) { + // possible merge here, investigate it + auto* correct = items[0]; + auto explore = next; + explore.erase(std::remove_if(explore.begin(), explore.end(), [&](Tail& tail) { + auto* item = getItem(tail, num); + return !ExpressionAnalyzer::equal(item, correct); + }), explore.end()); + // try to optimize this deeper tail. if we succeed, then stop here, as the + // changes may influence us. we leave further opts to further passes (as this + // is rare in practice, it's generally not a perf issue, but TODO optimize) + if (optimizeTerminatingTails(explore, num + 1)) { + return true; + } + } + items.swap(others); + } + } + } + // we explored deeper (higher num) options, but perhaps there + // was nothing there while there is something we can do at this level + // but if we are at num == 0, then we found nothing at all + if (num == 0) return false; + // if not worth it, stop + if (!worthIt(num, tails)) return false; + // this is worth doing, do it! + auto mergeable = getTailItems(num, tails); // the elements we can merge + // since we managed a merge, then it might open up more opportunities later + anotherPass = true; + Builder builder(*getModule()); + LabelUtils::LabelManager labels(getFunction()); // TODO: don't create one per merge, linear in function size + Name innerName = labels.getUnique("folding-inner"); + for (auto& tail : tails) { + // remove the items we are merging / moving, and add a break + // also mark as modified, so we don't try to handle them + // again in this pass, which might be buggy + if (tail.block) { + markAsModified(tail.block); + for (Index i = 0; i < mergeable.size(); i++) { + tail.block->list.pop_back(); + } + tail.block->list.push_back(builder.makeBreak(innerName)); + tail.block->finalize(tail.block->type); + } else { + markAsModified(tail.expr); + *tail.pointer = builder.makeBreak(innerName); + } + } + // make a block with the old body + the merged code + auto* old = getFunction()->body; + auto* inner = builder.makeBlock(); + inner->name = innerName; + if (old->type == unreachable) { + // the old body is not flowed out of anyhow, so just put it there + inner->list.push_back(old); + } else { + // otherwise, we must not flow out to the merged code + if (old->type == none) { + inner->list.push_back(old); + inner->list.push_back(builder.makeReturn()); + } else { + // looks like we must return this. but if it's a toplevel block + // then it might be marked as having a type, but not actually + // returning it (we marked it as such for wasm type-checking + // rules, and now it won't be toplevel in the function, it can + // change) + auto* toplevel = old->dynCast<Block>(); + if (toplevel) toplevel->finalize(); + if (old->type != unreachable) { + inner->list.push_back(builder.makeReturn(old)); + } else { + inner->list.push_back(old); + } + } + } + inner->finalize(); + auto* outer = builder.makeBlock(); + outer->list.push_back(inner); + while (!mergeable.empty()) { + outer->list.push_back(mergeable.back()); + mergeable.pop_back(); + } + // ensure the replacement has the same type, so the outside is not surprised + outer->finalize(getFunction()->result); + getFunction()->body = outer; + return true; + } + + void markAsModified(Expression* curr) { + ExpressionMarker marker(modifieds, curr); + } +}; + +Pass *createCodeFoldingPass() { + return new CodeFolding(); +} + +} // namespace wasm + diff --git a/src/passes/NameManager.cpp b/src/passes/NameManager.cpp deleted file mode 100644 index 035586a77..000000000 --- a/src/passes/NameManager.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2015 WebAssembly Community Group participants - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// -// NameManager -// - -#include <wasm.h> -#include <pass.h> - -namespace wasm { - -Name NameManager::getUnique(std::string prefix) { - while (1) { - Name curr = cashew::IString((prefix + std::to_string(counter++)).c_str(), false); - if (names.find(curr) == names.end()) { - names.insert(curr); - return curr; - } - } -} - -void NameManager::visitBlock(Block* curr) { - names.insert(curr->name); -} -void NameManager::visitLoop(Loop* curr) { - names.insert(curr->name); -} -void NameManager::visitBreak(Break* curr) { - names.insert(curr->name); -} -void NameManager::visitSwitch(Switch* curr) { - names.insert(curr->default_); - for (auto& target : curr->targets) { - names.insert(target); - } -} -void NameManager::visitCall(Call* curr) { - names.insert(curr->target); -} -void NameManager::visitCallImport(CallImport* curr) { - names.insert(curr->target); -} -void NameManager::visitFunctionType(FunctionType* curr) { - names.insert(curr->name); -} -void NameManager::visitFunction(Function* curr) { - names.insert(curr->name); - for (Index i = 0; i < curr->getNumLocals(); i++) { - Name name = curr->getLocalNameOrDefault(i); - if (name.is()) { - names.insert(name); - } - } -} -void NameManager::visitImport(Import* curr) { - names.insert(curr->name); -} -void NameManager::visitExport(Export* curr) { - names.insert(curr->name); -} - -Pass *createNameManagerPass() { - return new NameManager(); -} - -} // namespace wasm diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index 903675b8c..fc0a583fb 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -67,6 +67,7 @@ void PassRegistry::registerPasses() { registerPass("coalesce-locals", "reduce # of locals by coalescing", createCoalesceLocalsPass); registerPass("coalesce-locals-learning", "reduce # of locals by coalescing and learning", createCoalesceLocalsWithLearningPass); registerPass("code-pushing", "push code forward, potentially making it not always execute", createCodePushingPass); + registerPass("code-folding", "fold code, merging duplicates", createCodeFoldingPass); registerPass("dce", "removes unreachable code", createDeadCodeEliminationPass); registerPass("duplicate-function-elimination", "removes duplicate functions", createDuplicateFunctionEliminationPass); registerPass("extract-function", "leaves just one function (useful for debugging)", createExtractFunctionPass); @@ -81,7 +82,6 @@ void PassRegistry::registerPasses() { registerPass("merge-blocks", "merges blocks to their parents", createMergeBlocksPass); registerPass("metrics", "reports metrics", createMetricsPass); registerPass("nm", "name list", createNameListPass); - registerPass("name-manager", "utility pass to manage names in modules", createNameManagerPass); registerPass("optimize-instructions", "optimizes instruction combinations", createOptimizeInstructionsPass); registerPass("pick-load-signs", "pick load signs based on their uses", createPickLoadSignsPass); registerPass("post-emscripten", "miscellaneous optimizations for Emscripten-generated code", createPostEmscriptenPass); @@ -139,6 +139,9 @@ void PassRunner::addDefaultFunctionOptimizationPasses() { add("simplify-locals"); add("vacuum"); // previous pass creates garbage add("reorder-locals"); + if (options.shrinkLevel >= 1) { + add("code-folding"); + } add("merge-blocks"); // makes remove-unused-brs more effective add("remove-unused-brs"); // coalesce-locals opens opportunities for optimizations add("merge-blocks"); // clean up remove-unused-brs new blocks @@ -148,7 +151,7 @@ void PassRunner::addDefaultFunctionOptimizationPasses() { add("local-cse"); // TODO: run this early, before first coalesce-locals. right now doing so uncovers some deficiencies we need to fix first add("coalesce-locals"); // just for localCSE } - add("vacuum"); // should not be needed, last few passes do not create garbage, but just to be safe + add("vacuum"); // just to be safe } void PassRunner::addDefaultGlobalOptimizationPasses() { diff --git a/src/passes/passes.h b/src/passes/passes.h index 43bdd3efe..7a40b7da4 100644 --- a/src/passes/passes.h +++ b/src/passes/passes.h @@ -24,6 +24,7 @@ class Pass; // All passes: Pass *createCoalesceLocalsPass(); Pass *createCoalesceLocalsWithLearningPass(); +Pass *createCodeFoldingPass(); Pass *createCodePushingPass(); Pass *createDeadCodeEliminationPass(); Pass *createDuplicateFunctionEliminationPass(); @@ -41,7 +42,6 @@ Pass *createMergeBlocksPass(); Pass *createMinifiedPrinterPass(); Pass *createMetricsPass(); Pass *createNameListPass(); -Pass *createNameManagerPass(); Pass *createOptimizeInstructionsPass(); Pass *createPickLoadSignsPass(); Pass *createPostEmscriptenPass(); diff --git a/src/wasm-traversal.h b/src/wasm-traversal.h index aa8e008ad..3b1de2e32 100644 --- a/src/wasm-traversal.h +++ b/src/wasm-traversal.h @@ -513,7 +513,7 @@ struct ControlFlowWalker : public PostWalker<SubType, VisitorType> { } static void doPostVisitControlFlow(SubType* self, Expression** currp) { - assert(self->controlFlowStack.back() == *currp); + // note that we might be popping something else, as we may have been replaced self->controlFlowStack.pop_back(); } diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm index 9d87a0e2c..a7ad859f6 100644 --- a/test/emcc_hello_world.fromasm +++ b/test/emcc_hello_world.fromasm @@ -296,26 +296,20 @@ (set_local $1 (i32.const 87) ) - (set_local $0 - (i32.const 775) - ) (br $__rjti$1) ) ) - (if + (br_if $__rjti$1 (get_local $1) - (block - (set_local $0 - (i32.const 775) - ) - (br $__rjti$1) - ) - (set_local $0 - (i32.const 775) - ) + ) + (set_local $0 + (i32.const 775) ) (br $__rjto$1) ) + (set_local $0 + (i32.const 775) + ) (loop $while-in1 (loop $while-in3 (set_local $2 @@ -956,35 +950,34 @@ (get_local $5) ) ) - (if (result i32) - (i32.eq - (get_local $4) - (i32.const 2) - ) - (block (result i32) - (i32.store - (get_local $6) - (i32.add - (i32.load - (get_local $6) + (block (result i32) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $6) + (i32.add + (i32.load + (get_local $6) + ) + (get_local $3) ) - (get_local $3) + ) + (set_local $7 + (get_local $5) + ) + (set_local $4 + (i32.const 2) ) ) (set_local $7 (get_local $5) ) - (set_local $4 - (i32.const 2) - ) - (get_local $3) - ) - (block (result i32) - (set_local $7 - (get_local $5) - ) - (get_local $3) ) + (get_local $3) ) ) ) @@ -1861,7 +1854,7 @@ (get_local $0) ) (loop $while-in - (if + (br_if $__rjti$2 (i32.eq (i32.load8_u (get_local $2) @@ -1871,12 +1864,6 @@ (i32.const 255) ) ) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) ) (br_if $while-in (i32.and @@ -1919,20 +1906,17 @@ ) ) ) - (if + (br_if $__rjti$2 (get_local $0) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) - (set_local $0 - (i32.const 0) - ) + ) + (set_local $0 + (i32.const 0) ) (br $label$break$L8) ) + (set_local $0 + (get_local $3) + ) (if (i32.ne (i32.load8_u @@ -2921,34 +2905,31 @@ (get_local $6) ) ) - (set_local $1 - (if (result i32) - (i32.lt_s - (get_local $14) - (i32.const 0) - ) - (block (result i32) - (set_local $11 - (i32.or - (get_local $1) - (i32.const 8192) - ) - ) - (set_local $14 - (i32.sub - (i32.const 0) - (get_local $14) - ) + (if + (i32.lt_s + (get_local $14) + (i32.const 0) + ) + (block + (set_local $11 + (i32.or + (get_local $1) + (i32.const 8192) ) - (get_local $8) ) - (block (result i32) - (set_local $11 - (get_local $1) + (set_local $14 + (i32.sub + (i32.const 0) + (get_local $14) ) - (get_local $8) ) ) + (set_local $11 + (get_local $1) + ) + ) + (set_local $1 + (get_local $8) ) ) (if @@ -3788,13 +3769,6 @@ ) ) ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$8) ) (block (set_local $5 @@ -3803,15 +3777,15 @@ (set_local $7 (get_local $11) ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$8) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) (set_local $5 (i32.load @@ -3870,7 +3844,6 @@ (set_local $9 (i32.const 4092) ) - (br $__rjti$4) ) (block (set_local $8 @@ -3888,9 +3861,9 @@ (get_local $9) ) ) - (br $__rjti$4) ) ) + (br $__rjti$4) ) (set_local $5 (i32.load @@ -6615,7 +6588,6 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$8) ) (block (set_local $8 @@ -6630,9 +6602,9 @@ (i32.const 4091) ) ) - (br $__rjti$8) ) ) + (br $__rjti$8) ) ) ) @@ -6898,7 +6870,7 @@ ) ) ) - (if (result i32) + (if (i32.or (get_local $6) (tee_local $12 @@ -6920,7 +6892,7 @@ ) ) ) - (block (result i32) + (block (set_local $7 (get_local $5) ) @@ -6948,18 +6920,17 @@ ) ) ) - (get_local $22) ) - (block (result i32) + (block (set_local $7 (get_local $22) ) (set_local $12 (i32.const 0) ) - (get_local $22) ) ) + (get_local $22) ) ) (call $_pad @@ -7865,258 +7836,274 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (block $do-once - (if - (i32.lt_u - (get_local $0) - (i32.const 245) - ) - (block - (if - (i32.and - (tee_local $5 - (i32.shr_u - (tee_local $11 - (i32.load - (i32.const 176) + (block $folding-inner0 + (block $do-once + (if + (i32.lt_u + (get_local $0) + (i32.const 245) + ) + (block + (if + (i32.and + (tee_local $5 + (i32.shr_u + (tee_local $11 + (i32.load + (i32.const 176) + ) ) - ) - (tee_local $13 - (i32.shr_u - (tee_local $4 - (select - (i32.const 16) - (i32.and - (i32.add + (tee_local $13 + (i32.shr_u + (tee_local $4 + (select + (i32.const 16) + (i32.and + (i32.add + (get_local $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (get_local $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (get_local $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (set_local $10 - (i32.load - (tee_local $1 - (i32.add - (tee_local $7 - (i32.load - (tee_local $3 - (i32.add - (tee_local $2 - (i32.add - (i32.shl - (tee_local $4 - (i32.add - (i32.xor - (i32.and - (get_local $5) + (block + (set_local $10 + (i32.load + (tee_local $1 + (i32.add + (tee_local $7 + (i32.load + (tee_local $3 + (i32.add + (tee_local $2 + (i32.add + (i32.shl + (tee_local $4 + (i32.add + (i32.xor + (i32.and + (get_local $5) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) + (get_local $13) ) - (get_local $13) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 216) ) - (i32.const 216) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $2) - (get_local $10) - ) - (i32.store - (i32.const 176) - (i32.and - (get_local $11) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $4) - ) - (i32.const -1) - ) + (if + (i32.eq + (get_local $2) + (get_local $10) ) - ) - (block - (if - (i32.lt_u - (get_local $10) - (i32.load - (i32.const 192) + (i32.store + (i32.const 176) + (i32.and + (get_local $11) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $4) + ) + (i32.const -1) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $10) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $10) + (i32.load + (i32.const 192) ) ) - (get_local $7) + (call $_abort) ) - (block - (i32.store - (get_local $0) - (get_local $2) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $10) + (i32.const 12) + ) + ) + ) + (get_local $7) ) - (i32.store - (get_local $3) - (get_local $10) + (block + (i32.store + (get_local $0) + (get_local $2) + ) + (i32.store + (get_local $3) + (get_local $10) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (get_local $7) - (i32.or - (tee_local $0 - (i32.shl - (get_local $4) - (i32.const 3) + (i32.store offset=4 + (get_local $7) + (i32.or + (tee_local $0 + (i32.shl + (get_local $4) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $7) + (i32.add + (get_local $7) + (get_local $0) + ) + (i32.const 4) + ) + ) + (i32.or + (i32.load (get_local $0) ) - (i32.const 4) + (i32.const 1) ) ) - (i32.or - (i32.load - (get_local $0) - ) - (i32.const 1) + (return + (get_local $1) ) ) - (return - (get_local $1) - ) ) - ) - (if - (i32.gt_u - (get_local $4) - (tee_local $0 - (i32.load - (i32.const 184) + (if + (i32.gt_u + (get_local $4) + (tee_local $0 + (i32.load + (i32.const 184) + ) ) ) - ) - (block - (if - (get_local $5) - (block - (set_local $10 - (i32.and - (i32.shr_u - (tee_local $3 - (i32.add - (i32.and - (tee_local $3 - (i32.and - (i32.shl - (get_local $5) - (get_local $13) - ) - (i32.or - (tee_local $3 - (i32.shl - (i32.const 2) - (get_local $13) - ) + (block + (if + (get_local $5) + (block + (set_local $10 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.add + (i32.and + (tee_local $3 + (i32.and + (i32.shl + (get_local $5) + (get_local $13) ) - (i32.sub - (i32.const 0) - (get_local $3) + (i32.or + (tee_local $3 + (i32.shl + (i32.const 2) + (get_local $13) + ) + ) + (i32.sub + (i32.const 0) + (get_local $3) + ) ) ) ) + (i32.sub + (i32.const 0) + (get_local $3) + ) ) - (i32.sub - (i32.const 0) - (get_local $3) - ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $9 - (i32.load - (tee_local $7 - (i32.add - (tee_local $12 - (i32.load - (tee_local $3 - (i32.add - (tee_local $10 - (i32.add - (i32.shl - (tee_local $5 - (i32.add - (i32.or + (set_local $9 + (i32.load + (tee_local $7 + (i32.add + (tee_local $12 + (i32.load + (tee_local $3 + (i32.add + (tee_local $10 + (i32.add + (i32.shl + (tee_local $5 + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $3 + (i32.and + (i32.shr_u + (tee_local $7 + (i32.shr_u + (get_local $3) + (get_local $10) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $10) + ) (tee_local $3 (i32.and (i32.shr_u (tee_local $7 (i32.shr_u + (get_local $7) (get_local $3) - (get_local $10) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $10) ) (tee_local $3 (i32.and @@ -8127,9 +8114,9 @@ (get_local $3) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -8144,310 +8131,310 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $3 - (i32.and - (i32.shr_u - (tee_local $7 - (i32.shr_u - (get_local $7) - (get_local $3) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) - ) - (i32.shr_u - (get_local $7) - (get_local $3) + (i32.shr_u + (get_local $7) + (get_local $3) + ) ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 216) ) - (i32.const 216) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $10) - (get_local $9) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (get_local $11) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $5) + (if + (i32.eq + (get_local $10) + (get_local $9) + ) + (block + (i32.store + (i32.const 176) + (i32.and + (get_local $11) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $5) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $8 - (get_local $0) - ) - ) - (block - (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 192) - ) + (set_local $8 + (get_local $0) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $9) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $9) + (i32.load + (i32.const 192) ) ) - (get_local $12) + (call $_abort) ) - (block - (i32.store - (get_local $0) - (get_local $10) - ) - (i32.store - (get_local $3) - (get_local $9) - ) - (set_local $8 + (if + (i32.eq (i32.load - (i32.const 184) + (tee_local $0 + (i32.add + (get_local $9) + (i32.const 12) + ) + ) + ) + (get_local $12) + ) + (block + (i32.store + (get_local $0) + (get_local $10) + ) + (i32.store + (get_local $3) + (get_local $9) + ) + (set_local $8 + (i32.load + (i32.const 184) + ) ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.or - (get_local $4) - (i32.const 3) - ) - ) - (i32.store offset=4 - (tee_local $10 - (i32.add - (get_local $12) + (i32.store offset=4 + (get_local $12) + (i32.or (get_local $4) + (i32.const 3) ) ) - (i32.or - (tee_local $5 - (i32.sub - (i32.shl - (get_local $5) - (i32.const 3) - ) + (i32.store offset=4 + (tee_local $10 + (i32.add + (get_local $12) (get_local $4) ) ) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $10) - (get_local $5) - ) - (get_local $5) - ) - (if - (get_local $8) - (block - (set_local $12 - (i32.load - (i32.const 196) - ) - ) - (set_local $4 - (i32.add - (i32.shl - (tee_local $0 - (i32.shr_u - (get_local $8) - (i32.const 3) - ) + (i32.or + (tee_local $5 + (i32.sub + (i32.shl + (get_local $5) + (i32.const 3) ) - (i32.const 3) + (get_local $4) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 176) - ) + ) + (i32.store + (i32.add + (get_local $10) + (get_local $5) + ) + (get_local $5) + ) + (if + (get_local $8) + (block + (set_local $12 + (i32.load + (i32.const 196) ) - (tee_local $0 + ) + (set_local $4 + (i32.add (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shr_u + (get_local $8) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $3 (i32.load - (tee_local $3 - (i32.add - (get_local $4) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $3 + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $2 + (get_local $3) + ) + (set_local $1 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $0) + ) + ) (set_local $2 - (get_local $3) + (i32.add + (get_local $4) + (i32.const 8) + ) ) (set_local $1 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $3) - (get_local $0) - ) - ) - (set_local $2 - (i32.add (get_local $4) - (i32.const 8) ) ) - (set_local $1 - (get_local $4) - ) ) - ) - (i32.store - (get_local $2) - (get_local $12) - ) - (i32.store offset=12 - (get_local $1) - (get_local $12) - ) - (i32.store offset=8 - (get_local $12) - (get_local $1) - ) - (i32.store offset=12 - (get_local $12) - (get_local $4) + (i32.store + (get_local $2) + (get_local $12) + ) + (i32.store offset=12 + (get_local $1) + (get_local $12) + ) + (i32.store offset=8 + (get_local $12) + (get_local $1) + ) + (i32.store offset=12 + (get_local $12) + (get_local $4) + ) ) ) - ) - (i32.store - (i32.const 184) - (get_local $5) - ) - (i32.store - (i32.const 196) - (get_local $10) - ) - (return - (get_local $7) + (i32.store + (i32.const 184) + (get_local $5) + ) + (i32.store + (i32.const 196) + (get_local $10) + ) + (return + (get_local $7) + ) ) ) - ) - (if - (tee_local $0 - (i32.load - (i32.const 180) + (if + (tee_local $0 + (i32.load + (i32.const 180) + ) ) - ) - (block - (set_local $2 - (i32.and - (i32.shr_u - (tee_local $0 - (i32.add - (i32.and - (get_local $0) - (i32.sub - (i32.const 0) + (block + (set_local $2 + (i32.and + (i32.shr_u + (tee_local $0 + (i32.add + (i32.and (get_local $0) + (i32.sub + (i32.const 0) + (get_local $0) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $7 - (i32.sub - (i32.and - (i32.load offset=4 - (tee_local $0 - (i32.load offset=480 - (i32.shl - (i32.add - (i32.or + (set_local $7 + (i32.sub + (i32.and + (i32.load offset=4 + (tee_local $0 + (i32.load offset=480 + (i32.shl + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (tee_local $1 + (i32.shr_u + (get_local $0) + (get_local $2) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $2) + ) (tee_local $0 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u + (get_local $1) (get_local $0) - (get_local $2) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $2) ) (tee_local $0 (i32.and @@ -8458,9 +8445,9 @@ (get_local $0) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -8475,163 +8462,135 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.shr_u - (get_local $1) - (get_local $0) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $1) + (get_local $0) + ) ) - (i32.shr_u - (get_local $1) - (get_local $0) - ) + (i32.const 2) ) - (i32.const 2) ) ) ) + (i32.const -8) ) - (i32.const -8) + (get_local $4) ) - (get_local $4) ) - ) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (get_local $0) - ) - (loop $while-in - (block $while-out - (if - (i32.eqz - (tee_local $0 - (i32.load offset=16 - (get_local $1) - ) - ) - ) + (set_local $1 + (get_local $0) + ) + (set_local $2 + (get_local $0) + ) + (loop $while-in + (block $while-out (if (i32.eqz (tee_local $0 - (i32.load offset=20 + (i32.load offset=16 (get_local $1) ) ) ) - (block - (set_local $10 - (get_local $7) + (if + (i32.eqz + (tee_local $0 + (i32.load offset=20 + (get_local $1) + ) + ) ) - (set_local $5 - (get_local $2) + (block + (set_local $10 + (get_local $7) + ) + (set_local $5 + (get_local $2) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (set_local $10 - (i32.lt_u - (tee_local $1 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $0) + (set_local $10 + (i32.lt_u + (tee_local $1 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $4) ) - (get_local $4) ) + (get_local $7) ) - (get_local $7) ) - ) - (set_local $7 - (select - (get_local $1) - (get_local $7) - (get_local $10) + (set_local $7 + (select + (get_local $1) + (get_local $7) + (get_local $10) + ) ) - ) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (select + (set_local $1 (get_local $0) - (get_local $2) - (get_local $10) ) - ) - (br $while-in) - ) - ) - (if - (i32.lt_u - (get_local $5) - (tee_local $12 - (i32.load - (i32.const 192) + (set_local $2 + (select + (get_local $0) + (get_local $2) + (get_local $10) + ) ) + (br $while-in) ) ) - (call $_abort) - ) - (if - (i32.ge_u - (get_local $5) - (tee_local $11 - (i32.add - (get_local $5) - (get_local $4) + (if + (i32.lt_u + (get_local $5) + (tee_local $12 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (set_local $8 - (i32.load offset=24 - (get_local $5) - ) - ) - (block $do-once4 (if - (i32.eq - (tee_local $0 - (i32.load offset=12 + (i32.ge_u + (get_local $5) + (tee_local $11 + (i32.add (get_local $5) + (get_local $4) ) ) + ) + (call $_abort) + ) + (set_local $8 + (i32.load offset=24 (get_local $5) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 20) - ) - ) - ) + ) + (block $do-once4 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $5) ) ) + (get_local $5) + ) + (block (if (i32.eqz (tee_local $1 @@ -8639,719 +8598,733 @@ (tee_local $0 (i32.add (get_local $5) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - (block - (set_local $9 - (i32.const 0) - ) - (br $do-once4) - ) - ) - ) - (loop $while-in7 - (if - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $1) - (i32.const 20) + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (get_local $5) + (i32.const 16) + ) + ) ) ) ) - ) - (block - (set_local $1 - (get_local $2) - ) - (set_local $0 - (get_local $7) + (block + (set_local $9 + (i32.const 0) + ) + (br $do-once4) ) - (br $while-in7) ) ) - (if - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $1) - (i32.const 16) + (loop $while-in7 + (if + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $1) + (i32.const 20) + ) ) ) ) + (block + (set_local $1 + (get_local $2) + ) + (set_local $0 + (get_local $7) + ) + (br $while-in7) + ) ) - (block - (set_local $1 - (get_local $2) + (if + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $7) + (block + (set_local $1 + (get_local $2) + ) + (set_local $0 + (get_local $7) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $12) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (get_local $0) - (i32.const 0) - ) - (set_local $9 - (get_local $1) + (get_local $12) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $7 - (i32.load offset=8 - (get_local $5) + (call $_abort) + (block + (i32.store + (get_local $0) + (i32.const 0) + ) + (set_local $9 + (get_local $1) ) ) - (get_local $12) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $2 - (i32.add - (get_local $7) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $7 + (i32.load offset=8 + (get_local $5) ) ) + (get_local $12) ) - (get_local $5) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $2 + (i32.add + (get_local $7) + (i32.const 12) + ) ) ) + (get_local $5) ) - (get_local $5) + (call $_abort) ) - (block - (i32.store - (get_local $2) - (get_local $0) - ) - (i32.store - (get_local $1) - (get_local $7) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + (get_local $5) ) - (set_local $9 - (get_local $0) + (block + (i32.store + (get_local $2) + (get_local $0) + ) + (i32.store + (get_local $1) + (get_local $7) + ) + (set_local $9 + (get_local $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (block $do-once8 - (if - (get_local $8) - (block - (if - (i32.eq - (get_local $5) - (i32.load - (tee_local $0 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $5) + (block $do-once8 + (if + (get_local $8) + (block + (if + (i32.eq + (get_local $5) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $5) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) ) - ) - (block - (i32.store - (get_local $0) - (get_local $9) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $0) (get_local $9) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $9) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (get_local $8) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (get_local $8) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) + ) ) ) + (get_local $5) + ) + (i32.store + (get_local $0) + (get_local $9) + ) + (i32.store offset=20 + (get_local $8) + (get_local $9) ) - (get_local $5) - ) - (i32.store - (get_local $0) - (get_local $9) - ) - (i32.store offset=20 - (get_local $8) - (get_local $9) ) - ) - (br_if $do-once8 - (i32.eqz - (get_local $9) + (br_if $do-once8 + (i32.eqz + (get_local $9) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $9) - (tee_local $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (get_local $9) + (tee_local $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $9) - (get_local $8) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $5) - ) + (i32.store offset=24 + (get_local $9) + (get_local $8) ) (if - (i32.lt_u - (get_local $1) - (get_local $0) + (tee_local $1 + (i32.load offset=16 + (get_local $5) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (get_local $9) + (if + (i32.lt_u (get_local $1) + (get_local $0) ) - (i32.store offset=24 - (get_local $1) - (get_local $9) + (call $_abort) + (block + (i32.store offset=16 + (get_local $9) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $9) + ) ) ) ) - ) - (if - (tee_local $0 - (i32.load offset=20 - (get_local $5) - ) - ) (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) + (tee_local $0 + (i32.load offset=20 + (get_local $5) ) ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $9) + (if + (i32.lt_u (get_local $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (get_local $0) - (get_local $9) + (call $_abort) + (block + (i32.store offset=20 + (get_local $9) + (get_local $0) + ) + (i32.store offset=24 + (get_local $0) + (get_local $9) + ) ) ) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $10) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $5) - (i32.or - (tee_local $0 - (i32.add - (get_local $10) - (get_local $4) + (if + (i32.lt_u + (get_local $10) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $5) + (i32.or + (tee_local $0 + (i32.add + (get_local $10) + (get_local $4) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $5) - (get_local $0) + (i32.add + (get_local $5) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (block - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $4) - (i32.const 3) ) ) - (i32.store offset=4 - (get_local $11) - (i32.or - (get_local $10) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $5) + (i32.or + (get_local $4) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $11) - (get_local $10) + (i32.or + (get_local $10) + (i32.const 1) + ) ) - (get_local $10) - ) - (if - (tee_local $0 - (i32.load - (i32.const 184) + (i32.store + (i32.add + (get_local $11) + (get_local $10) ) + (get_local $10) ) - (block - (set_local $4 + (if + (tee_local $0 (i32.load - (i32.const 196) + (i32.const 184) ) ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $0 - (i32.shr_u - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (set_local $4 + (i32.load + (i32.const 196) ) - (i32.const 216) ) - ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $0 + (set_local $2 + (i32.add (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shr_u + (get_local $0) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $1 (i32.load - (tee_local $1 - (i32.add - (get_local $2) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $6 + (get_local $1) + ) + (set_local $3 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $0) + ) + ) (set_local $6 - (get_local $1) + (i32.add + (get_local $2) + (i32.const 8) + ) ) (set_local $3 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) - ) - ) - (set_local $6 - (i32.add (get_local $2) - (i32.const 8) ) ) - (set_local $3 - (get_local $2) - ) ) - ) - (i32.store - (get_local $6) - (get_local $4) - ) - (i32.store offset=12 - (get_local $3) - (get_local $4) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (i32.store offset=12 - (get_local $4) - (get_local $2) + (i32.store + (get_local $6) + (get_local $4) + ) + (i32.store offset=12 + (get_local $3) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $3) + ) + (i32.store offset=12 + (get_local $4) + (get_local $2) + ) ) ) + (i32.store + (i32.const 184) + (get_local $10) + ) + (i32.store + (i32.const 196) + (get_local $11) + ) ) - (i32.store - (i32.const 184) - (get_local $10) - ) - (i32.store - (i32.const 196) - (get_local $11) + ) + (return + (i32.add + (get_local $5) + (i32.const 8) ) ) ) - (return - (i32.add - (get_local $5) - (i32.const 8) - ) + (set_local $0 + (get_local $4) ) ) - (set_local $0 - (get_local $4) - ) + ) + (set_local $0 + (get_local $4) ) ) + ) + (if + (i32.gt_u + (get_local $0) + (i32.const -65) + ) (set_local $0 - (get_local $4) + (i32.const -1) ) - ) - ) - (if - (i32.gt_u - (get_local $0) - (i32.const -65) - ) - (set_local $0 - (i32.const -1) - ) - (block - (set_local $2 - (i32.and - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 11) + (block + (set_local $2 + (i32.and + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 11) + ) ) + (i32.const -8) ) - (i32.const -8) ) - ) - (if - (tee_local $18 - (i32.load - (i32.const 180) + (if + (tee_local $18 + (i32.load + (i32.const 180) + ) ) - ) - (block - (set_local $14 - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - ) + (block + (set_local $14 (if (result i32) - (i32.gt_u - (get_local $2) - (i32.const 16777215) + (tee_local $0 + (i32.shr_u + (get_local $0) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $2) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $2) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $2) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (get_local $2) + (set_local $3 + (i32.sub + (i32.const 0) + (get_local $2) + ) ) - ) - (block $__rjto$3 - (block $__rjti$3 - (if - (tee_local $0 - (i32.load offset=480 - (i32.shl - (get_local $14) - (i32.const 2) + (block $__rjto$3 + (block $__rjti$3 + (if + (tee_local $0 + (i32.load offset=480 + (i32.shl + (get_local $14) + (i32.const 2) + ) ) ) - ) - (block - (set_local $6 - (i32.const 0) - ) - (set_local $8 - (i32.shl - (get_local $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block + (set_local $6 + (i32.const 0) + ) + (set_local $8 + (i32.shl + (get_local $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $14) + (i32.const 1) + ) + ) + (i32.eq (get_local $14) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $14) - (i32.const 31) - ) ) ) - ) - (set_local $1 - (i32.const 0) - ) - (loop $while-in14 - (if - (i32.lt_u - (tee_local $4 - (i32.sub - (tee_local $9 - (i32.and - (i32.load offset=4 - (get_local $0) + (set_local $1 + (i32.const 0) + ) + (loop $while-in14 + (if + (i32.lt_u + (tee_local $4 + (i32.sub + (tee_local $9 + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) ) + (get_local $2) ) - (get_local $2) ) + (get_local $3) ) - (get_local $3) - ) - (if - (i32.eq - (get_local $9) - (get_local $2) - ) - (block - (set_local $1 - (get_local $4) - ) - (set_local $3 - (get_local $0) + (if + (i32.eq + (get_local $9) + (get_local $2) ) - (br $__rjti$3) - ) - (block - (set_local $3 - (get_local $4) + (block + (set_local $1 + (get_local $4) + ) + (set_local $3 + (get_local $0) + ) + (br $__rjti$3) ) - (set_local $1 - (get_local $0) + (block + (set_local $3 + (get_local $4) + ) + (set_local $1 + (get_local $0) + ) ) ) ) - ) - (set_local $0 - (select - (get_local $6) - (tee_local $4 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.or - (i32.eqz - (get_local $4) + (set_local $0 + (select + (get_local $6) + (tee_local $4 + (i32.load offset=20 + (get_local $0) + ) ) - (i32.eq - (get_local $4) - (tee_local $9 - (i32.load - (i32.add + (i32.or + (i32.eqz + (get_local $4) + ) + (i32.eq + (get_local $4) + (tee_local $9 + (i32.load (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $8) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $8) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -9359,134 +9332,148 @@ ) ) ) - ) - (set_local $4 - (i32.shl - (get_local $8) - (i32.xor - (tee_local $6 - (i32.eqz - (get_local $9) + (set_local $4 + (i32.shl + (get_local $8) + (i32.xor + (tee_local $6 + (i32.eqz + (get_local $9) + ) ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (if - (get_local $6) - (block - (set_local $4 - (get_local $0) - ) - (set_local $0 - (get_local $1) - ) - ) - (block - (set_local $6 - (get_local $0) - ) - (set_local $8 - (get_local $4) + (if + (get_local $6) + (block + (set_local $4 + (get_local $0) + ) + (set_local $0 + (get_local $1) + ) ) - (set_local $0 - (get_local $9) + (block + (set_local $6 + (get_local $0) + ) + (set_local $8 + (get_local $4) + ) + (set_local $0 + (get_local $9) + ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block - (set_local $4 - (i32.const 0) - ) - (set_local $0 - (i32.const 0) - ) - ) - ) - (if - (i32.and - (i32.eqz - (get_local $4) - ) - (i32.eqz - (get_local $0) + (block + (set_local $4 + (i32.const 0) + ) + (set_local $0 + (i32.const 0) + ) ) ) - (block - (if + (if + (i32.and (i32.eqz - (tee_local $1 - (i32.and - (get_local $18) - (i32.or - (tee_local $1 - (i32.shl - (i32.const 2) - (get_local $14) + (get_local $4) + ) + (i32.eqz + (get_local $0) + ) + ) + (block + (if + (i32.eqz + (tee_local $1 + (i32.and + (get_local $18) + (i32.or + (tee_local $1 + (i32.shl + (i32.const 2) + (get_local $14) + ) + ) + (i32.sub + (i32.const 0) + (get_local $1) ) - ) - (i32.sub - (i32.const 0) - (get_local $1) ) ) ) ) - ) - (block - (set_local $0 - (get_local $2) + (block + (set_local $0 + (get_local $2) + ) + (br $do-once) ) - (br $do-once) ) - ) - (set_local $9 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.add - (i32.and - (get_local $1) - (i32.sub - (i32.const 0) + (set_local $9 + (i32.and + (i32.shr_u + (tee_local $1 + (i32.add + (i32.and (get_local $1) + (i32.sub + (i32.const 0) + (get_local $1) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $4 - (i32.load offset=480 - (i32.shl - (i32.add - (i32.or + (set_local $4 + (i32.load offset=480 + (i32.shl + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (tee_local $4 + (i32.shr_u + (get_local $1) + (get_local $9) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $9) + ) (tee_local $1 (i32.and (i32.shr_u (tee_local $4 (i32.shr_u + (get_local $4) (get_local $1) - (get_local $9) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $9) ) (tee_local $1 (i32.and @@ -9497,9 +9484,9 @@ (get_local $1) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -9514,177 +9501,149 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (tee_local $4 - (i32.shr_u - (get_local $4) - (get_local $1) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $4) + (get_local $1) + ) ) - (i32.shr_u - (get_local $4) - (get_local $1) - ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) - ) - (if - (get_local $4) - (block - (set_local $1 - (get_local $3) + (if + (get_local $4) + (block + (set_local $1 + (get_local $3) + ) + (set_local $3 + (get_local $4) + ) + (br $__rjti$3) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (br $__rjti$3) - ) - (set_local $4 - (get_local $0) ) + (br $__rjto$3) ) - (br $__rjto$3) - ) - (loop $while-in16 - (set_local $9 - (i32.lt_u - (tee_local $4 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $3) + (loop $while-in16 + (set_local $9 + (i32.lt_u + (tee_local $4 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $2) ) - (get_local $2) ) + (get_local $1) ) - (get_local $1) - ) - ) - (set_local $1 - (select - (get_local $4) - (get_local $1) - (get_local $9) ) - ) - (set_local $0 - (select - (get_local $3) - (get_local $0) - (get_local $9) + (set_local $1 + (select + (get_local $4) + (get_local $1) + (get_local $9) + ) ) - ) - (if - (tee_local $4 - (i32.load offset=16 + (set_local $0 + (select (get_local $3) + (get_local $0) + (get_local $9) ) ) - (block - (set_local $3 - (get_local $4) + (if + (tee_local $4 + (i32.load offset=16 + (get_local $3) + ) + ) + (block + (set_local $3 + (get_local $4) + ) + (br $while-in16) ) - (br $while-in16) ) - ) - (br_if $while-in16 - (tee_local $3 - (i32.load offset=20 - (get_local $3) + (br_if $while-in16 + (tee_local $3 + (i32.load offset=20 + (get_local $3) + ) ) ) - ) - (set_local $3 - (get_local $1) - ) - (set_local $4 - (get_local $0) + (set_local $3 + (get_local $1) + ) + (set_local $4 + (get_local $0) + ) ) ) - ) - (if - (get_local $4) (if - (i32.lt_u - (get_local $3) - (i32.sub - (i32.load - (i32.const 184) - ) - (get_local $2) - ) - ) - (block - (if - (i32.lt_u - (get_local $4) - (tee_local $12 - (i32.load - (i32.const 192) - ) + (get_local $4) + (if + (i32.lt_u + (get_local $3) + (i32.sub + (i32.load + (i32.const 184) ) + (get_local $2) ) - (call $_abort) ) - (if - (i32.ge_u - (get_local $4) - (tee_local $6 - (i32.add - (get_local $4) - (get_local $2) + (block + (if + (i32.lt_u + (get_local $4) + (tee_local $12 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (set_local $9 - (i32.load offset=24 - (get_local $4) - ) - ) - (block $do-once17 (if - (i32.eq - (tee_local $0 - (i32.load offset=12 + (i32.ge_u + (get_local $4) + (tee_local $6 + (i32.add (get_local $4) + (get_local $2) ) ) + ) + (call $_abort) + ) + (set_local $9 + (i32.load offset=24 (get_local $4) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (get_local $4) - (i32.const 20) - ) - ) - ) + ) + (block $do-once17 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $4) ) ) + (get_local $4) + ) + (block (if (i32.eqz (tee_local $1 @@ -9692,1758 +9651,1694 @@ (tee_local $0 (i32.add (get_local $4) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - (block - (set_local $11 - (i32.const 0) - ) - (br $do-once17) - ) - ) - ) - (loop $while-in20 - (if - (tee_local $7 - (i32.load - (tee_local $10 - (i32.add - (get_local $1) - (i32.const 20) + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (get_local $4) + (i32.const 16) + ) + ) ) ) ) - ) - (block - (set_local $1 - (get_local $7) - ) - (set_local $0 - (get_local $10) + (block + (set_local $11 + (i32.const 0) + ) + (br $do-once17) ) - (br $while-in20) ) ) - (if - (tee_local $7 - (i32.load - (tee_local $10 - (i32.add - (get_local $1) - (i32.const 16) + (loop $while-in20 + (if + (tee_local $7 + (i32.load + (tee_local $10 + (i32.add + (get_local $1) + (i32.const 20) + ) ) ) ) + (block + (set_local $1 + (get_local $7) + ) + (set_local $0 + (get_local $10) + ) + (br $while-in20) + ) ) - (block - (set_local $1 - (get_local $7) + (if + (tee_local $7 + (i32.load + (tee_local $10 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $10) + (block + (set_local $1 + (get_local $7) + ) + (set_local $0 + (get_local $10) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $12) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (get_local $0) - (i32.const 0) - ) - (set_local $11 - (get_local $1) + (get_local $12) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $10 - (i32.load offset=8 - (get_local $4) + (call $_abort) + (block + (i32.store + (get_local $0) + (i32.const 0) + ) + (set_local $11 + (get_local $1) ) ) - (get_local $12) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $7 - (i32.add - (get_local $10) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $10 + (i32.load offset=8 + (get_local $4) ) ) + (get_local $12) ) - (get_local $4) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $7 + (i32.add + (get_local $10) + (i32.const 12) + ) ) ) + (get_local $4) ) - (get_local $4) + (call $_abort) ) - (block - (i32.store - (get_local $7) - (get_local $0) - ) - (i32.store - (get_local $1) - (get_local $10) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + (get_local $4) ) - (set_local $11 - (get_local $0) + (block + (i32.store + (get_local $7) + (get_local $0) + ) + (i32.store + (get_local $1) + (get_local $10) + ) + (set_local $11 + (get_local $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (block $do-once21 - (if - (get_local $9) - (block - (if - (i32.eq - (get_local $4) - (i32.load - (tee_local $0 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $4) + (block $do-once21 + (if + (get_local $9) + (block + (if + (i32.eq + (get_local $4) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $4) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) ) - ) - (block - (i32.store - (get_local $0) - (get_local $11) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $0) (get_local $11) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $11) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (get_local $9) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $9) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $9) + (i32.const 16) + ) ) ) + (get_local $4) + ) + (i32.store + (get_local $0) + (get_local $11) + ) + (i32.store offset=20 + (get_local $9) + (get_local $11) ) - (get_local $4) - ) - (i32.store - (get_local $0) - (get_local $11) - ) - (i32.store offset=20 - (get_local $9) - (get_local $11) ) - ) - (br_if $do-once21 - (i32.eqz - (get_local $11) + (br_if $do-once21 + (i32.eqz + (get_local $11) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $11) - (tee_local $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (get_local $11) + (tee_local $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $11) - (get_local $9) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $4) - ) + (i32.store offset=24 + (get_local $11) + (get_local $9) ) (if - (i32.lt_u - (get_local $1) - (get_local $0) + (tee_local $1 + (i32.load offset=16 + (get_local $4) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (get_local $11) + (if + (i32.lt_u (get_local $1) + (get_local $0) ) - (i32.store offset=24 - (get_local $1) - (get_local $11) + (call $_abort) + (block + (i32.store offset=16 + (get_local $11) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $11) + ) ) ) ) - ) - (if - (tee_local $0 - (i32.load offset=20 - (get_local $4) - ) - ) (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) + (tee_local $0 + (i32.load offset=20 + (get_local $4) ) ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $11) + (if + (i32.lt_u (get_local $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (get_local $0) - (get_local $11) + (call $_abort) + (block + (i32.store offset=20 + (get_local $11) + (get_local $0) + ) + (i32.store offset=24 + (get_local $0) + (get_local $11) + ) ) ) ) ) ) ) - ) - (block $do-once25 - (if - (i32.lt_u - (get_local $3) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $4) - (i32.or - (tee_local $0 - (i32.add - (get_local $3) - (get_local $2) + (block $do-once25 + (if + (i32.lt_u + (get_local $3) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $4) + (i32.or + (tee_local $0 + (i32.add + (get_local $3) + (get_local $2) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $4) - (get_local $0) + (i32.add + (get_local $4) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (block - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $2) - (i32.const 3) ) ) - (i32.store offset=4 - (get_local $6) - (i32.or - (get_local $3) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $4) + (i32.or + (get_local $2) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $6) - (get_local $3) + (i32.or + (get_local $3) + (i32.const 1) + ) ) - (get_local $3) - ) - (set_local $0 - (i32.shr_u + (i32.store + (i32.add + (get_local $6) + (get_local $3) + ) (get_local $3) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $3) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (get_local $3) + (i32.const 256) ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $0 + (block + (set_local $3 + (i32.add (i32.shl - (i32.const 1) (get_local $0) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $1 (i32.load - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $13 + (get_local $1) + ) + (set_local $5 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $0) + ) + ) (set_local $13 - (get_local $1) + (i32.add + (get_local $3) + (i32.const 8) + ) ) (set_local $5 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) - ) - ) - (set_local $13 - (i32.add (get_local $3) - (i32.const 8) ) ) - (set_local $5 - (get_local $3) - ) ) + (i32.store + (get_local $13) + (get_local $6) + ) + (i32.store offset=12 + (get_local $5) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $5) + ) + (i32.store offset=12 + (get_local $6) + (get_local $3) + ) + (br $do-once25) ) - (i32.store - (get_local $13) - (get_local $6) - ) - (i32.store offset=12 - (get_local $5) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $5) - ) - (i32.store offset=12 - (get_local $6) - (get_local $3) - ) - (br $do-once25) ) - ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $7 - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - ) + (set_local $2 + (i32.add + (i32.shl + (tee_local $7 (if (result i32) - (i32.gt_u - (get_local $3) - (i32.const 16777215) + (tee_local $0 + (i32.shr_u + (get_local $3) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $3) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $3) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $3) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $2 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $2 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $2) ) - (get_local $2) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $6) - (get_local $7) - ) - (i32.store offset=4 - (tee_local $0 - (i32.add - (get_local $6) - (i32.const 16) + (i32.store offset=28 + (get_local $6) + (get_local $7) + ) + (i32.store offset=4 + (tee_local $0 + (i32.add + (get_local $6) + (i32.const 16) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $1 - (i32.load - (i32.const 180) + (i32.store + (get_local $0) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $1 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $7) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $7) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $1) - (get_local $0) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $1) + (get_local $0) + ) ) + (i32.store + (get_local $2) + (get_local $6) + ) + (i32.store offset=24 + (get_local $6) + (get_local $2) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once25) ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=24 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $6) - ) - (br $do-once25) ) - ) - (set_local $7 - (i32.shl - (get_local $3) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $7 + (i32.shl + (get_local $3) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $7) + (i32.const 1) + ) + ) + (i32.eq (get_local $7) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $7) - (i32.const 31) - ) ) ) - ) - (set_local $0 - (i32.load - (get_local $2) + (set_local $0 + (i32.load + (get_local $2) + ) ) - ) - (block $__rjto$1 - (block $__rjti$1 - (loop $while-in28 - (br_if $__rjti$1 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $0) + (block $__rjto$1 + (block $__rjti$1 + (loop $while-in28 + (br_if $__rjti$1 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) - ) - (set_local $2 - (i32.shl - (get_local $7) - (i32.const 1) + (set_local $2 + (i32.shl + (get_local $7) + (i32.const 1) + ) ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add + (if + (tee_local $1 + (i32.load + (tee_local $7 (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $7) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $7) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $7 + (get_local $2) + ) + (set_local $0 + (get_local $1) + ) + (br $while-in28) + ) ) + ) + (if + (i32.lt_u + (get_local $7) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) (block - (set_local $7 - (get_local $2) + (i32.store + (get_local $7) + (get_local $6) ) - (set_local $0 - (get_local $1) + (i32.store offset=24 + (get_local $6) + (get_local $0) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) ) - (br $while-in28) + (br $do-once25) ) ) + (br $__rjto$1) ) (if - (i32.lt_u - (get_local $7) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $2 + (i32.load + (tee_local $3 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $0) + (get_local $1) ) ) - (call $_abort) (block + (i32.store offset=12 + (get_local $2) + (get_local $6) + ) (i32.store - (get_local $7) + (get_local $3) (get_local $6) ) - (i32.store offset=24 + (i32.store offset=8 (get_local $6) - (get_local $0) + (get_local $2) ) (i32.store offset=12 (get_local $6) - (get_local $6) + (get_local $0) ) - (i32.store offset=8 - (get_local $6) + (i32.store offset=24 (get_local $6) - ) - (br $do-once25) - ) - ) - (br $__rjto$1) - ) - (if - (i32.and - (i32.ge_u - (tee_local $2 - (i32.load - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ) - ) - (tee_local $1 - (i32.load - (i32.const 192) - ) + (i32.const 0) ) ) - (i32.ge_u - (get_local $0) - (get_local $1) - ) - ) - (block - (i32.store offset=12 - (get_local $2) - (get_local $6) - ) - (i32.store - (get_local $3) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $0) - ) - (i32.store offset=24 - (get_local $6) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (return - (i32.add - (get_local $4) - (i32.const 8) + (return + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) + (set_local $0 + (get_local $2) + ) ) (set_local $0 (get_local $2) ) ) - (set_local $0 - (get_local $2) - ) ) - ) - (set_local $0 - (get_local $2) + (set_local $0 + (get_local $2) + ) ) ) ) ) ) - ) - (if - (i32.ge_u - (tee_local $1 - (i32.load - (i32.const 184) - ) - ) - (get_local $0) - ) - (block - (set_local $2 - (i32.load - (i32.const 196) + (if + (i32.ge_u + (tee_local $1 + (i32.load + (i32.const 184) + ) ) + (get_local $0) ) - (if - (i32.gt_u - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) + (block + (set_local $2 + (i32.load + (i32.const 196) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 196) - (tee_local $1 - (i32.add - (get_local $2) + (if + (i32.gt_u + (tee_local $3 + (i32.sub + (get_local $1) (get_local $0) ) ) + (i32.const 15) ) - (i32.store - (i32.const 184) - (get_local $3) - ) - (i32.store offset=4 - (get_local $1) - (i32.or + (block + (i32.store + (i32.const 196) + (tee_local $1 + (i32.add + (get_local $2) + (get_local $0) + ) + ) + ) + (i32.store + (i32.const 184) (get_local $3) - (i32.const 1) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $1) + (i32.or + (get_local $3) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $1) + (get_local $3) + ) (get_local $3) ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $0) + (i32.const 3) + ) ) ) - ) - (block - (i32.store - (i32.const 184) - (i32.const 0) - ) - (i32.store - (i32.const 196) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $1) - (i32.const 3) + (block + (i32.store + (i32.const 184) + (i32.const 0) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (i32.const 196) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $1) + (i32.const 3) + ) + ) + (i32.store + (tee_local $0 (i32.add - (get_local $2) - (get_local $1) + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) + (return + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) - ) - (if - (i32.gt_u - (tee_local $1 - (i32.load - (i32.const 188) + (br_if $folding-inner0 + (i32.gt_u + (tee_local $1 + (i32.load + (i32.const 188) + ) ) + (get_local $0) ) - (get_local $0) ) - (block - (i32.store - (i32.const 188) - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) + (if + (i32.eqz + (i32.load + (i32.const 648) ) ) - (i32.store - (i32.const 200) - (tee_local $1 + (if + (i32.and (i32.add - (tee_local $2 - (i32.load - (i32.const 200) + (tee_local $1 + (call $_sysconf + (i32.const 30) ) ) - (get_local $0) - ) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $3) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.eqz - (i32.load - (i32.const 648) - ) - ) - (if - (i32.and - (i32.add - (tee_local $1 - (call $_sysconf - (i32.const 30) - ) + (i32.const -1) ) - (i32.const -1) - ) - (get_local $1) - ) - (call $_abort) - (block - (i32.store - (i32.const 656) (get_local $1) ) - (i32.store - (i32.const 652) - (get_local $1) - ) - (i32.store - (i32.const 660) - (i32.const -1) - ) - (i32.store - (i32.const 664) - (i32.const -1) - ) - (i32.store - (i32.const 668) - (i32.const 0) - ) - (i32.store - (i32.const 620) - (i32.const 0) - ) - (i32.store - (i32.const 648) - (i32.xor - (i32.and - (call $_time - (i32.const 0) + (call $_abort) + (block + (i32.store + (i32.const 656) + (get_local $1) + ) + (i32.store + (i32.const 652) + (get_local $1) + ) + (i32.store + (i32.const 660) + (i32.const -1) + ) + (i32.store + (i32.const 664) + (i32.const -1) + ) + (i32.store + (i32.const 668) + (i32.const 0) + ) + (i32.store + (i32.const 620) + (i32.const 0) + ) + (i32.store + (i32.const 648) + (i32.xor + (i32.and + (call $_time + (i32.const 0) + ) + (i32.const -16) ) - (i32.const -16) + (i32.const 1431655768) ) - (i32.const 1431655768) ) ) ) ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.and - (tee_local $6 - (i32.add - (tee_local $1 - (i32.load - (i32.const 656) + (if + (i32.le_u + (tee_local $5 + (i32.and + (tee_local $6 + (i32.add + (tee_local $1 + (i32.load + (i32.const 656) + ) ) - ) - (tee_local $8 - (i32.add - (get_local $0) - (i32.const 47) + (tee_local $8 + (i32.add + (get_local $0) + (i32.const 47) + ) ) ) ) - ) - (tee_local $9 - (i32.sub - (i32.const 0) - (get_local $1) + (tee_local $9 + (i32.sub + (i32.const 0) + (get_local $1) + ) ) ) ) + (get_local $0) ) - (get_local $0) - ) - (return - (i32.const 0) - ) - ) - (if - (tee_local $2 - (i32.load - (i32.const 616) + (return + (i32.const 0) ) ) (if - (i32.or - (i32.le_u - (tee_local $1 - (i32.add - (tee_local $3 - (i32.load - (i32.const 608) + (tee_local $2 + (i32.load + (i32.const 616) + ) + ) + (if + (i32.or + (i32.le_u + (tee_local $1 + (i32.add + (tee_local $3 + (i32.load + (i32.const 608) + ) ) + (get_local $5) ) - (get_local $5) ) + (get_local $3) + ) + (i32.gt_u + (get_local $1) + (get_local $2) ) - (get_local $3) ) - (i32.gt_u - (get_local $1) - (get_local $2) + (return + (i32.const 0) ) ) - (return - (i32.const 0) - ) ) - ) - (set_local $11 - (i32.add - (get_local $0) - (i32.const 48) + (set_local $11 + (i32.add + (get_local $0) + (i32.const 48) + ) ) - ) - (block $__rjto$13 - (block $__rjti$13 - (if - (i32.eqz - (i32.and - (i32.load - (i32.const 620) + (block $__rjto$13 + (block $__rjti$13 + (if + (i32.eqz + (i32.and + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (block - (block $label$break$L279 - (block $__rjti$5 - (block $__rjti$4 - (br_if $__rjti$4 - (i32.eqz - (tee_local $4 - (i32.load - (i32.const 200) + (block + (block $label$break$L279 + (block $__rjti$5 + (block $__rjti$4 + (br_if $__rjti$4 + (i32.eqz + (tee_local $4 + (i32.load + (i32.const 200) + ) ) ) ) - ) - (set_local $1 - (i32.const 624) - ) - (loop $while-in34 - (block $while-out33 - (if - (i32.le_u - (tee_local $3 - (i32.load - (get_local $1) - ) - ) - (get_local $4) - ) + (set_local $1 + (i32.const 624) + ) + (loop $while-in34 + (block $while-out33 (if - (i32.gt_u - (i32.add - (get_local $3) + (i32.le_u + (tee_local $3 (i32.load - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 4) + (get_local $1) + ) + ) + (get_local $4) + ) + (if + (i32.gt_u + (i32.add + (get_local $3) + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 4) + ) ) ) ) + (get_local $4) + ) + (block + (set_local $4 + (get_local $1) + ) + (br $while-out33) ) - (get_local $4) ) - (block - (set_local $4 + ) + (br_if $while-in34 + (tee_local $1 + (i32.load offset=8 (get_local $1) ) - (br $while-out33) ) ) + (br $__rjti$4) ) - (br_if $while-in34 - (tee_local $1 - (i32.load offset=8 - (get_local $1) + ) + (if + (i32.lt_u + (tee_local $3 + (i32.and + (i32.sub + (get_local $6) + (i32.load + (i32.const 188) + ) + ) + (get_local $9) ) ) + (i32.const 2147483647) ) - (br $__rjti$4) - ) - ) - (if - (i32.lt_u - (tee_local $3 - (i32.and - (i32.sub - (get_local $6) + (if + (i32.eq + (tee_local $1 + (call $_sbrk + (get_local $3) + ) + ) + (i32.add (i32.load - (i32.const 188) + (get_local $4) + ) + (i32.load + (get_local $2) ) ) - (get_local $9) ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (tee_local $1 - (call $_sbrk - (get_local $3) + (br_if $__rjti$13 + (i32.ne + (get_local $1) + (i32.const -1) ) ) - (i32.add - (i32.load - (get_local $4) - ) - (i32.load - (get_local $2) + (block + (set_local $2 + (get_local $1) ) + (br $__rjti$5) ) ) - (br_if $__rjti$13 - (i32.ne - (get_local $1) - (i32.const -1) - ) - ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $1 - (get_local $3) - ) - (br $__rjti$5) - ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (if - (i32.ne - (tee_local $1 - (call $_sbrk - (i32.const 0) + (if + (i32.ne + (tee_local $1 + (call $_sbrk + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (set_local $3 - (if (result i32) - (i32.and - (tee_local $2 - (i32.add - (tee_local $4 - (i32.load - (i32.const 652) + (block + (set_local $3 + (if (result i32) + (i32.and + (tee_local $2 + (i32.add + (tee_local $4 + (i32.load + (i32.const 652) + ) ) + (i32.const -1) ) - (i32.const -1) + ) + (tee_local $3 + (get_local $1) ) ) - (tee_local $3 - (get_local $1) - ) - ) - (i32.add - (i32.sub - (get_local $5) - (get_local $3) - ) - (i32.and - (i32.add - (get_local $2) + (i32.add + (i32.sub + (get_local $5) (get_local $3) ) - (i32.sub - (i32.const 0) - (get_local $4) + (i32.and + (i32.add + (get_local $2) + (get_local $3) + ) + (i32.sub + (i32.const 0) + (get_local $4) + ) ) ) + (get_local $5) ) - (get_local $5) ) - ) - (set_local $9 - (i32.add - (tee_local $4 - (i32.load - (i32.const 608) + (set_local $9 + (i32.add + (tee_local $4 + (i32.load + (i32.const 608) + ) ) - ) - (get_local $3) - ) - ) - (if - (i32.and - (i32.gt_u - (get_local $3) - (get_local $0) - ) - (i32.lt_u (get_local $3) - (i32.const 2147483647) ) ) - (block - (if - (tee_local $2 - (i32.load - (i32.const 616) - ) + (if + (i32.and + (i32.gt_u + (get_local $3) + (get_local $0) ) - (br_if $label$break$L279 - (i32.or - (i32.le_u - (get_local $9) - (get_local $4) + (i32.lt_u + (get_local $3) + (i32.const 2147483647) + ) + ) + (block + (if + (tee_local $2 + (i32.load + (i32.const 616) ) - (i32.gt_u - (get_local $9) - (get_local $2) + ) + (br_if $label$break$L279 + (i32.or + (i32.le_u + (get_local $9) + (get_local $4) + ) + (i32.gt_u + (get_local $9) + (get_local $2) + ) ) ) ) - ) - (br_if $__rjti$13 - (i32.eq - (tee_local $2 - (call $_sbrk - (get_local $3) + (br_if $__rjti$13 + (i32.eq + (tee_local $2 + (call $_sbrk + (get_local $3) + ) ) + (get_local $1) ) - (get_local $1) ) + (br $__rjti$5) ) - (set_local $1 - (get_local $3) - ) - (br $__rjti$5) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $1) + (set_local $1 + (get_local $3) ) - ) - (if - (i32.and - (i32.gt_u - (get_local $11) + (set_local $4 + (i32.sub + (i32.const 0) (get_local $1) ) + ) + (if (i32.and - (i32.lt_u + (i32.gt_u + (get_local $11) (get_local $1) - (i32.const 2147483647) ) - (i32.ne - (get_local $2) - (i32.const -1) + (i32.and + (i32.lt_u + (get_local $1) + (i32.const 2147483647) + ) + (i32.ne + (get_local $2) + (i32.const -1) + ) ) ) - ) - (if - (i32.lt_u - (tee_local $3 - (i32.and - (i32.add - (i32.sub - (get_local $8) - (get_local $1) - ) - (tee_local $3 - (i32.load - (i32.const 656) + (if + (i32.lt_u + (tee_local $3 + (i32.and + (i32.add + (i32.sub + (get_local $8) + (get_local $1) + ) + (tee_local $3 + (i32.load + (i32.const 656) + ) ) ) + (i32.sub + (i32.const 0) + (get_local $3) + ) ) - (i32.sub - (i32.const 0) + ) + (i32.const 2147483647) + ) + (if + (i32.eq + (call $_sbrk (get_local $3) ) + (i32.const -1) ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (call $_sbrk - (get_local $3) + (block + (drop + (call $_sbrk + (get_local $4) + ) + ) + (br $label$break$L279) ) - (i32.const -1) - ) - (block - (drop - (call $_sbrk - (get_local $4) + (set_local $3 + (i32.add + (get_local $3) + (get_local $1) ) ) - (br $label$break$L279) ) (set_local $3 - (i32.add - (get_local $3) - (get_local $1) - ) + (get_local $1) ) ) (set_local $3 (get_local $1) ) ) - (set_local $3 - (get_local $1) - ) - ) - (if - (i32.ne - (get_local $2) - (i32.const -1) - ) - (block - (set_local $1 + (if + (i32.ne (get_local $2) + (i32.const -1) + ) + (block + (set_local $1 + (get_local $2) + ) + (br $__rjti$13) ) - (br $__rjti$13) ) ) - ) - (i32.store - (i32.const 620) - (i32.or - (i32.load - (i32.const 620) + (i32.store + (i32.const 620) + (i32.or + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (if - (i32.lt_u - (get_local $5) - (i32.const 2147483647) - ) (if - (i32.and - (i32.lt_u - (tee_local $1 - (call $_sbrk - (get_local $5) + (i32.lt_u + (get_local $5) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (tee_local $1 + (call $_sbrk + (get_local $5) + ) ) - ) - (tee_local $3 - (call $_sbrk - (i32.const 0) + (tee_local $3 + (call $_sbrk + (i32.const 0) + ) ) ) - ) - (i32.and - (i32.ne - (get_local $1) - (i32.const -1) - ) - (i32.ne - (get_local $3) - (i32.const -1) - ) - ) - ) - (br_if $__rjti$13 - (i32.gt_u - (tee_local $3 - (i32.sub - (get_local $3) + (i32.and + (i32.ne (get_local $1) + (i32.const -1) + ) + (i32.ne + (get_local $3) + (i32.const -1) ) ) - (i32.add - (get_local $0) - (i32.const 40) + ) + (br_if $__rjti$13 + (i32.gt_u + (tee_local $3 + (i32.sub + (get_local $3) + (get_local $1) + ) + ) + (i32.add + (get_local $0) + (i32.const 40) + ) ) ) ) ) + (br $__rjto$13) ) - (br $__rjto$13) - ) - (i32.store - (i32.const 608) - (tee_local $2 - (i32.add - (i32.load - (i32.const 608) + (i32.store + (i32.const 608) + (tee_local $2 + (i32.add + (i32.load + (i32.const 608) + ) + (get_local $3) ) - (get_local $3) - ) - ) - ) - (if - (i32.gt_u - (get_local $2) - (i32.load - (i32.const 612) ) ) - (i32.store - (i32.const 612) - (get_local $2) - ) - ) - (block $do-once40 (if - (tee_local $6 + (i32.gt_u + (get_local $2) (i32.load - (i32.const 200) + (i32.const 612) ) ) - (block - (set_local $2 - (i32.const 624) + (i32.store + (i32.const 612) + (get_local $2) + ) + ) + (block $do-once40 + (if + (tee_local $6 + (i32.load + (i32.const 200) + ) ) - (block $__rjto$10 - (block $__rjti$10 - (loop $while-in45 - (br_if $__rjti$10 - (i32.eq - (get_local $1) - (i32.add - (tee_local $11 - (i32.load - (get_local $2) + (block + (set_local $2 + (i32.const 624) + ) + (block $__rjto$10 + (block $__rjti$10 + (loop $while-in45 + (br_if $__rjti$10 + (i32.eq + (get_local $1) + (i32.add + (tee_local $11 + (i32.load + (get_local $2) + ) ) - ) - (tee_local $5 - (i32.load - (tee_local $4 - (i32.add - (get_local $2) - (i32.const 4) + (tee_local $5 + (i32.load + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 4) + ) ) ) ) ) ) ) - ) - (br_if $while-in45 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $while-in45 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) ) - ) - (br $__rjto$10) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const 8) - ) + (br $__rjto$10) ) (if - (i32.and - (i32.lt_u - (get_local $6) - (get_local $1) - ) - (i32.ge_u - (get_local $6) - (get_local $11) + (i32.eqz + (i32.and + (i32.load offset=12 + (get_local $2) + ) + (i32.const 8) ) ) - (block - (i32.store - (get_local $4) - (i32.add - (get_local $5) - (get_local $3) + (if + (i32.and + (i32.lt_u + (get_local $6) + (get_local $1) ) - ) - (set_local $2 - (i32.add + (i32.ge_u (get_local $6) - (tee_local $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $6) - (i32.const 8) + (get_local $11) + ) + ) + (block + (i32.store + (get_local $4) + (i32.add + (get_local $5) + (get_local $3) + ) + ) + (set_local $2 + (i32.add + (get_local $6) + (tee_local $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $6) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) - ) - (set_local $1 - (i32.add - (i32.sub - (get_local $3) - (get_local $1) - ) - (i32.load - (i32.const 188) + (set_local $1 + (i32.add + (i32.sub + (get_local $3) + (get_local $1) + ) + (i32.load + (i32.const 188) + ) ) ) - ) - (i32.store - (i32.const 200) - (get_local $2) - ) - (i32.store - (i32.const 188) - (get_local $1) - ) - (i32.store offset=4 - (get_local $2) - (i32.or + (i32.store + (i32.const 200) + (get_local $2) + ) + (i32.store + (i32.const 188) (get_local $1) - (i32.const 1) ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $1) + (i32.or + (get_local $1) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) + (br $do-once40) ) - (br $do-once40) ) ) ) - ) - (if - (i32.lt_u - (get_local $1) - (tee_local $4 - (i32.load + (if + (i32.lt_u + (get_local $1) + (tee_local $4 + (i32.load + (i32.const 192) + ) + ) + ) + (block + (i32.store (i32.const 192) + (get_local $1) + ) + (set_local $4 + (get_local $1) ) ) ) - (block - (i32.store - (i32.const 192) - (get_local $1) - ) - (set_local $4 + (set_local $11 + (i32.add (get_local $1) + (get_local $3) ) ) - ) - (set_local $11 - (i32.add - (get_local $1) - (get_local $3) + (set_local $2 + (i32.const 624) ) - ) - (set_local $2 - (i32.const 624) - ) - (block $__rjto$11 - (block $__rjti$11 - (loop $while-in47 - (if - (i32.eq - (i32.load - (get_local $2) + (block $__rjto$11 + (block $__rjti$11 + (loop $while-in47 + (if + (i32.eq + (i32.load + (get_local $2) + ) + (get_local $11) + ) + (block + (set_local $5 + (get_local $2) + ) + (br $__rjti$11) ) - (get_local $11) ) - (block - (set_local $5 - (get_local $2) + (br_if $while-in47 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) - (br $__rjti$11) + ) + (set_local $4 + (i32.const 624) ) ) - (br_if $while-in47 - (tee_local $2 - (i32.load offset=8 - (get_local $2) - ) + (br $__rjto$11) + ) + (if + (i32.and + (i32.load offset=12 + (get_local $2) ) + (i32.const 8) ) (set_local $4 (i32.const 624) ) - ) - (br $__rjto$11) - ) - (if - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const 8) - ) - (set_local $4 - (i32.const 624) - ) - (block - (i32.store - (get_local $5) - (get_local $1) - ) - (i32.store - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - (i32.add - (i32.load - (get_local $2) - ) - (get_local $3) + (block + (i32.store + (get_local $5) + (get_local $1) ) - ) - (set_local $8 - (i32.add - (tee_local $9 + (i32.store + (tee_local $2 (i32.add - (get_local $1) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) - ) - ) + (get_local $2) + (i32.const 4) ) ) - (get_local $0) + (i32.add + (i32.load + (get_local $2) + ) + (get_local $3) + ) ) - ) - (set_local $7 - (i32.sub - (i32.sub - (tee_local $5 + (set_local $8 + (i32.add + (tee_local $9 (i32.add - (get_local $11) + (get_local $1) (select (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $11) + (get_local $1) (i32.const 8) ) ) @@ -11458,1919 +11353,1948 @@ ) ) ) - (get_local $9) + (get_local $0) ) - (get_local $0) ) - ) - (i32.store offset=4 - (get_local $9) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (block $do-once48 - (if - (i32.eq - (get_local $5) - (get_local $6) - ) - (block - (i32.store - (i32.const 188) - (tee_local $0 + (set_local $7 + (i32.sub + (i32.sub + (tee_local $5 (i32.add - (i32.load - (i32.const 188) + (get_local $11) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $11) + (i32.const 8) + ) + ) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) + ) ) - (get_local $7) ) ) + (get_local $9) ) - (i32.store - (i32.const 200) - (get_local $8) + (get_local $0) + ) + ) + (i32.store offset=4 + (get_local $9) + (i32.or + (get_local $0) + (i32.const 3) + ) + ) + (block $do-once48 + (if + (i32.eq + (get_local $5) + (get_local $6) ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $0) - (i32.const 1) + (block + (i32.store + (i32.const 188) + (tee_local $0 + (i32.add + (i32.load + (i32.const 188) + ) + (get_local $7) + ) + ) ) - ) - ) - (block - (if - (i32.eq - (get_local $5) - (i32.load - (i32.const 196) + (i32.store + (i32.const 200) + (get_local $8) + ) + (i32.store offset=4 + (get_local $8) + (i32.or + (get_local $0) + (i32.const 1) ) ) - (block - (i32.store - (i32.const 184) - (tee_local $0 - (i32.add - (i32.load - (i32.const 184) + ) + (block + (if + (i32.eq + (get_local $5) + (i32.load + (i32.const 196) + ) + ) + (block + (i32.store + (i32.const 184) + (tee_local $0 + (i32.add + (i32.load + (i32.const 184) + ) + (get_local $7) ) - (get_local $7) ) ) - ) - (i32.store - (i32.const 196) - (get_local $8) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $0) - (i32.const 1) + (i32.store + (i32.const 196) + (get_local $8) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) + (i32.or + (get_local $0) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $8) + (get_local $0) + ) (get_local $0) ) - (get_local $0) + (br $do-once48) ) - (br $do-once48) ) - ) - (i32.store - (tee_local $0 - (i32.add - (tee_local $0 - (if (result i32) - (i32.eq - (i32.and - (tee_local $0 - (i32.load offset=4 - (get_local $5) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - (block (result i32) - (set_local $11 + (i32.store + (tee_local $0 + (i32.add + (tee_local $0 + (if (result i32) + (i32.eq (i32.and - (get_local $0) - (i32.const -8) - ) - ) - (set_local $1 - (i32.shr_u - (get_local $0) + (tee_local $0 + (i32.load offset=4 + (get_local $5) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$L331 - (if - (i32.lt_u + (block (result i32) + (set_local $11 + (i32.and (get_local $0) - (i32.const 256) + (i32.const -8) ) - (block - (set_local $2 - (i32.load offset=12 - (get_local $5) - ) + ) + (set_local $1 + (i32.shr_u + (get_local $0) + (i32.const 3) + ) + ) + (block $label$break$L331 + (if + (i32.lt_u + (get_local $0) + (i32.const 256) ) - (block $do-once51 - (if - (i32.ne - (tee_local $3 - (i32.load offset=8 - (get_local $5) - ) - ) - (tee_local $0 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (block + (set_local $2 + (i32.load offset=12 + (get_local $5) + ) + ) + (block $do-once51 + (if + (i32.ne + (tee_local $3 + (i32.load offset=8 + (get_local $5) ) - (i32.const 216) ) - ) - ) - (block - (if - (i32.lt_u - (get_local $3) - (get_local $4) + (tee_local $0 + (i32.add + (i32.shl + (get_local $1) + (i32.const 3) + ) + (i32.const 216) + ) ) - (call $_abort) ) - (br_if $do-once51 - (i32.eq - (i32.load offset=12 + (block + (if + (i32.lt_u (get_local $3) + (get_local $4) ) - (get_local $5) + (call $_abort) ) - ) - (call $_abort) - ) - ) - ) - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (i32.load - (i32.const 176) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (br_if $do-once51 + (i32.eq + (i32.load offset=12 + (get_local $3) + ) + (get_local $5) ) - (i32.const -1) ) + (call $_abort) ) ) - (br $label$break$L331) ) - ) - (block $do-once53 (if (i32.eq (get_local $2) - (get_local $0) + (get_local $3) ) - (set_local $15 - (i32.add - (get_local $2) - (i32.const 8) + (block + (i32.store + (i32.const 176) + (i32.and + (i32.load + (i32.const 176) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) + ) + ) ) + (br $label$break$L331) ) - (block - (if - (i32.lt_u + ) + (block $do-once53 + (if + (i32.eq + (get_local $2) + (get_local $0) + ) + (set_local $15 + (i32.add (get_local $2) - (get_local $4) + (i32.const 8) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $2) - (i32.const 8) + (block + (if + (i32.lt_u + (get_local $2) + (get_local $4) + ) + (call $_abort) + ) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (set_local $15 - (get_local $0) + (block + (set_local $15 + (get_local $0) + ) + (br $do-once53) ) - (br $do-once53) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=12 - (get_local $3) - (get_local $2) - ) - (i32.store - (get_local $15) - (get_local $3) - ) - ) - (block - (set_local $6 - (i32.load offset=24 - (get_local $5) + (i32.store offset=12 + (get_local $3) + (get_local $2) + ) + (i32.store + (get_local $15) + (get_local $3) ) ) - (block $do-once55 - (if - (i32.eq - (tee_local $0 - (i32.load offset=12 - (get_local $5) - ) - ) + (block + (set_local $6 + (i32.load offset=24 (get_local $5) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (tee_local $3 - (i32.add - (get_local $5) - (i32.const 16) + ) + (block $do-once55 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $5) + ) + ) + (get_local $5) + ) + (block + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (tee_local $3 + (i32.add + (get_local $5) + (i32.const 16) + ) ) + (i32.const 4) ) - (i32.const 4) ) ) ) ) - ) - (if - (tee_local $1 - (i32.load + (if + (tee_local $1 + (i32.load + (get_local $3) + ) + ) + (set_local $0 (get_local $3) ) + (block + (set_local $12 + (i32.const 0) + ) + (br $do-once55) + ) ) - (set_local $0 - (get_local $3) + ) + (loop $while-in58 + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 20) + ) + ) + ) + ) + (block + (set_local $1 + (get_local $3) + ) + (set_local $0 + (get_local $2) + ) + (br $while-in58) + ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) + ) + (block + (set_local $1 + (get_local $3) + ) + (set_local $0 + (get_local $2) + ) + (br $while-in58) + ) + ) + ) + (if + (i32.lt_u + (get_local $0) + (get_local $4) ) + (call $_abort) (block - (set_local $12 + (i32.store + (get_local $0) (i32.const 0) ) - (br $do-once55) + (set_local $12 + (get_local $1) + ) ) ) ) - (loop $while-in58 + (block (if - (tee_local $3 + (i32.lt_u + (tee_local $2 + (i32.load offset=8 + (get_local $5) + ) + ) + (get_local $4) + ) + (call $_abort) + ) + (if + (i32.ne (i32.load - (tee_local $2 + (tee_local $3 (i32.add - (get_local $1) - (i32.const 20) + (get_local $2) + (i32.const 12) ) ) ) + (get_local $5) ) - (block - (set_local $1 - (get_local $3) - ) - (set_local $0 - (get_local $2) - ) - (br $while-in58) - ) + (call $_abort) ) (if - (tee_local $3 + (i32.eq (i32.load - (tee_local $2 + (tee_local $1 (i32.add - (get_local $1) - (i32.const 16) + (get_local $0) + (i32.const 8) ) ) ) + (get_local $5) ) (block - (set_local $1 + (i32.store (get_local $3) + (get_local $0) ) - (set_local $0 + (i32.store + (get_local $1) (get_local $2) ) - (br $while-in58) - ) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $4) - ) - (call $_abort) - (block - (i32.store - (get_local $0) - (i32.const 0) - ) - (set_local $12 - (get_local $1) + (set_local $12 + (get_local $0) + ) ) + (call $_abort) ) ) ) - (block - (if - (i32.lt_u - (tee_local $2 - (i32.load offset=8 - (get_local $5) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $6) + ) + ) + (block $do-once59 + (if + (i32.eq + (get_local $5) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $5) + ) + ) + (i32.const 2) + ) + (i32.const 480) ) ) - (get_local $4) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 12) + (block + (i32.store + (get_local $0) + (get_local $12) + ) + (br_if $do-once59 + (get_local $12) + ) + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) ) + (i32.const -1) ) ) - (get_local $5) ) - (call $_abort) + (br $label$break$L331) ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) - ) + (block + (if + (i32.lt_u + (get_local $6) + (i32.load + (i32.const 192) ) ) - (get_local $5) + (call $_abort) ) - (block + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $6) + (i32.const 16) + ) + ) + ) + (get_local $5) + ) (i32.store - (get_local $3) (get_local $0) + (get_local $12) ) - (i32.store - (get_local $1) - (get_local $2) + (i32.store offset=20 + (get_local $6) + (get_local $12) ) - (set_local $12 - (get_local $0) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $12) ) ) - (call $_abort) ) ) ) - ) - (br_if $label$break$L331 - (i32.eqz + (if + (i32.lt_u + (get_local $12) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (call $_abort) + ) + (i32.store offset=24 + (get_local $12) (get_local $6) ) - ) - (block $do-once59 (if - (i32.eq - (get_local $5) + (tee_local $3 (i32.load (tee_local $0 (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $5) - ) - ) - (i32.const 2) - ) - (i32.const 480) - ) - ) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $12) - ) - (br_if $do-once59 - (get_local $12) - ) - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) - ) - (i32.const -1) + (get_local $5) + (i32.const 16) ) ) ) - (br $label$break$L331) ) - (block - (if - (i32.lt_u - (get_local $6) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) + (if + (i32.lt_u + (get_local $3) + (get_local $1) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $6) - (i32.const 16) - ) - ) - ) - (get_local $5) - ) - (i32.store - (get_local $0) - (get_local $12) - ) - (i32.store offset=20 - (get_local $6) + (call $_abort) + (block + (i32.store offset=16 (get_local $12) + (get_local $3) ) - ) - (br_if $label$break$L331 - (i32.eqz + (i32.store offset=24 + (get_local $3) (get_local $12) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $12) - (tee_local $1 - (i32.load - (i32.const 192) - ) - ) - ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $12) - (get_local $6) - ) - (if - (tee_local $3 - (i32.load + (br_if $label$break$L331 + (i32.eqz (tee_local $0 - (i32.add - (get_local $5) - (i32.const 16) + (i32.load offset=4 + (get_local $0) ) ) ) ) (if (i32.lt_u - (get_local $3) - (get_local $1) + (get_local $0) + (i32.load + (i32.const 192) + ) ) (call $_abort) (block - (i32.store offset=16 + (i32.store offset=20 (get_local $12) - (get_local $3) + (get_local $0) ) (i32.store offset=24 - (get_local $3) - (get_local $12) - ) - ) - ) - ) - (br_if $label$break$L331 - (i32.eqz - (tee_local $0 - (i32.load offset=4 (get_local $0) + (get_local $12) ) ) ) ) - (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $12) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) - (get_local $12) - ) - ) - ) ) ) - ) - (set_local $7 + (set_local $7 + (i32.add + (get_local $11) + (get_local $7) + ) + ) (i32.add + (get_local $5) (get_local $11) - (get_local $7) ) ) - (i32.add - (get_local $5) - (get_local $11) - ) + (get_local $5) ) - (get_local $5) ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.and - (i32.load - (get_local $0) + (i32.and + (i32.load + (get_local $0) + ) + (i32.const -2) ) - (i32.const -2) ) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $7) - (i32.const 1) - ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) - (get_local $7) + (i32.or + (get_local $7) + (i32.const 1) + ) ) - (get_local $7) - ) - (set_local $0 - (i32.shr_u + (i32.store + (i32.add + (get_local $8) + (get_local $7) + ) (get_local $7) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $7) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $7) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (if + (i32.lt_u + (get_local $7) + (i32.const 256) + ) + (block + (set_local $3 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 216) ) - (i32.const 216) ) - ) - (block $do-once63 - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) + (block $do-once63 + (if + (i32.and + (tee_local $1 + (i32.load + (i32.const 176) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) ) ) - ) - (block - (if - (i32.ge_u - (tee_local $0 - (i32.load - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 8) + (block + (if + (i32.ge_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (block + (set_local $16 + (get_local $1) + ) + (set_local $10 + (get_local $0) + ) + (br $do-once63) ) ) - (block - (set_local $16 + (call $_abort) + ) + (block + (i32.store + (i32.const 176) + (i32.or (get_local $1) - ) - (set_local $10 (get_local $0) ) - (br $do-once63) ) - ) - (call $_abort) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) + (set_local $16 + (i32.add + (get_local $3) + (i32.const 8) + ) ) - ) - (set_local $16 - (i32.add + (set_local $10 (get_local $3) - (i32.const 8) ) ) - (set_local $10 - (get_local $3) - ) ) ) + (i32.store + (get_local $16) + (get_local $8) + ) + (i32.store offset=12 + (get_local $10) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $10) + ) + (i32.store offset=12 + (get_local $8) + (get_local $3) + ) + (br $do-once48) ) - (i32.store - (get_local $16) - (get_local $8) - ) - (i32.store offset=12 - (get_local $10) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $10) - ) - (i32.store offset=12 - (get_local $8) - (get_local $3) - ) - (br $do-once48) ) - ) - (set_local $3 - (i32.add - (i32.shl - (tee_local $2 - (block $do-once65 (result i32) - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $7) - (i32.const 8) + (set_local $3 + (i32.add + (i32.shl + (tee_local $2 + (block $do-once65 (result i32) + (if (result i32) + (tee_local $0 + (i32.shr_u + (get_local $7) + (i32.const 8) + ) ) - ) - (block (result i32) - (drop - (br_if $do-once65 - (i32.const 31) - (i32.gt_u - (get_local $7) - (i32.const 16777215) + (block (result i32) + (drop + (br_if $do-once65 + (i32.const 31) + (i32.gt_u + (get_local $7) + (i32.const 16777215) + ) ) ) - ) - (i32.or - (i32.and - (i32.shr_u - (get_local $7) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $7) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $8) - (get_local $2) - ) - (i32.store offset=4 - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 16) + (i32.store offset=28 + (get_local $8) + (get_local $2) + ) + (i32.store offset=4 + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $1 - (i32.load - (i32.const 180) + (i32.store + (get_local $0) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $1 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $2) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $2) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $1) - (get_local $0) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $1) + (get_local $0) + ) ) + (i32.store + (get_local $3) + (get_local $8) + ) + (i32.store offset=24 + (get_local $8) + (get_local $3) + ) + (i32.store offset=12 + (get_local $8) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $8) + ) + (br $do-once48) ) - (i32.store - (get_local $3) - (get_local $8) - ) - (i32.store offset=24 - (get_local $8) - (get_local $3) - ) - (i32.store offset=12 - (get_local $8) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $8) - ) - (br $do-once48) ) - ) - (set_local $2 - (i32.shl - (get_local $7) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $2 + (i32.shl + (get_local $7) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $2) + (i32.const 1) + ) + ) + (i32.eq (get_local $2) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $2) - (i32.const 31) - ) ) ) - ) - (set_local $0 - (i32.load - (get_local $3) + (set_local $0 + (i32.load + (get_local $3) + ) ) - ) - (block $__rjto$7 - (block $__rjti$7 - (loop $while-in68 - (br_if $__rjti$7 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $0) + (block $__rjto$7 + (block $__rjti$7 + (loop $while-in68 + (br_if $__rjti$7 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $7) ) - (get_local $7) ) - ) - (set_local $3 - (i32.shl - (get_local $2) - (i32.const 1) + (set_local $3 + (i32.shl + (get_local $2) + (i32.const 1) + ) ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $2 - (i32.add + (if + (tee_local $1 + (i32.load + (tee_local $2 (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $2) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $2) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $2 + (get_local $3) + ) + (set_local $0 + (get_local $1) + ) + (br $while-in68) + ) ) + ) + (if + (i32.lt_u + (get_local $2) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) (block - (set_local $2 - (get_local $3) + (i32.store + (get_local $2) + (get_local $8) ) - (set_local $0 - (get_local $1) + (i32.store offset=24 + (get_local $8) + (get_local $0) + ) + (i32.store offset=12 + (get_local $8) + (get_local $8) ) - (br $while-in68) + (i32.store offset=8 + (get_local $8) + (get_local $8) + ) + (br $do-once48) ) ) + (br $__rjto$7) ) (if - (i32.lt_u - (get_local $2) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $2 + (i32.load + (tee_local $3 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $0) + (get_local $1) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (get_local $2) (get_local $8) ) - (i32.store offset=24 - (get_local $8) - (get_local $0) - ) - (i32.store offset=12 - (get_local $8) + (i32.store + (get_local $3) (get_local $8) ) (i32.store offset=8 (get_local $8) - (get_local $8) + (get_local $2) ) - (br $do-once48) - ) - ) - (br $__rjto$7) - ) - (if - (i32.and - (i32.ge_u - (tee_local $2 - (i32.load - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (get_local $8) + (get_local $0) ) - (tee_local $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (get_local $8) + (i32.const 0) ) ) - (i32.ge_u - (get_local $0) - (get_local $1) - ) - ) - (block - (i32.store offset=12 - (get_local $2) - (get_local $8) - ) - (i32.store - (get_local $3) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $2) - ) - (i32.store offset=12 - (get_local $8) - (get_local $0) - ) - (i32.store offset=24 - (get_local $8) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (return - (i32.add - (get_local $9) - (i32.const 8) + (return + (i32.add + (get_local $9) + (i32.const 8) + ) ) ) ) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.le_u - (tee_local $2 - (i32.load - (get_local $4) + (loop $while-in70 + (block $while-out69 + (if + (i32.le_u + (tee_local $2 + (i32.load + (get_local $4) + ) ) + (get_local $6) ) - (get_local $6) - ) - (br_if $while-out69 - (i32.gt_u - (tee_local $2 - (i32.add - (get_local $2) - (i32.load offset=4 - (get_local $4) + (br_if $while-out69 + (i32.gt_u + (tee_local $2 + (i32.add + (get_local $2) + (i32.load offset=4 + (get_local $4) + ) ) ) + (get_local $6) ) - (get_local $6) ) ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $4) + (set_local $4 + (i32.load offset=8 + (get_local $4) + ) ) + (br $while-in70) ) - (br $while-in70) ) - ) - (set_local $10 - (i32.add - (tee_local $4 - (i32.add - (get_local $2) - (i32.const -47) + (set_local $10 + (i32.add + (tee_local $4 + (i32.add + (get_local $2) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (set_local $12 - (i32.add - (tee_local $11 - (select - (get_local $6) - (tee_local $4 - (i32.add - (get_local $4) - (select - (i32.and - (i32.sub - (i32.const 0) + (set_local $12 + (i32.add + (tee_local $11 + (select + (get_local $6) + (tee_local $4 + (i32.add + (get_local $4) + (select + (i32.and + (i32.sub + (i32.const 0) + (get_local $10) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and (get_local $10) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $10) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (get_local $4) - (tee_local $10 - (i32.add - (get_local $6) - (i32.const 16) + (i32.lt_u + (get_local $4) + (tee_local $10 + (i32.add + (get_local $6) + (i32.const 16) + ) ) ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 200) - (tee_local $5 - (i32.add - (get_local $1) - (tee_local $4 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $4 - (i32.add - (get_local $1) - (i32.const 8) + (i32.store + (i32.const 200) + (tee_local $5 + (i32.add + (get_local $1) + (tee_local $4 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $4 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $4) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 188) - (tee_local $4 - (i32.sub - (i32.add - (get_local $3) - (i32.const -40) + (i32.store + (i32.const 188) + (tee_local $4 + (i32.sub + (i32.add + (get_local $3) + (i32.const -40) + ) + (get_local $4) ) + ) + ) + (i32.store offset=4 + (get_local $5) + (i32.or (get_local $4) + (i32.const 1) ) ) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $4) - (i32.const 1) + (i32.store offset=4 + (i32.add + (get_local $5) + (get_local $4) + ) + (i32.const 40) ) - ) - (i32.store offset=4 - (i32.add - (get_local $5) - (get_local $4) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store + (tee_local $4 + (i32.add + (get_local $11) + (i32.const 4) + ) + ) + (i32.const 27) ) - ) - (i32.store - (tee_local $4 - (i32.add - (get_local $11) - (i32.const 4) + (i32.store + (get_local $12) + (i32.load + (i32.const 624) ) ) - (i32.const 27) - ) - (i32.store - (get_local $12) - (i32.load + (i32.store offset=4 + (get_local $12) + (i32.load + (i32.const 628) + ) + ) + (i32.store offset=8 + (get_local $12) + (i32.load + (i32.const 632) + ) + ) + (i32.store offset=12 + (get_local $12) + (i32.load + (i32.const 636) + ) + ) + (i32.store (i32.const 624) + (get_local $1) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.load + (i32.store (i32.const 628) + (get_local $3) ) - ) - (i32.store offset=8 - (get_local $12) - (i32.load - (i32.const 632) - ) - ) - (i32.store offset=12 - (get_local $12) - (i32.load + (i32.store (i32.const 636) + (i32.const 0) ) - ) - (i32.store - (i32.const 624) - (get_local $1) - ) - (i32.store - (i32.const 628) - (get_local $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 632) - (get_local $12) - ) - (set_local $1 - (i32.add - (get_local $11) - (i32.const 24) - ) - ) - (loop $while-in72 (i32.store - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 632) + (get_local $12) ) - (br_if $while-in72 - (i32.lt_u - (i32.add - (get_local $1) - (i32.const 4) - ) - (get_local $2) + (set_local $1 + (i32.add + (get_local $11) + (i32.const 24) ) ) - ) - (if - (i32.ne - (get_local $11) - (get_local $6) - ) - (block + (loop $while-in72 (i32.store - (get_local $4) - (i32.and - (i32.load - (get_local $4) + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (get_local $6) - (i32.or - (tee_local $5 - (i32.sub - (get_local $11) - (get_local $6) - ) + (br_if $while-in72 + (i32.lt_u + (i32.add + (get_local $1) + (i32.const 4) ) - (i32.const 1) + (get_local $2) ) ) - (i32.store + ) + (if + (i32.ne (get_local $11) - (get_local $5) - ) - (set_local $1 - (i32.shr_u - (get_local $5) - (i32.const 3) - ) + (get_local $6) ) - (if - (i32.lt_u - (get_local $5) - (i32.const 256) + (block + (i32.store + (get_local $4) + (i32.and + (i32.load + (get_local $4) + ) + (i32.const -2) + ) ) - (block - (set_local $2 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (i32.store offset=4 + (get_local $6) + (i32.or + (tee_local $5 + (i32.sub + (get_local $11) + (get_local $6) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 + ) + (i32.store + (get_local $11) + (get_local $5) + ) + (set_local $1 + (i32.shr_u + (get_local $5) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (get_local $5) + (i32.const 256) + ) + (block + (set_local $2 + (i32.add (i32.shl - (i32.const 1) (get_local $1) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $1 + (i32.and + (tee_local $3 (i32.load - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $1) + ) + ) + ) + (if + (i32.lt_u + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $17 + (get_local $3) + ) + (set_local $7 + (get_local $1) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $1) + ) + ) (set_local $17 - (get_local $3) + (i32.add + (get_local $2) + (i32.const 8) + ) ) (set_local $7 - (get_local $1) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $3) - (get_local $1) - ) - ) - (set_local $17 - (i32.add (get_local $2) - (i32.const 8) ) ) - (set_local $7 - (get_local $2) - ) ) + (i32.store + (get_local $17) + (get_local $6) + ) + (i32.store offset=12 + (get_local $7) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $7) + ) + (i32.store offset=12 + (get_local $6) + (get_local $2) + ) + (br $do-once40) ) - (i32.store - (get_local $17) - (get_local $6) - ) - (i32.store offset=12 - (get_local $7) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $7) - ) - (i32.store offset=12 - (get_local $6) - (get_local $2) - ) - (br $do-once40) ) - ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $4 - (if (result i32) - (tee_local $1 - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - ) + (set_local $2 + (i32.add + (i32.shl + (tee_local $4 (if (result i32) - (i32.gt_u - (get_local $5) - (i32.const 16777215) + (tee_local $1 + (i32.shr_u + (get_local $5) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (tee_local $1 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $5) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $5) + (i32.add + (tee_local $1 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $1) - (tee_local $2 - (i32.and - (i32.shr_u - (i32.add - (get_local $1) - (i32.const 1048320) + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $1) + (tee_local $2 + (i32.and + (i32.shr_u + (i32.add + (get_local $1) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $2) ) - (get_local $2) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $3) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $3) + (get_local $1) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $3) - (get_local $1) + (i32.shr_u + (i32.shl + (get_local $3) + (get_local $1) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $1) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $1) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $6) - (get_local $4) - ) - (i32.store offset=20 - (get_local $6) - (i32.const 0) - ) - (i32.store - (get_local $10) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 180) + (i32.store offset=28 + (get_local $6) + (get_local $4) + ) + (i32.store offset=20 + (get_local $6) + (i32.const 0) + ) + (i32.store + (get_local $10) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $4) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $4) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $3) - (get_local $1) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $3) + (get_local $1) + ) ) + (i32.store + (get_local $2) + (get_local $6) + ) + (i32.store offset=24 + (get_local $6) + (get_local $2) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once40) ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=24 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $6) - ) - (br $do-once40) ) - ) - (set_local $4 - (i32.shl - (get_local $5) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $4 + (i32.shl + (get_local $5) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $4) + (i32.const 1) + ) + ) + (i32.eq (get_local $4) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $4) - (i32.const 31) - ) ) ) - ) - (set_local $1 - (i32.load - (get_local $2) + (set_local $1 + (i32.load + (get_local $2) + ) ) - ) - (block $__rjto$9 - (block $__rjti$9 - (loop $while-in74 - (br_if $__rjti$9 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $1) + (block $__rjto$9 + (block $__rjti$9 + (loop $while-in74 + (br_if $__rjti$9 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $1) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $5) ) - (get_local $5) ) - ) - (set_local $2 - (i32.shl - (get_local $4) - (i32.const 1) + (set_local $2 + (i32.shl + (get_local $4) + (i32.const 1) + ) ) - ) - (if - (tee_local $3 - (i32.load - (tee_local $4 - (i32.add + (if + (tee_local $3 + (i32.load + (tee_local $4 (i32.add - (get_local $1) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $4) - (i32.const 31) + (i32.add + (get_local $1) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $4) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $4 + (get_local $2) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in74) + ) + ) + ) + (if + (i32.lt_u + (get_local $4) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (set_local $4 - (get_local $2) + (i32.store + (get_local $4) + (get_local $6) ) - (set_local $1 - (get_local $3) + (i32.store offset=24 + (get_local $6) + (get_local $1) ) - (br $while-in74) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once40) ) ) + (br $__rjto$9) ) (if - (i32.lt_u - (get_local $4) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $4 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 8) + ) + ) + ) + ) + (tee_local $3 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $1) + (get_local $3) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (get_local $4) (get_local $6) ) - (i32.store offset=24 - (get_local $6) - (get_local $1) - ) - (i32.store offset=12 - (get_local $6) + (i32.store + (get_local $2) (get_local $6) ) (i32.store offset=8 (get_local $6) - (get_local $6) + (get_local $4) ) - (br $do-once40) - ) - ) - (br $__rjto$9) - ) - (if - (i32.and - (i32.ge_u - (tee_local $4 - (i32.load - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (get_local $6) + (get_local $1) ) - (tee_local $3 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (get_local $6) + (i32.const 0) ) ) - (i32.ge_u - (get_local $1) - (get_local $3) - ) - ) - (block - (i32.store offset=12 - (get_local $4) - (get_local $6) - ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - (i32.store offset=12 - (get_local $6) - (get_local $1) - ) - (i32.store offset=24 - (get_local $6) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (tee_local $2 - (i32.load - (i32.const 192) + (block + (if + (i32.or + (i32.eqz + (tee_local $2 + (i32.load + (i32.const 192) + ) ) ) + (i32.lt_u + (get_local $1) + (get_local $2) + ) ) - (i32.lt_u + (i32.store + (i32.const 192) (get_local $1) - (get_local $2) ) ) (i32.store - (i32.const 192) + (i32.const 624) (get_local $1) ) - ) - (i32.store - (i32.const 624) - (get_local $1) - ) - (i32.store - (i32.const 628) - (get_local $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) + (i32.store + (i32.const 628) + (get_local $3) ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (set_local $2 - (i32.const 0) - ) - (loop $while-in43 - (i32.store offset=12 - (tee_local $4 - (i32.add - (i32.shl - (get_local $2) - (i32.const 3) - ) - (i32.const 216) - ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) + (i32.load + (i32.const 648) ) - (get_local $4) ) - (i32.store offset=8 - (get_local $4) - (get_local $4) + (i32.store + (i32.const 208) + (i32.const -1) ) - (br_if $while-in43 - (i32.ne - (tee_local $2 + (set_local $2 + (i32.const 0) + ) + (loop $while-in43 + (i32.store offset=12 + (tee_local $4 (i32.add - (get_local $2) - (i32.const 1) + (i32.shl + (get_local $2) + (i32.const 3) + ) + (i32.const 216) ) ) - (i32.const 32) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + (br_if $while-in43 + (i32.ne + (tee_local $2 + (i32.add + (get_local $2) + (i32.const 1) + ) + ) + (i32.const 32) + ) ) ) - ) - (i32.store - (i32.const 200) - (tee_local $2 - (i32.add - (get_local $1) - (tee_local $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 8) + (i32.store + (i32.const 200) + (tee_local $2 + (i32.add + (get_local $1) + (tee_local $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 188) - (tee_local $1 - (i32.sub - (i32.add - (get_local $3) - (i32.const -40) + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (i32.add + (get_local $3) + (i32.const -40) + ) + (get_local $1) ) + ) + ) + (i32.store offset=4 + (get_local $2) + (i32.or (get_local $1) + (i32.const 1) ) ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $1) - (i32.const 1) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 40) ) - ) - (i32.store offset=4 - (i32.add - (get_local $2) - (get_local $1) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) - (i32.const 40) ) - (i32.store - (i32.const 204) + ) + ) + (br_if $folding-inner0 + (i32.gt_u + (tee_local $1 (i32.load - (i32.const 664) + (i32.const 188) ) ) + (get_local $0) ) ) ) - (if - (i32.gt_u - (tee_local $1 - (i32.load - (i32.const 188) - ) - ) + (i32.store + (call $___errno_location) + (i32.const 12) + ) + (return + (i32.const 0) + ) + ) + (i32.store + (i32.const 188) + (tee_local $3 + (i32.sub + (get_local $1) (get_local $0) ) - (block - (i32.store - (i32.const 188) - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) - ) - ) - (i32.store - (i32.const 200) - (tee_local $1 - (i32.add - (tee_local $2 - (i32.load - (i32.const 200) - ) - ) - (get_local $0) - ) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $3) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) + ) + ) + (i32.store + (i32.const 200) + (tee_local $1 + (i32.add + (tee_local $2 + (i32.load + (i32.const 200) ) ) + (get_local $0) ) ) ) - (i32.store - (call $___errno_location) - (i32.const 12) + (i32.store offset=4 + (get_local $1) + (i32.or + (get_local $3) + (i32.const 1) + ) + ) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $0) + (i32.const 3) + ) + ) + (i32.add + (get_local $2) + (i32.const 8) ) - (i32.const 0) ) (func $_free (param $0 i32) (local $1 i32) diff --git a/test/emcc_hello_world.fromasm.clamp b/test/emcc_hello_world.fromasm.clamp index 24b65fc1f..80a1f92b2 100644 --- a/test/emcc_hello_world.fromasm.clamp +++ b/test/emcc_hello_world.fromasm.clamp @@ -294,26 +294,20 @@ (set_local $1 (i32.const 87) ) - (set_local $0 - (i32.const 775) - ) (br $__rjti$1) ) ) - (if + (br_if $__rjti$1 (get_local $1) - (block - (set_local $0 - (i32.const 775) - ) - (br $__rjti$1) - ) - (set_local $0 - (i32.const 775) - ) + ) + (set_local $0 + (i32.const 775) ) (br $__rjto$1) ) + (set_local $0 + (i32.const 775) + ) (loop $while-in1 (loop $while-in3 (set_local $2 @@ -954,35 +948,34 @@ (get_local $5) ) ) - (if (result i32) - (i32.eq - (get_local $4) - (i32.const 2) - ) - (block (result i32) - (i32.store - (get_local $6) - (i32.add - (i32.load - (get_local $6) + (block (result i32) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $6) + (i32.add + (i32.load + (get_local $6) + ) + (get_local $3) ) - (get_local $3) + ) + (set_local $7 + (get_local $5) + ) + (set_local $4 + (i32.const 2) ) ) (set_local $7 (get_local $5) ) - (set_local $4 - (i32.const 2) - ) - (get_local $3) - ) - (block (result i32) - (set_local $7 - (get_local $5) - ) - (get_local $3) ) + (get_local $3) ) ) ) @@ -1859,7 +1852,7 @@ (get_local $0) ) (loop $while-in - (if + (br_if $__rjti$2 (i32.eq (i32.load8_u (get_local $2) @@ -1869,12 +1862,6 @@ (i32.const 255) ) ) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) ) (br_if $while-in (i32.and @@ -1917,20 +1904,17 @@ ) ) ) - (if + (br_if $__rjti$2 (get_local $0) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) - (set_local $0 - (i32.const 0) - ) + ) + (set_local $0 + (i32.const 0) ) (br $label$break$L8) ) + (set_local $0 + (get_local $3) + ) (if (i32.ne (i32.load8_u @@ -2945,34 +2929,31 @@ (get_local $6) ) ) - (set_local $1 - (if (result i32) - (i32.lt_s - (get_local $14) - (i32.const 0) - ) - (block (result i32) - (set_local $11 - (i32.or - (get_local $1) - (i32.const 8192) - ) - ) - (set_local $14 - (i32.sub - (i32.const 0) - (get_local $14) - ) + (if + (i32.lt_s + (get_local $14) + (i32.const 0) + ) + (block + (set_local $11 + (i32.or + (get_local $1) + (i32.const 8192) ) - (get_local $8) ) - (block (result i32) - (set_local $11 - (get_local $1) + (set_local $14 + (i32.sub + (i32.const 0) + (get_local $14) ) - (get_local $8) ) ) + (set_local $11 + (get_local $1) + ) + ) + (set_local $1 + (get_local $8) ) ) (if @@ -3812,13 +3793,6 @@ ) ) ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$8) ) (block (set_local $5 @@ -3827,15 +3801,15 @@ (set_local $7 (get_local $11) ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$8) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) (set_local $5 (i32.load @@ -3894,7 +3868,6 @@ (set_local $9 (i32.const 4092) ) - (br $__rjti$4) ) (block (set_local $8 @@ -3912,9 +3885,9 @@ (get_local $9) ) ) - (br $__rjti$4) ) ) + (br $__rjti$4) ) (set_local $5 (i32.load @@ -6639,7 +6612,6 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$8) ) (block (set_local $8 @@ -6654,9 +6626,9 @@ (i32.const 4091) ) ) - (br $__rjti$8) ) ) + (br $__rjti$8) ) ) ) @@ -6922,7 +6894,7 @@ ) ) ) - (if (result i32) + (if (i32.or (get_local $6) (tee_local $12 @@ -6944,7 +6916,7 @@ ) ) ) - (block (result i32) + (block (set_local $7 (get_local $5) ) @@ -6972,18 +6944,17 @@ ) ) ) - (get_local $22) ) - (block (result i32) + (block (set_local $7 (get_local $22) ) (set_local $12 (i32.const 0) ) - (get_local $22) ) ) + (get_local $22) ) ) (call $_pad @@ -7889,258 +7860,274 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (block $do-once - (if - (i32.lt_u - (get_local $0) - (i32.const 245) - ) - (block - (if - (i32.and - (tee_local $5 - (i32.shr_u - (tee_local $11 - (i32.load - (i32.const 176) + (block $folding-inner0 + (block $do-once + (if + (i32.lt_u + (get_local $0) + (i32.const 245) + ) + (block + (if + (i32.and + (tee_local $5 + (i32.shr_u + (tee_local $11 + (i32.load + (i32.const 176) + ) ) - ) - (tee_local $13 - (i32.shr_u - (tee_local $4 - (select - (i32.const 16) - (i32.and - (i32.add + (tee_local $13 + (i32.shr_u + (tee_local $4 + (select + (i32.const 16) + (i32.and + (i32.add + (get_local $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (get_local $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (get_local $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (set_local $10 - (i32.load - (tee_local $1 - (i32.add - (tee_local $7 - (i32.load - (tee_local $3 - (i32.add - (tee_local $2 - (i32.add - (i32.shl - (tee_local $4 - (i32.add - (i32.xor - (i32.and - (get_local $5) + (block + (set_local $10 + (i32.load + (tee_local $1 + (i32.add + (tee_local $7 + (i32.load + (tee_local $3 + (i32.add + (tee_local $2 + (i32.add + (i32.shl + (tee_local $4 + (i32.add + (i32.xor + (i32.and + (get_local $5) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) + (get_local $13) ) - (get_local $13) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 216) ) - (i32.const 216) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $2) - (get_local $10) - ) - (i32.store - (i32.const 176) - (i32.and - (get_local $11) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $4) - ) - (i32.const -1) - ) + (if + (i32.eq + (get_local $2) + (get_local $10) ) - ) - (block - (if - (i32.lt_u - (get_local $10) - (i32.load - (i32.const 192) + (i32.store + (i32.const 176) + (i32.and + (get_local $11) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $4) + ) + (i32.const -1) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $10) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $10) + (i32.load + (i32.const 192) ) ) - (get_local $7) + (call $_abort) ) - (block - (i32.store - (get_local $0) - (get_local $2) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $10) + (i32.const 12) + ) + ) + ) + (get_local $7) ) - (i32.store - (get_local $3) - (get_local $10) + (block + (i32.store + (get_local $0) + (get_local $2) + ) + (i32.store + (get_local $3) + (get_local $10) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (get_local $7) - (i32.or - (tee_local $0 - (i32.shl - (get_local $4) - (i32.const 3) + (i32.store offset=4 + (get_local $7) + (i32.or + (tee_local $0 + (i32.shl + (get_local $4) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $7) + (i32.add + (get_local $7) + (get_local $0) + ) + (i32.const 4) + ) + ) + (i32.or + (i32.load (get_local $0) ) - (i32.const 4) + (i32.const 1) ) ) - (i32.or - (i32.load - (get_local $0) - ) - (i32.const 1) + (return + (get_local $1) ) ) - (return - (get_local $1) - ) ) - ) - (if - (i32.gt_u - (get_local $4) - (tee_local $0 - (i32.load - (i32.const 184) + (if + (i32.gt_u + (get_local $4) + (tee_local $0 + (i32.load + (i32.const 184) + ) ) ) - ) - (block - (if - (get_local $5) - (block - (set_local $10 - (i32.and - (i32.shr_u - (tee_local $3 - (i32.add - (i32.and - (tee_local $3 - (i32.and - (i32.shl - (get_local $5) - (get_local $13) - ) - (i32.or - (tee_local $3 - (i32.shl - (i32.const 2) - (get_local $13) - ) + (block + (if + (get_local $5) + (block + (set_local $10 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.add + (i32.and + (tee_local $3 + (i32.and + (i32.shl + (get_local $5) + (get_local $13) ) - (i32.sub - (i32.const 0) - (get_local $3) + (i32.or + (tee_local $3 + (i32.shl + (i32.const 2) + (get_local $13) + ) + ) + (i32.sub + (i32.const 0) + (get_local $3) + ) ) ) ) + (i32.sub + (i32.const 0) + (get_local $3) + ) ) - (i32.sub - (i32.const 0) - (get_local $3) - ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $9 - (i32.load - (tee_local $7 - (i32.add - (tee_local $12 - (i32.load - (tee_local $3 - (i32.add - (tee_local $10 - (i32.add - (i32.shl - (tee_local $5 - (i32.add - (i32.or + (set_local $9 + (i32.load + (tee_local $7 + (i32.add + (tee_local $12 + (i32.load + (tee_local $3 + (i32.add + (tee_local $10 + (i32.add + (i32.shl + (tee_local $5 + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $3 + (i32.and + (i32.shr_u + (tee_local $7 + (i32.shr_u + (get_local $3) + (get_local $10) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $10) + ) (tee_local $3 (i32.and (i32.shr_u (tee_local $7 (i32.shr_u + (get_local $7) (get_local $3) - (get_local $10) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $10) ) (tee_local $3 (i32.and @@ -8151,9 +8138,9 @@ (get_local $3) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -8168,310 +8155,310 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $3 - (i32.and - (i32.shr_u - (tee_local $7 - (i32.shr_u - (get_local $7) - (get_local $3) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) - ) - (i32.shr_u - (get_local $7) - (get_local $3) + (i32.shr_u + (get_local $7) + (get_local $3) + ) ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 216) ) - (i32.const 216) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $10) - (get_local $9) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (get_local $11) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $5) + (if + (i32.eq + (get_local $10) + (get_local $9) + ) + (block + (i32.store + (i32.const 176) + (i32.and + (get_local $11) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $5) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $8 - (get_local $0) - ) - ) - (block - (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 192) - ) + (set_local $8 + (get_local $0) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $9) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $9) + (i32.load + (i32.const 192) ) ) - (get_local $12) + (call $_abort) ) - (block - (i32.store - (get_local $0) - (get_local $10) - ) - (i32.store - (get_local $3) - (get_local $9) - ) - (set_local $8 + (if + (i32.eq (i32.load - (i32.const 184) + (tee_local $0 + (i32.add + (get_local $9) + (i32.const 12) + ) + ) + ) + (get_local $12) + ) + (block + (i32.store + (get_local $0) + (get_local $10) + ) + (i32.store + (get_local $3) + (get_local $9) + ) + (set_local $8 + (i32.load + (i32.const 184) + ) ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.or - (get_local $4) - (i32.const 3) - ) - ) - (i32.store offset=4 - (tee_local $10 - (i32.add - (get_local $12) + (i32.store offset=4 + (get_local $12) + (i32.or (get_local $4) + (i32.const 3) ) ) - (i32.or - (tee_local $5 - (i32.sub - (i32.shl - (get_local $5) - (i32.const 3) - ) + (i32.store offset=4 + (tee_local $10 + (i32.add + (get_local $12) (get_local $4) ) ) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $10) - (get_local $5) - ) - (get_local $5) - ) - (if - (get_local $8) - (block - (set_local $12 - (i32.load - (i32.const 196) - ) - ) - (set_local $4 - (i32.add - (i32.shl - (tee_local $0 - (i32.shr_u - (get_local $8) - (i32.const 3) - ) + (i32.or + (tee_local $5 + (i32.sub + (i32.shl + (get_local $5) + (i32.const 3) ) - (i32.const 3) + (get_local $4) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 176) - ) + ) + (i32.store + (i32.add + (get_local $10) + (get_local $5) + ) + (get_local $5) + ) + (if + (get_local $8) + (block + (set_local $12 + (i32.load + (i32.const 196) ) - (tee_local $0 + ) + (set_local $4 + (i32.add (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shr_u + (get_local $8) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $3 (i32.load - (tee_local $3 - (i32.add - (get_local $4) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $3 + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $2 + (get_local $3) + ) + (set_local $1 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $0) + ) + ) (set_local $2 - (get_local $3) + (i32.add + (get_local $4) + (i32.const 8) + ) ) (set_local $1 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $3) - (get_local $0) - ) - ) - (set_local $2 - (i32.add (get_local $4) - (i32.const 8) ) ) - (set_local $1 - (get_local $4) - ) ) - ) - (i32.store - (get_local $2) - (get_local $12) - ) - (i32.store offset=12 - (get_local $1) - (get_local $12) - ) - (i32.store offset=8 - (get_local $12) - (get_local $1) - ) - (i32.store offset=12 - (get_local $12) - (get_local $4) + (i32.store + (get_local $2) + (get_local $12) + ) + (i32.store offset=12 + (get_local $1) + (get_local $12) + ) + (i32.store offset=8 + (get_local $12) + (get_local $1) + ) + (i32.store offset=12 + (get_local $12) + (get_local $4) + ) ) ) - ) - (i32.store - (i32.const 184) - (get_local $5) - ) - (i32.store - (i32.const 196) - (get_local $10) - ) - (return - (get_local $7) + (i32.store + (i32.const 184) + (get_local $5) + ) + (i32.store + (i32.const 196) + (get_local $10) + ) + (return + (get_local $7) + ) ) ) - ) - (if - (tee_local $0 - (i32.load - (i32.const 180) + (if + (tee_local $0 + (i32.load + (i32.const 180) + ) ) - ) - (block - (set_local $2 - (i32.and - (i32.shr_u - (tee_local $0 - (i32.add - (i32.and - (get_local $0) - (i32.sub - (i32.const 0) + (block + (set_local $2 + (i32.and + (i32.shr_u + (tee_local $0 + (i32.add + (i32.and (get_local $0) + (i32.sub + (i32.const 0) + (get_local $0) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $7 - (i32.sub - (i32.and - (i32.load offset=4 - (tee_local $0 - (i32.load offset=480 - (i32.shl - (i32.add - (i32.or + (set_local $7 + (i32.sub + (i32.and + (i32.load offset=4 + (tee_local $0 + (i32.load offset=480 + (i32.shl + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (tee_local $1 + (i32.shr_u + (get_local $0) + (get_local $2) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $2) + ) (tee_local $0 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u + (get_local $1) (get_local $0) - (get_local $2) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $2) ) (tee_local $0 (i32.and @@ -8482,9 +8469,9 @@ (get_local $0) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -8499,163 +8486,135 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.shr_u - (get_local $1) - (get_local $0) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $1) + (get_local $0) + ) ) - (i32.shr_u - (get_local $1) - (get_local $0) - ) + (i32.const 2) ) - (i32.const 2) ) ) ) + (i32.const -8) ) - (i32.const -8) + (get_local $4) ) - (get_local $4) ) - ) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (get_local $0) - ) - (loop $while-in - (block $while-out - (if - (i32.eqz - (tee_local $0 - (i32.load offset=16 - (get_local $1) - ) - ) - ) + (set_local $1 + (get_local $0) + ) + (set_local $2 + (get_local $0) + ) + (loop $while-in + (block $while-out (if (i32.eqz (tee_local $0 - (i32.load offset=20 + (i32.load offset=16 (get_local $1) ) ) ) - (block - (set_local $10 - (get_local $7) + (if + (i32.eqz + (tee_local $0 + (i32.load offset=20 + (get_local $1) + ) + ) ) - (set_local $5 - (get_local $2) + (block + (set_local $10 + (get_local $7) + ) + (set_local $5 + (get_local $2) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (set_local $10 - (i32.lt_u - (tee_local $1 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $0) + (set_local $10 + (i32.lt_u + (tee_local $1 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $4) ) - (get_local $4) ) + (get_local $7) ) - (get_local $7) ) - ) - (set_local $7 - (select - (get_local $1) - (get_local $7) - (get_local $10) + (set_local $7 + (select + (get_local $1) + (get_local $7) + (get_local $10) + ) ) - ) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (select + (set_local $1 (get_local $0) - (get_local $2) - (get_local $10) ) - ) - (br $while-in) - ) - ) - (if - (i32.lt_u - (get_local $5) - (tee_local $12 - (i32.load - (i32.const 192) + (set_local $2 + (select + (get_local $0) + (get_local $2) + (get_local $10) + ) ) + (br $while-in) ) ) - (call $_abort) - ) - (if - (i32.ge_u - (get_local $5) - (tee_local $11 - (i32.add - (get_local $5) - (get_local $4) + (if + (i32.lt_u + (get_local $5) + (tee_local $12 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (set_local $8 - (i32.load offset=24 - (get_local $5) - ) - ) - (block $do-once4 (if - (i32.eq - (tee_local $0 - (i32.load offset=12 + (i32.ge_u + (get_local $5) + (tee_local $11 + (i32.add (get_local $5) + (get_local $4) ) ) + ) + (call $_abort) + ) + (set_local $8 + (i32.load offset=24 (get_local $5) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 20) - ) - ) - ) + ) + (block $do-once4 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $5) ) ) + (get_local $5) + ) + (block (if (i32.eqz (tee_local $1 @@ -8663,719 +8622,733 @@ (tee_local $0 (i32.add (get_local $5) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - (block - (set_local $9 - (i32.const 0) - ) - (br $do-once4) - ) - ) - ) - (loop $while-in7 - (if - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $1) - (i32.const 20) + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (get_local $5) + (i32.const 16) + ) + ) ) ) ) - ) - (block - (set_local $1 - (get_local $2) - ) - (set_local $0 - (get_local $7) + (block + (set_local $9 + (i32.const 0) + ) + (br $do-once4) ) - (br $while-in7) ) ) - (if - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $1) - (i32.const 16) + (loop $while-in7 + (if + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $1) + (i32.const 20) + ) ) ) ) + (block + (set_local $1 + (get_local $2) + ) + (set_local $0 + (get_local $7) + ) + (br $while-in7) + ) ) - (block - (set_local $1 - (get_local $2) + (if + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $7) + (block + (set_local $1 + (get_local $2) + ) + (set_local $0 + (get_local $7) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $12) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (get_local $0) - (i32.const 0) - ) - (set_local $9 - (get_local $1) + (get_local $12) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $7 - (i32.load offset=8 - (get_local $5) + (call $_abort) + (block + (i32.store + (get_local $0) + (i32.const 0) + ) + (set_local $9 + (get_local $1) ) ) - (get_local $12) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $2 - (i32.add - (get_local $7) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $7 + (i32.load offset=8 + (get_local $5) ) ) + (get_local $12) ) - (get_local $5) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $2 + (i32.add + (get_local $7) + (i32.const 12) + ) ) ) + (get_local $5) ) - (get_local $5) + (call $_abort) ) - (block - (i32.store - (get_local $2) - (get_local $0) - ) - (i32.store - (get_local $1) - (get_local $7) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + (get_local $5) ) - (set_local $9 - (get_local $0) + (block + (i32.store + (get_local $2) + (get_local $0) + ) + (i32.store + (get_local $1) + (get_local $7) + ) + (set_local $9 + (get_local $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (block $do-once8 - (if - (get_local $8) - (block - (if - (i32.eq - (get_local $5) - (i32.load - (tee_local $0 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $5) + (block $do-once8 + (if + (get_local $8) + (block + (if + (i32.eq + (get_local $5) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $5) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) ) - ) - (block - (i32.store - (get_local $0) - (get_local $9) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $0) (get_local $9) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $9) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (get_local $8) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (get_local $8) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) + ) ) ) + (get_local $5) + ) + (i32.store + (get_local $0) + (get_local $9) + ) + (i32.store offset=20 + (get_local $8) + (get_local $9) ) - (get_local $5) - ) - (i32.store - (get_local $0) - (get_local $9) - ) - (i32.store offset=20 - (get_local $8) - (get_local $9) ) - ) - (br_if $do-once8 - (i32.eqz - (get_local $9) + (br_if $do-once8 + (i32.eqz + (get_local $9) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $9) - (tee_local $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (get_local $9) + (tee_local $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $9) - (get_local $8) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $5) - ) + (i32.store offset=24 + (get_local $9) + (get_local $8) ) (if - (i32.lt_u - (get_local $1) - (get_local $0) + (tee_local $1 + (i32.load offset=16 + (get_local $5) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (get_local $9) + (if + (i32.lt_u (get_local $1) + (get_local $0) ) - (i32.store offset=24 - (get_local $1) - (get_local $9) + (call $_abort) + (block + (i32.store offset=16 + (get_local $9) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $9) + ) ) ) ) - ) - (if - (tee_local $0 - (i32.load offset=20 - (get_local $5) - ) - ) (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) + (tee_local $0 + (i32.load offset=20 + (get_local $5) ) ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $9) + (if + (i32.lt_u (get_local $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (get_local $0) - (get_local $9) + (call $_abort) + (block + (i32.store offset=20 + (get_local $9) + (get_local $0) + ) + (i32.store offset=24 + (get_local $0) + (get_local $9) + ) ) ) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $10) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $5) - (i32.or - (tee_local $0 - (i32.add - (get_local $10) - (get_local $4) + (if + (i32.lt_u + (get_local $10) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $5) + (i32.or + (tee_local $0 + (i32.add + (get_local $10) + (get_local $4) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $5) - (get_local $0) + (i32.add + (get_local $5) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (block - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $4) - (i32.const 3) ) ) - (i32.store offset=4 - (get_local $11) - (i32.or - (get_local $10) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $5) + (i32.or + (get_local $4) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $11) - (get_local $10) + (i32.or + (get_local $10) + (i32.const 1) + ) ) - (get_local $10) - ) - (if - (tee_local $0 - (i32.load - (i32.const 184) + (i32.store + (i32.add + (get_local $11) + (get_local $10) ) + (get_local $10) ) - (block - (set_local $4 + (if + (tee_local $0 (i32.load - (i32.const 196) + (i32.const 184) ) ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $0 - (i32.shr_u - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (set_local $4 + (i32.load + (i32.const 196) ) - (i32.const 216) ) - ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $0 + (set_local $2 + (i32.add (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shr_u + (get_local $0) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $1 (i32.load - (tee_local $1 - (i32.add - (get_local $2) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $6 + (get_local $1) + ) + (set_local $3 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $0) + ) + ) (set_local $6 - (get_local $1) + (i32.add + (get_local $2) + (i32.const 8) + ) ) (set_local $3 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) - ) - ) - (set_local $6 - (i32.add (get_local $2) - (i32.const 8) ) ) - (set_local $3 - (get_local $2) - ) ) - ) - (i32.store - (get_local $6) - (get_local $4) - ) - (i32.store offset=12 - (get_local $3) - (get_local $4) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (i32.store offset=12 - (get_local $4) - (get_local $2) + (i32.store + (get_local $6) + (get_local $4) + ) + (i32.store offset=12 + (get_local $3) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $3) + ) + (i32.store offset=12 + (get_local $4) + (get_local $2) + ) ) ) + (i32.store + (i32.const 184) + (get_local $10) + ) + (i32.store + (i32.const 196) + (get_local $11) + ) ) - (i32.store - (i32.const 184) - (get_local $10) - ) - (i32.store - (i32.const 196) - (get_local $11) + ) + (return + (i32.add + (get_local $5) + (i32.const 8) ) ) ) - (return - (i32.add - (get_local $5) - (i32.const 8) - ) + (set_local $0 + (get_local $4) ) ) - (set_local $0 - (get_local $4) - ) + ) + (set_local $0 + (get_local $4) ) ) + ) + (if + (i32.gt_u + (get_local $0) + (i32.const -65) + ) (set_local $0 - (get_local $4) + (i32.const -1) ) - ) - ) - (if - (i32.gt_u - (get_local $0) - (i32.const -65) - ) - (set_local $0 - (i32.const -1) - ) - (block - (set_local $2 - (i32.and - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 11) + (block + (set_local $2 + (i32.and + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 11) + ) ) + (i32.const -8) ) - (i32.const -8) ) - ) - (if - (tee_local $18 - (i32.load - (i32.const 180) + (if + (tee_local $18 + (i32.load + (i32.const 180) + ) ) - ) - (block - (set_local $14 - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - ) + (block + (set_local $14 (if (result i32) - (i32.gt_u - (get_local $2) - (i32.const 16777215) + (tee_local $0 + (i32.shr_u + (get_local $0) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $2) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $2) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $2) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (get_local $2) + (set_local $3 + (i32.sub + (i32.const 0) + (get_local $2) + ) ) - ) - (block $__rjto$3 - (block $__rjti$3 - (if - (tee_local $0 - (i32.load offset=480 - (i32.shl - (get_local $14) - (i32.const 2) + (block $__rjto$3 + (block $__rjti$3 + (if + (tee_local $0 + (i32.load offset=480 + (i32.shl + (get_local $14) + (i32.const 2) + ) ) ) - ) - (block - (set_local $6 - (i32.const 0) - ) - (set_local $8 - (i32.shl - (get_local $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block + (set_local $6 + (i32.const 0) + ) + (set_local $8 + (i32.shl + (get_local $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $14) + (i32.const 1) + ) + ) + (i32.eq (get_local $14) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $14) - (i32.const 31) - ) ) ) - ) - (set_local $1 - (i32.const 0) - ) - (loop $while-in14 - (if - (i32.lt_u - (tee_local $4 - (i32.sub - (tee_local $9 - (i32.and - (i32.load offset=4 - (get_local $0) + (set_local $1 + (i32.const 0) + ) + (loop $while-in14 + (if + (i32.lt_u + (tee_local $4 + (i32.sub + (tee_local $9 + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) ) + (get_local $2) ) - (get_local $2) ) + (get_local $3) ) - (get_local $3) - ) - (if - (i32.eq - (get_local $9) - (get_local $2) - ) - (block - (set_local $1 - (get_local $4) - ) - (set_local $3 - (get_local $0) + (if + (i32.eq + (get_local $9) + (get_local $2) ) - (br $__rjti$3) - ) - (block - (set_local $3 - (get_local $4) + (block + (set_local $1 + (get_local $4) + ) + (set_local $3 + (get_local $0) + ) + (br $__rjti$3) ) - (set_local $1 - (get_local $0) + (block + (set_local $3 + (get_local $4) + ) + (set_local $1 + (get_local $0) + ) ) ) ) - ) - (set_local $0 - (select - (get_local $6) - (tee_local $4 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.or - (i32.eqz - (get_local $4) + (set_local $0 + (select + (get_local $6) + (tee_local $4 + (i32.load offset=20 + (get_local $0) + ) ) - (i32.eq - (get_local $4) - (tee_local $9 - (i32.load - (i32.add + (i32.or + (i32.eqz + (get_local $4) + ) + (i32.eq + (get_local $4) + (tee_local $9 + (i32.load (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $8) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $8) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -9383,134 +9356,148 @@ ) ) ) - ) - (set_local $4 - (i32.shl - (get_local $8) - (i32.xor - (tee_local $6 - (i32.eqz - (get_local $9) + (set_local $4 + (i32.shl + (get_local $8) + (i32.xor + (tee_local $6 + (i32.eqz + (get_local $9) + ) ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (if - (get_local $6) - (block - (set_local $4 - (get_local $0) - ) - (set_local $0 - (get_local $1) - ) - ) - (block - (set_local $6 - (get_local $0) - ) - (set_local $8 - (get_local $4) + (if + (get_local $6) + (block + (set_local $4 + (get_local $0) + ) + (set_local $0 + (get_local $1) + ) ) - (set_local $0 - (get_local $9) + (block + (set_local $6 + (get_local $0) + ) + (set_local $8 + (get_local $4) + ) + (set_local $0 + (get_local $9) + ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block - (set_local $4 - (i32.const 0) - ) - (set_local $0 - (i32.const 0) - ) - ) - ) - (if - (i32.and - (i32.eqz - (get_local $4) - ) - (i32.eqz - (get_local $0) + (block + (set_local $4 + (i32.const 0) + ) + (set_local $0 + (i32.const 0) + ) ) ) - (block - (if + (if + (i32.and (i32.eqz - (tee_local $1 - (i32.and - (get_local $18) - (i32.or - (tee_local $1 - (i32.shl - (i32.const 2) - (get_local $14) + (get_local $4) + ) + (i32.eqz + (get_local $0) + ) + ) + (block + (if + (i32.eqz + (tee_local $1 + (i32.and + (get_local $18) + (i32.or + (tee_local $1 + (i32.shl + (i32.const 2) + (get_local $14) + ) + ) + (i32.sub + (i32.const 0) + (get_local $1) ) - ) - (i32.sub - (i32.const 0) - (get_local $1) ) ) ) ) - ) - (block - (set_local $0 - (get_local $2) + (block + (set_local $0 + (get_local $2) + ) + (br $do-once) ) - (br $do-once) ) - ) - (set_local $9 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.add - (i32.and - (get_local $1) - (i32.sub - (i32.const 0) + (set_local $9 + (i32.and + (i32.shr_u + (tee_local $1 + (i32.add + (i32.and (get_local $1) + (i32.sub + (i32.const 0) + (get_local $1) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $4 - (i32.load offset=480 - (i32.shl - (i32.add - (i32.or + (set_local $4 + (i32.load offset=480 + (i32.shl + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (tee_local $4 + (i32.shr_u + (get_local $1) + (get_local $9) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $9) + ) (tee_local $1 (i32.and (i32.shr_u (tee_local $4 (i32.shr_u + (get_local $4) (get_local $1) - (get_local $9) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $9) ) (tee_local $1 (i32.and @@ -9521,9 +9508,9 @@ (get_local $1) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -9538,177 +9525,149 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (tee_local $4 - (i32.shr_u - (get_local $4) - (get_local $1) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $4) + (get_local $1) + ) ) - (i32.shr_u - (get_local $4) - (get_local $1) - ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) - ) - (if - (get_local $4) - (block - (set_local $1 - (get_local $3) + (if + (get_local $4) + (block + (set_local $1 + (get_local $3) + ) + (set_local $3 + (get_local $4) + ) + (br $__rjti$3) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (br $__rjti$3) - ) - (set_local $4 - (get_local $0) ) + (br $__rjto$3) ) - (br $__rjto$3) - ) - (loop $while-in16 - (set_local $9 - (i32.lt_u - (tee_local $4 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $3) + (loop $while-in16 + (set_local $9 + (i32.lt_u + (tee_local $4 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $2) ) - (get_local $2) ) + (get_local $1) ) - (get_local $1) - ) - ) - (set_local $1 - (select - (get_local $4) - (get_local $1) - (get_local $9) ) - ) - (set_local $0 - (select - (get_local $3) - (get_local $0) - (get_local $9) + (set_local $1 + (select + (get_local $4) + (get_local $1) + (get_local $9) + ) ) - ) - (if - (tee_local $4 - (i32.load offset=16 + (set_local $0 + (select (get_local $3) + (get_local $0) + (get_local $9) ) ) - (block - (set_local $3 - (get_local $4) + (if + (tee_local $4 + (i32.load offset=16 + (get_local $3) + ) + ) + (block + (set_local $3 + (get_local $4) + ) + (br $while-in16) ) - (br $while-in16) ) - ) - (br_if $while-in16 - (tee_local $3 - (i32.load offset=20 - (get_local $3) + (br_if $while-in16 + (tee_local $3 + (i32.load offset=20 + (get_local $3) + ) ) ) - ) - (set_local $3 - (get_local $1) - ) - (set_local $4 - (get_local $0) + (set_local $3 + (get_local $1) + ) + (set_local $4 + (get_local $0) + ) ) ) - ) - (if - (get_local $4) (if - (i32.lt_u - (get_local $3) - (i32.sub - (i32.load - (i32.const 184) - ) - (get_local $2) - ) - ) - (block - (if - (i32.lt_u - (get_local $4) - (tee_local $12 - (i32.load - (i32.const 192) - ) + (get_local $4) + (if + (i32.lt_u + (get_local $3) + (i32.sub + (i32.load + (i32.const 184) ) + (get_local $2) ) - (call $_abort) ) - (if - (i32.ge_u - (get_local $4) - (tee_local $6 - (i32.add - (get_local $4) - (get_local $2) + (block + (if + (i32.lt_u + (get_local $4) + (tee_local $12 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (set_local $9 - (i32.load offset=24 - (get_local $4) - ) - ) - (block $do-once17 (if - (i32.eq - (tee_local $0 - (i32.load offset=12 + (i32.ge_u + (get_local $4) + (tee_local $6 + (i32.add (get_local $4) + (get_local $2) ) ) + ) + (call $_abort) + ) + (set_local $9 + (i32.load offset=24 (get_local $4) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (get_local $4) - (i32.const 20) - ) - ) - ) + ) + (block $do-once17 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $4) ) ) + (get_local $4) + ) + (block (if (i32.eqz (tee_local $1 @@ -9716,1758 +9675,1694 @@ (tee_local $0 (i32.add (get_local $4) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - (block - (set_local $11 - (i32.const 0) - ) - (br $do-once17) - ) - ) - ) - (loop $while-in20 - (if - (tee_local $7 - (i32.load - (tee_local $10 - (i32.add - (get_local $1) - (i32.const 20) + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (get_local $4) + (i32.const 16) + ) + ) ) ) ) - ) - (block - (set_local $1 - (get_local $7) - ) - (set_local $0 - (get_local $10) + (block + (set_local $11 + (i32.const 0) + ) + (br $do-once17) ) - (br $while-in20) ) ) - (if - (tee_local $7 - (i32.load - (tee_local $10 - (i32.add - (get_local $1) - (i32.const 16) + (loop $while-in20 + (if + (tee_local $7 + (i32.load + (tee_local $10 + (i32.add + (get_local $1) + (i32.const 20) + ) ) ) ) + (block + (set_local $1 + (get_local $7) + ) + (set_local $0 + (get_local $10) + ) + (br $while-in20) + ) ) - (block - (set_local $1 - (get_local $7) + (if + (tee_local $7 + (i32.load + (tee_local $10 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $10) + (block + (set_local $1 + (get_local $7) + ) + (set_local $0 + (get_local $10) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $12) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (get_local $0) - (i32.const 0) - ) - (set_local $11 - (get_local $1) + (get_local $12) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $10 - (i32.load offset=8 - (get_local $4) + (call $_abort) + (block + (i32.store + (get_local $0) + (i32.const 0) + ) + (set_local $11 + (get_local $1) ) ) - (get_local $12) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $7 - (i32.add - (get_local $10) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $10 + (i32.load offset=8 + (get_local $4) ) ) + (get_local $12) ) - (get_local $4) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $7 + (i32.add + (get_local $10) + (i32.const 12) + ) ) ) + (get_local $4) ) - (get_local $4) + (call $_abort) ) - (block - (i32.store - (get_local $7) - (get_local $0) - ) - (i32.store - (get_local $1) - (get_local $10) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + (get_local $4) ) - (set_local $11 - (get_local $0) + (block + (i32.store + (get_local $7) + (get_local $0) + ) + (i32.store + (get_local $1) + (get_local $10) + ) + (set_local $11 + (get_local $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (block $do-once21 - (if - (get_local $9) - (block - (if - (i32.eq - (get_local $4) - (i32.load - (tee_local $0 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $4) + (block $do-once21 + (if + (get_local $9) + (block + (if + (i32.eq + (get_local $4) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $4) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) ) - ) - (block - (i32.store - (get_local $0) - (get_local $11) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $0) (get_local $11) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $11) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (get_local $9) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $9) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $9) + (i32.const 16) + ) ) ) + (get_local $4) + ) + (i32.store + (get_local $0) + (get_local $11) + ) + (i32.store offset=20 + (get_local $9) + (get_local $11) ) - (get_local $4) - ) - (i32.store - (get_local $0) - (get_local $11) - ) - (i32.store offset=20 - (get_local $9) - (get_local $11) ) - ) - (br_if $do-once21 - (i32.eqz - (get_local $11) + (br_if $do-once21 + (i32.eqz + (get_local $11) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $11) - (tee_local $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (get_local $11) + (tee_local $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $11) - (get_local $9) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $4) - ) + (i32.store offset=24 + (get_local $11) + (get_local $9) ) (if - (i32.lt_u - (get_local $1) - (get_local $0) + (tee_local $1 + (i32.load offset=16 + (get_local $4) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (get_local $11) + (if + (i32.lt_u (get_local $1) + (get_local $0) ) - (i32.store offset=24 - (get_local $1) - (get_local $11) + (call $_abort) + (block + (i32.store offset=16 + (get_local $11) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $11) + ) ) ) ) - ) - (if - (tee_local $0 - (i32.load offset=20 - (get_local $4) - ) - ) (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) + (tee_local $0 + (i32.load offset=20 + (get_local $4) ) ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $11) + (if + (i32.lt_u (get_local $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (get_local $0) - (get_local $11) + (call $_abort) + (block + (i32.store offset=20 + (get_local $11) + (get_local $0) + ) + (i32.store offset=24 + (get_local $0) + (get_local $11) + ) ) ) ) ) ) ) - ) - (block $do-once25 - (if - (i32.lt_u - (get_local $3) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $4) - (i32.or - (tee_local $0 - (i32.add - (get_local $3) - (get_local $2) + (block $do-once25 + (if + (i32.lt_u + (get_local $3) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $4) + (i32.or + (tee_local $0 + (i32.add + (get_local $3) + (get_local $2) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $4) - (get_local $0) + (i32.add + (get_local $4) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (block - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $2) - (i32.const 3) ) ) - (i32.store offset=4 - (get_local $6) - (i32.or - (get_local $3) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $4) + (i32.or + (get_local $2) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $6) - (get_local $3) + (i32.or + (get_local $3) + (i32.const 1) + ) ) - (get_local $3) - ) - (set_local $0 - (i32.shr_u + (i32.store + (i32.add + (get_local $6) + (get_local $3) + ) (get_local $3) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $3) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (get_local $3) + (i32.const 256) ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $0 + (block + (set_local $3 + (i32.add (i32.shl - (i32.const 1) (get_local $0) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $1 (i32.load - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $13 + (get_local $1) + ) + (set_local $5 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $0) + ) + ) (set_local $13 - (get_local $1) + (i32.add + (get_local $3) + (i32.const 8) + ) ) (set_local $5 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) - ) - ) - (set_local $13 - (i32.add (get_local $3) - (i32.const 8) ) ) - (set_local $5 - (get_local $3) - ) ) + (i32.store + (get_local $13) + (get_local $6) + ) + (i32.store offset=12 + (get_local $5) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $5) + ) + (i32.store offset=12 + (get_local $6) + (get_local $3) + ) + (br $do-once25) ) - (i32.store - (get_local $13) - (get_local $6) - ) - (i32.store offset=12 - (get_local $5) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $5) - ) - (i32.store offset=12 - (get_local $6) - (get_local $3) - ) - (br $do-once25) ) - ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $7 - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - ) + (set_local $2 + (i32.add + (i32.shl + (tee_local $7 (if (result i32) - (i32.gt_u - (get_local $3) - (i32.const 16777215) + (tee_local $0 + (i32.shr_u + (get_local $3) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $3) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $3) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $3) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $2 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $2 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $2) ) - (get_local $2) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $6) - (get_local $7) - ) - (i32.store offset=4 - (tee_local $0 - (i32.add - (get_local $6) - (i32.const 16) + (i32.store offset=28 + (get_local $6) + (get_local $7) + ) + (i32.store offset=4 + (tee_local $0 + (i32.add + (get_local $6) + (i32.const 16) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $1 - (i32.load - (i32.const 180) + (i32.store + (get_local $0) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $1 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $7) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $7) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $1) - (get_local $0) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $1) + (get_local $0) + ) ) + (i32.store + (get_local $2) + (get_local $6) + ) + (i32.store offset=24 + (get_local $6) + (get_local $2) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once25) ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=24 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $6) - ) - (br $do-once25) ) - ) - (set_local $7 - (i32.shl - (get_local $3) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $7 + (i32.shl + (get_local $3) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $7) + (i32.const 1) + ) + ) + (i32.eq (get_local $7) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $7) - (i32.const 31) - ) ) ) - ) - (set_local $0 - (i32.load - (get_local $2) + (set_local $0 + (i32.load + (get_local $2) + ) ) - ) - (block $__rjto$1 - (block $__rjti$1 - (loop $while-in28 - (br_if $__rjti$1 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $0) + (block $__rjto$1 + (block $__rjti$1 + (loop $while-in28 + (br_if $__rjti$1 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) - ) - (set_local $2 - (i32.shl - (get_local $7) - (i32.const 1) + (set_local $2 + (i32.shl + (get_local $7) + (i32.const 1) + ) ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add + (if + (tee_local $1 + (i32.load + (tee_local $7 (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $7) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $7) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $7 + (get_local $2) + ) + (set_local $0 + (get_local $1) + ) + (br $while-in28) + ) ) + ) + (if + (i32.lt_u + (get_local $7) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) (block - (set_local $7 - (get_local $2) + (i32.store + (get_local $7) + (get_local $6) ) - (set_local $0 - (get_local $1) + (i32.store offset=24 + (get_local $6) + (get_local $0) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) ) - (br $while-in28) + (br $do-once25) ) ) + (br $__rjto$1) ) (if - (i32.lt_u - (get_local $7) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $2 + (i32.load + (tee_local $3 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $0) + (get_local $1) ) ) - (call $_abort) (block + (i32.store offset=12 + (get_local $2) + (get_local $6) + ) (i32.store - (get_local $7) + (get_local $3) (get_local $6) ) - (i32.store offset=24 + (i32.store offset=8 (get_local $6) - (get_local $0) + (get_local $2) ) (i32.store offset=12 (get_local $6) - (get_local $6) + (get_local $0) ) - (i32.store offset=8 - (get_local $6) + (i32.store offset=24 (get_local $6) - ) - (br $do-once25) - ) - ) - (br $__rjto$1) - ) - (if - (i32.and - (i32.ge_u - (tee_local $2 - (i32.load - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ) - ) - (tee_local $1 - (i32.load - (i32.const 192) - ) + (i32.const 0) ) ) - (i32.ge_u - (get_local $0) - (get_local $1) - ) - ) - (block - (i32.store offset=12 - (get_local $2) - (get_local $6) - ) - (i32.store - (get_local $3) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $0) - ) - (i32.store offset=24 - (get_local $6) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (return - (i32.add - (get_local $4) - (i32.const 8) + (return + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) + (set_local $0 + (get_local $2) + ) ) (set_local $0 (get_local $2) ) ) - (set_local $0 - (get_local $2) - ) ) - ) - (set_local $0 - (get_local $2) + (set_local $0 + (get_local $2) + ) ) ) ) ) ) - ) - (if - (i32.ge_u - (tee_local $1 - (i32.load - (i32.const 184) - ) - ) - (get_local $0) - ) - (block - (set_local $2 - (i32.load - (i32.const 196) + (if + (i32.ge_u + (tee_local $1 + (i32.load + (i32.const 184) + ) ) + (get_local $0) ) - (if - (i32.gt_u - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) + (block + (set_local $2 + (i32.load + (i32.const 196) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 196) - (tee_local $1 - (i32.add - (get_local $2) + (if + (i32.gt_u + (tee_local $3 + (i32.sub + (get_local $1) (get_local $0) ) ) + (i32.const 15) ) - (i32.store - (i32.const 184) - (get_local $3) - ) - (i32.store offset=4 - (get_local $1) - (i32.or + (block + (i32.store + (i32.const 196) + (tee_local $1 + (i32.add + (get_local $2) + (get_local $0) + ) + ) + ) + (i32.store + (i32.const 184) (get_local $3) - (i32.const 1) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $1) + (i32.or + (get_local $3) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $1) + (get_local $3) + ) (get_local $3) ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $0) + (i32.const 3) + ) ) ) - ) - (block - (i32.store - (i32.const 184) - (i32.const 0) - ) - (i32.store - (i32.const 196) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $1) - (i32.const 3) + (block + (i32.store + (i32.const 184) + (i32.const 0) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (i32.const 196) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $1) + (i32.const 3) + ) + ) + (i32.store + (tee_local $0 (i32.add - (get_local $2) - (get_local $1) + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) + (return + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) - ) - (if - (i32.gt_u - (tee_local $1 - (i32.load - (i32.const 188) + (br_if $folding-inner0 + (i32.gt_u + (tee_local $1 + (i32.load + (i32.const 188) + ) ) + (get_local $0) ) - (get_local $0) ) - (block - (i32.store - (i32.const 188) - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) + (if + (i32.eqz + (i32.load + (i32.const 648) ) ) - (i32.store - (i32.const 200) - (tee_local $1 + (if + (i32.and (i32.add - (tee_local $2 - (i32.load - (i32.const 200) + (tee_local $1 + (call $_sysconf + (i32.const 30) ) ) - (get_local $0) - ) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $3) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.eqz - (i32.load - (i32.const 648) - ) - ) - (if - (i32.and - (i32.add - (tee_local $1 - (call $_sysconf - (i32.const 30) - ) + (i32.const -1) ) - (i32.const -1) - ) - (get_local $1) - ) - (call $_abort) - (block - (i32.store - (i32.const 656) (get_local $1) ) - (i32.store - (i32.const 652) - (get_local $1) - ) - (i32.store - (i32.const 660) - (i32.const -1) - ) - (i32.store - (i32.const 664) - (i32.const -1) - ) - (i32.store - (i32.const 668) - (i32.const 0) - ) - (i32.store - (i32.const 620) - (i32.const 0) - ) - (i32.store - (i32.const 648) - (i32.xor - (i32.and - (call $_time - (i32.const 0) + (call $_abort) + (block + (i32.store + (i32.const 656) + (get_local $1) + ) + (i32.store + (i32.const 652) + (get_local $1) + ) + (i32.store + (i32.const 660) + (i32.const -1) + ) + (i32.store + (i32.const 664) + (i32.const -1) + ) + (i32.store + (i32.const 668) + (i32.const 0) + ) + (i32.store + (i32.const 620) + (i32.const 0) + ) + (i32.store + (i32.const 648) + (i32.xor + (i32.and + (call $_time + (i32.const 0) + ) + (i32.const -16) ) - (i32.const -16) + (i32.const 1431655768) ) - (i32.const 1431655768) ) ) ) ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.and - (tee_local $6 - (i32.add - (tee_local $1 - (i32.load - (i32.const 656) + (if + (i32.le_u + (tee_local $5 + (i32.and + (tee_local $6 + (i32.add + (tee_local $1 + (i32.load + (i32.const 656) + ) ) - ) - (tee_local $8 - (i32.add - (get_local $0) - (i32.const 47) + (tee_local $8 + (i32.add + (get_local $0) + (i32.const 47) + ) ) ) ) - ) - (tee_local $9 - (i32.sub - (i32.const 0) - (get_local $1) + (tee_local $9 + (i32.sub + (i32.const 0) + (get_local $1) + ) ) ) ) + (get_local $0) ) - (get_local $0) - ) - (return - (i32.const 0) - ) - ) - (if - (tee_local $2 - (i32.load - (i32.const 616) + (return + (i32.const 0) ) ) (if - (i32.or - (i32.le_u - (tee_local $1 - (i32.add - (tee_local $3 - (i32.load - (i32.const 608) + (tee_local $2 + (i32.load + (i32.const 616) + ) + ) + (if + (i32.or + (i32.le_u + (tee_local $1 + (i32.add + (tee_local $3 + (i32.load + (i32.const 608) + ) ) + (get_local $5) ) - (get_local $5) ) + (get_local $3) + ) + (i32.gt_u + (get_local $1) + (get_local $2) ) - (get_local $3) ) - (i32.gt_u - (get_local $1) - (get_local $2) + (return + (i32.const 0) ) ) - (return - (i32.const 0) - ) ) - ) - (set_local $11 - (i32.add - (get_local $0) - (i32.const 48) + (set_local $11 + (i32.add + (get_local $0) + (i32.const 48) + ) ) - ) - (block $__rjto$13 - (block $__rjti$13 - (if - (i32.eqz - (i32.and - (i32.load - (i32.const 620) + (block $__rjto$13 + (block $__rjti$13 + (if + (i32.eqz + (i32.and + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (block - (block $label$break$L279 - (block $__rjti$5 - (block $__rjti$4 - (br_if $__rjti$4 - (i32.eqz - (tee_local $4 - (i32.load - (i32.const 200) + (block + (block $label$break$L279 + (block $__rjti$5 + (block $__rjti$4 + (br_if $__rjti$4 + (i32.eqz + (tee_local $4 + (i32.load + (i32.const 200) + ) ) ) ) - ) - (set_local $1 - (i32.const 624) - ) - (loop $while-in34 - (block $while-out33 - (if - (i32.le_u - (tee_local $3 - (i32.load - (get_local $1) - ) - ) - (get_local $4) - ) + (set_local $1 + (i32.const 624) + ) + (loop $while-in34 + (block $while-out33 (if - (i32.gt_u - (i32.add - (get_local $3) + (i32.le_u + (tee_local $3 (i32.load - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 4) + (get_local $1) + ) + ) + (get_local $4) + ) + (if + (i32.gt_u + (i32.add + (get_local $3) + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 4) + ) ) ) ) + (get_local $4) + ) + (block + (set_local $4 + (get_local $1) + ) + (br $while-out33) ) - (get_local $4) ) - (block - (set_local $4 + ) + (br_if $while-in34 + (tee_local $1 + (i32.load offset=8 (get_local $1) ) - (br $while-out33) ) ) + (br $__rjti$4) ) - (br_if $while-in34 - (tee_local $1 - (i32.load offset=8 - (get_local $1) + ) + (if + (i32.lt_u + (tee_local $3 + (i32.and + (i32.sub + (get_local $6) + (i32.load + (i32.const 188) + ) + ) + (get_local $9) ) ) + (i32.const 2147483647) ) - (br $__rjti$4) - ) - ) - (if - (i32.lt_u - (tee_local $3 - (i32.and - (i32.sub - (get_local $6) + (if + (i32.eq + (tee_local $1 + (call $_sbrk + (get_local $3) + ) + ) + (i32.add (i32.load - (i32.const 188) + (get_local $4) + ) + (i32.load + (get_local $2) ) ) - (get_local $9) ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (tee_local $1 - (call $_sbrk - (get_local $3) + (br_if $__rjti$13 + (i32.ne + (get_local $1) + (i32.const -1) ) ) - (i32.add - (i32.load - (get_local $4) - ) - (i32.load - (get_local $2) + (block + (set_local $2 + (get_local $1) ) + (br $__rjti$5) ) ) - (br_if $__rjti$13 - (i32.ne - (get_local $1) - (i32.const -1) - ) - ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $1 - (get_local $3) - ) - (br $__rjti$5) - ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (if - (i32.ne - (tee_local $1 - (call $_sbrk - (i32.const 0) + (if + (i32.ne + (tee_local $1 + (call $_sbrk + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (set_local $3 - (if (result i32) - (i32.and - (tee_local $2 - (i32.add - (tee_local $4 - (i32.load - (i32.const 652) + (block + (set_local $3 + (if (result i32) + (i32.and + (tee_local $2 + (i32.add + (tee_local $4 + (i32.load + (i32.const 652) + ) ) + (i32.const -1) ) - (i32.const -1) + ) + (tee_local $3 + (get_local $1) ) ) - (tee_local $3 - (get_local $1) - ) - ) - (i32.add - (i32.sub - (get_local $5) - (get_local $3) - ) - (i32.and - (i32.add - (get_local $2) + (i32.add + (i32.sub + (get_local $5) (get_local $3) ) - (i32.sub - (i32.const 0) - (get_local $4) + (i32.and + (i32.add + (get_local $2) + (get_local $3) + ) + (i32.sub + (i32.const 0) + (get_local $4) + ) ) ) + (get_local $5) ) - (get_local $5) ) - ) - (set_local $9 - (i32.add - (tee_local $4 - (i32.load - (i32.const 608) + (set_local $9 + (i32.add + (tee_local $4 + (i32.load + (i32.const 608) + ) ) - ) - (get_local $3) - ) - ) - (if - (i32.and - (i32.gt_u - (get_local $3) - (get_local $0) - ) - (i32.lt_u (get_local $3) - (i32.const 2147483647) ) ) - (block - (if - (tee_local $2 - (i32.load - (i32.const 616) - ) + (if + (i32.and + (i32.gt_u + (get_local $3) + (get_local $0) ) - (br_if $label$break$L279 - (i32.or - (i32.le_u - (get_local $9) - (get_local $4) + (i32.lt_u + (get_local $3) + (i32.const 2147483647) + ) + ) + (block + (if + (tee_local $2 + (i32.load + (i32.const 616) ) - (i32.gt_u - (get_local $9) - (get_local $2) + ) + (br_if $label$break$L279 + (i32.or + (i32.le_u + (get_local $9) + (get_local $4) + ) + (i32.gt_u + (get_local $9) + (get_local $2) + ) ) ) ) - ) - (br_if $__rjti$13 - (i32.eq - (tee_local $2 - (call $_sbrk - (get_local $3) + (br_if $__rjti$13 + (i32.eq + (tee_local $2 + (call $_sbrk + (get_local $3) + ) ) + (get_local $1) ) - (get_local $1) ) + (br $__rjti$5) ) - (set_local $1 - (get_local $3) - ) - (br $__rjti$5) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $1) + (set_local $1 + (get_local $3) ) - ) - (if - (i32.and - (i32.gt_u - (get_local $11) + (set_local $4 + (i32.sub + (i32.const 0) (get_local $1) ) + ) + (if (i32.and - (i32.lt_u + (i32.gt_u + (get_local $11) (get_local $1) - (i32.const 2147483647) ) - (i32.ne - (get_local $2) - (i32.const -1) + (i32.and + (i32.lt_u + (get_local $1) + (i32.const 2147483647) + ) + (i32.ne + (get_local $2) + (i32.const -1) + ) ) ) - ) - (if - (i32.lt_u - (tee_local $3 - (i32.and - (i32.add - (i32.sub - (get_local $8) - (get_local $1) - ) - (tee_local $3 - (i32.load - (i32.const 656) + (if + (i32.lt_u + (tee_local $3 + (i32.and + (i32.add + (i32.sub + (get_local $8) + (get_local $1) + ) + (tee_local $3 + (i32.load + (i32.const 656) + ) ) ) + (i32.sub + (i32.const 0) + (get_local $3) + ) ) - (i32.sub - (i32.const 0) + ) + (i32.const 2147483647) + ) + (if + (i32.eq + (call $_sbrk (get_local $3) ) + (i32.const -1) ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (call $_sbrk - (get_local $3) + (block + (drop + (call $_sbrk + (get_local $4) + ) + ) + (br $label$break$L279) ) - (i32.const -1) - ) - (block - (drop - (call $_sbrk - (get_local $4) + (set_local $3 + (i32.add + (get_local $3) + (get_local $1) ) ) - (br $label$break$L279) ) (set_local $3 - (i32.add - (get_local $3) - (get_local $1) - ) + (get_local $1) ) ) (set_local $3 (get_local $1) ) ) - (set_local $3 - (get_local $1) - ) - ) - (if - (i32.ne - (get_local $2) - (i32.const -1) - ) - (block - (set_local $1 + (if + (i32.ne (get_local $2) + (i32.const -1) + ) + (block + (set_local $1 + (get_local $2) + ) + (br $__rjti$13) ) - (br $__rjti$13) ) ) - ) - (i32.store - (i32.const 620) - (i32.or - (i32.load - (i32.const 620) + (i32.store + (i32.const 620) + (i32.or + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (if - (i32.lt_u - (get_local $5) - (i32.const 2147483647) - ) (if - (i32.and - (i32.lt_u - (tee_local $1 - (call $_sbrk - (get_local $5) + (i32.lt_u + (get_local $5) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (tee_local $1 + (call $_sbrk + (get_local $5) + ) ) - ) - (tee_local $3 - (call $_sbrk - (i32.const 0) + (tee_local $3 + (call $_sbrk + (i32.const 0) + ) ) ) - ) - (i32.and - (i32.ne - (get_local $1) - (i32.const -1) - ) - (i32.ne - (get_local $3) - (i32.const -1) - ) - ) - ) - (br_if $__rjti$13 - (i32.gt_u - (tee_local $3 - (i32.sub - (get_local $3) + (i32.and + (i32.ne (get_local $1) + (i32.const -1) + ) + (i32.ne + (get_local $3) + (i32.const -1) ) ) - (i32.add - (get_local $0) - (i32.const 40) + ) + (br_if $__rjti$13 + (i32.gt_u + (tee_local $3 + (i32.sub + (get_local $3) + (get_local $1) + ) + ) + (i32.add + (get_local $0) + (i32.const 40) + ) ) ) ) ) + (br $__rjto$13) ) - (br $__rjto$13) - ) - (i32.store - (i32.const 608) - (tee_local $2 - (i32.add - (i32.load - (i32.const 608) + (i32.store + (i32.const 608) + (tee_local $2 + (i32.add + (i32.load + (i32.const 608) + ) + (get_local $3) ) - (get_local $3) - ) - ) - ) - (if - (i32.gt_u - (get_local $2) - (i32.load - (i32.const 612) ) ) - (i32.store - (i32.const 612) - (get_local $2) - ) - ) - (block $do-once40 (if - (tee_local $6 + (i32.gt_u + (get_local $2) (i32.load - (i32.const 200) + (i32.const 612) ) ) - (block - (set_local $2 - (i32.const 624) + (i32.store + (i32.const 612) + (get_local $2) + ) + ) + (block $do-once40 + (if + (tee_local $6 + (i32.load + (i32.const 200) + ) ) - (block $__rjto$10 - (block $__rjti$10 - (loop $while-in45 - (br_if $__rjti$10 - (i32.eq - (get_local $1) - (i32.add - (tee_local $11 - (i32.load - (get_local $2) + (block + (set_local $2 + (i32.const 624) + ) + (block $__rjto$10 + (block $__rjti$10 + (loop $while-in45 + (br_if $__rjti$10 + (i32.eq + (get_local $1) + (i32.add + (tee_local $11 + (i32.load + (get_local $2) + ) ) - ) - (tee_local $5 - (i32.load - (tee_local $4 - (i32.add - (get_local $2) - (i32.const 4) + (tee_local $5 + (i32.load + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 4) + ) ) ) ) ) ) ) - ) - (br_if $while-in45 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $while-in45 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) ) - ) - (br $__rjto$10) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const 8) - ) + (br $__rjto$10) ) (if - (i32.and - (i32.lt_u - (get_local $6) - (get_local $1) - ) - (i32.ge_u - (get_local $6) - (get_local $11) + (i32.eqz + (i32.and + (i32.load offset=12 + (get_local $2) + ) + (i32.const 8) ) ) - (block - (i32.store - (get_local $4) - (i32.add - (get_local $5) - (get_local $3) + (if + (i32.and + (i32.lt_u + (get_local $6) + (get_local $1) ) - ) - (set_local $2 - (i32.add + (i32.ge_u (get_local $6) - (tee_local $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $6) - (i32.const 8) + (get_local $11) + ) + ) + (block + (i32.store + (get_local $4) + (i32.add + (get_local $5) + (get_local $3) + ) + ) + (set_local $2 + (i32.add + (get_local $6) + (tee_local $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $6) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) - ) - (set_local $1 - (i32.add - (i32.sub - (get_local $3) - (get_local $1) - ) - (i32.load - (i32.const 188) + (set_local $1 + (i32.add + (i32.sub + (get_local $3) + (get_local $1) + ) + (i32.load + (i32.const 188) + ) ) ) - ) - (i32.store - (i32.const 200) - (get_local $2) - ) - (i32.store - (i32.const 188) - (get_local $1) - ) - (i32.store offset=4 - (get_local $2) - (i32.or + (i32.store + (i32.const 200) + (get_local $2) + ) + (i32.store + (i32.const 188) (get_local $1) - (i32.const 1) ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $1) + (i32.or + (get_local $1) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) + (br $do-once40) ) - (br $do-once40) ) ) ) - ) - (if - (i32.lt_u - (get_local $1) - (tee_local $4 - (i32.load + (if + (i32.lt_u + (get_local $1) + (tee_local $4 + (i32.load + (i32.const 192) + ) + ) + ) + (block + (i32.store (i32.const 192) + (get_local $1) + ) + (set_local $4 + (get_local $1) ) ) ) - (block - (i32.store - (i32.const 192) - (get_local $1) - ) - (set_local $4 + (set_local $11 + (i32.add (get_local $1) + (get_local $3) ) ) - ) - (set_local $11 - (i32.add - (get_local $1) - (get_local $3) + (set_local $2 + (i32.const 624) ) - ) - (set_local $2 - (i32.const 624) - ) - (block $__rjto$11 - (block $__rjti$11 - (loop $while-in47 - (if - (i32.eq - (i32.load - (get_local $2) + (block $__rjto$11 + (block $__rjti$11 + (loop $while-in47 + (if + (i32.eq + (i32.load + (get_local $2) + ) + (get_local $11) + ) + (block + (set_local $5 + (get_local $2) + ) + (br $__rjti$11) ) - (get_local $11) ) - (block - (set_local $5 - (get_local $2) + (br_if $while-in47 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) - (br $__rjti$11) + ) + (set_local $4 + (i32.const 624) ) ) - (br_if $while-in47 - (tee_local $2 - (i32.load offset=8 - (get_local $2) - ) + (br $__rjto$11) + ) + (if + (i32.and + (i32.load offset=12 + (get_local $2) ) + (i32.const 8) ) (set_local $4 (i32.const 624) ) - ) - (br $__rjto$11) - ) - (if - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const 8) - ) - (set_local $4 - (i32.const 624) - ) - (block - (i32.store - (get_local $5) - (get_local $1) - ) - (i32.store - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - (i32.add - (i32.load - (get_local $2) - ) - (get_local $3) + (block + (i32.store + (get_local $5) + (get_local $1) ) - ) - (set_local $8 - (i32.add - (tee_local $9 + (i32.store + (tee_local $2 (i32.add - (get_local $1) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) - ) - ) + (get_local $2) + (i32.const 4) ) ) - (get_local $0) + (i32.add + (i32.load + (get_local $2) + ) + (get_local $3) + ) ) - ) - (set_local $7 - (i32.sub - (i32.sub - (tee_local $5 + (set_local $8 + (i32.add + (tee_local $9 (i32.add - (get_local $11) + (get_local $1) (select (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $11) + (get_local $1) (i32.const 8) ) ) @@ -11482,1919 +11377,1948 @@ ) ) ) - (get_local $9) + (get_local $0) ) - (get_local $0) ) - ) - (i32.store offset=4 - (get_local $9) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (block $do-once48 - (if - (i32.eq - (get_local $5) - (get_local $6) - ) - (block - (i32.store - (i32.const 188) - (tee_local $0 + (set_local $7 + (i32.sub + (i32.sub + (tee_local $5 (i32.add - (i32.load - (i32.const 188) + (get_local $11) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $11) + (i32.const 8) + ) + ) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) + ) ) - (get_local $7) ) ) + (get_local $9) ) - (i32.store - (i32.const 200) - (get_local $8) + (get_local $0) + ) + ) + (i32.store offset=4 + (get_local $9) + (i32.or + (get_local $0) + (i32.const 3) + ) + ) + (block $do-once48 + (if + (i32.eq + (get_local $5) + (get_local $6) ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $0) - (i32.const 1) + (block + (i32.store + (i32.const 188) + (tee_local $0 + (i32.add + (i32.load + (i32.const 188) + ) + (get_local $7) + ) + ) ) - ) - ) - (block - (if - (i32.eq - (get_local $5) - (i32.load - (i32.const 196) + (i32.store + (i32.const 200) + (get_local $8) + ) + (i32.store offset=4 + (get_local $8) + (i32.or + (get_local $0) + (i32.const 1) ) ) - (block - (i32.store - (i32.const 184) - (tee_local $0 - (i32.add - (i32.load - (i32.const 184) + ) + (block + (if + (i32.eq + (get_local $5) + (i32.load + (i32.const 196) + ) + ) + (block + (i32.store + (i32.const 184) + (tee_local $0 + (i32.add + (i32.load + (i32.const 184) + ) + (get_local $7) ) - (get_local $7) ) ) - ) - (i32.store - (i32.const 196) - (get_local $8) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $0) - (i32.const 1) + (i32.store + (i32.const 196) + (get_local $8) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) + (i32.or + (get_local $0) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $8) + (get_local $0) + ) (get_local $0) ) - (get_local $0) + (br $do-once48) ) - (br $do-once48) ) - ) - (i32.store - (tee_local $0 - (i32.add - (tee_local $0 - (if (result i32) - (i32.eq - (i32.and - (tee_local $0 - (i32.load offset=4 - (get_local $5) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - (block (result i32) - (set_local $11 + (i32.store + (tee_local $0 + (i32.add + (tee_local $0 + (if (result i32) + (i32.eq (i32.and - (get_local $0) - (i32.const -8) - ) - ) - (set_local $1 - (i32.shr_u - (get_local $0) + (tee_local $0 + (i32.load offset=4 + (get_local $5) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$L331 - (if - (i32.lt_u + (block (result i32) + (set_local $11 + (i32.and (get_local $0) - (i32.const 256) + (i32.const -8) ) - (block - (set_local $2 - (i32.load offset=12 - (get_local $5) - ) + ) + (set_local $1 + (i32.shr_u + (get_local $0) + (i32.const 3) + ) + ) + (block $label$break$L331 + (if + (i32.lt_u + (get_local $0) + (i32.const 256) ) - (block $do-once51 - (if - (i32.ne - (tee_local $3 - (i32.load offset=8 - (get_local $5) - ) - ) - (tee_local $0 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (block + (set_local $2 + (i32.load offset=12 + (get_local $5) + ) + ) + (block $do-once51 + (if + (i32.ne + (tee_local $3 + (i32.load offset=8 + (get_local $5) ) - (i32.const 216) ) - ) - ) - (block - (if - (i32.lt_u - (get_local $3) - (get_local $4) + (tee_local $0 + (i32.add + (i32.shl + (get_local $1) + (i32.const 3) + ) + (i32.const 216) + ) ) - (call $_abort) ) - (br_if $do-once51 - (i32.eq - (i32.load offset=12 + (block + (if + (i32.lt_u (get_local $3) + (get_local $4) ) - (get_local $5) + (call $_abort) ) - ) - (call $_abort) - ) - ) - ) - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (i32.load - (i32.const 176) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (br_if $do-once51 + (i32.eq + (i32.load offset=12 + (get_local $3) + ) + (get_local $5) ) - (i32.const -1) ) + (call $_abort) ) ) - (br $label$break$L331) ) - ) - (block $do-once53 (if (i32.eq (get_local $2) - (get_local $0) + (get_local $3) ) - (set_local $15 - (i32.add - (get_local $2) - (i32.const 8) + (block + (i32.store + (i32.const 176) + (i32.and + (i32.load + (i32.const 176) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) + ) + ) ) + (br $label$break$L331) ) - (block - (if - (i32.lt_u + ) + (block $do-once53 + (if + (i32.eq + (get_local $2) + (get_local $0) + ) + (set_local $15 + (i32.add (get_local $2) - (get_local $4) + (i32.const 8) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $2) - (i32.const 8) + (block + (if + (i32.lt_u + (get_local $2) + (get_local $4) + ) + (call $_abort) + ) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (set_local $15 - (get_local $0) + (block + (set_local $15 + (get_local $0) + ) + (br $do-once53) ) - (br $do-once53) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=12 - (get_local $3) - (get_local $2) - ) - (i32.store - (get_local $15) - (get_local $3) - ) - ) - (block - (set_local $6 - (i32.load offset=24 - (get_local $5) + (i32.store offset=12 + (get_local $3) + (get_local $2) + ) + (i32.store + (get_local $15) + (get_local $3) ) ) - (block $do-once55 - (if - (i32.eq - (tee_local $0 - (i32.load offset=12 - (get_local $5) - ) - ) + (block + (set_local $6 + (i32.load offset=24 (get_local $5) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (tee_local $3 - (i32.add - (get_local $5) - (i32.const 16) + ) + (block $do-once55 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $5) + ) + ) + (get_local $5) + ) + (block + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (tee_local $3 + (i32.add + (get_local $5) + (i32.const 16) + ) ) + (i32.const 4) ) - (i32.const 4) ) ) ) ) - ) - (if - (tee_local $1 - (i32.load + (if + (tee_local $1 + (i32.load + (get_local $3) + ) + ) + (set_local $0 (get_local $3) ) + (block + (set_local $12 + (i32.const 0) + ) + (br $do-once55) + ) ) - (set_local $0 - (get_local $3) + ) + (loop $while-in58 + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 20) + ) + ) + ) + ) + (block + (set_local $1 + (get_local $3) + ) + (set_local $0 + (get_local $2) + ) + (br $while-in58) + ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) + ) + (block + (set_local $1 + (get_local $3) + ) + (set_local $0 + (get_local $2) + ) + (br $while-in58) + ) + ) + ) + (if + (i32.lt_u + (get_local $0) + (get_local $4) ) + (call $_abort) (block - (set_local $12 + (i32.store + (get_local $0) (i32.const 0) ) - (br $do-once55) + (set_local $12 + (get_local $1) + ) ) ) ) - (loop $while-in58 + (block (if - (tee_local $3 + (i32.lt_u + (tee_local $2 + (i32.load offset=8 + (get_local $5) + ) + ) + (get_local $4) + ) + (call $_abort) + ) + (if + (i32.ne (i32.load - (tee_local $2 + (tee_local $3 (i32.add - (get_local $1) - (i32.const 20) + (get_local $2) + (i32.const 12) ) ) ) + (get_local $5) ) - (block - (set_local $1 - (get_local $3) - ) - (set_local $0 - (get_local $2) - ) - (br $while-in58) - ) + (call $_abort) ) (if - (tee_local $3 + (i32.eq (i32.load - (tee_local $2 + (tee_local $1 (i32.add - (get_local $1) - (i32.const 16) + (get_local $0) + (i32.const 8) ) ) ) + (get_local $5) ) (block - (set_local $1 + (i32.store (get_local $3) + (get_local $0) ) - (set_local $0 + (i32.store + (get_local $1) (get_local $2) ) - (br $while-in58) - ) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $4) - ) - (call $_abort) - (block - (i32.store - (get_local $0) - (i32.const 0) - ) - (set_local $12 - (get_local $1) + (set_local $12 + (get_local $0) + ) ) + (call $_abort) ) ) ) - (block - (if - (i32.lt_u - (tee_local $2 - (i32.load offset=8 - (get_local $5) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $6) + ) + ) + (block $do-once59 + (if + (i32.eq + (get_local $5) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $5) + ) + ) + (i32.const 2) + ) + (i32.const 480) ) ) - (get_local $4) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 12) + (block + (i32.store + (get_local $0) + (get_local $12) + ) + (br_if $do-once59 + (get_local $12) + ) + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) ) + (i32.const -1) ) ) - (get_local $5) ) - (call $_abort) + (br $label$break$L331) ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) - ) + (block + (if + (i32.lt_u + (get_local $6) + (i32.load + (i32.const 192) ) ) - (get_local $5) + (call $_abort) ) - (block + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $6) + (i32.const 16) + ) + ) + ) + (get_local $5) + ) (i32.store - (get_local $3) (get_local $0) + (get_local $12) ) - (i32.store - (get_local $1) - (get_local $2) + (i32.store offset=20 + (get_local $6) + (get_local $12) ) - (set_local $12 - (get_local $0) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $12) ) ) - (call $_abort) ) ) ) - ) - (br_if $label$break$L331 - (i32.eqz + (if + (i32.lt_u + (get_local $12) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (call $_abort) + ) + (i32.store offset=24 + (get_local $12) (get_local $6) ) - ) - (block $do-once59 (if - (i32.eq - (get_local $5) + (tee_local $3 (i32.load (tee_local $0 (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $5) - ) - ) - (i32.const 2) - ) - (i32.const 480) - ) - ) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $12) - ) - (br_if $do-once59 - (get_local $12) - ) - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) - ) - (i32.const -1) + (get_local $5) + (i32.const 16) ) ) ) - (br $label$break$L331) ) - (block - (if - (i32.lt_u - (get_local $6) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) + (if + (i32.lt_u + (get_local $3) + (get_local $1) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $6) - (i32.const 16) - ) - ) - ) - (get_local $5) - ) - (i32.store - (get_local $0) - (get_local $12) - ) - (i32.store offset=20 - (get_local $6) + (call $_abort) + (block + (i32.store offset=16 (get_local $12) + (get_local $3) ) - ) - (br_if $label$break$L331 - (i32.eqz + (i32.store offset=24 + (get_local $3) (get_local $12) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $12) - (tee_local $1 - (i32.load - (i32.const 192) - ) - ) - ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $12) - (get_local $6) - ) - (if - (tee_local $3 - (i32.load + (br_if $label$break$L331 + (i32.eqz (tee_local $0 - (i32.add - (get_local $5) - (i32.const 16) + (i32.load offset=4 + (get_local $0) ) ) ) ) (if (i32.lt_u - (get_local $3) - (get_local $1) + (get_local $0) + (i32.load + (i32.const 192) + ) ) (call $_abort) (block - (i32.store offset=16 + (i32.store offset=20 (get_local $12) - (get_local $3) + (get_local $0) ) (i32.store offset=24 - (get_local $3) - (get_local $12) - ) - ) - ) - ) - (br_if $label$break$L331 - (i32.eqz - (tee_local $0 - (i32.load offset=4 (get_local $0) + (get_local $12) ) ) ) ) - (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $12) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) - (get_local $12) - ) - ) - ) ) ) - ) - (set_local $7 + (set_local $7 + (i32.add + (get_local $11) + (get_local $7) + ) + ) (i32.add + (get_local $5) (get_local $11) - (get_local $7) ) ) - (i32.add - (get_local $5) - (get_local $11) - ) + (get_local $5) ) - (get_local $5) ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.and - (i32.load - (get_local $0) + (i32.and + (i32.load + (get_local $0) + ) + (i32.const -2) ) - (i32.const -2) ) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $7) - (i32.const 1) - ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) - (get_local $7) + (i32.or + (get_local $7) + (i32.const 1) + ) ) - (get_local $7) - ) - (set_local $0 - (i32.shr_u + (i32.store + (i32.add + (get_local $8) + (get_local $7) + ) (get_local $7) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $7) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $7) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (if + (i32.lt_u + (get_local $7) + (i32.const 256) + ) + (block + (set_local $3 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 216) ) - (i32.const 216) ) - ) - (block $do-once63 - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) + (block $do-once63 + (if + (i32.and + (tee_local $1 + (i32.load + (i32.const 176) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) ) ) - ) - (block - (if - (i32.ge_u - (tee_local $0 - (i32.load - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 8) + (block + (if + (i32.ge_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (block + (set_local $16 + (get_local $1) + ) + (set_local $10 + (get_local $0) + ) + (br $do-once63) ) ) - (block - (set_local $16 + (call $_abort) + ) + (block + (i32.store + (i32.const 176) + (i32.or (get_local $1) - ) - (set_local $10 (get_local $0) ) - (br $do-once63) ) - ) - (call $_abort) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) + (set_local $16 + (i32.add + (get_local $3) + (i32.const 8) + ) ) - ) - (set_local $16 - (i32.add + (set_local $10 (get_local $3) - (i32.const 8) ) ) - (set_local $10 - (get_local $3) - ) ) ) + (i32.store + (get_local $16) + (get_local $8) + ) + (i32.store offset=12 + (get_local $10) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $10) + ) + (i32.store offset=12 + (get_local $8) + (get_local $3) + ) + (br $do-once48) ) - (i32.store - (get_local $16) - (get_local $8) - ) - (i32.store offset=12 - (get_local $10) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $10) - ) - (i32.store offset=12 - (get_local $8) - (get_local $3) - ) - (br $do-once48) ) - ) - (set_local $3 - (i32.add - (i32.shl - (tee_local $2 - (block $do-once65 (result i32) - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $7) - (i32.const 8) + (set_local $3 + (i32.add + (i32.shl + (tee_local $2 + (block $do-once65 (result i32) + (if (result i32) + (tee_local $0 + (i32.shr_u + (get_local $7) + (i32.const 8) + ) ) - ) - (block (result i32) - (drop - (br_if $do-once65 - (i32.const 31) - (i32.gt_u - (get_local $7) - (i32.const 16777215) + (block (result i32) + (drop + (br_if $do-once65 + (i32.const 31) + (i32.gt_u + (get_local $7) + (i32.const 16777215) + ) ) ) - ) - (i32.or - (i32.and - (i32.shr_u - (get_local $7) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $7) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $8) - (get_local $2) - ) - (i32.store offset=4 - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 16) + (i32.store offset=28 + (get_local $8) + (get_local $2) + ) + (i32.store offset=4 + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $1 - (i32.load - (i32.const 180) + (i32.store + (get_local $0) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $1 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $2) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $2) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $1) - (get_local $0) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $1) + (get_local $0) + ) ) + (i32.store + (get_local $3) + (get_local $8) + ) + (i32.store offset=24 + (get_local $8) + (get_local $3) + ) + (i32.store offset=12 + (get_local $8) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $8) + ) + (br $do-once48) ) - (i32.store - (get_local $3) - (get_local $8) - ) - (i32.store offset=24 - (get_local $8) - (get_local $3) - ) - (i32.store offset=12 - (get_local $8) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $8) - ) - (br $do-once48) ) - ) - (set_local $2 - (i32.shl - (get_local $7) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $2 + (i32.shl + (get_local $7) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $2) + (i32.const 1) + ) + ) + (i32.eq (get_local $2) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $2) - (i32.const 31) - ) ) ) - ) - (set_local $0 - (i32.load - (get_local $3) + (set_local $0 + (i32.load + (get_local $3) + ) ) - ) - (block $__rjto$7 - (block $__rjti$7 - (loop $while-in68 - (br_if $__rjti$7 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $0) + (block $__rjto$7 + (block $__rjti$7 + (loop $while-in68 + (br_if $__rjti$7 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $7) ) - (get_local $7) ) - ) - (set_local $3 - (i32.shl - (get_local $2) - (i32.const 1) + (set_local $3 + (i32.shl + (get_local $2) + (i32.const 1) + ) ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $2 - (i32.add + (if + (tee_local $1 + (i32.load + (tee_local $2 (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $2) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $2) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $2 + (get_local $3) + ) + (set_local $0 + (get_local $1) + ) + (br $while-in68) + ) ) + ) + (if + (i32.lt_u + (get_local $2) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) (block - (set_local $2 - (get_local $3) + (i32.store + (get_local $2) + (get_local $8) ) - (set_local $0 - (get_local $1) + (i32.store offset=24 + (get_local $8) + (get_local $0) + ) + (i32.store offset=12 + (get_local $8) + (get_local $8) ) - (br $while-in68) + (i32.store offset=8 + (get_local $8) + (get_local $8) + ) + (br $do-once48) ) ) + (br $__rjto$7) ) (if - (i32.lt_u - (get_local $2) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $2 + (i32.load + (tee_local $3 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $0) + (get_local $1) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (get_local $2) (get_local $8) ) - (i32.store offset=24 - (get_local $8) - (get_local $0) - ) - (i32.store offset=12 - (get_local $8) + (i32.store + (get_local $3) (get_local $8) ) (i32.store offset=8 (get_local $8) - (get_local $8) + (get_local $2) ) - (br $do-once48) - ) - ) - (br $__rjto$7) - ) - (if - (i32.and - (i32.ge_u - (tee_local $2 - (i32.load - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (get_local $8) + (get_local $0) ) - (tee_local $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (get_local $8) + (i32.const 0) ) ) - (i32.ge_u - (get_local $0) - (get_local $1) - ) - ) - (block - (i32.store offset=12 - (get_local $2) - (get_local $8) - ) - (i32.store - (get_local $3) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $2) - ) - (i32.store offset=12 - (get_local $8) - (get_local $0) - ) - (i32.store offset=24 - (get_local $8) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (return - (i32.add - (get_local $9) - (i32.const 8) + (return + (i32.add + (get_local $9) + (i32.const 8) + ) ) ) ) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.le_u - (tee_local $2 - (i32.load - (get_local $4) + (loop $while-in70 + (block $while-out69 + (if + (i32.le_u + (tee_local $2 + (i32.load + (get_local $4) + ) ) + (get_local $6) ) - (get_local $6) - ) - (br_if $while-out69 - (i32.gt_u - (tee_local $2 - (i32.add - (get_local $2) - (i32.load offset=4 - (get_local $4) + (br_if $while-out69 + (i32.gt_u + (tee_local $2 + (i32.add + (get_local $2) + (i32.load offset=4 + (get_local $4) + ) ) ) + (get_local $6) ) - (get_local $6) ) ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $4) + (set_local $4 + (i32.load offset=8 + (get_local $4) + ) ) + (br $while-in70) ) - (br $while-in70) ) - ) - (set_local $10 - (i32.add - (tee_local $4 - (i32.add - (get_local $2) - (i32.const -47) + (set_local $10 + (i32.add + (tee_local $4 + (i32.add + (get_local $2) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (set_local $12 - (i32.add - (tee_local $11 - (select - (get_local $6) - (tee_local $4 - (i32.add - (get_local $4) - (select - (i32.and - (i32.sub - (i32.const 0) + (set_local $12 + (i32.add + (tee_local $11 + (select + (get_local $6) + (tee_local $4 + (i32.add + (get_local $4) + (select + (i32.and + (i32.sub + (i32.const 0) + (get_local $10) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and (get_local $10) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $10) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (get_local $4) - (tee_local $10 - (i32.add - (get_local $6) - (i32.const 16) + (i32.lt_u + (get_local $4) + (tee_local $10 + (i32.add + (get_local $6) + (i32.const 16) + ) ) ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 200) - (tee_local $5 - (i32.add - (get_local $1) - (tee_local $4 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $4 - (i32.add - (get_local $1) - (i32.const 8) + (i32.store + (i32.const 200) + (tee_local $5 + (i32.add + (get_local $1) + (tee_local $4 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $4 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $4) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 188) - (tee_local $4 - (i32.sub - (i32.add - (get_local $3) - (i32.const -40) + (i32.store + (i32.const 188) + (tee_local $4 + (i32.sub + (i32.add + (get_local $3) + (i32.const -40) + ) + (get_local $4) ) + ) + ) + (i32.store offset=4 + (get_local $5) + (i32.or (get_local $4) + (i32.const 1) ) ) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $4) - (i32.const 1) + (i32.store offset=4 + (i32.add + (get_local $5) + (get_local $4) + ) + (i32.const 40) ) - ) - (i32.store offset=4 - (i32.add - (get_local $5) - (get_local $4) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store + (tee_local $4 + (i32.add + (get_local $11) + (i32.const 4) + ) + ) + (i32.const 27) ) - ) - (i32.store - (tee_local $4 - (i32.add - (get_local $11) - (i32.const 4) + (i32.store + (get_local $12) + (i32.load + (i32.const 624) ) ) - (i32.const 27) - ) - (i32.store - (get_local $12) - (i32.load + (i32.store offset=4 + (get_local $12) + (i32.load + (i32.const 628) + ) + ) + (i32.store offset=8 + (get_local $12) + (i32.load + (i32.const 632) + ) + ) + (i32.store offset=12 + (get_local $12) + (i32.load + (i32.const 636) + ) + ) + (i32.store (i32.const 624) + (get_local $1) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.load + (i32.store (i32.const 628) + (get_local $3) ) - ) - (i32.store offset=8 - (get_local $12) - (i32.load - (i32.const 632) - ) - ) - (i32.store offset=12 - (get_local $12) - (i32.load + (i32.store (i32.const 636) + (i32.const 0) ) - ) - (i32.store - (i32.const 624) - (get_local $1) - ) - (i32.store - (i32.const 628) - (get_local $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 632) - (get_local $12) - ) - (set_local $1 - (i32.add - (get_local $11) - (i32.const 24) - ) - ) - (loop $while-in72 (i32.store - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 632) + (get_local $12) ) - (br_if $while-in72 - (i32.lt_u - (i32.add - (get_local $1) - (i32.const 4) - ) - (get_local $2) + (set_local $1 + (i32.add + (get_local $11) + (i32.const 24) ) ) - ) - (if - (i32.ne - (get_local $11) - (get_local $6) - ) - (block + (loop $while-in72 (i32.store - (get_local $4) - (i32.and - (i32.load - (get_local $4) + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (get_local $6) - (i32.or - (tee_local $5 - (i32.sub - (get_local $11) - (get_local $6) - ) + (br_if $while-in72 + (i32.lt_u + (i32.add + (get_local $1) + (i32.const 4) ) - (i32.const 1) + (get_local $2) ) ) - (i32.store + ) + (if + (i32.ne (get_local $11) - (get_local $5) - ) - (set_local $1 - (i32.shr_u - (get_local $5) - (i32.const 3) - ) + (get_local $6) ) - (if - (i32.lt_u - (get_local $5) - (i32.const 256) + (block + (i32.store + (get_local $4) + (i32.and + (i32.load + (get_local $4) + ) + (i32.const -2) + ) ) - (block - (set_local $2 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (i32.store offset=4 + (get_local $6) + (i32.or + (tee_local $5 + (i32.sub + (get_local $11) + (get_local $6) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 + ) + (i32.store + (get_local $11) + (get_local $5) + ) + (set_local $1 + (i32.shr_u + (get_local $5) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (get_local $5) + (i32.const 256) + ) + (block + (set_local $2 + (i32.add (i32.shl - (i32.const 1) (get_local $1) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $1 + (i32.and + (tee_local $3 (i32.load - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $1) + ) + ) + ) + (if + (i32.lt_u + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $17 + (get_local $3) + ) + (set_local $7 + (get_local $1) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $1) + ) + ) (set_local $17 - (get_local $3) + (i32.add + (get_local $2) + (i32.const 8) + ) ) (set_local $7 - (get_local $1) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $3) - (get_local $1) - ) - ) - (set_local $17 - (i32.add (get_local $2) - (i32.const 8) ) ) - (set_local $7 - (get_local $2) - ) ) + (i32.store + (get_local $17) + (get_local $6) + ) + (i32.store offset=12 + (get_local $7) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $7) + ) + (i32.store offset=12 + (get_local $6) + (get_local $2) + ) + (br $do-once40) ) - (i32.store - (get_local $17) - (get_local $6) - ) - (i32.store offset=12 - (get_local $7) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $7) - ) - (i32.store offset=12 - (get_local $6) - (get_local $2) - ) - (br $do-once40) ) - ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $4 - (if (result i32) - (tee_local $1 - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - ) + (set_local $2 + (i32.add + (i32.shl + (tee_local $4 (if (result i32) - (i32.gt_u - (get_local $5) - (i32.const 16777215) + (tee_local $1 + (i32.shr_u + (get_local $5) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (tee_local $1 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $5) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $5) + (i32.add + (tee_local $1 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $1) - (tee_local $2 - (i32.and - (i32.shr_u - (i32.add - (get_local $1) - (i32.const 1048320) + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $1) + (tee_local $2 + (i32.and + (i32.shr_u + (i32.add + (get_local $1) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $2) ) - (get_local $2) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $3) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $3) + (get_local $1) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $3) - (get_local $1) + (i32.shr_u + (i32.shl + (get_local $3) + (get_local $1) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $1) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $1) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $6) - (get_local $4) - ) - (i32.store offset=20 - (get_local $6) - (i32.const 0) - ) - (i32.store - (get_local $10) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 180) + (i32.store offset=28 + (get_local $6) + (get_local $4) + ) + (i32.store offset=20 + (get_local $6) + (i32.const 0) + ) + (i32.store + (get_local $10) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $4) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $4) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $3) - (get_local $1) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $3) + (get_local $1) + ) ) + (i32.store + (get_local $2) + (get_local $6) + ) + (i32.store offset=24 + (get_local $6) + (get_local $2) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once40) ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=24 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $6) - ) - (br $do-once40) ) - ) - (set_local $4 - (i32.shl - (get_local $5) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $4 + (i32.shl + (get_local $5) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $4) + (i32.const 1) + ) + ) + (i32.eq (get_local $4) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $4) - (i32.const 31) - ) ) ) - ) - (set_local $1 - (i32.load - (get_local $2) + (set_local $1 + (i32.load + (get_local $2) + ) ) - ) - (block $__rjto$9 - (block $__rjti$9 - (loop $while-in74 - (br_if $__rjti$9 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $1) + (block $__rjto$9 + (block $__rjti$9 + (loop $while-in74 + (br_if $__rjti$9 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $1) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $5) ) - (get_local $5) ) - ) - (set_local $2 - (i32.shl - (get_local $4) - (i32.const 1) + (set_local $2 + (i32.shl + (get_local $4) + (i32.const 1) + ) ) - ) - (if - (tee_local $3 - (i32.load - (tee_local $4 - (i32.add + (if + (tee_local $3 + (i32.load + (tee_local $4 (i32.add - (get_local $1) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $4) - (i32.const 31) + (i32.add + (get_local $1) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $4) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $4 + (get_local $2) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in74) + ) + ) + ) + (if + (i32.lt_u + (get_local $4) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (set_local $4 - (get_local $2) + (i32.store + (get_local $4) + (get_local $6) ) - (set_local $1 - (get_local $3) + (i32.store offset=24 + (get_local $6) + (get_local $1) ) - (br $while-in74) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once40) ) ) + (br $__rjto$9) ) (if - (i32.lt_u - (get_local $4) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $4 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 8) + ) + ) + ) + ) + (tee_local $3 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $1) + (get_local $3) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (get_local $4) (get_local $6) ) - (i32.store offset=24 - (get_local $6) - (get_local $1) - ) - (i32.store offset=12 - (get_local $6) + (i32.store + (get_local $2) (get_local $6) ) (i32.store offset=8 (get_local $6) - (get_local $6) + (get_local $4) ) - (br $do-once40) - ) - ) - (br $__rjto$9) - ) - (if - (i32.and - (i32.ge_u - (tee_local $4 - (i32.load - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (get_local $6) + (get_local $1) ) - (tee_local $3 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (get_local $6) + (i32.const 0) ) ) - (i32.ge_u - (get_local $1) - (get_local $3) - ) - ) - (block - (i32.store offset=12 - (get_local $4) - (get_local $6) - ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - (i32.store offset=12 - (get_local $6) - (get_local $1) - ) - (i32.store offset=24 - (get_local $6) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (tee_local $2 - (i32.load - (i32.const 192) + (block + (if + (i32.or + (i32.eqz + (tee_local $2 + (i32.load + (i32.const 192) + ) ) ) + (i32.lt_u + (get_local $1) + (get_local $2) + ) ) - (i32.lt_u + (i32.store + (i32.const 192) (get_local $1) - (get_local $2) ) ) (i32.store - (i32.const 192) + (i32.const 624) (get_local $1) ) - ) - (i32.store - (i32.const 624) - (get_local $1) - ) - (i32.store - (i32.const 628) - (get_local $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) + (i32.store + (i32.const 628) + (get_local $3) ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (set_local $2 - (i32.const 0) - ) - (loop $while-in43 - (i32.store offset=12 - (tee_local $4 - (i32.add - (i32.shl - (get_local $2) - (i32.const 3) - ) - (i32.const 216) - ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) + (i32.load + (i32.const 648) ) - (get_local $4) ) - (i32.store offset=8 - (get_local $4) - (get_local $4) + (i32.store + (i32.const 208) + (i32.const -1) ) - (br_if $while-in43 - (i32.ne - (tee_local $2 + (set_local $2 + (i32.const 0) + ) + (loop $while-in43 + (i32.store offset=12 + (tee_local $4 (i32.add - (get_local $2) - (i32.const 1) + (i32.shl + (get_local $2) + (i32.const 3) + ) + (i32.const 216) ) ) - (i32.const 32) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + (br_if $while-in43 + (i32.ne + (tee_local $2 + (i32.add + (get_local $2) + (i32.const 1) + ) + ) + (i32.const 32) + ) ) ) - ) - (i32.store - (i32.const 200) - (tee_local $2 - (i32.add - (get_local $1) - (tee_local $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 8) + (i32.store + (i32.const 200) + (tee_local $2 + (i32.add + (get_local $1) + (tee_local $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 188) - (tee_local $1 - (i32.sub - (i32.add - (get_local $3) - (i32.const -40) + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (i32.add + (get_local $3) + (i32.const -40) + ) + (get_local $1) ) + ) + ) + (i32.store offset=4 + (get_local $2) + (i32.or (get_local $1) + (i32.const 1) ) ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $1) - (i32.const 1) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 40) ) - ) - (i32.store offset=4 - (i32.add - (get_local $2) - (get_local $1) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) - (i32.const 40) ) - (i32.store - (i32.const 204) + ) + ) + (br_if $folding-inner0 + (i32.gt_u + (tee_local $1 (i32.load - (i32.const 664) + (i32.const 188) ) ) + (get_local $0) ) ) ) - (if - (i32.gt_u - (tee_local $1 - (i32.load - (i32.const 188) - ) - ) + (i32.store + (call $___errno_location) + (i32.const 12) + ) + (return + (i32.const 0) + ) + ) + (i32.store + (i32.const 188) + (tee_local $3 + (i32.sub + (get_local $1) (get_local $0) ) - (block - (i32.store - (i32.const 188) - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) - ) - ) - (i32.store - (i32.const 200) - (tee_local $1 - (i32.add - (tee_local $2 - (i32.load - (i32.const 200) - ) - ) - (get_local $0) - ) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $3) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) + ) + ) + (i32.store + (i32.const 200) + (tee_local $1 + (i32.add + (tee_local $2 + (i32.load + (i32.const 200) ) ) + (get_local $0) ) ) ) - (i32.store - (call $___errno_location) - (i32.const 12) + (i32.store offset=4 + (get_local $1) + (i32.or + (get_local $3) + (i32.const 1) + ) + ) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $0) + (i32.const 3) + ) + ) + (i32.add + (get_local $2) + (i32.const 8) ) - (i32.const 0) ) (func $_free (param $0 i32) (local $1 i32) diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise index ed7ba8aa4..65fda0e77 100644 --- a/test/emcc_hello_world.fromasm.imprecise +++ b/test/emcc_hello_world.fromasm.imprecise @@ -293,26 +293,20 @@ (set_local $1 (i32.const 87) ) - (set_local $0 - (i32.const 775) - ) (br $__rjti$1) ) ) - (if + (br_if $__rjti$1 (get_local $1) - (block - (set_local $0 - (i32.const 775) - ) - (br $__rjti$1) - ) - (set_local $0 - (i32.const 775) - ) + ) + (set_local $0 + (i32.const 775) ) (br $__rjto$1) ) + (set_local $0 + (i32.const 775) + ) (loop $while-in1 (loop $while-in3 (set_local $2 @@ -953,35 +947,34 @@ (get_local $5) ) ) - (if (result i32) - (i32.eq - (get_local $4) - (i32.const 2) - ) - (block (result i32) - (i32.store - (get_local $6) - (i32.add - (i32.load - (get_local $6) + (block (result i32) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $6) + (i32.add + (i32.load + (get_local $6) + ) + (get_local $3) ) - (get_local $3) + ) + (set_local $7 + (get_local $5) + ) + (set_local $4 + (i32.const 2) ) ) (set_local $7 (get_local $5) ) - (set_local $4 - (i32.const 2) - ) - (get_local $3) - ) - (block (result i32) - (set_local $7 - (get_local $5) - ) - (get_local $3) ) + (get_local $3) ) ) ) @@ -1858,7 +1851,7 @@ (get_local $0) ) (loop $while-in - (if + (br_if $__rjti$2 (i32.eq (i32.load8_u (get_local $2) @@ -1868,12 +1861,6 @@ (i32.const 255) ) ) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) ) (br_if $while-in (i32.and @@ -1916,20 +1903,17 @@ ) ) ) - (if + (br_if $__rjti$2 (get_local $0) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) - (set_local $0 - (i32.const 0) - ) + ) + (set_local $0 + (i32.const 0) ) (br $label$break$L8) ) + (set_local $0 + (get_local $3) + ) (if (i32.ne (i32.load8_u @@ -2866,34 +2850,31 @@ (get_local $6) ) ) - (set_local $1 - (if (result i32) - (i32.lt_s - (get_local $14) - (i32.const 0) - ) - (block (result i32) - (set_local $11 - (i32.or - (get_local $1) - (i32.const 8192) - ) - ) - (set_local $14 - (i32.sub - (i32.const 0) - (get_local $14) - ) + (if + (i32.lt_s + (get_local $14) + (i32.const 0) + ) + (block + (set_local $11 + (i32.or + (get_local $1) + (i32.const 8192) ) - (get_local $8) ) - (block (result i32) - (set_local $11 - (get_local $1) + (set_local $14 + (i32.sub + (i32.const 0) + (get_local $14) ) - (get_local $8) ) ) + (set_local $11 + (get_local $1) + ) + ) + (set_local $1 + (get_local $8) ) ) (if @@ -3733,13 +3714,6 @@ ) ) ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$8) ) (block (set_local $5 @@ -3748,15 +3722,15 @@ (set_local $7 (get_local $11) ) - (set_local $8 - (i32.const 0) - ) - (set_local $9 - (i32.const 4091) - ) - (br $__rjti$8) ) ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $__rjti$8) ) (set_local $5 (i32.load @@ -3815,7 +3789,6 @@ (set_local $9 (i32.const 4092) ) - (br $__rjti$4) ) (block (set_local $8 @@ -3833,9 +3806,9 @@ (get_local $9) ) ) - (br $__rjti$4) ) ) + (br $__rjti$4) ) (set_local $5 (i32.load @@ -6554,7 +6527,6 @@ (set_local $9 (i32.const 4091) ) - (br $__rjti$8) ) (block (set_local $8 @@ -6569,9 +6541,9 @@ (i32.const 4091) ) ) - (br $__rjti$8) ) ) + (br $__rjti$8) ) ) ) @@ -6837,7 +6809,7 @@ ) ) ) - (if (result i32) + (if (i32.or (get_local $6) (tee_local $12 @@ -6859,7 +6831,7 @@ ) ) ) - (block (result i32) + (block (set_local $7 (get_local $5) ) @@ -6887,18 +6859,17 @@ ) ) ) - (get_local $22) ) - (block (result i32) + (block (set_local $7 (get_local $22) ) (set_local $12 (i32.const 0) ) - (get_local $22) ) ) + (get_local $22) ) ) (call $_pad @@ -7804,258 +7775,274 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (block $do-once - (if - (i32.lt_u - (get_local $0) - (i32.const 245) - ) - (block - (if - (i32.and - (tee_local $5 - (i32.shr_u - (tee_local $11 - (i32.load - (i32.const 176) + (block $folding-inner0 + (block $do-once + (if + (i32.lt_u + (get_local $0) + (i32.const 245) + ) + (block + (if + (i32.and + (tee_local $5 + (i32.shr_u + (tee_local $11 + (i32.load + (i32.const 176) + ) ) - ) - (tee_local $13 - (i32.shr_u - (tee_local $4 - (select - (i32.const 16) - (i32.and - (i32.add + (tee_local $13 + (i32.shr_u + (tee_local $4 + (select + (i32.const 16) + (i32.and + (i32.add + (get_local $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (get_local $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (get_local $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (set_local $10 - (i32.load - (tee_local $1 - (i32.add - (tee_local $7 - (i32.load - (tee_local $3 - (i32.add - (tee_local $2 - (i32.add - (i32.shl - (tee_local $4 - (i32.add - (i32.xor - (i32.and - (get_local $5) + (block + (set_local $10 + (i32.load + (tee_local $1 + (i32.add + (tee_local $7 + (i32.load + (tee_local $3 + (i32.add + (tee_local $2 + (i32.add + (i32.shl + (tee_local $4 + (i32.add + (i32.xor + (i32.and + (get_local $5) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) + (get_local $13) ) - (get_local $13) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 216) ) - (i32.const 216) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $2) - (get_local $10) - ) - (i32.store - (i32.const 176) - (i32.and - (get_local $11) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $4) - ) - (i32.const -1) - ) + (if + (i32.eq + (get_local $2) + (get_local $10) ) - ) - (block - (if - (i32.lt_u - (get_local $10) - (i32.load - (i32.const 192) + (i32.store + (i32.const 176) + (i32.and + (get_local $11) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $4) + ) + (i32.const -1) ) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $10) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $10) + (i32.load + (i32.const 192) ) ) - (get_local $7) + (call $_abort) ) - (block - (i32.store - (get_local $0) - (get_local $2) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $10) + (i32.const 12) + ) + ) + ) + (get_local $7) ) - (i32.store - (get_local $3) - (get_local $10) + (block + (i32.store + (get_local $0) + (get_local $2) + ) + (i32.store + (get_local $3) + (get_local $10) + ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (get_local $7) - (i32.or - (tee_local $0 - (i32.shl - (get_local $4) - (i32.const 3) + (i32.store offset=4 + (get_local $7) + (i32.or + (tee_local $0 + (i32.shl + (get_local $4) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $7) + (i32.add + (get_local $7) + (get_local $0) + ) + (i32.const 4) + ) + ) + (i32.or + (i32.load (get_local $0) ) - (i32.const 4) + (i32.const 1) ) ) - (i32.or - (i32.load - (get_local $0) - ) - (i32.const 1) + (return + (get_local $1) ) ) - (return - (get_local $1) - ) ) - ) - (if - (i32.gt_u - (get_local $4) - (tee_local $0 - (i32.load - (i32.const 184) + (if + (i32.gt_u + (get_local $4) + (tee_local $0 + (i32.load + (i32.const 184) + ) ) ) - ) - (block - (if - (get_local $5) - (block - (set_local $10 - (i32.and - (i32.shr_u - (tee_local $3 - (i32.add - (i32.and - (tee_local $3 - (i32.and - (i32.shl - (get_local $5) - (get_local $13) - ) - (i32.or - (tee_local $3 - (i32.shl - (i32.const 2) - (get_local $13) - ) + (block + (if + (get_local $5) + (block + (set_local $10 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.add + (i32.and + (tee_local $3 + (i32.and + (i32.shl + (get_local $5) + (get_local $13) ) - (i32.sub - (i32.const 0) - (get_local $3) + (i32.or + (tee_local $3 + (i32.shl + (i32.const 2) + (get_local $13) + ) + ) + (i32.sub + (i32.const 0) + (get_local $3) + ) ) ) ) + (i32.sub + (i32.const 0) + (get_local $3) + ) ) - (i32.sub - (i32.const 0) - (get_local $3) - ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $9 - (i32.load - (tee_local $7 - (i32.add - (tee_local $12 - (i32.load - (tee_local $3 - (i32.add - (tee_local $10 - (i32.add - (i32.shl - (tee_local $5 - (i32.add - (i32.or + (set_local $9 + (i32.load + (tee_local $7 + (i32.add + (tee_local $12 + (i32.load + (tee_local $3 + (i32.add + (tee_local $10 + (i32.add + (i32.shl + (tee_local $5 + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $3 + (i32.and + (i32.shr_u + (tee_local $7 + (i32.shr_u + (get_local $3) + (get_local $10) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $10) + ) (tee_local $3 (i32.and (i32.shr_u (tee_local $7 (i32.shr_u + (get_local $7) (get_local $3) - (get_local $10) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $10) ) (tee_local $3 (i32.and @@ -8066,9 +8053,9 @@ (get_local $3) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -8083,310 +8070,310 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $3 - (i32.and - (i32.shr_u - (tee_local $7 - (i32.shr_u - (get_local $7) - (get_local $3) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) - ) - (i32.shr_u - (get_local $7) - (get_local $3) + (i32.shr_u + (get_local $7) + (get_local $3) + ) ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 216) ) - (i32.const 216) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $10) - (get_local $9) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (get_local $11) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $5) + (if + (i32.eq + (get_local $10) + (get_local $9) + ) + (block + (i32.store + (i32.const 176) + (i32.and + (get_local $11) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $5) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $8 - (get_local $0) - ) - ) - (block - (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 192) - ) + (set_local $8 + (get_local $0) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $9) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $9) + (i32.load + (i32.const 192) ) ) - (get_local $12) + (call $_abort) ) - (block - (i32.store - (get_local $0) - (get_local $10) - ) - (i32.store - (get_local $3) - (get_local $9) - ) - (set_local $8 + (if + (i32.eq (i32.load - (i32.const 184) + (tee_local $0 + (i32.add + (get_local $9) + (i32.const 12) + ) + ) + ) + (get_local $12) + ) + (block + (i32.store + (get_local $0) + (get_local $10) + ) + (i32.store + (get_local $3) + (get_local $9) + ) + (set_local $8 + (i32.load + (i32.const 184) + ) ) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.or - (get_local $4) - (i32.const 3) - ) - ) - (i32.store offset=4 - (tee_local $10 - (i32.add - (get_local $12) + (i32.store offset=4 + (get_local $12) + (i32.or (get_local $4) + (i32.const 3) ) ) - (i32.or - (tee_local $5 - (i32.sub - (i32.shl - (get_local $5) - (i32.const 3) - ) + (i32.store offset=4 + (tee_local $10 + (i32.add + (get_local $12) (get_local $4) ) ) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $10) - (get_local $5) - ) - (get_local $5) - ) - (if - (get_local $8) - (block - (set_local $12 - (i32.load - (i32.const 196) - ) - ) - (set_local $4 - (i32.add - (i32.shl - (tee_local $0 - (i32.shr_u - (get_local $8) - (i32.const 3) - ) + (i32.or + (tee_local $5 + (i32.sub + (i32.shl + (get_local $5) + (i32.const 3) ) - (i32.const 3) + (get_local $4) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 176) - ) + ) + (i32.store + (i32.add + (get_local $10) + (get_local $5) + ) + (get_local $5) + ) + (if + (get_local $8) + (block + (set_local $12 + (i32.load + (i32.const 196) ) - (tee_local $0 + ) + (set_local $4 + (i32.add (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shr_u + (get_local $8) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $3 (i32.load - (tee_local $3 - (i32.add - (get_local $4) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $3 + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $2 + (get_local $3) + ) + (set_local $1 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $0) + ) + ) (set_local $2 - (get_local $3) + (i32.add + (get_local $4) + (i32.const 8) + ) ) (set_local $1 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $3) - (get_local $0) - ) - ) - (set_local $2 - (i32.add (get_local $4) - (i32.const 8) ) ) - (set_local $1 - (get_local $4) - ) ) - ) - (i32.store - (get_local $2) - (get_local $12) - ) - (i32.store offset=12 - (get_local $1) - (get_local $12) - ) - (i32.store offset=8 - (get_local $12) - (get_local $1) - ) - (i32.store offset=12 - (get_local $12) - (get_local $4) + (i32.store + (get_local $2) + (get_local $12) + ) + (i32.store offset=12 + (get_local $1) + (get_local $12) + ) + (i32.store offset=8 + (get_local $12) + (get_local $1) + ) + (i32.store offset=12 + (get_local $12) + (get_local $4) + ) ) ) - ) - (i32.store - (i32.const 184) - (get_local $5) - ) - (i32.store - (i32.const 196) - (get_local $10) - ) - (return - (get_local $7) + (i32.store + (i32.const 184) + (get_local $5) + ) + (i32.store + (i32.const 196) + (get_local $10) + ) + (return + (get_local $7) + ) ) ) - ) - (if - (tee_local $0 - (i32.load - (i32.const 180) + (if + (tee_local $0 + (i32.load + (i32.const 180) + ) ) - ) - (block - (set_local $2 - (i32.and - (i32.shr_u - (tee_local $0 - (i32.add - (i32.and - (get_local $0) - (i32.sub - (i32.const 0) + (block + (set_local $2 + (i32.and + (i32.shr_u + (tee_local $0 + (i32.add + (i32.and (get_local $0) + (i32.sub + (i32.const 0) + (get_local $0) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $7 - (i32.sub - (i32.and - (i32.load offset=4 - (tee_local $0 - (i32.load offset=480 - (i32.shl - (i32.add - (i32.or + (set_local $7 + (i32.sub + (i32.and + (i32.load offset=4 + (tee_local $0 + (i32.load offset=480 + (i32.shl + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (tee_local $1 + (i32.shr_u + (get_local $0) + (get_local $2) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $2) + ) (tee_local $0 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u + (get_local $1) (get_local $0) - (get_local $2) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $2) ) (tee_local $0 (i32.and @@ -8397,9 +8384,9 @@ (get_local $0) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -8414,163 +8401,135 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.shr_u - (get_local $1) - (get_local $0) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $1) + (get_local $0) + ) ) - (i32.shr_u - (get_local $1) - (get_local $0) - ) + (i32.const 2) ) - (i32.const 2) ) ) ) + (i32.const -8) ) - (i32.const -8) + (get_local $4) ) - (get_local $4) ) - ) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (get_local $0) - ) - (loop $while-in - (block $while-out - (if - (i32.eqz - (tee_local $0 - (i32.load offset=16 - (get_local $1) - ) - ) - ) + (set_local $1 + (get_local $0) + ) + (set_local $2 + (get_local $0) + ) + (loop $while-in + (block $while-out (if (i32.eqz (tee_local $0 - (i32.load offset=20 + (i32.load offset=16 (get_local $1) ) ) ) - (block - (set_local $10 - (get_local $7) + (if + (i32.eqz + (tee_local $0 + (i32.load offset=20 + (get_local $1) + ) + ) ) - (set_local $5 - (get_local $2) + (block + (set_local $10 + (get_local $7) + ) + (set_local $5 + (get_local $2) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (set_local $10 - (i32.lt_u - (tee_local $1 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $0) + (set_local $10 + (i32.lt_u + (tee_local $1 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $4) ) - (get_local $4) ) + (get_local $7) ) - (get_local $7) ) - ) - (set_local $7 - (select - (get_local $1) - (get_local $7) - (get_local $10) + (set_local $7 + (select + (get_local $1) + (get_local $7) + (get_local $10) + ) ) - ) - (set_local $1 - (get_local $0) - ) - (set_local $2 - (select + (set_local $1 (get_local $0) - (get_local $2) - (get_local $10) ) - ) - (br $while-in) - ) - ) - (if - (i32.lt_u - (get_local $5) - (tee_local $12 - (i32.load - (i32.const 192) + (set_local $2 + (select + (get_local $0) + (get_local $2) + (get_local $10) + ) ) + (br $while-in) ) ) - (call $_abort) - ) - (if - (i32.ge_u - (get_local $5) - (tee_local $11 - (i32.add - (get_local $5) - (get_local $4) + (if + (i32.lt_u + (get_local $5) + (tee_local $12 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (set_local $8 - (i32.load offset=24 - (get_local $5) - ) - ) - (block $do-once4 (if - (i32.eq - (tee_local $0 - (i32.load offset=12 + (i32.ge_u + (get_local $5) + (tee_local $11 + (i32.add (get_local $5) + (get_local $4) ) ) + ) + (call $_abort) + ) + (set_local $8 + (i32.load offset=24 (get_local $5) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 20) - ) - ) - ) + ) + (block $do-once4 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $5) ) ) + (get_local $5) + ) + (block (if (i32.eqz (tee_local $1 @@ -8578,719 +8537,733 @@ (tee_local $0 (i32.add (get_local $5) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - (block - (set_local $9 - (i32.const 0) - ) - (br $do-once4) - ) - ) - ) - (loop $while-in7 - (if - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $1) - (i32.const 20) + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (get_local $5) + (i32.const 16) + ) + ) ) ) ) - ) - (block - (set_local $1 - (get_local $2) - ) - (set_local $0 - (get_local $7) + (block + (set_local $9 + (i32.const 0) + ) + (br $do-once4) ) - (br $while-in7) ) ) - (if - (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $1) - (i32.const 16) + (loop $while-in7 + (if + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $1) + (i32.const 20) + ) ) ) ) + (block + (set_local $1 + (get_local $2) + ) + (set_local $0 + (get_local $7) + ) + (br $while-in7) + ) ) - (block - (set_local $1 - (get_local $2) + (if + (tee_local $2 + (i32.load + (tee_local $7 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $7) + (block + (set_local $1 + (get_local $2) + ) + (set_local $0 + (get_local $7) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $12) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (get_local $0) - (i32.const 0) - ) - (set_local $9 - (get_local $1) + (get_local $12) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $7 - (i32.load offset=8 - (get_local $5) + (call $_abort) + (block + (i32.store + (get_local $0) + (i32.const 0) + ) + (set_local $9 + (get_local $1) ) ) - (get_local $12) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $2 - (i32.add - (get_local $7) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $7 + (i32.load offset=8 + (get_local $5) ) ) + (get_local $12) ) - (get_local $5) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $2 + (i32.add + (get_local $7) + (i32.const 12) + ) ) ) + (get_local $5) ) - (get_local $5) + (call $_abort) ) - (block - (i32.store - (get_local $2) - (get_local $0) - ) - (i32.store - (get_local $1) - (get_local $7) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + (get_local $5) ) - (set_local $9 - (get_local $0) + (block + (i32.store + (get_local $2) + (get_local $0) + ) + (i32.store + (get_local $1) + (get_local $7) + ) + (set_local $9 + (get_local $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (block $do-once8 - (if - (get_local $8) - (block - (if - (i32.eq - (get_local $5) - (i32.load - (tee_local $0 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $5) + (block $do-once8 + (if + (get_local $8) + (block + (if + (i32.eq + (get_local $5) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $5) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) ) - ) - (block - (i32.store - (get_local $0) - (get_local $9) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $0) (get_local $9) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $9) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (get_local $8) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (get_local $8) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) + ) ) ) + (get_local $5) + ) + (i32.store + (get_local $0) + (get_local $9) + ) + (i32.store offset=20 + (get_local $8) + (get_local $9) ) - (get_local $5) - ) - (i32.store - (get_local $0) - (get_local $9) - ) - (i32.store offset=20 - (get_local $8) - (get_local $9) ) - ) - (br_if $do-once8 - (i32.eqz - (get_local $9) + (br_if $do-once8 + (i32.eqz + (get_local $9) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $9) - (tee_local $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (get_local $9) + (tee_local $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $9) - (get_local $8) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $5) - ) + (i32.store offset=24 + (get_local $9) + (get_local $8) ) (if - (i32.lt_u - (get_local $1) - (get_local $0) + (tee_local $1 + (i32.load offset=16 + (get_local $5) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (get_local $9) + (if + (i32.lt_u (get_local $1) + (get_local $0) ) - (i32.store offset=24 - (get_local $1) - (get_local $9) + (call $_abort) + (block + (i32.store offset=16 + (get_local $9) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $9) + ) ) ) ) - ) - (if - (tee_local $0 - (i32.load offset=20 - (get_local $5) - ) - ) (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) + (tee_local $0 + (i32.load offset=20 + (get_local $5) ) ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $9) + (if + (i32.lt_u (get_local $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (get_local $0) - (get_local $9) + (call $_abort) + (block + (i32.store offset=20 + (get_local $9) + (get_local $0) + ) + (i32.store offset=24 + (get_local $0) + (get_local $9) + ) ) ) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $10) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $5) - (i32.or - (tee_local $0 - (i32.add - (get_local $10) - (get_local $4) + (if + (i32.lt_u + (get_local $10) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $5) + (i32.or + (tee_local $0 + (i32.add + (get_local $10) + (get_local $4) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $5) - (get_local $0) + (i32.add + (get_local $5) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (block - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $4) - (i32.const 3) ) ) - (i32.store offset=4 - (get_local $11) - (i32.or - (get_local $10) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $5) + (i32.or + (get_local $4) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $11) - (get_local $10) + (i32.or + (get_local $10) + (i32.const 1) + ) ) - (get_local $10) - ) - (if - (tee_local $0 - (i32.load - (i32.const 184) + (i32.store + (i32.add + (get_local $11) + (get_local $10) ) + (get_local $10) ) - (block - (set_local $4 + (if + (tee_local $0 (i32.load - (i32.const 196) + (i32.const 184) ) ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $0 - (i32.shr_u - (get_local $0) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (set_local $4 + (i32.load + (i32.const 196) ) - (i32.const 216) ) - ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $0 + (set_local $2 + (i32.add (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shr_u + (get_local $0) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $1 (i32.load - (tee_local $1 - (i32.add - (get_local $2) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $6 + (get_local $1) + ) + (set_local $3 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $0) + ) + ) (set_local $6 - (get_local $1) + (i32.add + (get_local $2) + (i32.const 8) + ) ) (set_local $3 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) - ) - ) - (set_local $6 - (i32.add (get_local $2) - (i32.const 8) ) ) - (set_local $3 - (get_local $2) - ) ) - ) - (i32.store - (get_local $6) - (get_local $4) - ) - (i32.store offset=12 - (get_local $3) - (get_local $4) - ) - (i32.store offset=8 - (get_local $4) - (get_local $3) - ) - (i32.store offset=12 - (get_local $4) - (get_local $2) + (i32.store + (get_local $6) + (get_local $4) + ) + (i32.store offset=12 + (get_local $3) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $3) + ) + (i32.store offset=12 + (get_local $4) + (get_local $2) + ) ) ) + (i32.store + (i32.const 184) + (get_local $10) + ) + (i32.store + (i32.const 196) + (get_local $11) + ) ) - (i32.store - (i32.const 184) - (get_local $10) - ) - (i32.store - (i32.const 196) - (get_local $11) + ) + (return + (i32.add + (get_local $5) + (i32.const 8) ) ) ) - (return - (i32.add - (get_local $5) - (i32.const 8) - ) + (set_local $0 + (get_local $4) ) ) - (set_local $0 - (get_local $4) - ) + ) + (set_local $0 + (get_local $4) ) ) + ) + (if + (i32.gt_u + (get_local $0) + (i32.const -65) + ) (set_local $0 - (get_local $4) + (i32.const -1) ) - ) - ) - (if - (i32.gt_u - (get_local $0) - (i32.const -65) - ) - (set_local $0 - (i32.const -1) - ) - (block - (set_local $2 - (i32.and - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 11) + (block + (set_local $2 + (i32.and + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 11) + ) ) + (i32.const -8) ) - (i32.const -8) ) - ) - (if - (tee_local $18 - (i32.load - (i32.const 180) + (if + (tee_local $18 + (i32.load + (i32.const 180) + ) ) - ) - (block - (set_local $14 - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $0) - (i32.const 8) - ) - ) + (block + (set_local $14 (if (result i32) - (i32.gt_u - (get_local $2) - (i32.const 16777215) + (tee_local $0 + (i32.shr_u + (get_local $0) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $2) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $2) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $2) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) - ) - (set_local $3 - (i32.sub - (i32.const 0) - (get_local $2) + (set_local $3 + (i32.sub + (i32.const 0) + (get_local $2) + ) ) - ) - (block $__rjto$3 - (block $__rjti$3 - (if - (tee_local $0 - (i32.load offset=480 - (i32.shl - (get_local $14) - (i32.const 2) + (block $__rjto$3 + (block $__rjti$3 + (if + (tee_local $0 + (i32.load offset=480 + (i32.shl + (get_local $14) + (i32.const 2) + ) ) ) - ) - (block - (set_local $6 - (i32.const 0) - ) - (set_local $8 - (i32.shl - (get_local $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block + (set_local $6 + (i32.const 0) + ) + (set_local $8 + (i32.shl + (get_local $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $14) + (i32.const 1) + ) + ) + (i32.eq (get_local $14) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $14) - (i32.const 31) - ) ) ) - ) - (set_local $1 - (i32.const 0) - ) - (loop $while-in14 - (if - (i32.lt_u - (tee_local $4 - (i32.sub - (tee_local $9 - (i32.and - (i32.load offset=4 - (get_local $0) + (set_local $1 + (i32.const 0) + ) + (loop $while-in14 + (if + (i32.lt_u + (tee_local $4 + (i32.sub + (tee_local $9 + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) ) + (get_local $2) ) - (get_local $2) ) + (get_local $3) ) - (get_local $3) - ) - (if - (i32.eq - (get_local $9) - (get_local $2) - ) - (block - (set_local $1 - (get_local $4) - ) - (set_local $3 - (get_local $0) + (if + (i32.eq + (get_local $9) + (get_local $2) ) - (br $__rjti$3) - ) - (block - (set_local $3 - (get_local $4) + (block + (set_local $1 + (get_local $4) + ) + (set_local $3 + (get_local $0) + ) + (br $__rjti$3) ) - (set_local $1 - (get_local $0) + (block + (set_local $3 + (get_local $4) + ) + (set_local $1 + (get_local $0) + ) ) ) ) - ) - (set_local $0 - (select - (get_local $6) - (tee_local $4 - (i32.load offset=20 - (get_local $0) - ) - ) - (i32.or - (i32.eqz - (get_local $4) + (set_local $0 + (select + (get_local $6) + (tee_local $4 + (i32.load offset=20 + (get_local $0) + ) ) - (i32.eq - (get_local $4) - (tee_local $9 - (i32.load - (i32.add + (i32.or + (i32.eqz + (get_local $4) + ) + (i32.eq + (get_local $4) + (tee_local $9 + (i32.load (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $8) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $8) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -9298,134 +9271,148 @@ ) ) ) - ) - (set_local $4 - (i32.shl - (get_local $8) - (i32.xor - (tee_local $6 - (i32.eqz - (get_local $9) + (set_local $4 + (i32.shl + (get_local $8) + (i32.xor + (tee_local $6 + (i32.eqz + (get_local $9) + ) ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (if - (get_local $6) - (block - (set_local $4 - (get_local $0) - ) - (set_local $0 - (get_local $1) ) ) - (block - (set_local $6 - (get_local $0) - ) - (set_local $8 - (get_local $4) + (if + (get_local $6) + (block + (set_local $4 + (get_local $0) + ) + (set_local $0 + (get_local $1) + ) ) - (set_local $0 - (get_local $9) + (block + (set_local $6 + (get_local $0) + ) + (set_local $8 + (get_local $4) + ) + (set_local $0 + (get_local $9) + ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block - (set_local $4 - (i32.const 0) - ) - (set_local $0 - (i32.const 0) - ) - ) - ) - (if - (i32.and - (i32.eqz - (get_local $4) - ) - (i32.eqz - (get_local $0) + (block + (set_local $4 + (i32.const 0) + ) + (set_local $0 + (i32.const 0) + ) ) ) - (block - (if + (if + (i32.and (i32.eqz - (tee_local $1 - (i32.and - (get_local $18) - (i32.or - (tee_local $1 - (i32.shl - (i32.const 2) - (get_local $14) + (get_local $4) + ) + (i32.eqz + (get_local $0) + ) + ) + (block + (if + (i32.eqz + (tee_local $1 + (i32.and + (get_local $18) + (i32.or + (tee_local $1 + (i32.shl + (i32.const 2) + (get_local $14) + ) + ) + (i32.sub + (i32.const 0) + (get_local $1) ) - ) - (i32.sub - (i32.const 0) - (get_local $1) ) ) ) ) - ) - (block - (set_local $0 - (get_local $2) + (block + (set_local $0 + (get_local $2) + ) + (br $do-once) ) - (br $do-once) ) - ) - (set_local $9 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.add - (i32.and - (get_local $1) - (i32.sub - (i32.const 0) + (set_local $9 + (i32.and + (i32.shr_u + (tee_local $1 + (i32.add + (i32.and (get_local $1) + (i32.sub + (i32.const 0) + (get_local $1) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $4 - (i32.load offset=480 - (i32.shl - (i32.add - (i32.or + (set_local $4 + (i32.load offset=480 + (i32.shl + (i32.add (i32.or (i32.or (i32.or + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (tee_local $4 + (i32.shr_u + (get_local $1) + (get_local $9) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $9) + ) (tee_local $1 (i32.and (i32.shr_u (tee_local $4 (i32.shr_u + (get_local $4) (get_local $1) - (get_local $9) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $9) ) (tee_local $1 (i32.and @@ -9436,9 +9423,9 @@ (get_local $1) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) @@ -9453,177 +9440,149 @@ ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (tee_local $4 - (i32.shr_u - (get_local $4) - (get_local $1) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $4) + (get_local $1) + ) ) - (i32.shr_u - (get_local $4) - (get_local $1) - ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) - ) - (if - (get_local $4) - (block - (set_local $1 - (get_local $3) + (if + (get_local $4) + (block + (set_local $1 + (get_local $3) + ) + (set_local $3 + (get_local $4) + ) + (br $__rjti$3) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (br $__rjti$3) - ) - (set_local $4 - (get_local $0) ) + (br $__rjto$3) ) - (br $__rjto$3) - ) - (loop $while-in16 - (set_local $9 - (i32.lt_u - (tee_local $4 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $3) + (loop $while-in16 + (set_local $9 + (i32.lt_u + (tee_local $4 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $2) ) - (get_local $2) ) + (get_local $1) ) - (get_local $1) - ) - ) - (set_local $1 - (select - (get_local $4) - (get_local $1) - (get_local $9) ) - ) - (set_local $0 - (select - (get_local $3) - (get_local $0) - (get_local $9) + (set_local $1 + (select + (get_local $4) + (get_local $1) + (get_local $9) + ) ) - ) - (if - (tee_local $4 - (i32.load offset=16 + (set_local $0 + (select (get_local $3) + (get_local $0) + (get_local $9) ) ) - (block - (set_local $3 - (get_local $4) + (if + (tee_local $4 + (i32.load offset=16 + (get_local $3) + ) + ) + (block + (set_local $3 + (get_local $4) + ) + (br $while-in16) ) - (br $while-in16) ) - ) - (br_if $while-in16 - (tee_local $3 - (i32.load offset=20 - (get_local $3) + (br_if $while-in16 + (tee_local $3 + (i32.load offset=20 + (get_local $3) + ) ) ) - ) - (set_local $3 - (get_local $1) - ) - (set_local $4 - (get_local $0) + (set_local $3 + (get_local $1) + ) + (set_local $4 + (get_local $0) + ) ) ) - ) - (if - (get_local $4) (if - (i32.lt_u - (get_local $3) - (i32.sub - (i32.load - (i32.const 184) - ) - (get_local $2) - ) - ) - (block - (if - (i32.lt_u - (get_local $4) - (tee_local $12 - (i32.load - (i32.const 192) - ) + (get_local $4) + (if + (i32.lt_u + (get_local $3) + (i32.sub + (i32.load + (i32.const 184) ) + (get_local $2) ) - (call $_abort) ) - (if - (i32.ge_u - (get_local $4) - (tee_local $6 - (i32.add - (get_local $4) - (get_local $2) + (block + (if + (i32.lt_u + (get_local $4) + (tee_local $12 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (set_local $9 - (i32.load offset=24 - (get_local $4) - ) - ) - (block $do-once17 (if - (i32.eq - (tee_local $0 - (i32.load offset=12 + (i32.ge_u + (get_local $4) + (tee_local $6 + (i32.add (get_local $4) + (get_local $2) ) ) + ) + (call $_abort) + ) + (set_local $9 + (i32.load offset=24 (get_local $4) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (get_local $4) - (i32.const 20) - ) - ) - ) + ) + (block $do-once17 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $4) ) ) + (get_local $4) + ) + (block (if (i32.eqz (tee_local $1 @@ -9631,1758 +9590,1694 @@ (tee_local $0 (i32.add (get_local $4) - (i32.const 16) + (i32.const 20) ) ) ) ) ) - (block - (set_local $11 - (i32.const 0) - ) - (br $do-once17) - ) - ) - ) - (loop $while-in20 - (if - (tee_local $7 - (i32.load - (tee_local $10 - (i32.add - (get_local $1) - (i32.const 20) + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (get_local $4) + (i32.const 16) + ) + ) ) ) ) - ) - (block - (set_local $1 - (get_local $7) - ) - (set_local $0 - (get_local $10) + (block + (set_local $11 + (i32.const 0) + ) + (br $do-once17) ) - (br $while-in20) ) ) - (if - (tee_local $7 - (i32.load - (tee_local $10 - (i32.add - (get_local $1) - (i32.const 16) + (loop $while-in20 + (if + (tee_local $7 + (i32.load + (tee_local $10 + (i32.add + (get_local $1) + (i32.const 20) + ) ) ) ) + (block + (set_local $1 + (get_local $7) + ) + (set_local $0 + (get_local $10) + ) + (br $while-in20) + ) ) - (block - (set_local $1 - (get_local $7) + (if + (tee_local $7 + (i32.load + (tee_local $10 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $10) + (block + (set_local $1 + (get_local $7) + ) + (set_local $0 + (get_local $10) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $12) - ) - (call $_abort) - (block - (i32.store + (if + (i32.lt_u (get_local $0) - (i32.const 0) - ) - (set_local $11 - (get_local $1) + (get_local $12) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $10 - (i32.load offset=8 - (get_local $4) + (call $_abort) + (block + (i32.store + (get_local $0) + (i32.const 0) + ) + (set_local $11 + (get_local $1) ) ) - (get_local $12) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $7 - (i32.add - (get_local $10) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $10 + (i32.load offset=8 + (get_local $4) ) ) + (get_local $12) ) - (get_local $4) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $7 + (i32.add + (get_local $10) + (i32.const 12) + ) ) ) + (get_local $4) ) - (get_local $4) + (call $_abort) ) - (block - (i32.store - (get_local $7) - (get_local $0) - ) - (i32.store - (get_local $1) - (get_local $10) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + (get_local $4) ) - (set_local $11 - (get_local $0) + (block + (i32.store + (get_local $7) + (get_local $0) + ) + (i32.store + (get_local $1) + (get_local $10) + ) + (set_local $11 + (get_local $0) + ) ) + (call $_abort) ) - (call $_abort) ) ) ) - ) - (block $do-once21 - (if - (get_local $9) - (block - (if - (i32.eq - (get_local $4) - (i32.load - (tee_local $0 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $4) + (block $do-once21 + (if + (get_local $9) + (block + (if + (i32.eq + (get_local $4) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $4) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) ) ) - ) - (block - (i32.store - (get_local $0) - (get_local $11) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $0) (get_local $11) ) - (block - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $11) + ) + (block + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 192) + (block + (if + (i32.lt_u + (get_local $9) + (i32.load + (i32.const 192) + ) ) + (call $_abort) ) - (call $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $9) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $9) + (i32.const 16) + ) ) ) + (get_local $4) + ) + (i32.store + (get_local $0) + (get_local $11) + ) + (i32.store offset=20 + (get_local $9) + (get_local $11) ) - (get_local $4) - ) - (i32.store - (get_local $0) - (get_local $11) - ) - (i32.store offset=20 - (get_local $9) - (get_local $11) ) - ) - (br_if $do-once21 - (i32.eqz - (get_local $11) + (br_if $do-once21 + (i32.eqz + (get_local $11) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $11) - (tee_local $0 - (i32.load - (i32.const 192) + (if + (i32.lt_u + (get_local $11) + (tee_local $0 + (i32.load + (i32.const 192) + ) ) ) + (call $_abort) ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $11) - (get_local $9) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $4) - ) + (i32.store offset=24 + (get_local $11) + (get_local $9) ) (if - (i32.lt_u - (get_local $1) - (get_local $0) + (tee_local $1 + (i32.load offset=16 + (get_local $4) + ) ) - (call $_abort) - (block - (i32.store offset=16 - (get_local $11) + (if + (i32.lt_u (get_local $1) + (get_local $0) ) - (i32.store offset=24 - (get_local $1) - (get_local $11) + (call $_abort) + (block + (i32.store offset=16 + (get_local $11) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $11) + ) ) ) ) - ) - (if - (tee_local $0 - (i32.load offset=20 - (get_local $4) - ) - ) (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) + (tee_local $0 + (i32.load offset=20 + (get_local $4) ) ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $11) + (if + (i32.lt_u (get_local $0) + (i32.load + (i32.const 192) + ) ) - (i32.store offset=24 - (get_local $0) - (get_local $11) + (call $_abort) + (block + (i32.store offset=20 + (get_local $11) + (get_local $0) + ) + (i32.store offset=24 + (get_local $0) + (get_local $11) + ) ) ) ) ) ) ) - ) - (block $do-once25 - (if - (i32.lt_u - (get_local $3) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $4) - (i32.or - (tee_local $0 - (i32.add - (get_local $3) - (get_local $2) + (block $do-once25 + (if + (i32.lt_u + (get_local $3) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $4) + (i32.or + (tee_local $0 + (i32.add + (get_local $3) + (get_local $2) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (tee_local $0 (i32.add - (get_local $4) - (get_local $0) + (i32.add + (get_local $4) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) - ) - ) - ) - (block - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $2) - (i32.const 3) ) ) - (i32.store offset=4 - (get_local $6) - (i32.or - (get_local $3) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $4) + (i32.or + (get_local $2) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $6) - (get_local $3) + (i32.or + (get_local $3) + (i32.const 1) + ) ) - (get_local $3) - ) - (set_local $0 - (i32.shr_u + (i32.store + (i32.add + (get_local $6) + (get_local $3) + ) (get_local $3) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $3) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $3) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) - ) - (i32.const 216) - ) + (if + (i32.lt_u + (get_local $3) + (i32.const 256) ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $0 + (block + (set_local $3 + (i32.add (i32.shl - (i32.const 1) (get_local $0) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $0 + (i32.and + (tee_local $1 (i32.load - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $13 + (get_local $1) + ) + (set_local $5 + (get_local $0) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $1) + (get_local $0) + ) + ) (set_local $13 - (get_local $1) + (i32.add + (get_local $3) + (i32.const 8) + ) ) (set_local $5 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) - ) - ) - (set_local $13 - (i32.add (get_local $3) - (i32.const 8) ) ) - (set_local $5 - (get_local $3) - ) ) + (i32.store + (get_local $13) + (get_local $6) + ) + (i32.store offset=12 + (get_local $5) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $5) + ) + (i32.store offset=12 + (get_local $6) + (get_local $3) + ) + (br $do-once25) ) - (i32.store - (get_local $13) - (get_local $6) - ) - (i32.store offset=12 - (get_local $5) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $5) - ) - (i32.store offset=12 - (get_local $6) - (get_local $3) - ) - (br $do-once25) ) - ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $7 - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - ) + (set_local $2 + (i32.add + (i32.shl + (tee_local $7 (if (result i32) - (i32.gt_u - (get_local $3) - (i32.const 16777215) + (tee_local $0 + (i32.shr_u + (get_local $3) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $3) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $3) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $3) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $2 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $2 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $2) ) - (get_local $2) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $6) - (get_local $7) - ) - (i32.store offset=4 - (tee_local $0 - (i32.add - (get_local $6) - (i32.const 16) + (i32.store offset=28 + (get_local $6) + (get_local $7) + ) + (i32.store offset=4 + (tee_local $0 + (i32.add + (get_local $6) + (i32.const 16) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $1 - (i32.load - (i32.const 180) + (i32.store + (get_local $0) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $1 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $7) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $7) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $1) - (get_local $0) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $1) + (get_local $0) + ) ) + (i32.store + (get_local $2) + (get_local $6) + ) + (i32.store offset=24 + (get_local $6) + (get_local $2) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once25) ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=24 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $6) - ) - (br $do-once25) ) - ) - (set_local $7 - (i32.shl - (get_local $3) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $7 + (i32.shl + (get_local $3) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $7) + (i32.const 1) + ) + ) + (i32.eq (get_local $7) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $7) - (i32.const 31) - ) ) ) - ) - (set_local $0 - (i32.load - (get_local $2) + (set_local $0 + (i32.load + (get_local $2) + ) ) - ) - (block $__rjto$1 - (block $__rjti$1 - (loop $while-in28 - (br_if $__rjti$1 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $0) + (block $__rjto$1 + (block $__rjti$1 + (loop $while-in28 + (br_if $__rjti$1 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) - ) - (set_local $2 - (i32.shl - (get_local $7) - (i32.const 1) + (set_local $2 + (i32.shl + (get_local $7) + (i32.const 1) + ) ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add + (if + (tee_local $1 + (i32.load + (tee_local $7 (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $7) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $7) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $7 + (get_local $2) + ) + (set_local $0 + (get_local $1) + ) + (br $while-in28) + ) ) + ) + (if + (i32.lt_u + (get_local $7) + (i32.load + (i32.const 192) + ) + ) + (call $_abort) (block - (set_local $7 - (get_local $2) + (i32.store + (get_local $7) + (get_local $6) ) - (set_local $0 - (get_local $1) + (i32.store offset=24 + (get_local $6) + (get_local $0) ) - (br $while-in28) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once25) ) ) + (br $__rjto$1) ) (if - (i32.lt_u - (get_local $7) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $2 + (i32.load + (tee_local $3 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $0) + (get_local $1) ) ) - (call $_abort) (block + (i32.store offset=12 + (get_local $2) + (get_local $6) + ) (i32.store - (get_local $7) + (get_local $3) (get_local $6) ) - (i32.store offset=24 + (i32.store offset=8 (get_local $6) - (get_local $0) + (get_local $2) ) (i32.store offset=12 (get_local $6) - (get_local $6) + (get_local $0) ) - (i32.store offset=8 - (get_local $6) + (i32.store offset=24 (get_local $6) + (i32.const 0) ) - (br $do-once25) - ) - ) - (br $__rjto$1) - ) - (if - (i32.and - (i32.ge_u - (tee_local $2 - (i32.load - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ) - ) - (tee_local $1 - (i32.load - (i32.const 192) - ) - ) - ) - (i32.ge_u - (get_local $0) - (get_local $1) - ) - ) - (block - (i32.store offset=12 - (get_local $2) - (get_local $6) - ) - (i32.store - (get_local $3) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $0) - ) - (i32.store offset=24 - (get_local $6) - (i32.const 0) ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (return - (i32.add - (get_local $4) - (i32.const 8) + (return + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) + (set_local $0 + (get_local $2) + ) ) (set_local $0 (get_local $2) ) ) - (set_local $0 - (get_local $2) - ) ) - ) - (set_local $0 - (get_local $2) + (set_local $0 + (get_local $2) + ) ) ) ) ) ) - ) - (if - (i32.ge_u - (tee_local $1 - (i32.load - (i32.const 184) - ) - ) - (get_local $0) - ) - (block - (set_local $2 - (i32.load - (i32.const 196) + (if + (i32.ge_u + (tee_local $1 + (i32.load + (i32.const 184) + ) ) + (get_local $0) ) - (if - (i32.gt_u - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) + (block + (set_local $2 + (i32.load + (i32.const 196) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 196) - (tee_local $1 - (i32.add - (get_local $2) + (if + (i32.gt_u + (tee_local $3 + (i32.sub + (get_local $1) (get_local $0) ) ) + (i32.const 15) ) - (i32.store - (i32.const 184) - (get_local $3) - ) - (i32.store offset=4 - (get_local $1) - (i32.or + (block + (i32.store + (i32.const 196) + (tee_local $1 + (i32.add + (get_local $2) + (get_local $0) + ) + ) + ) + (i32.store + (i32.const 184) (get_local $3) - (i32.const 1) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $1) + (i32.or + (get_local $3) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $1) + (get_local $3) + ) (get_local $3) ) - (get_local $3) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $0) + (i32.const 3) + ) ) ) - ) - (block - (i32.store - (i32.const 184) - (i32.const 0) - ) - (i32.store - (i32.const 196) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $1) - (i32.const 3) + (block + (i32.store + (i32.const 184) + (i32.const 0) ) - ) - (i32.store - (tee_local $0 - (i32.add + (i32.store + (i32.const 196) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $1) + (i32.const 3) + ) + ) + (i32.store + (tee_local $0 (i32.add - (get_local $2) - (get_local $1) + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $0) + (i32.or + (i32.load + (get_local $0) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) + (return + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) - ) - (if - (i32.gt_u - (tee_local $1 - (i32.load - (i32.const 188) + (br_if $folding-inner0 + (i32.gt_u + (tee_local $1 + (i32.load + (i32.const 188) + ) ) + (get_local $0) ) - (get_local $0) ) - (block - (i32.store - (i32.const 188) - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) + (if + (i32.eqz + (i32.load + (i32.const 648) ) ) - (i32.store - (i32.const 200) - (tee_local $1 + (if + (i32.and (i32.add - (tee_local $2 - (i32.load - (i32.const 200) + (tee_local $1 + (call $_sysconf + (i32.const 30) ) ) - (get_local $0) - ) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $3) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - ) - ) - (if - (i32.eqz - (i32.load - (i32.const 648) - ) - ) - (if - (i32.and - (i32.add - (tee_local $1 - (call $_sysconf - (i32.const 30) - ) + (i32.const -1) ) - (i32.const -1) - ) - (get_local $1) - ) - (call $_abort) - (block - (i32.store - (i32.const 656) (get_local $1) ) - (i32.store - (i32.const 652) - (get_local $1) - ) - (i32.store - (i32.const 660) - (i32.const -1) - ) - (i32.store - (i32.const 664) - (i32.const -1) - ) - (i32.store - (i32.const 668) - (i32.const 0) - ) - (i32.store - (i32.const 620) - (i32.const 0) - ) - (i32.store - (i32.const 648) - (i32.xor - (i32.and - (call $_time - (i32.const 0) + (call $_abort) + (block + (i32.store + (i32.const 656) + (get_local $1) + ) + (i32.store + (i32.const 652) + (get_local $1) + ) + (i32.store + (i32.const 660) + (i32.const -1) + ) + (i32.store + (i32.const 664) + (i32.const -1) + ) + (i32.store + (i32.const 668) + (i32.const 0) + ) + (i32.store + (i32.const 620) + (i32.const 0) + ) + (i32.store + (i32.const 648) + (i32.xor + (i32.and + (call $_time + (i32.const 0) + ) + (i32.const -16) ) - (i32.const -16) + (i32.const 1431655768) ) - (i32.const 1431655768) ) ) ) ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.and - (tee_local $6 - (i32.add - (tee_local $1 - (i32.load - (i32.const 656) + (if + (i32.le_u + (tee_local $5 + (i32.and + (tee_local $6 + (i32.add + (tee_local $1 + (i32.load + (i32.const 656) + ) ) - ) - (tee_local $8 - (i32.add - (get_local $0) - (i32.const 47) + (tee_local $8 + (i32.add + (get_local $0) + (i32.const 47) + ) ) ) ) - ) - (tee_local $9 - (i32.sub - (i32.const 0) - (get_local $1) + (tee_local $9 + (i32.sub + (i32.const 0) + (get_local $1) + ) ) ) ) + (get_local $0) ) - (get_local $0) - ) - (return - (i32.const 0) - ) - ) - (if - (tee_local $2 - (i32.load - (i32.const 616) + (return + (i32.const 0) ) ) (if - (i32.or - (i32.le_u - (tee_local $1 - (i32.add - (tee_local $3 - (i32.load - (i32.const 608) + (tee_local $2 + (i32.load + (i32.const 616) + ) + ) + (if + (i32.or + (i32.le_u + (tee_local $1 + (i32.add + (tee_local $3 + (i32.load + (i32.const 608) + ) ) + (get_local $5) ) - (get_local $5) ) + (get_local $3) + ) + (i32.gt_u + (get_local $1) + (get_local $2) ) - (get_local $3) ) - (i32.gt_u - (get_local $1) - (get_local $2) + (return + (i32.const 0) ) ) - (return - (i32.const 0) - ) ) - ) - (set_local $11 - (i32.add - (get_local $0) - (i32.const 48) + (set_local $11 + (i32.add + (get_local $0) + (i32.const 48) + ) ) - ) - (block $__rjto$13 - (block $__rjti$13 - (if - (i32.eqz - (i32.and - (i32.load - (i32.const 620) + (block $__rjto$13 + (block $__rjti$13 + (if + (i32.eqz + (i32.and + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (block - (block $label$break$L279 - (block $__rjti$5 - (block $__rjti$4 - (br_if $__rjti$4 - (i32.eqz - (tee_local $4 - (i32.load - (i32.const 200) + (block + (block $label$break$L279 + (block $__rjti$5 + (block $__rjti$4 + (br_if $__rjti$4 + (i32.eqz + (tee_local $4 + (i32.load + (i32.const 200) + ) ) ) ) - ) - (set_local $1 - (i32.const 624) - ) - (loop $while-in34 - (block $while-out33 - (if - (i32.le_u - (tee_local $3 - (i32.load - (get_local $1) - ) - ) - (get_local $4) - ) + (set_local $1 + (i32.const 624) + ) + (loop $while-in34 + (block $while-out33 (if - (i32.gt_u - (i32.add - (get_local $3) + (i32.le_u + (tee_local $3 (i32.load - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 4) + (get_local $1) + ) + ) + (get_local $4) + ) + (if + (i32.gt_u + (i32.add + (get_local $3) + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 4) + ) ) ) ) + (get_local $4) + ) + (block + (set_local $4 + (get_local $1) + ) + (br $while-out33) ) - (get_local $4) ) - (block - (set_local $4 + ) + (br_if $while-in34 + (tee_local $1 + (i32.load offset=8 (get_local $1) ) - (br $while-out33) ) ) + (br $__rjti$4) ) - (br_if $while-in34 - (tee_local $1 - (i32.load offset=8 - (get_local $1) + ) + (if + (i32.lt_u + (tee_local $3 + (i32.and + (i32.sub + (get_local $6) + (i32.load + (i32.const 188) + ) + ) + (get_local $9) ) ) + (i32.const 2147483647) ) - (br $__rjti$4) - ) - ) - (if - (i32.lt_u - (tee_local $3 - (i32.and - (i32.sub - (get_local $6) + (if + (i32.eq + (tee_local $1 + (call $_sbrk + (get_local $3) + ) + ) + (i32.add (i32.load - (i32.const 188) + (get_local $4) + ) + (i32.load + (get_local $2) ) ) - (get_local $9) ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (tee_local $1 - (call $_sbrk - (get_local $3) + (br_if $__rjti$13 + (i32.ne + (get_local $1) + (i32.const -1) ) ) - (i32.add - (i32.load - (get_local $4) - ) - (i32.load - (get_local $2) + (block + (set_local $2 + (get_local $1) ) + (br $__rjti$5) ) ) - (br_if $__rjti$13 - (i32.ne - (get_local $1) - (i32.const -1) - ) - ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $1 - (get_local $3) - ) - (br $__rjti$5) - ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (if - (i32.ne - (tee_local $1 - (call $_sbrk - (i32.const 0) + (if + (i32.ne + (tee_local $1 + (call $_sbrk + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (set_local $3 - (if (result i32) - (i32.and - (tee_local $2 - (i32.add - (tee_local $4 - (i32.load - (i32.const 652) + (block + (set_local $3 + (if (result i32) + (i32.and + (tee_local $2 + (i32.add + (tee_local $4 + (i32.load + (i32.const 652) + ) ) + (i32.const -1) ) - (i32.const -1) + ) + (tee_local $3 + (get_local $1) ) ) - (tee_local $3 - (get_local $1) - ) - ) - (i32.add - (i32.sub - (get_local $5) - (get_local $3) - ) - (i32.and - (i32.add - (get_local $2) + (i32.add + (i32.sub + (get_local $5) (get_local $3) ) - (i32.sub - (i32.const 0) - (get_local $4) + (i32.and + (i32.add + (get_local $2) + (get_local $3) + ) + (i32.sub + (i32.const 0) + (get_local $4) + ) ) ) + (get_local $5) ) - (get_local $5) ) - ) - (set_local $9 - (i32.add - (tee_local $4 - (i32.load - (i32.const 608) + (set_local $9 + (i32.add + (tee_local $4 + (i32.load + (i32.const 608) + ) ) - ) - (get_local $3) - ) - ) - (if - (i32.and - (i32.gt_u - (get_local $3) - (get_local $0) - ) - (i32.lt_u (get_local $3) - (i32.const 2147483647) ) ) - (block - (if - (tee_local $2 - (i32.load - (i32.const 616) - ) + (if + (i32.and + (i32.gt_u + (get_local $3) + (get_local $0) ) - (br_if $label$break$L279 - (i32.or - (i32.le_u - (get_local $9) - (get_local $4) + (i32.lt_u + (get_local $3) + (i32.const 2147483647) + ) + ) + (block + (if + (tee_local $2 + (i32.load + (i32.const 616) ) - (i32.gt_u - (get_local $9) - (get_local $2) + ) + (br_if $label$break$L279 + (i32.or + (i32.le_u + (get_local $9) + (get_local $4) + ) + (i32.gt_u + (get_local $9) + (get_local $2) + ) ) ) ) - ) - (br_if $__rjti$13 - (i32.eq - (tee_local $2 - (call $_sbrk - (get_local $3) + (br_if $__rjti$13 + (i32.eq + (tee_local $2 + (call $_sbrk + (get_local $3) + ) ) + (get_local $1) ) - (get_local $1) ) + (br $__rjti$5) ) - (set_local $1 - (get_local $3) - ) - (br $__rjti$5) ) ) ) + (br $label$break$L279) ) - (br $label$break$L279) - ) - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $1) + (set_local $1 + (get_local $3) ) - ) - (if - (i32.and - (i32.gt_u - (get_local $11) + (set_local $4 + (i32.sub + (i32.const 0) (get_local $1) ) + ) + (if (i32.and - (i32.lt_u + (i32.gt_u + (get_local $11) (get_local $1) - (i32.const 2147483647) ) - (i32.ne - (get_local $2) - (i32.const -1) + (i32.and + (i32.lt_u + (get_local $1) + (i32.const 2147483647) + ) + (i32.ne + (get_local $2) + (i32.const -1) + ) ) ) - ) - (if - (i32.lt_u - (tee_local $3 - (i32.and - (i32.add - (i32.sub - (get_local $8) - (get_local $1) - ) - (tee_local $3 - (i32.load - (i32.const 656) + (if + (i32.lt_u + (tee_local $3 + (i32.and + (i32.add + (i32.sub + (get_local $8) + (get_local $1) ) + (tee_local $3 + (i32.load + (i32.const 656) + ) + ) + ) + (i32.sub + (i32.const 0) + (get_local $3) ) ) - (i32.sub - (i32.const 0) + ) + (i32.const 2147483647) + ) + (if + (i32.eq + (call $_sbrk (get_local $3) ) + (i32.const -1) ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (call $_sbrk - (get_local $3) + (block + (drop + (call $_sbrk + (get_local $4) + ) + ) + (br $label$break$L279) ) - (i32.const -1) - ) - (block - (drop - (call $_sbrk - (get_local $4) + (set_local $3 + (i32.add + (get_local $3) + (get_local $1) ) ) - (br $label$break$L279) ) (set_local $3 - (i32.add - (get_local $3) - (get_local $1) - ) + (get_local $1) ) ) (set_local $3 (get_local $1) ) ) - (set_local $3 - (get_local $1) - ) - ) - (if - (i32.ne - (get_local $2) - (i32.const -1) - ) - (block - (set_local $1 + (if + (i32.ne (get_local $2) + (i32.const -1) + ) + (block + (set_local $1 + (get_local $2) + ) + (br $__rjti$13) ) - (br $__rjti$13) ) ) - ) - (i32.store - (i32.const 620) - (i32.or - (i32.load - (i32.const 620) + (i32.store + (i32.const 620) + (i32.or + (i32.load + (i32.const 620) + ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (if - (i32.lt_u - (get_local $5) - (i32.const 2147483647) - ) (if - (i32.and - (i32.lt_u - (tee_local $1 - (call $_sbrk - (get_local $5) + (i32.lt_u + (get_local $5) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (tee_local $1 + (call $_sbrk + (get_local $5) + ) ) - ) - (tee_local $3 - (call $_sbrk - (i32.const 0) + (tee_local $3 + (call $_sbrk + (i32.const 0) + ) ) ) - ) - (i32.and - (i32.ne - (get_local $1) - (i32.const -1) - ) - (i32.ne - (get_local $3) - (i32.const -1) - ) - ) - ) - (br_if $__rjti$13 - (i32.gt_u - (tee_local $3 - (i32.sub - (get_local $3) + (i32.and + (i32.ne (get_local $1) + (i32.const -1) + ) + (i32.ne + (get_local $3) + (i32.const -1) ) ) - (i32.add - (get_local $0) - (i32.const 40) + ) + (br_if $__rjti$13 + (i32.gt_u + (tee_local $3 + (i32.sub + (get_local $3) + (get_local $1) + ) + ) + (i32.add + (get_local $0) + (i32.const 40) + ) ) ) ) ) + (br $__rjto$13) ) - (br $__rjto$13) - ) - (i32.store - (i32.const 608) - (tee_local $2 - (i32.add - (i32.load - (i32.const 608) + (i32.store + (i32.const 608) + (tee_local $2 + (i32.add + (i32.load + (i32.const 608) + ) + (get_local $3) ) - (get_local $3) - ) - ) - ) - (if - (i32.gt_u - (get_local $2) - (i32.load - (i32.const 612) ) ) - (i32.store - (i32.const 612) - (get_local $2) - ) - ) - (block $do-once40 (if - (tee_local $6 + (i32.gt_u + (get_local $2) (i32.load - (i32.const 200) + (i32.const 612) ) ) - (block - (set_local $2 - (i32.const 624) + (i32.store + (i32.const 612) + (get_local $2) + ) + ) + (block $do-once40 + (if + (tee_local $6 + (i32.load + (i32.const 200) + ) ) - (block $__rjto$10 - (block $__rjti$10 - (loop $while-in45 - (br_if $__rjti$10 - (i32.eq - (get_local $1) - (i32.add - (tee_local $11 - (i32.load - (get_local $2) + (block + (set_local $2 + (i32.const 624) + ) + (block $__rjto$10 + (block $__rjti$10 + (loop $while-in45 + (br_if $__rjti$10 + (i32.eq + (get_local $1) + (i32.add + (tee_local $11 + (i32.load + (get_local $2) + ) ) - ) - (tee_local $5 - (i32.load - (tee_local $4 - (i32.add - (get_local $2) - (i32.const 4) + (tee_local $5 + (i32.load + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 4) + ) ) ) ) ) ) ) - ) - (br_if $while-in45 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $while-in45 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) ) - ) - (br $__rjto$10) - ) - (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const 8) - ) + (br $__rjto$10) ) (if - (i32.and - (i32.lt_u - (get_local $6) - (get_local $1) - ) - (i32.ge_u - (get_local $6) - (get_local $11) + (i32.eqz + (i32.and + (i32.load offset=12 + (get_local $2) + ) + (i32.const 8) ) ) - (block - (i32.store - (get_local $4) - (i32.add - (get_local $5) - (get_local $3) + (if + (i32.and + (i32.lt_u + (get_local $6) + (get_local $1) ) - ) - (set_local $2 - (i32.add + (i32.ge_u (get_local $6) - (tee_local $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $6) - (i32.const 8) + (get_local $11) + ) + ) + (block + (i32.store + (get_local $4) + (i32.add + (get_local $5) + (get_local $3) + ) + ) + (set_local $2 + (i32.add + (get_local $6) + (tee_local $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $6) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) - ) - (set_local $1 - (i32.add - (i32.sub - (get_local $3) - (get_local $1) - ) - (i32.load - (i32.const 188) + (set_local $1 + (i32.add + (i32.sub + (get_local $3) + (get_local $1) + ) + (i32.load + (i32.const 188) + ) ) ) - ) - (i32.store - (i32.const 200) - (get_local $2) - ) - (i32.store - (i32.const 188) - (get_local $1) - ) - (i32.store offset=4 - (get_local $2) - (i32.or + (i32.store + (i32.const 200) + (get_local $2) + ) + (i32.store + (i32.const 188) (get_local $1) - (i32.const 1) ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $1) + (i32.or + (get_local $1) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 40) ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + (br $do-once40) ) - (br $do-once40) ) ) ) - ) - (if - (i32.lt_u - (get_local $1) - (tee_local $4 - (i32.load + (if + (i32.lt_u + (get_local $1) + (tee_local $4 + (i32.load + (i32.const 192) + ) + ) + ) + (block + (i32.store (i32.const 192) + (get_local $1) + ) + (set_local $4 + (get_local $1) ) ) ) - (block - (i32.store - (i32.const 192) - (get_local $1) - ) - (set_local $4 + (set_local $11 + (i32.add (get_local $1) + (get_local $3) ) ) - ) - (set_local $11 - (i32.add - (get_local $1) - (get_local $3) + (set_local $2 + (i32.const 624) ) - ) - (set_local $2 - (i32.const 624) - ) - (block $__rjto$11 - (block $__rjti$11 - (loop $while-in47 - (if - (i32.eq - (i32.load - (get_local $2) + (block $__rjto$11 + (block $__rjti$11 + (loop $while-in47 + (if + (i32.eq + (i32.load + (get_local $2) + ) + (get_local $11) + ) + (block + (set_local $5 + (get_local $2) + ) + (br $__rjti$11) ) - (get_local $11) ) - (block - (set_local $5 - (get_local $2) + (br_if $while-in47 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) - (br $__rjti$11) + ) + (set_local $4 + (i32.const 624) ) ) - (br_if $while-in47 - (tee_local $2 - (i32.load offset=8 - (get_local $2) - ) + (br $__rjto$11) + ) + (if + (i32.and + (i32.load offset=12 + (get_local $2) ) + (i32.const 8) ) (set_local $4 (i32.const 624) ) - ) - (br $__rjto$11) - ) - (if - (i32.and - (i32.load offset=12 - (get_local $2) - ) - (i32.const 8) - ) - (set_local $4 - (i32.const 624) - ) - (block - (i32.store - (get_local $5) - (get_local $1) - ) - (i32.store - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - (i32.add - (i32.load - (get_local $2) - ) - (get_local $3) + (block + (i32.store + (get_local $5) + (get_local $1) ) - ) - (set_local $8 - (i32.add - (tee_local $9 + (i32.store + (tee_local $2 (i32.add - (get_local $1) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) - ) - ) + (get_local $2) + (i32.const 4) ) ) - (get_local $0) + (i32.add + (i32.load + (get_local $2) + ) + (get_local $3) + ) ) - ) - (set_local $7 - (i32.sub - (i32.sub - (tee_local $5 + (set_local $8 + (i32.add + (tee_local $9 (i32.add - (get_local $11) + (get_local $1) (select (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $11) + (get_local $1) (i32.const 8) ) ) @@ -11397,1919 +11292,1948 @@ ) ) ) - (get_local $9) + (get_local $0) ) - (get_local $0) - ) - ) - (i32.store offset=4 - (get_local $9) - (i32.or - (get_local $0) - (i32.const 3) ) - ) - (block $do-once48 - (if - (i32.eq - (get_local $5) - (get_local $6) - ) - (block - (i32.store - (i32.const 188) - (tee_local $0 + (set_local $7 + (i32.sub + (i32.sub + (tee_local $5 (i32.add - (i32.load - (i32.const 188) + (get_local $11) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $11) + (i32.const 8) + ) + ) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) + ) ) - (get_local $7) ) ) + (get_local $9) ) - (i32.store - (i32.const 200) - (get_local $8) + (get_local $0) + ) + ) + (i32.store offset=4 + (get_local $9) + (i32.or + (get_local $0) + (i32.const 3) + ) + ) + (block $do-once48 + (if + (i32.eq + (get_local $5) + (get_local $6) ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $0) - (i32.const 1) + (block + (i32.store + (i32.const 188) + (tee_local $0 + (i32.add + (i32.load + (i32.const 188) + ) + (get_local $7) + ) + ) ) - ) - ) - (block - (if - (i32.eq - (get_local $5) - (i32.load - (i32.const 196) + (i32.store + (i32.const 200) + (get_local $8) + ) + (i32.store offset=4 + (get_local $8) + (i32.or + (get_local $0) + (i32.const 1) ) ) - (block - (i32.store - (i32.const 184) - (tee_local $0 - (i32.add - (i32.load - (i32.const 184) + ) + (block + (if + (i32.eq + (get_local $5) + (i32.load + (i32.const 196) + ) + ) + (block + (i32.store + (i32.const 184) + (tee_local $0 + (i32.add + (i32.load + (i32.const 184) + ) + (get_local $7) ) - (get_local $7) ) ) - ) - (i32.store - (i32.const 196) - (get_local $8) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $0) - (i32.const 1) + (i32.store + (i32.const 196) + (get_local $8) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) + (i32.or + (get_local $0) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $8) + (get_local $0) + ) (get_local $0) ) - (get_local $0) + (br $do-once48) ) - (br $do-once48) ) - ) - (i32.store - (tee_local $0 - (i32.add - (tee_local $0 - (if (result i32) - (i32.eq - (i32.and - (tee_local $0 - (i32.load offset=4 - (get_local $5) - ) - ) - (i32.const 3) - ) - (i32.const 1) - ) - (block (result i32) - (set_local $11 + (i32.store + (tee_local $0 + (i32.add + (tee_local $0 + (if (result i32) + (i32.eq (i32.and - (get_local $0) - (i32.const -8) - ) - ) - (set_local $1 - (i32.shr_u - (get_local $0) + (tee_local $0 + (i32.load offset=4 + (get_local $5) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$L331 - (if - (i32.lt_u + (block (result i32) + (set_local $11 + (i32.and (get_local $0) - (i32.const 256) + (i32.const -8) ) - (block - (set_local $2 - (i32.load offset=12 - (get_local $5) - ) + ) + (set_local $1 + (i32.shr_u + (get_local $0) + (i32.const 3) + ) + ) + (block $label$break$L331 + (if + (i32.lt_u + (get_local $0) + (i32.const 256) ) - (block $do-once51 - (if - (i32.ne - (tee_local $3 - (i32.load offset=8 - (get_local $5) - ) - ) - (tee_local $0 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (block + (set_local $2 + (i32.load offset=12 + (get_local $5) + ) + ) + (block $do-once51 + (if + (i32.ne + (tee_local $3 + (i32.load offset=8 + (get_local $5) ) - (i32.const 216) ) - ) - ) - (block - (if - (i32.lt_u - (get_local $3) - (get_local $4) + (tee_local $0 + (i32.add + (i32.shl + (get_local $1) + (i32.const 3) + ) + (i32.const 216) + ) ) - (call $_abort) ) - (br_if $do-once51 - (i32.eq - (i32.load offset=12 + (block + (if + (i32.lt_u (get_local $3) + (get_local $4) ) - (get_local $5) + (call $_abort) ) - ) - (call $_abort) - ) - ) - ) - (if - (i32.eq - (get_local $2) - (get_local $3) - ) - (block - (i32.store - (i32.const 176) - (i32.and - (i32.load - (i32.const 176) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (br_if $do-once51 + (i32.eq + (i32.load offset=12 + (get_local $3) + ) + (get_local $5) ) - (i32.const -1) ) + (call $_abort) ) ) - (br $label$break$L331) ) - ) - (block $do-once53 (if (i32.eq (get_local $2) - (get_local $0) + (get_local $3) ) - (set_local $15 - (i32.add - (get_local $2) - (i32.const 8) + (block + (i32.store + (i32.const 176) + (i32.and + (i32.load + (i32.const 176) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) + ) + ) ) + (br $label$break$L331) ) - (block - (if - (i32.lt_u + ) + (block $do-once53 + (if + (i32.eq + (get_local $2) + (get_local $0) + ) + (set_local $15 + (i32.add (get_local $2) - (get_local $4) + (i32.const 8) ) - (call $_abort) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $2) - (i32.const 8) + (block + (if + (i32.lt_u + (get_local $2) + (get_local $4) + ) + (call $_abort) + ) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (set_local $15 - (get_local $0) + (block + (set_local $15 + (get_local $0) + ) + (br $do-once53) ) - (br $do-once53) ) + (call $_abort) ) - (call $_abort) ) ) - ) - (i32.store offset=12 - (get_local $3) - (get_local $2) - ) - (i32.store - (get_local $15) - (get_local $3) - ) - ) - (block - (set_local $6 - (i32.load offset=24 - (get_local $5) + (i32.store offset=12 + (get_local $3) + (get_local $2) + ) + (i32.store + (get_local $15) + (get_local $3) ) ) - (block $do-once55 - (if - (i32.eq - (tee_local $0 - (i32.load offset=12 - (get_local $5) - ) - ) + (block + (set_local $6 + (i32.load offset=24 (get_local $5) ) - (block - (if - (i32.eqz - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (tee_local $3 - (i32.add - (get_local $5) - (i32.const 16) + ) + (block $do-once55 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $5) + ) + ) + (get_local $5) + ) + (block + (if + (i32.eqz + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (tee_local $3 + (i32.add + (get_local $5) + (i32.const 16) + ) ) + (i32.const 4) ) - (i32.const 4) ) ) ) ) - ) - (if - (tee_local $1 - (i32.load + (if + (tee_local $1 + (i32.load + (get_local $3) + ) + ) + (set_local $0 (get_local $3) ) + (block + (set_local $12 + (i32.const 0) + ) + (br $do-once55) + ) ) - (set_local $0 - (get_local $3) + ) + (loop $while-in58 + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 20) + ) + ) + ) + ) + (block + (set_local $1 + (get_local $3) + ) + (set_local $0 + (get_local $2) + ) + (br $while-in58) + ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 16) + ) + ) + ) + ) + (block + (set_local $1 + (get_local $3) + ) + (set_local $0 + (get_local $2) + ) + (br $while-in58) + ) + ) + ) + (if + (i32.lt_u + (get_local $0) + (get_local $4) ) + (call $_abort) (block - (set_local $12 + (i32.store + (get_local $0) (i32.const 0) ) - (br $do-once55) + (set_local $12 + (get_local $1) + ) ) ) ) - (loop $while-in58 + (block (if - (tee_local $3 + (i32.lt_u + (tee_local $2 + (i32.load offset=8 + (get_local $5) + ) + ) + (get_local $4) + ) + (call $_abort) + ) + (if + (i32.ne (i32.load - (tee_local $2 + (tee_local $3 (i32.add - (get_local $1) - (i32.const 20) + (get_local $2) + (i32.const 12) ) ) ) + (get_local $5) ) - (block - (set_local $1 - (get_local $3) - ) - (set_local $0 - (get_local $2) - ) - (br $while-in58) - ) + (call $_abort) ) (if - (tee_local $3 + (i32.eq (i32.load - (tee_local $2 + (tee_local $1 (i32.add - (get_local $1) - (i32.const 16) + (get_local $0) + (i32.const 8) ) ) ) + (get_local $5) ) (block - (set_local $1 + (i32.store (get_local $3) + (get_local $0) ) - (set_local $0 + (i32.store + (get_local $1) (get_local $2) ) - (br $while-in58) - ) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $4) - ) - (call $_abort) - (block - (i32.store - (get_local $0) - (i32.const 0) - ) - (set_local $12 - (get_local $1) + (set_local $12 + (get_local $0) + ) ) + (call $_abort) ) ) ) - (block - (if - (i32.lt_u - (tee_local $2 - (i32.load offset=8 - (get_local $5) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $6) + ) + ) + (block $do-once59 + (if + (i32.eq + (get_local $5) + (i32.load + (tee_local $0 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $5) + ) + ) + (i32.const 2) + ) + (i32.const 480) ) ) - (get_local $4) ) - (call $_abort) ) - (if - (i32.ne - (i32.load - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 12) + (block + (i32.store + (get_local $0) + (get_local $12) + ) + (br_if $do-once59 + (get_local $12) + ) + (i32.store + (i32.const 180) + (i32.and + (i32.load + (i32.const 180) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) ) + (i32.const -1) ) ) - (get_local $5) ) - (call $_abort) + (br $label$break$L331) ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) - ) + (block + (if + (i32.lt_u + (get_local $6) + (i32.load + (i32.const 192) ) ) - (get_local $5) + (call $_abort) ) - (block + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $6) + (i32.const 16) + ) + ) + ) + (get_local $5) + ) (i32.store - (get_local $3) (get_local $0) + (get_local $12) ) - (i32.store - (get_local $1) - (get_local $2) + (i32.store offset=20 + (get_local $6) + (get_local $12) ) - (set_local $12 - (get_local $0) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $12) ) ) - (call $_abort) ) ) ) - ) - (br_if $label$break$L331 - (i32.eqz + (if + (i32.lt_u + (get_local $12) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (call $_abort) + ) + (i32.store offset=24 + (get_local $12) (get_local $6) ) - ) - (block $do-once59 (if - (i32.eq - (get_local $5) + (tee_local $3 (i32.load (tee_local $0 (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $5) - ) - ) - (i32.const 2) - ) - (i32.const 480) - ) - ) - ) - ) - (block - (i32.store - (get_local $0) - (get_local $12) - ) - (br_if $do-once59 - (get_local $12) - ) - (i32.store - (i32.const 180) - (i32.and - (i32.load - (i32.const 180) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) - ) - (i32.const -1) + (get_local $5) + (i32.const 16) ) ) ) - (br $label$break$L331) ) - (block - (if - (i32.lt_u - (get_local $6) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) + (if + (i32.lt_u + (get_local $3) + (get_local $1) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $6) - (i32.const 16) - ) - ) - ) - (get_local $5) - ) - (i32.store - (get_local $0) - (get_local $12) - ) - (i32.store offset=20 - (get_local $6) + (call $_abort) + (block + (i32.store offset=16 (get_local $12) + (get_local $3) ) - ) - (br_if $label$break$L331 - (i32.eqz + (i32.store offset=24 + (get_local $3) (get_local $12) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $12) - (tee_local $1 - (i32.load - (i32.const 192) - ) - ) - ) - (call $_abort) - ) - (i32.store offset=24 - (get_local $12) - (get_local $6) - ) - (if - (tee_local $3 - (i32.load + (br_if $label$break$L331 + (i32.eqz (tee_local $0 - (i32.add - (get_local $5) - (i32.const 16) + (i32.load offset=4 + (get_local $0) ) ) ) ) (if (i32.lt_u - (get_local $3) - (get_local $1) + (get_local $0) + (i32.load + (i32.const 192) + ) ) (call $_abort) (block - (i32.store offset=16 + (i32.store offset=20 (get_local $12) - (get_local $3) + (get_local $0) ) (i32.store offset=24 - (get_local $3) - (get_local $12) - ) - ) - ) - ) - (br_if $label$break$L331 - (i32.eqz - (tee_local $0 - (i32.load offset=4 (get_local $0) + (get_local $12) ) ) ) ) - (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) - ) - ) - (call $_abort) - (block - (i32.store offset=20 - (get_local $12) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) - (get_local $12) - ) - ) - ) ) ) - ) - (set_local $7 + (set_local $7 + (i32.add + (get_local $11) + (get_local $7) + ) + ) (i32.add + (get_local $5) (get_local $11) - (get_local $7) ) ) - (i32.add - (get_local $5) - (get_local $11) - ) + (get_local $5) ) - (get_local $5) ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.and - (i32.load - (get_local $0) + (i32.and + (i32.load + (get_local $0) + ) + (i32.const -2) ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $7) - (i32.const 1) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) - (get_local $7) + (i32.or + (get_local $7) + (i32.const 1) + ) ) - (get_local $7) - ) - (set_local $0 - (i32.shr_u + (i32.store + (i32.add + (get_local $8) + (get_local $7) + ) (get_local $7) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $7) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $7) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (if + (i32.lt_u + (get_local $7) + (i32.const 256) + ) + (block + (set_local $3 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 216) ) - (i32.const 216) ) - ) - (block $do-once63 - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) + (block $do-once63 + (if + (i32.and + (tee_local $1 + (i32.load + (i32.const 176) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) ) ) - ) - (block - (if - (i32.ge_u - (tee_local $0 - (i32.load - (tee_local $1 - (i32.add - (get_local $3) - (i32.const 8) + (block + (if + (i32.ge_u + (tee_local $0 + (i32.load + (tee_local $1 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (block + (set_local $16 + (get_local $1) + ) + (set_local $10 + (get_local $0) + ) + (br $do-once63) ) ) - (block - (set_local $16 + (call $_abort) + ) + (block + (i32.store + (i32.const 176) + (i32.or (get_local $1) - ) - (set_local $10 (get_local $0) ) - (br $do-once63) ) - ) - (call $_abort) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $0) + (set_local $16 + (i32.add + (get_local $3) + (i32.const 8) + ) ) - ) - (set_local $16 - (i32.add + (set_local $10 (get_local $3) - (i32.const 8) ) ) - (set_local $10 - (get_local $3) - ) ) ) + (i32.store + (get_local $16) + (get_local $8) + ) + (i32.store offset=12 + (get_local $10) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $10) + ) + (i32.store offset=12 + (get_local $8) + (get_local $3) + ) + (br $do-once48) ) - (i32.store - (get_local $16) - (get_local $8) - ) - (i32.store offset=12 - (get_local $10) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $10) - ) - (i32.store offset=12 - (get_local $8) - (get_local $3) - ) - (br $do-once48) ) - ) - (set_local $3 - (i32.add - (i32.shl - (tee_local $2 - (block $do-once65 (result i32) - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $7) - (i32.const 8) + (set_local $3 + (i32.add + (i32.shl + (tee_local $2 + (block $do-once65 (result i32) + (if (result i32) + (tee_local $0 + (i32.shr_u + (get_local $7) + (i32.const 8) + ) ) - ) - (block (result i32) - (drop - (br_if $do-once65 - (i32.const 31) - (i32.gt_u - (get_local $7) - (i32.const 16777215) + (block (result i32) + (drop + (br_if $do-once65 + (i32.const 31) + (i32.gt_u + (get_local $7) + (i32.const 16777215) + ) ) ) - ) - (i32.or - (i32.and - (i32.shr_u - (get_local $7) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $7) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $0) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $1) - (get_local $0) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $1) + (get_local $0) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $8) - (get_local $2) - ) - (i32.store offset=4 - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 16) + (i32.store offset=28 + (get_local $8) + (get_local $2) + ) + (i32.store offset=4 + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) + ) ) + (i32.const 0) ) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $1 - (i32.load - (i32.const 180) + (i32.store + (get_local $0) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $1 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $2) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $2) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $1) - (get_local $0) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $1) + (get_local $0) + ) ) + (i32.store + (get_local $3) + (get_local $8) + ) + (i32.store offset=24 + (get_local $8) + (get_local $3) + ) + (i32.store offset=12 + (get_local $8) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $8) + ) + (br $do-once48) ) - (i32.store - (get_local $3) - (get_local $8) - ) - (i32.store offset=24 - (get_local $8) - (get_local $3) - ) - (i32.store offset=12 - (get_local $8) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $8) - ) - (br $do-once48) ) - ) - (set_local $2 - (i32.shl - (get_local $7) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $2 + (i32.shl + (get_local $7) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $2) + (i32.const 1) + ) + ) + (i32.eq (get_local $2) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $2) - (i32.const 31) - ) ) ) - ) - (set_local $0 - (i32.load - (get_local $3) + (set_local $0 + (i32.load + (get_local $3) + ) ) - ) - (block $__rjto$7 - (block $__rjti$7 - (loop $while-in68 - (br_if $__rjti$7 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $0) + (block $__rjto$7 + (block $__rjti$7 + (loop $while-in68 + (br_if $__rjti$7 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $7) ) - (get_local $7) ) - ) - (set_local $3 - (i32.shl - (get_local $2) - (i32.const 1) + (set_local $3 + (i32.shl + (get_local $2) + (i32.const 1) + ) ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $2 - (i32.add + (if + (tee_local $1 + (i32.load + (tee_local $2 (i32.add - (get_local $0) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $2) - (i32.const 31) + (i32.add + (get_local $0) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $2) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $2 + (get_local $3) + ) + (set_local $0 + (get_local $1) + ) + (br $while-in68) + ) + ) + ) + (if + (i32.lt_u + (get_local $2) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (set_local $2 - (get_local $3) + (i32.store + (get_local $2) + (get_local $8) ) - (set_local $0 - (get_local $1) + (i32.store offset=24 + (get_local $8) + (get_local $0) ) - (br $while-in68) + (i32.store offset=12 + (get_local $8) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $8) + ) + (br $do-once48) ) ) + (br $__rjto$7) ) (if - (i32.lt_u - (get_local $2) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $2 + (i32.load + (tee_local $3 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $0) + (get_local $1) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (get_local $2) (get_local $8) ) - (i32.store offset=24 - (get_local $8) - (get_local $0) - ) - (i32.store offset=12 - (get_local $8) + (i32.store + (get_local $3) (get_local $8) ) (i32.store offset=8 (get_local $8) - (get_local $8) + (get_local $2) ) - (br $do-once48) - ) - ) - (br $__rjto$7) - ) - (if - (i32.and - (i32.ge_u - (tee_local $2 - (i32.load - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (get_local $8) + (get_local $0) ) - (tee_local $1 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (get_local $8) + (i32.const 0) ) ) - (i32.ge_u - (get_local $0) - (get_local $1) - ) - ) - (block - (i32.store offset=12 - (get_local $2) - (get_local $8) - ) - (i32.store - (get_local $3) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $2) - ) - (i32.store offset=12 - (get_local $8) - (get_local $0) - ) - (i32.store offset=24 - (get_local $8) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (return - (i32.add - (get_local $9) - (i32.const 8) + (return + (i32.add + (get_local $9) + (i32.const 8) + ) ) ) ) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.le_u - (tee_local $2 - (i32.load - (get_local $4) + (loop $while-in70 + (block $while-out69 + (if + (i32.le_u + (tee_local $2 + (i32.load + (get_local $4) + ) ) + (get_local $6) ) - (get_local $6) - ) - (br_if $while-out69 - (i32.gt_u - (tee_local $2 - (i32.add - (get_local $2) - (i32.load offset=4 - (get_local $4) + (br_if $while-out69 + (i32.gt_u + (tee_local $2 + (i32.add + (get_local $2) + (i32.load offset=4 + (get_local $4) + ) ) ) + (get_local $6) ) - (get_local $6) ) ) - ) - (set_local $4 - (i32.load offset=8 - (get_local $4) + (set_local $4 + (i32.load offset=8 + (get_local $4) + ) ) + (br $while-in70) ) - (br $while-in70) ) - ) - (set_local $10 - (i32.add - (tee_local $4 - (i32.add - (get_local $2) - (i32.const -47) + (set_local $10 + (i32.add + (tee_local $4 + (i32.add + (get_local $2) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (set_local $12 - (i32.add - (tee_local $11 - (select - (get_local $6) - (tee_local $4 - (i32.add - (get_local $4) - (select - (i32.and - (i32.sub - (i32.const 0) + (set_local $12 + (i32.add + (tee_local $11 + (select + (get_local $6) + (tee_local $4 + (i32.add + (get_local $4) + (select + (i32.and + (i32.sub + (i32.const 0) + (get_local $10) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and (get_local $10) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $10) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (get_local $4) - (tee_local $10 - (i32.add - (get_local $6) - (i32.const 16) + (i32.lt_u + (get_local $4) + (tee_local $10 + (i32.add + (get_local $6) + (i32.const 16) + ) ) ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 200) - (tee_local $5 - (i32.add - (get_local $1) - (tee_local $4 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $4 - (i32.add - (get_local $1) - (i32.const 8) + (i32.store + (i32.const 200) + (tee_local $5 + (i32.add + (get_local $1) + (tee_local $4 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $4 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $4) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 188) - (tee_local $4 - (i32.sub - (i32.add - (get_local $3) - (i32.const -40) + (i32.store + (i32.const 188) + (tee_local $4 + (i32.sub + (i32.add + (get_local $3) + (i32.const -40) + ) + (get_local $4) ) + ) + ) + (i32.store offset=4 + (get_local $5) + (i32.or (get_local $4) + (i32.const 1) ) ) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $4) - (i32.const 1) + (i32.store offset=4 + (i32.add + (get_local $5) + (get_local $4) + ) + (i32.const 40) ) - ) - (i32.store offset=4 - (i32.add - (get_local $5) - (get_local $4) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) + (i32.store + (tee_local $4 + (i32.add + (get_local $11) + (i32.const 4) + ) + ) + (i32.const 27) ) - ) - (i32.store - (tee_local $4 - (i32.add - (get_local $11) - (i32.const 4) + (i32.store + (get_local $12) + (i32.load + (i32.const 624) ) ) - (i32.const 27) - ) - (i32.store - (get_local $12) - (i32.load + (i32.store offset=4 + (get_local $12) + (i32.load + (i32.const 628) + ) + ) + (i32.store offset=8 + (get_local $12) + (i32.load + (i32.const 632) + ) + ) + (i32.store offset=12 + (get_local $12) + (i32.load + (i32.const 636) + ) + ) + (i32.store (i32.const 624) + (get_local $1) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.load + (i32.store (i32.const 628) + (get_local $3) ) - ) - (i32.store offset=8 - (get_local $12) - (i32.load - (i32.const 632) - ) - ) - (i32.store offset=12 - (get_local $12) - (i32.load + (i32.store (i32.const 636) + (i32.const 0) ) - ) - (i32.store - (i32.const 624) - (get_local $1) - ) - (i32.store - (i32.const 628) - (get_local $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 632) - (get_local $12) - ) - (set_local $1 - (i32.add - (get_local $11) - (i32.const 24) - ) - ) - (loop $while-in72 (i32.store - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 632) + (get_local $12) ) - (br_if $while-in72 - (i32.lt_u - (i32.add - (get_local $1) - (i32.const 4) - ) - (get_local $2) + (set_local $1 + (i32.add + (get_local $11) + (i32.const 24) ) ) - ) - (if - (i32.ne - (get_local $11) - (get_local $6) - ) - (block + (loop $while-in72 (i32.store - (get_local $4) - (i32.and - (i32.load - (get_local $4) + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (get_local $6) - (i32.or - (tee_local $5 - (i32.sub - (get_local $11) - (get_local $6) - ) + (br_if $while-in72 + (i32.lt_u + (i32.add + (get_local $1) + (i32.const 4) ) - (i32.const 1) + (get_local $2) ) ) - (i32.store + ) + (if + (i32.ne (get_local $11) - (get_local $5) - ) - (set_local $1 - (i32.shr_u - (get_local $5) - (i32.const 3) - ) + (get_local $6) ) - (if - (i32.lt_u - (get_local $5) - (i32.const 256) + (block + (i32.store + (get_local $4) + (i32.and + (i32.load + (get_local $4) + ) + (i32.const -2) + ) ) - (block - (set_local $2 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (i32.store offset=4 + (get_local $6) + (i32.or + (tee_local $5 + (i32.sub + (get_local $11) + (get_local $6) ) - (i32.const 216) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 + ) + (i32.store + (get_local $11) + (get_local $5) + ) + (set_local $1 + (i32.shr_u + (get_local $5) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (get_local $5) + (i32.const 256) + ) + (block + (set_local $2 + (i32.add (i32.shl - (i32.const 1) (get_local $1) + (i32.const 3) ) + (i32.const 216) ) ) (if - (i32.lt_u - (tee_local $1 + (i32.and + (tee_local $3 (i32.load - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 8) + (i32.const 176) + ) + ) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $1) + ) + ) + ) + (if + (i32.lt_u + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (get_local $2) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 192) + ) ) - (i32.load - (i32.const 192) + (call $_abort) + (block + (set_local $17 + (get_local $3) + ) + (set_local $7 + (get_local $1) + ) ) ) - (call $_abort) (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $1) + ) + ) (set_local $17 - (get_local $3) + (i32.add + (get_local $2) + (i32.const 8) + ) ) (set_local $7 - (get_local $1) - ) - ) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $3) - (get_local $1) - ) - ) - (set_local $17 - (i32.add (get_local $2) - (i32.const 8) ) ) - (set_local $7 - (get_local $2) - ) ) + (i32.store + (get_local $17) + (get_local $6) + ) + (i32.store offset=12 + (get_local $7) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $7) + ) + (i32.store offset=12 + (get_local $6) + (get_local $2) + ) + (br $do-once40) ) - (i32.store - (get_local $17) - (get_local $6) - ) - (i32.store offset=12 - (get_local $7) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $7) - ) - (i32.store offset=12 - (get_local $6) - (get_local $2) - ) - (br $do-once40) ) - ) - (set_local $2 - (i32.add - (i32.shl - (tee_local $4 - (if (result i32) - (tee_local $1 - (i32.shr_u - (get_local $5) - (i32.const 8) - ) - ) + (set_local $2 + (i32.add + (i32.shl + (tee_local $4 (if (result i32) - (i32.gt_u - (get_local $5) - (i32.const 16777215) + (tee_local $1 + (i32.shr_u + (get_local $5) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (tee_local $1 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $5) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $5) + (i32.add + (tee_local $1 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $1) - (tee_local $2 - (i32.and - (i32.shr_u - (i32.add - (get_local $1) - (i32.const 1048320) + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $1) + (tee_local $2 + (i32.and + (i32.shr_u + (i32.add + (get_local $1) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $2) ) - (get_local $2) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $3) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $3) + (get_local $1) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $3) - (get_local $1) + (i32.shr_u + (i32.shl + (get_local $3) + (get_local $1) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $1) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $1) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 480) ) - (i32.const 480) ) - ) - (i32.store offset=28 - (get_local $6) - (get_local $4) - ) - (i32.store offset=20 - (get_local $6) - (i32.const 0) - ) - (i32.store - (get_local $10) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 180) + (i32.store offset=28 + (get_local $6) + (get_local $4) + ) + (i32.store offset=20 + (get_local $6) + (i32.const 0) + ) + (i32.store + (get_local $10) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 180) + ) ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $4) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $4) + ) ) ) ) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $3) - (get_local $1) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $3) + (get_local $1) + ) ) + (i32.store + (get_local $2) + (get_local $6) + ) + (i32.store offset=24 + (get_local $6) + (get_local $2) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once40) ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=24 - (get_local $6) - (get_local $2) - ) - (i32.store offset=12 - (get_local $6) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $6) - ) - (br $do-once40) ) - ) - (set_local $4 - (i32.shl - (get_local $5) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (set_local $4 + (i32.shl + (get_local $5) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $4) + (i32.const 1) + ) + ) + (i32.eq (get_local $4) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $4) - (i32.const 31) - ) ) ) - ) - (set_local $1 - (i32.load - (get_local $2) + (set_local $1 + (i32.load + (get_local $2) + ) ) - ) - (block $__rjto$9 - (block $__rjti$9 - (loop $while-in74 - (br_if $__rjti$9 - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $1) + (block $__rjto$9 + (block $__rjti$9 + (loop $while-in74 + (br_if $__rjti$9 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $1) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $5) ) - (get_local $5) ) - ) - (set_local $2 - (i32.shl - (get_local $4) - (i32.const 1) + (set_local $2 + (i32.shl + (get_local $4) + (i32.const 1) + ) ) - ) - (if - (tee_local $3 - (i32.load - (tee_local $4 - (i32.add + (if + (tee_local $3 + (i32.load + (tee_local $4 (i32.add - (get_local $1) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $4) - (i32.const 31) + (i32.add + (get_local $1) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $4) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) ) + (block + (set_local $4 + (get_local $2) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in74) + ) + ) + ) + (if + (i32.lt_u + (get_local $4) + (i32.load + (i32.const 192) + ) ) + (call $_abort) (block - (set_local $4 - (get_local $2) + (i32.store + (get_local $4) + (get_local $6) ) - (set_local $1 - (get_local $3) + (i32.store offset=24 + (get_local $6) + (get_local $1) ) - (br $while-in74) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once40) ) ) + (br $__rjto$9) ) (if - (i32.lt_u - (get_local $4) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $4 + (i32.load + (tee_local $2 + (i32.add + (get_local $1) + (i32.const 8) + ) + ) + ) + ) + (tee_local $3 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $1) + (get_local $3) ) ) - (call $_abort) (block - (i32.store + (i32.store offset=12 (get_local $4) (get_local $6) ) - (i32.store offset=24 - (get_local $6) - (get_local $1) - ) - (i32.store offset=12 - (get_local $6) + (i32.store + (get_local $2) (get_local $6) ) (i32.store offset=8 (get_local $6) - (get_local $6) + (get_local $4) ) - (br $do-once40) - ) - ) - (br $__rjto$9) - ) - (if - (i32.and - (i32.ge_u - (tee_local $4 - (i32.load - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) + (i32.store offset=12 + (get_local $6) + (get_local $1) ) - (tee_local $3 - (i32.load - (i32.const 192) - ) + (i32.store offset=24 + (get_local $6) + (i32.const 0) ) ) - (i32.ge_u - (get_local $1) - (get_local $3) - ) - ) - (block - (i32.store offset=12 - (get_local $4) - (get_local $6) - ) - (i32.store - (get_local $2) - (get_local $6) - ) - (i32.store offset=8 - (get_local $6) - (get_local $4) - ) - (i32.store offset=12 - (get_local $6) - (get_local $1) - ) - (i32.store offset=24 - (get_local $6) - (i32.const 0) - ) + (call $_abort) ) - (call $_abort) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (tee_local $2 - (i32.load - (i32.const 192) + (block + (if + (i32.or + (i32.eqz + (tee_local $2 + (i32.load + (i32.const 192) + ) ) ) + (i32.lt_u + (get_local $1) + (get_local $2) + ) ) - (i32.lt_u + (i32.store + (i32.const 192) (get_local $1) - (get_local $2) ) ) (i32.store - (i32.const 192) + (i32.const 624) (get_local $1) ) - ) - (i32.store - (i32.const 624) - (get_local $1) - ) - (i32.store - (i32.const 628) - (get_local $3) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) + (i32.store + (i32.const 628) + (get_local $3) ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (set_local $2 - (i32.const 0) - ) - (loop $while-in43 - (i32.store offset=12 - (tee_local $4 - (i32.add - (i32.shl - (get_local $2) - (i32.const 3) - ) - (i32.const 216) - ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) + (i32.load + (i32.const 648) ) - (get_local $4) ) - (i32.store offset=8 - (get_local $4) - (get_local $4) + (i32.store + (i32.const 208) + (i32.const -1) ) - (br_if $while-in43 - (i32.ne - (tee_local $2 + (set_local $2 + (i32.const 0) + ) + (loop $while-in43 + (i32.store offset=12 + (tee_local $4 (i32.add - (get_local $2) - (i32.const 1) + (i32.shl + (get_local $2) + (i32.const 3) + ) + (i32.const 216) ) ) - (i32.const 32) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + (br_if $while-in43 + (i32.ne + (tee_local $2 + (i32.add + (get_local $2) + (i32.const 1) + ) + ) + (i32.const 32) + ) ) ) - ) - (i32.store - (i32.const 200) - (tee_local $2 - (i32.add - (get_local $1) - (tee_local $1 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 8) + (i32.store + (i32.const 200) + (tee_local $2 + (i32.add + (get_local $1) + (tee_local $1 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 188) - (tee_local $1 - (i32.sub - (i32.add - (get_local $3) - (i32.const -40) + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (i32.add + (get_local $3) + (i32.const -40) + ) + (get_local $1) ) + ) + ) + (i32.store offset=4 + (get_local $2) + (i32.or (get_local $1) + (i32.const 1) ) ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $1) - (i32.const 1) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $1) + ) + (i32.const 40) ) - ) - (i32.store offset=4 - (i32.add - (get_local $2) - (get_local $1) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) ) - (i32.const 40) ) - (i32.store - (i32.const 204) + ) + ) + (br_if $folding-inner0 + (i32.gt_u + (tee_local $1 (i32.load - (i32.const 664) + (i32.const 188) ) ) + (get_local $0) ) ) ) - (if - (i32.gt_u - (tee_local $1 - (i32.load - (i32.const 188) - ) - ) + (i32.store + (call $___errno_location) + (i32.const 12) + ) + (return + (i32.const 0) + ) + ) + (i32.store + (i32.const 188) + (tee_local $3 + (i32.sub + (get_local $1) (get_local $0) ) - (block - (i32.store - (i32.const 188) - (tee_local $3 - (i32.sub - (get_local $1) - (get_local $0) - ) - ) - ) - (i32.store - (i32.const 200) - (tee_local $1 - (i32.add - (tee_local $2 - (i32.load - (i32.const 200) - ) - ) - (get_local $0) - ) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $3) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) + ) + ) + (i32.store + (i32.const 200) + (tee_local $1 + (i32.add + (tee_local $2 + (i32.load + (i32.const 200) ) ) + (get_local $0) ) ) ) - (i32.store - (call $___errno_location) - (i32.const 12) + (i32.store offset=4 + (get_local $1) + (i32.or + (get_local $3) + (i32.const 1) + ) + ) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $0) + (i32.const 3) + ) + ) + (i32.add + (get_local $2) + (i32.const 8) ) - (i32.const 0) ) (func $_free (param $0 i32) (local $1 i32) diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm index a6d77f5cf..71c095deb 100644 --- a/test/memorygrowth.fromasm +++ b/test/memorygrowth.fromasm @@ -105,830 +105,790 @@ (local $52 i32) (local $53 i32) (local $54 i32) - (set_local $25 - (get_global $r) - ) - (set_global $r - (i32.add + (block $folding-inner0 + (set_local $25 (get_global $r) - (i32.const 16) ) - ) - (set_local $13 - (get_local $25) - ) - (block $do-once - (if - (i32.lt_u - (get_local $0) - (i32.const 245) + (set_global $r + (i32.add + (get_global $r) + (i32.const 16) ) - (block - (if - (i32.and - (tee_local $5 - (i32.shr_u - (tee_local $4 - (i32.load - (i32.const 1208) + ) + (set_local $13 + (get_local $25) + ) + (block $do-once + (if + (i32.lt_u + (get_local $0) + (i32.const 245) + ) + (block + (if + (i32.and + (tee_local $5 + (i32.shr_u + (tee_local $4 + (i32.load + (i32.const 1208) + ) ) - ) - (tee_local $0 - (i32.shr_u - (tee_local $3 - (select - (i32.const 16) - (i32.and - (i32.add + (tee_local $0 + (i32.shr_u + (tee_local $3 + (select + (i32.const 16) + (i32.and + (i32.add + (get_local $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (get_local $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (get_local $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (set_local $6 - (i32.load - (tee_local $3 - (i32.add - (tee_local $12 - (i32.load - (tee_local $14 - (i32.add - (tee_local $8 - (i32.add - (i32.shl - (tee_local $0 - (i32.add - (i32.xor - (i32.and - (get_local $5) + (block + (set_local $6 + (i32.load + (tee_local $3 + (i32.add + (tee_local $12 + (i32.load + (tee_local $14 + (i32.add + (tee_local $8 + (i32.add + (i32.shl + (tee_local $0 + (i32.add + (i32.xor + (i32.and + (get_local $5) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) + (get_local $0) ) - (get_local $0) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 1248) ) - (i32.const 1248) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $8) - (get_local $6) - ) - (i32.store - (i32.const 1208) - (i32.and - (get_local $4) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) - ) - (i32.const -1) - ) + (if + (i32.eq + (get_local $8) + (get_local $6) ) - ) - (block - (if - (i32.lt_u - (get_local $6) - (i32.load - (i32.const 1224) + (i32.store + (i32.const 1208) + (i32.and + (get_local $4) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) + ) + (i32.const -1) ) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $7 - (i32.add - (get_local $6) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $6) + (i32.load + (i32.const 1224) ) ) - (get_local $12) + (call $qa) ) - (block - (i32.store - (get_local $7) - (get_local $8) + (if + (i32.eq + (i32.load + (tee_local $7 + (i32.add + (get_local $6) + (i32.const 12) + ) + ) + ) + (get_local $12) ) - (i32.store - (get_local $14) - (get_local $6) + (block + (i32.store + (get_local $7) + (get_local $8) + ) + (i32.store + (get_local $14) + (get_local $6) + ) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.or - (tee_local $6 - (i32.shl - (get_local $0) - (i32.const 3) + (i32.store offset=4 + (get_local $12) + (i32.or + (tee_local $6 + (i32.shl + (get_local $0) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $14 - (i32.add + (i32.store + (tee_local $14 (i32.add - (get_local $12) - (get_local $6) + (i32.add + (get_local $12) + (get_local $6) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $14) + (i32.or + (i32.load + (get_local $14) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (set_global $r - (get_local $25) - ) - (return - (get_local $3) + (set_global $r + (get_local $25) + ) + (return + (get_local $3) + ) ) ) - ) - (if - (i32.gt_u - (get_local $3) - (tee_local $14 - (i32.load - (i32.const 1216) + (if + (i32.gt_u + (get_local $3) + (tee_local $14 + (i32.load + (i32.const 1216) + ) ) ) - ) - (block - (if - (get_local $5) - (block - (set_local $8 - (i32.and - (i32.shr_u - (tee_local $6 - (i32.add - (i32.and - (tee_local $8 - (i32.and - (i32.shl - (get_local $5) - (get_local $0) - ) - (i32.or - (tee_local $6 - (i32.shl - (i32.const 2) - (get_local $0) - ) + (block + (if + (get_local $5) + (block + (set_local $8 + (i32.and + (i32.shr_u + (tee_local $6 + (i32.add + (i32.and + (tee_local $8 + (i32.and + (i32.shl + (get_local $5) + (get_local $0) ) - (i32.sub - (i32.const 0) - (get_local $6) + (i32.or + (tee_local $6 + (i32.shl + (i32.const 2) + (get_local $0) + ) + ) + (i32.sub + (i32.const 0) + (get_local $6) + ) ) ) ) + (i32.sub + (i32.const 0) + (get_local $8) + ) ) - (i32.sub - (i32.const 0) - (get_local $8) - ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $8 - (i32.load - (tee_local $7 - (i32.add - (tee_local $9 - (i32.load - (tee_local $12 - (i32.add - (tee_local $1 - (i32.add - (i32.shl - (tee_local $16 - (i32.add - (i32.or + (set_local $8 + (i32.load + (tee_local $7 + (i32.add + (tee_local $9 + (i32.load + (tee_local $12 + (i32.add + (tee_local $1 + (i32.add + (i32.shl + (tee_local $16 + (i32.add (i32.or (i32.or (i32.or - (tee_local $6 + (i32.or + (tee_local $6 + (i32.and + (i32.shr_u + (tee_local $7 + (i32.shr_u + (get_local $6) + (get_local $8) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $8) + ) + (tee_local $7 (i32.and (i32.shr_u - (tee_local $7 + (tee_local $9 (i32.shr_u + (get_local $7) (get_local $6) - (get_local $8) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $8) ) - (tee_local $7 + (tee_local $9 (i32.and (i32.shr_u - (tee_local $9 + (tee_local $1 (i32.shr_u + (get_local $9) (get_local $7) - (get_local $6) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $9 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $12 (i32.shr_u + (get_local $1) (get_local $9) - (get_local $7) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (tee_local $12 - (i32.shr_u - (get_local $1) - (get_local $9) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) - ) - (i32.shr_u - (get_local $12) - (get_local $1) + (i32.shr_u + (get_local $12) + (get_local $1) + ) ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 1248) ) - (i32.const 1248) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $1) - (get_local $8) - ) - (block - (i32.store - (i32.const 1208) - (i32.and - (get_local $4) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $16) + (if + (i32.eq + (get_local $1) + (get_local $8) + ) + (block + (i32.store + (i32.const 1208) + (i32.and + (get_local $4) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $16) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $34 - (get_local $14) - ) - ) - (block - (if - (i32.lt_u - (get_local $8) - (i32.load - (i32.const 1224) - ) + (set_local $34 + (get_local $14) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $6 - (i32.add - (get_local $8) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $8) + (i32.load + (i32.const 1224) ) ) - (get_local $9) + (call $qa) ) - (block - (i32.store - (get_local $6) - (get_local $1) - ) - (i32.store - (get_local $12) - (get_local $8) - ) - (set_local $34 + (if + (i32.eq (i32.load - (i32.const 1216) + (tee_local $6 + (i32.add + (get_local $8) + (i32.const 12) + ) + ) + ) + (get_local $9) + ) + (block + (i32.store + (get_local $6) + (get_local $1) + ) + (i32.store + (get_local $12) + (get_local $8) + ) + (set_local $34 + (i32.load + (i32.const 1216) + ) ) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=4 - (get_local $9) - (i32.or - (get_local $3) - (i32.const 3) - ) - ) - (i32.store offset=4 - (tee_local $12 - (i32.add - (get_local $9) + (i32.store offset=4 + (get_local $9) + (i32.or (get_local $3) + (i32.const 3) ) ) - (i32.or - (tee_local $8 - (i32.sub - (i32.shl - (get_local $16) - (i32.const 3) - ) + (i32.store offset=4 + (tee_local $12 + (i32.add + (get_local $9) (get_local $3) ) ) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $12) - (get_local $8) - ) - (get_local $8) - ) - (if - (get_local $34) - (block - (set_local $1 - (i32.load - (i32.const 1228) - ) - ) - (set_local $4 - (i32.add - (i32.shl - (tee_local $14 - (i32.shr_u - (get_local $34) - (i32.const 3) - ) + (i32.or + (tee_local $8 + (i32.sub + (i32.shl + (get_local $16) + (i32.const 3) ) - (i32.const 3) + (get_local $3) ) - (i32.const 1248) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $0 - (i32.load - (i32.const 1208) - ) + ) + (i32.store + (i32.add + (get_local $12) + (get_local $8) + ) + (get_local $8) + ) + (if + (get_local $34) + (block + (set_local $1 + (i32.load + (i32.const 1228) ) - (tee_local $5 + ) + (set_local $4 + (i32.add (i32.shl - (i32.const 1) - (get_local $14) + (tee_local $14 + (i32.shr_u + (get_local $34) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $0 (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $5 + (i32.shl + (i32.const 1) + (get_local $14) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $5 + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $40 + (get_local $5) + ) + (set_local $35 + (get_local $0) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $0) + (get_local $5) + ) + ) (set_local $40 - (get_local $5) + (i32.add + (get_local $4) + (i32.const 8) + ) ) (set_local $35 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $0) - (get_local $5) - ) - ) - (set_local $40 - (i32.add (get_local $4) - (i32.const 8) ) ) - (set_local $35 - (get_local $4) - ) ) - ) - (i32.store - (get_local $40) - (get_local $1) - ) - (i32.store offset=12 - (get_local $35) - (get_local $1) - ) - (i32.store offset=8 - (get_local $1) - (get_local $35) - ) - (i32.store offset=12 - (get_local $1) - (get_local $4) + (i32.store + (get_local $40) + (get_local $1) + ) + (i32.store offset=12 + (get_local $35) + (get_local $1) + ) + (i32.store offset=8 + (get_local $1) + (get_local $35) + ) + (i32.store offset=12 + (get_local $1) + (get_local $4) + ) ) ) - ) - (i32.store - (i32.const 1216) - (get_local $8) - ) - (i32.store - (i32.const 1228) - (get_local $12) - ) - (set_global $r - (get_local $25) - ) - (return - (get_local $7) + (i32.store + (i32.const 1216) + (get_local $8) + ) + (i32.store + (i32.const 1228) + (get_local $12) + ) + (set_global $r + (get_local $25) + ) + (return + (get_local $7) + ) ) ) - ) - (if - (tee_local $12 - (i32.load - (i32.const 1212) + (if + (tee_local $12 + (i32.load + (i32.const 1212) + ) ) - ) - (block - (set_local $12 - (i32.and - (i32.shr_u - (tee_local $8 - (i32.add - (i32.and - (get_local $12) - (i32.sub - (i32.const 0) + (block + (set_local $12 + (i32.and + (i32.shr_u + (tee_local $8 + (i32.add + (i32.and (get_local $12) + (i32.sub + (i32.const 0) + (get_local $12) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $0 - (i32.sub - (i32.and - (i32.load offset=4 - (tee_local $14 - (i32.load - (i32.add - (i32.shl - (i32.add - (i32.or + (set_local $0 + (i32.sub + (i32.and + (i32.load offset=4 + (tee_local $14 + (i32.load + (i32.add + (i32.shl + (i32.add (i32.or (i32.or (i32.or - (tee_local $8 + (i32.or + (tee_local $8 + (i32.and + (i32.shr_u + (tee_local $4 + (i32.shr_u + (get_local $8) + (get_local $12) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $12) + ) + (tee_local $4 (i32.and (i32.shr_u - (tee_local $4 + (tee_local $1 (i32.shr_u + (get_local $4) (get_local $8) - (get_local $12) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $12) ) - (tee_local $4 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u + (get_local $1) (get_local $4) - (get_local $8) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $5 (i32.shr_u + (get_local $0) (get_local $1) - (get_local $4) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (tee_local $5 - (i32.shr_u - (get_local $0) - (get_local $1) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $5) + (get_local $0) + ) ) - (i32.shr_u - (get_local $5) - (get_local $0) - ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) - ) - (set_local $5 - (get_local $14) - ) - (set_local $1 - (get_local $14) - ) - (loop $while-in - (block $while-out - (if - (tee_local $14 - (i32.load offset=16 - (get_local $5) - ) - ) - (set_local $6 - (get_local $14) - ) + (set_local $5 + (get_local $14) + ) + (set_local $1 + (get_local $14) + ) + (loop $while-in + (block $while-out (if - (tee_local $4 - (i32.load offset=20 + (tee_local $14 + (i32.load offset=16 (get_local $5) ) ) (set_local $6 - (get_local $4) + (get_local $14) ) - (block + (if + (tee_local $4 + (i32.load offset=20 + (get_local $5) + ) + ) (set_local $6 - (get_local $0) + (get_local $4) ) - (set_local $2 - (get_local $1) + (block + (set_local $6 + (get_local $0) + ) + (set_local $2 + (get_local $1) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (set_local $4 - (i32.lt_u - (tee_local $14 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $6) + (set_local $4 + (i32.lt_u + (tee_local $14 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $6) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) + (get_local $0) ) - (get_local $0) ) - ) - (set_local $0 - (select - (get_local $14) - (get_local $0) - (get_local $4) + (set_local $0 + (select + (get_local $14) + (get_local $0) + (get_local $4) + ) ) - ) - (set_local $5 - (get_local $6) - ) - (set_local $1 - (select + (set_local $5 (get_local $6) - (get_local $1) - (get_local $4) ) - ) - (br $while-in) - ) - ) - (if - (i32.lt_u - (get_local $2) - (tee_local $1 - (i32.load - (i32.const 1224) + (set_local $1 + (select + (get_local $6) + (get_local $1) + (get_local $4) + ) ) + (br $while-in) ) ) - (call $qa) - ) - (if - (i32.ge_u - (get_local $2) - (tee_local $5 - (i32.add - (get_local $2) - (get_local $3) + (if + (i32.lt_u + (get_local $2) + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (set_local $0 - (i32.load offset=24 - (get_local $2) - ) - ) - (block $do-once4 (if - (i32.eq - (tee_local $7 - (i32.load offset=12 + (i32.ge_u + (get_local $2) + (tee_local $5 + (i32.add (get_local $2) + (get_local $3) ) ) + ) + (call $qa) + ) + (set_local $0 + (i32.load offset=24 (get_local $2) ) - (block - (if - (tee_local $16 - (i32.load - (tee_local $9 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) - ) - ) - (block - (set_local $14 - (get_local $16) - ) - (set_local $4 - (get_local $9) - ) - ) - (if - (i32.eqz - (tee_local $14 - (i32.load - (tee_local $4 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - ) - ) - ) - (block - (set_local $23 - (i32.const 0) - ) - (br $do-once4) + ) + (block $do-once4 + (if + (i32.eq + (tee_local $7 + (i32.load offset=12 + (get_local $2) ) ) + (get_local $2) ) - (loop $while-in7 + (block (if (tee_local $16 (i32.load (tee_local $9 (i32.add - (get_local $14) + (get_local $2) (i32.const 20) ) ) @@ -941,702 +901,744 @@ (set_local $4 (get_local $9) ) - (br $while-in7) + ) + (if + (i32.eqz + (tee_local $14 + (i32.load + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 16) + ) + ) + ) + ) + ) + (block + (set_local $23 + (i32.const 0) + ) + (br $do-once4) + ) ) ) - (if - (tee_local $16 - (i32.load - (tee_local $9 - (i32.add - (get_local $14) - (i32.const 16) + (loop $while-in7 + (if + (tee_local $16 + (i32.load + (tee_local $9 + (i32.add + (get_local $14) + (i32.const 20) + ) ) ) ) + (block + (set_local $14 + (get_local $16) + ) + (set_local $4 + (get_local $9) + ) + (br $while-in7) + ) ) - (block - (set_local $14 - (get_local $16) + (if + (tee_local $16 + (i32.load + (tee_local $9 + (i32.add + (get_local $14) + (i32.const 16) + ) + ) + ) ) - (set_local $4 - (get_local $9) + (block + (set_local $14 + (get_local $16) + ) + (set_local $4 + (get_local $9) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (get_local $4) - (get_local $1) - ) - (call $qa) - (block - (i32.store + (if + (i32.lt_u (get_local $4) - (i32.const 0) - ) - (set_local $23 - (get_local $14) + (get_local $1) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $9 - (i32.load offset=8 - (get_local $2) + (call $qa) + (block + (i32.store + (get_local $4) + (i32.const 0) + ) + (set_local $23 + (get_local $14) ) ) - (get_local $1) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $16 - (i32.add - (get_local $9) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $9 + (i32.load offset=8 + (get_local $2) ) ) + (get_local $1) ) - (get_local $2) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $4 - (i32.add - (get_local $7) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $16 + (i32.add + (get_local $9) + (i32.const 12) + ) ) ) + (get_local $2) ) - (get_local $2) + (call $qa) ) - (block - (i32.store - (get_local $16) - (get_local $7) - ) - (i32.store - (get_local $4) - (get_local $9) + (if + (i32.eq + (i32.load + (tee_local $4 + (i32.add + (get_local $7) + (i32.const 8) + ) + ) + ) + (get_local $2) ) - (set_local $23 - (get_local $7) + (block + (i32.store + (get_local $16) + (get_local $7) + ) + (i32.store + (get_local $4) + (get_local $9) + ) + (set_local $23 + (get_local $7) + ) ) + (call $qa) ) - (call $qa) ) ) ) - ) - (block $do-once8 - (if - (get_local $0) - (block - (if - (i32.eq - (get_local $2) - (i32.load - (tee_local $1 - (i32.add - (i32.shl - (tee_local $7 - (i32.load offset=28 - (get_local $2) + (block $do-once8 + (if + (get_local $0) + (block + (if + (i32.eq + (get_local $2) + (i32.load + (tee_local $1 + (i32.add + (i32.shl + (tee_local $7 + (i32.load offset=28 + (get_local $2) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) - ) - (block - (i32.store - (get_local $1) - (get_local $23) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $1) (get_local $23) ) - (block - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $7) + (if + (i32.eqz + (get_local $23) + ) + (block + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $7) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 1224) + (block + (if + (i32.lt_u + (get_local $0) + (i32.load + (i32.const 1224) + ) ) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $7 - (i32.add - (get_local $0) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $7 + (i32.add + (get_local $0) + (i32.const 16) + ) ) ) + (get_local $2) + ) + (i32.store + (get_local $7) + (get_local $23) + ) + (i32.store offset=20 + (get_local $0) + (get_local $23) ) - (get_local $2) - ) - (i32.store - (get_local $7) - (get_local $23) - ) - (i32.store offset=20 - (get_local $0) - (get_local $23) ) - ) - (br_if $do-once8 - (i32.eqz - (get_local $23) + (br_if $do-once8 + (i32.eqz + (get_local $23) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $23) - (tee_local $7 - (i32.load - (i32.const 1224) + (if + (i32.lt_u + (get_local $23) + (tee_local $7 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (i32.store offset=24 - (get_local $23) - (get_local $0) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $2) - ) + (i32.store offset=24 + (get_local $23) + (get_local $0) ) (if - (i32.lt_u - (get_local $1) - (get_local $7) + (tee_local $1 + (i32.load offset=16 + (get_local $2) + ) ) - (call $qa) - (block - (i32.store offset=16 - (get_local $23) + (if + (i32.lt_u (get_local $1) + (get_local $7) ) - (i32.store offset=24 - (get_local $1) - (get_local $23) + (call $qa) + (block + (i32.store offset=16 + (get_local $23) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $23) + ) ) ) ) - ) - (if - (tee_local $1 - (i32.load offset=20 - (get_local $2) - ) - ) (if - (i32.lt_u - (get_local $1) - (i32.load - (i32.const 1224) + (tee_local $1 + (i32.load offset=20 + (get_local $2) ) ) - (call $qa) - (block - (i32.store offset=20 - (get_local $23) + (if + (i32.lt_u (get_local $1) + (i32.load + (i32.const 1224) + ) ) - (i32.store offset=24 - (get_local $1) - (get_local $23) + (call $qa) + (block + (i32.store offset=20 + (get_local $23) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $23) + ) ) ) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $6) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $2) - (i32.or - (tee_local $0 - (i32.add - (get_local $6) - (get_local $3) + (if + (i32.lt_u + (get_local $6) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $2) + (i32.or + (tee_local $0 + (i32.add + (get_local $6) + (get_local $3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $1 - (i32.add + (i32.store + (tee_local $1 (i32.add - (get_local $2) - (get_local $0) + (i32.add + (get_local $2) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $1) + (i32.or + (i32.load + (get_local $1) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 3) - ) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $6) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $3) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $5) - (get_local $6) + (i32.or + (get_local $6) + (i32.const 1) + ) ) - (get_local $6) - ) - (if - (tee_local $1 - (i32.load - (i32.const 1216) + (i32.store + (i32.add + (get_local $5) + (get_local $6) ) + (get_local $6) ) - (block - (set_local $0 + (if + (tee_local $1 (i32.load - (i32.const 1228) + (i32.const 1216) ) ) - (set_local $1 - (i32.add - (i32.shl - (tee_local $7 - (i32.shr_u - (get_local $1) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (set_local $0 + (i32.load + (i32.const 1228) ) - (i32.const 1248) ) - ) - (if - (i32.and - (tee_local $9 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $4 + (set_local $1 + (i32.add (i32.shl - (i32.const 1) - (get_local $7) + (tee_local $7 + (i32.shr_u + (get_local $1) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $9 (i32.load - (tee_local $4 - (i32.add - (get_local $1) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $4 + (i32.shl + (i32.const 1) + (get_local $7) + ) + ) + ) + (if + (i32.lt_u + (tee_local $9 + (i32.load + (tee_local $4 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $41 + (get_local $4) + ) + (set_local $27 + (get_local $9) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $9) + (get_local $4) + ) + ) (set_local $41 - (get_local $4) + (i32.add + (get_local $1) + (i32.const 8) + ) ) (set_local $27 - (get_local $9) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $9) - (get_local $4) - ) - ) - (set_local $41 - (i32.add (get_local $1) - (i32.const 8) ) ) - (set_local $27 - (get_local $1) - ) ) - ) - (i32.store - (get_local $41) - (get_local $0) - ) - (i32.store offset=12 - (get_local $27) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $27) - ) - (i32.store offset=12 - (get_local $0) - (get_local $1) + (i32.store + (get_local $41) + (get_local $0) + ) + (i32.store offset=12 + (get_local $27) + (get_local $0) + ) + (i32.store offset=8 + (get_local $0) + (get_local $27) + ) + (i32.store offset=12 + (get_local $0) + (get_local $1) + ) ) ) + (i32.store + (i32.const 1216) + (get_local $6) + ) + (i32.store + (i32.const 1228) + (get_local $5) + ) ) - (i32.store - (i32.const 1216) - (get_local $6) - ) - (i32.store - (i32.const 1228) - (get_local $5) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.add + (get_local $2) + (i32.const 8) ) ) ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) - ) + (set_local $5 + (get_local $3) ) ) - (set_local $5 - (get_local $3) - ) ) + (set_local $5 + (get_local $3) + ) + ) + ) + (if + (i32.gt_u + (get_local $0) + (i32.const -65) ) (set_local $5 - (get_local $3) + (i32.const -1) ) - ) - ) - (if - (i32.gt_u - (get_local $0) - (i32.const -65) - ) - (set_local $5 - (i32.const -1) - ) - (block - (set_local $0 - (i32.and - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 11) + (block + (set_local $0 + (i32.and + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 11) + ) ) - ) - (i32.const -8) - ) - ) - (if - (tee_local $9 - (i32.load - (i32.const 1212) + (i32.const -8) ) ) - (block - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $0) + (if + (tee_local $9 + (i32.load + (i32.const 1212) ) ) - (block $label$break$a - (if - (tee_local $12 - (i32.load - (i32.add - (i32.shl - (tee_local $27 - (if (result i32) - (tee_local $7 - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - ) + (block + (set_local $4 + (i32.sub + (i32.const 0) + (get_local $0) + ) + ) + (block $label$break$a + (if + (tee_local $12 + (i32.load + (i32.add + (i32.shl + (tee_local $27 (if (result i32) - (i32.gt_u - (get_local $0) - (i32.const 16777215) + (tee_local $7 + (i32.shr_u + (get_local $1) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $0) - (i32.add - (tee_local $12 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $0) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $0) + (i32.add + (tee_local $12 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $7 - (i32.and - (i32.shr_u - (i32.add - (tee_local $16 - (i32.shl - (get_local $7) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (get_local $7) - (i32.const 1048320) + (i32.or + (tee_local $7 + (i32.and + (i32.shr_u + (i32.add + (tee_local $16 + (i32.shl + (get_local $7) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (get_local $7) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $1) ) - (get_local $1) - ) - (tee_local $16 - (i32.and - (i32.shr_u - (i32.add - (tee_local $14 - (i32.shl - (get_local $16) - (get_local $7) + (tee_local $16 + (i32.and + (i32.shr_u + (i32.add + (tee_local $14 + (i32.shl + (get_local $16) + (get_local $7) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $14) - (get_local $16) + (i32.shr_u + (i32.shl + (get_local $14) + (get_local $16) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $12) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $12) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) - ) - (block - (set_local $16 - (get_local $4) - ) - (set_local $14 - (i32.const 0) - ) - (set_local $1 - (i32.shl - (get_local $0) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block + (set_local $16 + (get_local $4) + ) + (set_local $14 + (i32.const 0) + ) + (set_local $1 + (i32.shl + (get_local $0) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $27) + (i32.const 1) + ) + ) + (i32.eq (get_local $27) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $27) - (i32.const 31) - ) ) ) - ) - (set_local $7 - (get_local $12) - ) - (set_local $8 - (i32.const 0) - ) - (loop $while-in14 - (if - (i32.lt_u - (tee_local $12 - (i32.sub - (tee_local $3 - (i32.and - (i32.load offset=4 - (get_local $7) + (set_local $7 + (get_local $12) + ) + (set_local $8 + (i32.const 0) + ) + (loop $while-in14 + (if + (i32.lt_u + (tee_local $12 + (i32.sub + (tee_local $3 + (i32.and + (i32.load offset=4 + (get_local $7) + ) + (i32.const -8) ) - (i32.const -8) ) + (get_local $0) ) - (get_local $0) ) + (get_local $16) ) - (get_local $16) - ) - (if - (i32.eq - (get_local $3) - (get_local $0) - ) - (block - (set_local $29 - (get_local $12) - ) - (set_local $28 - (get_local $7) - ) - (set_local $32 - (get_local $7) - ) - (set_local $7 - (i32.const 90) + (if + (i32.eq + (get_local $3) + (get_local $0) ) - (br $label$break$a) - ) - (block - (set_local $16 - (get_local $12) + (block + (set_local $29 + (get_local $12) + ) + (set_local $28 + (get_local $7) + ) + (set_local $32 + (get_local $7) + ) + (set_local $7 + (i32.const 90) + ) + (br $label$break$a) ) - (set_local $8 - (get_local $7) + (block + (set_local $16 + (get_local $12) + ) + (set_local $8 + (get_local $7) + ) ) ) ) - ) - (set_local $3 - (select - (get_local $14) - (tee_local $12 - (i32.load offset=20 - (get_local $7) - ) - ) - (i32.or - (i32.eqz - (get_local $12) + (set_local $3 + (select + (get_local $14) + (tee_local $12 + (i32.load offset=20 + (get_local $7) + ) ) - (i32.eq - (get_local $12) - (tee_local $7 - (i32.load - (i32.add + (i32.or + (i32.eqz + (get_local $12) + ) + (i32.eq + (get_local $12) + (tee_local $7 + (i32.load (i32.add - (get_local $7) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) + (i32.add + (get_local $7) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -1644,419 +1646,376 @@ ) ) ) - ) - (if - (tee_local $12 - (i32.eqz - (get_local $7) - ) - ) - (block - (set_local $36 - (get_local $16) - ) - (set_local $5 - (get_local $3) - ) - (set_local $33 - (get_local $8) - ) - (set_local $7 - (i32.const 86) + (if + (tee_local $12 + (i32.eqz + (get_local $7) + ) ) - ) - (block - (set_local $14 - (get_local $3) + (block + (set_local $36 + (get_local $16) + ) + (set_local $5 + (get_local $3) + ) + (set_local $33 + (get_local $8) + ) + (set_local $7 + (i32.const 86) + ) ) - (set_local $1 - (i32.shl - (get_local $1) - (i32.xor - (i32.and - (get_local $12) + (block + (set_local $14 + (get_local $3) + ) + (set_local $1 + (i32.shl + (get_local $1) + (i32.xor + (i32.and + (get_local $12) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) ) ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block - (set_local $36 - (get_local $4) - ) - (set_local $5 - (i32.const 0) - ) - (set_local $33 - (i32.const 0) - ) - (set_local $7 - (i32.const 86) + (block + (set_local $36 + (get_local $4) + ) + (set_local $5 + (i32.const 0) + ) + (set_local $33 + (i32.const 0) + ) + (set_local $7 + (i32.const 86) + ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 86) - ) (if - (tee_local $3 - (if (result i32) - (i32.and - (i32.eqz - (get_local $5) - ) - (i32.eqz - (get_local $33) - ) - ) - (block (result i32) - (if + (i32.eq + (get_local $7) + (i32.const 86) + ) + (if + (tee_local $3 + (if (result i32) + (i32.and (i32.eqz - (tee_local $4 - (i32.and - (get_local $9) - (i32.or - (tee_local $12 - (i32.shl - (i32.const 2) - (get_local $27) + (get_local $5) + ) + (i32.eqz + (get_local $33) + ) + ) + (block (result i32) + (if + (i32.eqz + (tee_local $4 + (i32.and + (get_local $9) + (i32.or + (tee_local $12 + (i32.shl + (i32.const 2) + (get_local $27) + ) + ) + (i32.sub + (i32.const 0) + (get_local $12) ) - ) - (i32.sub - (i32.const 0) - (get_local $12) ) ) ) ) - ) - (block - (set_local $5 - (get_local $0) + (block + (set_local $5 + (get_local $0) + ) + (br $do-once) ) - (br $do-once) ) - ) - (set_local $4 - (i32.and - (i32.shr_u - (tee_local $12 - (i32.add - (i32.and - (get_local $4) - (i32.sub - (i32.const 0) + (set_local $4 + (i32.and + (i32.shr_u + (tee_local $12 + (i32.add + (i32.and (get_local $4) + (i32.sub + (i32.const 0) + (get_local $4) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (i32.load - (i32.add - (i32.shl - (i32.add - (i32.or + (i32.load + (i32.add + (i32.shl + (i32.add (i32.or (i32.or (i32.or - (tee_local $12 + (i32.or + (tee_local $12 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.shr_u + (get_local $12) + (get_local $4) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $4) + ) + (tee_local $3 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u + (get_local $3) (get_local $12) - (get_local $4) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $4) ) - (tee_local $3 + (tee_local $5 (i32.and (i32.shr_u - (tee_local $5 + (tee_local $8 (i32.shr_u + (get_local $5) (get_local $3) - (get_local $12) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $5 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $8 + (tee_local $1 (i32.shr_u + (get_local $8) (get_local $5) - (get_local $3) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $8 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.shr_u - (get_local $8) - (get_local $5) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $1) + (get_local $8) + ) ) - (i32.shr_u - (get_local $1) - (get_local $8) - ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) + (get_local $5) ) - (get_local $5) ) - ) - (block - (set_local $29 - (get_local $36) - ) - (set_local $28 - (get_local $3) - ) - (set_local $32 - (get_local $33) - ) - (set_local $7 - (i32.const 90) - ) - ) - (block - (set_local $18 - (get_local $36) + (block + (set_local $29 + (get_local $36) + ) + (set_local $28 + (get_local $3) + ) + (set_local $32 + (get_local $33) + ) + (set_local $7 + (i32.const 90) + ) ) - (set_local $10 - (get_local $33) + (block + (set_local $18 + (get_local $36) + ) + (set_local $10 + (get_local $33) + ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 90) - ) - (loop $while-in16 - (set_local $7 - (i32.const 0) + (if + (i32.eq + (get_local $7) + (i32.const 90) ) - (set_local $1 - (i32.lt_u - (tee_local $8 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $28) + (loop $while-in16 + (set_local $7 + (i32.const 0) + ) + (set_local $1 + (i32.lt_u + (tee_local $8 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $28) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $0) ) - (get_local $0) ) + (get_local $29) ) - (get_local $29) - ) - ) - (set_local $5 - (select - (get_local $8) - (get_local $29) - (get_local $1) - ) - ) - (set_local $8 - (select - (get_local $28) - (get_local $32) - (get_local $1) ) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $28) - ) - ) - (block - (set_local $29 - (get_local $5) - ) - (set_local $28 - (get_local $1) - ) - (set_local $32 + (set_local $5 + (select (get_local $8) + (get_local $29) + (get_local $1) ) - (br $while-in16) ) - ) - (if - (tee_local $28 - (i32.load offset=20 + (set_local $8 + (select (get_local $28) + (get_local $32) + (get_local $1) ) ) - (block - (set_local $29 - (get_local $5) + (if + (tee_local $1 + (i32.load offset=16 + (get_local $28) + ) ) - (set_local $32 - (get_local $8) + (block + (set_local $29 + (get_local $5) + ) + (set_local $28 + (get_local $1) + ) + (set_local $32 + (get_local $8) + ) + (br $while-in16) ) - (br $while-in16) ) - (block - (set_local $18 - (get_local $5) + (if + (tee_local $28 + (i32.load offset=20 + (get_local $28) + ) ) - (set_local $10 - (get_local $8) + (block + (set_local $29 + (get_local $5) + ) + (set_local $32 + (get_local $8) + ) + (br $while-in16) + ) + (block + (set_local $18 + (get_local $5) + ) + (set_local $10 + (get_local $8) + ) ) ) ) ) - ) - (if - (get_local $10) (if - (i32.lt_u - (get_local $18) - (i32.sub - (i32.load - (i32.const 1216) - ) - (get_local $0) - ) - ) - (block - (if - (i32.lt_u - (get_local $10) - (tee_local $9 - (i32.load - (i32.const 1224) - ) + (get_local $10) + (if + (i32.lt_u + (get_local $18) + (i32.sub + (i32.load + (i32.const 1216) ) + (get_local $0) ) - (call $qa) ) - (if - (i32.ge_u - (get_local $10) - (tee_local $8 - (i32.add - (get_local $10) - (get_local $0) + (block + (if + (i32.lt_u + (get_local $10) + (tee_local $9 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (set_local $5 - (i32.load offset=24 - (get_local $10) - ) - ) - (block $do-once17 (if - (i32.eq - (tee_local $1 - (i32.load offset=12 + (i32.ge_u + (get_local $10) + (tee_local $8 + (i32.add (get_local $10) + (get_local $0) ) ) + ) + (call $qa) + ) + (set_local $5 + (i32.load offset=24 (get_local $10) ) - (block - (if - (tee_local $4 - (i32.load - (tee_local $3 - (i32.add - (get_local $10) - (i32.const 20) - ) - ) - ) - ) - (block - (set_local $14 - (get_local $4) - ) - (set_local $1 - (get_local $3) - ) - ) - (if - (tee_local $14 - (i32.load - (tee_local $12 - (i32.add - (get_local $10) - (i32.const 16) - ) - ) - ) - ) - (set_local $1 - (get_local $12) - ) - (block - (set_local $22 - (i32.const 0) - ) - (br $do-once17) + ) + (block $do-once17 + (if + (i32.eq + (tee_local $1 + (i32.load offset=12 + (get_local $10) ) ) + (get_local $10) ) - (loop $while-in20 + (block (if (tee_local $4 (i32.load (tee_local $3 (i32.add - (get_local $14) + (get_local $10) (i32.const 20) ) ) @@ -2069,698 +2028,615 @@ (set_local $1 (get_local $3) ) - (br $while-in20) + ) + (if + (tee_local $14 + (i32.load + (tee_local $12 + (i32.add + (get_local $10) + (i32.const 16) + ) + ) + ) + ) + (set_local $1 + (get_local $12) + ) + (block + (set_local $22 + (i32.const 0) + ) + (br $do-once17) + ) ) ) - (if - (tee_local $4 - (i32.load - (tee_local $3 - (i32.add - (get_local $14) - (i32.const 16) + (loop $while-in20 + (if + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $14) + (i32.const 20) + ) ) ) ) + (block + (set_local $14 + (get_local $4) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in20) + ) ) - (block - (set_local $14 - (get_local $4) + (if + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $14) + (i32.const 16) + ) + ) + ) ) - (set_local $1 - (get_local $3) + (block + (set_local $14 + (get_local $4) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (get_local $1) - (get_local $9) - ) - (call $qa) - (block - (i32.store + (if + (i32.lt_u (get_local $1) - (i32.const 0) - ) - (set_local $22 - (get_local $14) + (get_local $9) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $3 - (i32.load offset=8 - (get_local $10) + (call $qa) + (block + (i32.store + (get_local $1) + (i32.const 0) + ) + (set_local $22 + (get_local $14) ) ) - (get_local $9) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $4 - (i32.add - (get_local $3) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $3 + (i32.load offset=8 + (get_local $10) ) ) + (get_local $9) ) - (get_local $10) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $12 - (i32.add - (get_local $1) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $4 + (i32.add + (get_local $3) + (i32.const 12) + ) ) ) + (get_local $10) ) - (get_local $10) + (call $qa) ) - (block - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store - (get_local $12) - (get_local $3) + (if + (i32.eq + (i32.load + (tee_local $12 + (i32.add + (get_local $1) + (i32.const 8) + ) + ) + ) + (get_local $10) ) - (set_local $22 - (get_local $1) + (block + (i32.store + (get_local $4) + (get_local $1) + ) + (i32.store + (get_local $12) + (get_local $3) + ) + (set_local $22 + (get_local $1) + ) ) + (call $qa) ) - (call $qa) ) ) ) - ) - (block $do-once21 - (if - (get_local $5) - (block - (if - (i32.eq - (get_local $10) - (i32.load - (tee_local $9 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $10) + (block $do-once21 + (if + (get_local $5) + (block + (if + (i32.eq + (get_local $10) + (i32.load + (tee_local $9 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $10) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) - ) - (block - (i32.store - (get_local $9) - (get_local $22) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $9) (get_local $22) ) - (block - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $22) + ) + (block + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (get_local $5) - (i32.load - (i32.const 1224) + (block + (if + (i32.lt_u + (get_local $5) + (i32.load + (i32.const 1224) + ) ) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $5) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $5) + (i32.const 16) + ) ) ) + (get_local $10) + ) + (i32.store + (get_local $1) + (get_local $22) + ) + (i32.store offset=20 + (get_local $5) + (get_local $22) ) - (get_local $10) - ) - (i32.store - (get_local $1) - (get_local $22) - ) - (i32.store offset=20 - (get_local $5) - (get_local $22) ) - ) - (br_if $do-once21 - (i32.eqz - (get_local $22) + (br_if $do-once21 + (i32.eqz + (get_local $22) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $22) - (tee_local $1 - (i32.load - (i32.const 1224) + (if + (i32.lt_u + (get_local $22) + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (i32.store offset=24 - (get_local $22) - (get_local $5) - ) - (if - (tee_local $9 - (i32.load offset=16 - (get_local $10) - ) + (i32.store offset=24 + (get_local $22) + (get_local $5) ) (if - (i32.lt_u - (get_local $9) - (get_local $1) + (tee_local $9 + (i32.load offset=16 + (get_local $10) + ) ) - (call $qa) - (block - (i32.store offset=16 - (get_local $22) + (if + (i32.lt_u (get_local $9) + (get_local $1) ) - (i32.store offset=24 - (get_local $9) - (get_local $22) + (call $qa) + (block + (i32.store offset=16 + (get_local $22) + (get_local $9) + ) + (i32.store offset=24 + (get_local $9) + (get_local $22) + ) ) ) ) - ) - (if - (tee_local $9 - (i32.load offset=20 - (get_local $10) - ) - ) (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 1224) + (tee_local $9 + (i32.load offset=20 + (get_local $10) ) ) - (call $qa) - (block - (i32.store offset=20 - (get_local $22) + (if + (i32.lt_u (get_local $9) + (i32.load + (i32.const 1224) + ) ) - (i32.store offset=24 - (get_local $9) - (get_local $22) + (call $qa) + (block + (i32.store offset=20 + (get_local $22) + (get_local $9) + ) + (i32.store offset=24 + (get_local $9) + (get_local $22) + ) ) ) ) ) ) ) - ) - (block $do-once25 - (if - (i32.lt_u - (get_local $18) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $10) - (i32.or - (tee_local $5 - (i32.add - (get_local $18) - (get_local $0) + (block $do-once25 + (if + (i32.lt_u + (get_local $18) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $10) + (i32.or + (tee_local $5 + (i32.add + (get_local $18) + (get_local $0) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $9 - (i32.add + (i32.store + (tee_local $9 (i32.add - (get_local $10) - (get_local $5) + (i32.add + (get_local $10) + (get_local $5) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $9) + (i32.or + (i32.load + (get_local $9) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (get_local $10) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $18) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $10) + (i32.or + (get_local $0) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) - (get_local $18) + (i32.or + (get_local $18) + (i32.const 1) + ) ) - (get_local $18) - ) - (set_local $9 - (i32.shr_u + (i32.store + (i32.add + (get_local $8) + (get_local $18) + ) (get_local $18) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $18) - (i32.const 256) + (set_local $9 + (i32.shr_u + (get_local $18) + (i32.const 3) + ) ) - (block - (set_local $5 - (i32.add - (i32.shl - (get_local $9) - (i32.const 3) - ) - (i32.const 1248) - ) + (if + (i32.lt_u + (get_local $18) + (i32.const 256) ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $3 + (block + (set_local $5 + (i32.add (i32.shl - (i32.const 1) (get_local $9) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $1 (i32.load - (tee_local $3 - (i32.add - (get_local $5) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $3 + (i32.shl + (i32.const 1) + (get_local $9) + ) + ) + ) + (if + (i32.lt_u + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (get_local $5) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $19 + (get_local $3) + ) + (set_local $6 + (get_local $1) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $1) + (get_local $3) + ) + ) (set_local $19 - (get_local $3) + (i32.add + (get_local $5) + (i32.const 8) + ) ) (set_local $6 - (get_local $1) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $1) - (get_local $3) - ) - ) - (set_local $19 - (i32.add (get_local $5) - (i32.const 8) ) ) - (set_local $6 - (get_local $5) - ) ) + (i32.store + (get_local $19) + (get_local $8) + ) + (i32.store offset=12 + (get_local $6) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $6) + ) + (i32.store offset=12 + (get_local $8) + (get_local $5) + ) + (br $do-once25) ) - (i32.store - (get_local $19) - (get_local $8) - ) - (i32.store offset=12 - (get_local $6) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $6) - ) - (i32.store offset=12 - (get_local $8) - (get_local $5) - ) - (br $do-once25) ) - ) - (set_local $12 - (i32.add - (i32.shl - (tee_local $16 - (if (result i32) - (tee_local $5 - (i32.shr_u - (get_local $18) - (i32.const 8) - ) - ) + (set_local $12 + (i32.add + (i32.shl + (tee_local $16 (if (result i32) - (i32.gt_u - (get_local $18) - (i32.const 16777215) + (tee_local $5 + (i32.shr_u + (get_local $18) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $18) - (i32.add - (tee_local $12 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $18) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $18) + (i32.add + (tee_local $12 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $5 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $5) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (get_local $5) - (i32.const 1048320) + (i32.or + (tee_local $5 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $5) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (get_local $5) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $1) ) - (get_local $1) - ) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (tee_local $9 - (i32.shl - (get_local $3) - (get_local $5) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (tee_local $9 + (i32.shl + (get_local $3) + (get_local $5) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $9) - (get_local $3) + (i32.shr_u + (i32.shl + (get_local $9) + (get_local $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $12) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $12) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $8) - (get_local $16) - ) - (i32.store offset=4 - (tee_local $3 - (i32.add - (get_local $8) - (i32.const 16) - ) - ) - (i32.const 0) - ) - (i32.store - (get_local $3) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $9 - (i32.shl - (i32.const 1) - (get_local $16) ) + (i32.const 2) ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $3) - (get_local $9) - ) - ) - (i32.store - (get_local $12) - (get_local $8) - ) - (i32.store offset=24 - (get_local $8) - (get_local $12) - ) - (i32.store offset=12 - (get_local $8) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $8) - ) - (br $do-once25) + (i32.store offset=28 + (get_local $8) + (get_local $16) ) - ) - (set_local $9 - (i32.shl - (get_local $18) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $16) - (i32.const 1) - ) - ) - (i32.eq - (get_local $16) - (i32.const 31) + (i32.store offset=4 + (tee_local $3 + (i32.add + (get_local $8) + (i32.const 16) ) ) + (i32.const 0) ) - ) - (set_local $3 - (i32.load - (get_local $12) + (i32.store + (get_local $3) + (i32.const 0) ) - ) - (loop $while-in28 - (block $while-out27 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.const -8) - ) - (get_local $18) - ) - (block - (set_local $17 - (get_local $3) - ) - (set_local $7 - (i32.const 148) - ) - (br $while-out27) - ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $12 - (i32.add - (i32.add - (get_local $3) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $9) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $9 + (tee_local $9 (i32.shl - (get_local $9) (i32.const 1) + (get_local $16) ) ) - (set_local $3 - (get_local $1) - ) - (br $while-in28) ) - (block - (set_local $21 - (get_local $12) - ) - (set_local $15 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $3) + (get_local $9) ) - (set_local $7 - (i32.const 145) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 145) - ) - (if - (i32.lt_u - (get_local $21) - (i32.load - (i32.const 1224) ) - ) - (call $qa) - (block (i32.store - (get_local $21) + (get_local $12) (get_local $8) ) (i32.store offset=24 (get_local $8) - (get_local $15) + (get_local $12) ) (i32.store offset=12 (get_local $8) @@ -2770,375 +2646,449 @@ (get_local $8) (get_local $8) ) + (br $do-once25) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 148) + (set_local $9 + (i32.shl + (get_local $18) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $16) + (i32.const 1) + ) + ) + (i32.eq + (get_local $16) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $9 - (i32.load - (tee_local $3 + ) + (set_local $3 + (i32.load + (get_local $12) + ) + ) + (loop $while-in28 + (block $while-out27 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) + ) + (get_local $18) + ) + (block + (set_local $17 + (get_local $3) + ) + (set_local $7 + (i32.const 148) + ) + (br $while-out27) + ) + ) + (if + (tee_local $1 + (i32.load + (tee_local $12 + (i32.add (i32.add - (get_local $17) - (i32.const 8) + (get_local $3) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $9) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $1 - (i32.load - (i32.const 1224) + ) + (block + (set_local $9 + (i32.shl + (get_local $9) + (i32.const 1) ) ) + (set_local $3 + (get_local $1) + ) + (br $while-in28) ) - (i32.ge_u - (get_local $17) - (get_local $1) + (block + (set_local $21 + (get_local $12) + ) + (set_local $15 + (get_local $3) + ) + (set_local $7 + (i32.const 145) + ) ) ) - (block - (i32.store offset=12 - (get_local $9) - (get_local $8) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 145) + ) + (if + (i32.lt_u + (get_local $21) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $3) + (get_local $21) (get_local $8) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $8) - (get_local $9) + (get_local $15) ) (i32.store offset=12 (get_local $8) - (get_local $17) + (get_local $8) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $8) (get_local $8) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 148) + ) + (if + (i32.and + (i32.ge_u + (tee_local $9 + (i32.load + (tee_local $3 + (i32.add + (get_local $17) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $17) + (get_local $1) + ) + ) + (block + (i32.store offset=12 + (get_local $9) + (get_local $8) + ) + (i32.store + (get_local $3) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $9) + ) + (i32.store offset=12 + (get_local $8) + (get_local $17) + ) + (i32.store offset=24 + (get_local $8) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $10) - (i32.const 8) + (set_global $r + (get_local $25) ) + (return + (i32.add + (get_local $10) + (i32.const 8) + ) + ) + ) + (set_local $5 + (get_local $0) ) ) (set_local $5 (get_local $0) ) ) - (set_local $5 - (get_local $0) - ) ) - ) - (set_local $5 - (get_local $0) + (set_local $5 + (get_local $0) + ) ) ) ) ) ) - ) - (if - (i32.ge_u - (tee_local $10 - (i32.load - (i32.const 1216) - ) - ) - (get_local $5) - ) - (block - (set_local $15 - (i32.load - (i32.const 1228) + (if + (i32.ge_u + (tee_local $10 + (i32.load + (i32.const 1216) + ) ) + (get_local $5) ) - (if - (i32.gt_u - (tee_local $17 - (i32.sub - (get_local $10) - (get_local $5) - ) + (block + (set_local $15 + (i32.load + (i32.const 1228) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 1228) - (tee_local $21 - (i32.add - (get_local $15) + (if + (i32.gt_u + (tee_local $17 + (i32.sub + (get_local $10) (get_local $5) ) ) + (i32.const 15) ) - (i32.store - (i32.const 1216) - (get_local $17) - ) - (i32.store offset=4 - (get_local $21) - (i32.or + (block + (i32.store + (i32.const 1228) + (tee_local $21 + (i32.add + (get_local $15) + (get_local $5) + ) + ) + ) + (i32.store + (i32.const 1216) (get_local $17) - (i32.const 1) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $21) + (i32.or + (get_local $17) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $21) + (get_local $17) + ) (get_local $17) ) - (get_local $17) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $15) + (i32.or + (get_local $5) + (i32.const 3) + ) ) ) - ) - (block - (i32.store - (i32.const 1216) - (i32.const 0) - ) - (i32.store - (i32.const 1228) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $10) - (i32.const 3) + (block + (i32.store + (i32.const 1216) + (i32.const 0) ) - ) - (i32.store - (tee_local $17 - (i32.add + (i32.store + (i32.const 1228) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $15) + (i32.or + (get_local $10) + (i32.const 3) + ) + ) + (i32.store + (tee_local $17 (i32.add - (get_local $15) - (get_local $10) + (i32.add + (get_local $15) + (get_local $10) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $17) + (i32.or + (i32.load + (get_local $17) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $15) - (i32.const 8) - ) + (br $folding-inner0) ) ) - ) - (if - (i32.gt_u - (tee_local $15 - (i32.load - (i32.const 1220) + (if + (i32.gt_u + (tee_local $15 + (i32.load + (i32.const 1220) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (i32.store - (i32.const 1220) - (tee_local $17 - (i32.sub - (get_local $15) - (get_local $5) + (block + (i32.store + (i32.const 1220) + (tee_local $17 + (i32.sub + (get_local $15) + (get_local $5) + ) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $10 - (i32.add - (tee_local $15 - (i32.load - (i32.const 1232) + (i32.store + (i32.const 1232) + (tee_local $10 + (i32.add + (tee_local $15 + (i32.load + (i32.const 1232) + ) ) + (get_local $5) ) - (get_local $5) ) ) - ) - (i32.store offset=4 - (get_local $10) - (i32.or - (get_local $17) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $10) + (i32.or + (get_local $17) + (i32.const 1) + ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add + (i32.store offset=4 (get_local $15) - (i32.const 8) + (i32.or + (get_local $5) + (i32.const 3) + ) ) + (br $folding-inner0) ) ) - ) - (if - (i32.eqz - (i32.load - (i32.const 1680) - ) - ) - (block - (i32.store - (i32.const 1688) - (i32.const 4096) - ) - (i32.store - (i32.const 1684) - (i32.const 4096) - ) - (i32.store - (i32.const 1692) - (i32.const -1) - ) - (i32.store - (i32.const 1696) - (i32.const -1) - ) - (i32.store - (i32.const 1700) - (i32.const 0) - ) - (i32.store - (i32.const 1652) - (i32.const 0) - ) - (i32.store - (get_local $13) - (tee_local $15 - (i32.xor - (i32.and - (get_local $13) - (i32.const -16) - ) - (i32.const 1431655768) - ) + (if + (i32.eqz + (i32.load + (i32.const 1680) ) ) - (i32.store - (i32.const 1680) - (get_local $15) - ) - ) - ) - (set_local $15 - (i32.add - (get_local $5) - (i32.const 48) - ) - ) - (if - (i32.le_u - (tee_local $13 - (i32.and - (tee_local $10 - (i32.add - (tee_local $13 - (i32.load - (i32.const 1688) - ) - ) - (tee_local $17 - (i32.add - (get_local $5) - (i32.const 47) - ) + (block + (i32.store + (i32.const 1688) + (i32.const 4096) + ) + (i32.store + (i32.const 1684) + (i32.const 4096) + ) + (i32.store + (i32.const 1692) + (i32.const -1) + ) + (i32.store + (i32.const 1696) + (i32.const -1) + ) + (i32.store + (i32.const 1700) + (i32.const 0) + ) + (i32.store + (i32.const 1652) + (i32.const 0) + ) + (i32.store + (get_local $13) + (tee_local $15 + (i32.xor + (i32.and + (get_local $13) + (i32.const -16) ) - ) - ) - (tee_local $21 - (i32.sub - (i32.const 0) - (get_local $13) + (i32.const 1431655768) ) ) ) - ) - (get_local $5) - ) - (block - (set_global $r - (get_local $25) - ) - (return - (i32.const 0) + (i32.store + (i32.const 1680) + (get_local $15) + ) ) ) - ) - (if - (tee_local $18 - (i32.load - (i32.const 1648) + (set_local $15 + (i32.add + (get_local $5) + (i32.const 48) ) ) (if - (i32.or - (i32.le_u - (tee_local $6 - (i32.add - (tee_local $16 - (i32.load - (i32.const 1640) + (i32.le_u + (tee_local $13 + (i32.and + (tee_local $10 + (i32.add + (tee_local $13 + (i32.load + (i32.const 1688) + ) + ) + (tee_local $17 + (i32.add + (get_local $5) + (i32.const 47) + ) ) ) - (get_local $13) + ) + (tee_local $21 + (i32.sub + (i32.const 0) + (get_local $13) + ) ) ) - (get_local $16) - ) - (i32.gt_u - (get_local $6) - (get_local $18) ) + (get_local $5) ) (block (set_global $r @@ -3149,270 +3099,306 @@ ) ) ) - ) - (if - (i32.eq - (tee_local $7 - (block $label$break$b (result i32) - (if (result i32) - (i32.and - (i32.load - (i32.const 1652) + (if + (tee_local $18 + (i32.load + (i32.const 1648) + ) + ) + (if + (i32.or + (i32.le_u + (tee_local $6 + (i32.add + (tee_local $16 + (i32.load + (i32.const 1640) + ) + ) + (get_local $13) ) - (i32.const 4) ) - (i32.const 188) - (block (result i32) - (block $label$break$c - (if - (tee_local $18 - (i32.load - (i32.const 1232) - ) - ) - (block - (set_local $6 - (i32.const 1656) + (get_local $16) + ) + (i32.gt_u + (get_local $6) + (get_local $18) + ) + ) + (block + (set_global $r + (get_local $25) + ) + (return + (i32.const 0) + ) + ) + ) + ) + (if + (i32.eq + (tee_local $7 + (block $label$break$b (result i32) + (if (result i32) + (i32.and + (i32.load + (i32.const 1652) + ) + (i32.const 4) + ) + (i32.const 188) + (block (result i32) + (block $label$break$c + (if + (tee_local $18 + (i32.load + (i32.const 1232) + ) ) - (loop $while-in32 - (block $while-out31 - (if - (i32.le_u - (tee_local $16 - (i32.load - (get_local $6) - ) - ) - (get_local $18) - ) + (block + (set_local $6 + (i32.const 1656) + ) + (loop $while-in32 + (block $while-out31 (if - (i32.gt_u - (i32.add - (get_local $16) + (i32.le_u + (tee_local $16 (i32.load - (tee_local $19 - (i32.add - (get_local $6) - (i32.const 4) - ) - ) + (get_local $6) ) ) (get_local $18) ) - (block - (set_local $0 - (get_local $6) + (if + (i32.gt_u + (i32.add + (get_local $16) + (i32.load + (tee_local $19 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + ) + ) + (get_local $18) ) - (set_local $4 - (get_local $19) + (block + (set_local $0 + (get_local $6) + ) + (set_local $4 + (get_local $19) + ) + (br $while-out31) ) - (br $while-out31) ) ) - ) - (br_if $while-in32 - (tee_local $6 - (i32.load offset=8 - (get_local $6) + (br_if $while-in32 + (tee_local $6 + (i32.load offset=8 + (get_local $6) + ) ) ) + (set_local $7 + (i32.const 171) + ) + (br $label$break$c) ) - (set_local $7 - (i32.const 171) - ) - (br $label$break$c) ) - ) - (if - (i32.lt_u - (tee_local $6 - (i32.and - (i32.sub - (get_local $10) - (i32.load - (i32.const 1220) + (if + (i32.lt_u + (tee_local $6 + (i32.and + (i32.sub + (get_local $10) + (i32.load + (i32.const 1220) + ) ) + (get_local $21) ) - (get_local $21) ) + (i32.const 2147483647) ) - (i32.const 2147483647) - ) - (if - (i32.eq - (tee_local $19 - (call $ta - (get_local $6) + (if + (i32.eq + (tee_local $19 + (call $ta + (get_local $6) + ) + ) + (i32.add + (i32.load + (get_local $0) + ) + (i32.load + (get_local $4) + ) ) ) - (i32.add - (i32.load - (get_local $0) + (if + (i32.ne + (get_local $19) + (i32.const -1) ) - (i32.load - (get_local $4) + (block + (set_local $20 + (get_local $19) + ) + (set_local $26 + (get_local $6) + ) + (br $label$break$b + (i32.const 191) + ) ) ) - ) - (if - (i32.ne - (get_local $19) - (i32.const -1) - ) (block - (set_local $20 + (set_local $11 (get_local $19) ) - (set_local $26 + (set_local $2 (get_local $6) ) - (br $label$break$b - (i32.const 191) + (set_local $7 + (i32.const 181) ) ) ) - (block - (set_local $11 - (get_local $19) - ) - (set_local $2 - (get_local $6) - ) - (set_local $7 - (i32.const 181) - ) - ) ) ) - ) - (set_local $7 - (i32.const 171) + (set_local $7 + (i32.const 171) + ) ) ) - ) - (block $do-once33 - (if - (i32.eq - (get_local $7) - (i32.const 171) - ) + (block $do-once33 (if - (i32.ne - (tee_local $18 - (call $ta - (i32.const 0) + (i32.eq + (get_local $7) + (i32.const 171) + ) + (if + (i32.ne + (tee_local $18 + (call $ta + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (set_local $3 - (if (result i32) - (i32.and - (tee_local $19 - (i32.add - (tee_local $6 - (i32.load - (i32.const 1684) + (block + (set_local $3 + (if (result i32) + (i32.and + (tee_local $19 + (i32.add + (tee_local $6 + (i32.load + (i32.const 1684) + ) ) + (i32.const -1) ) - (i32.const -1) + ) + (tee_local $0 + (get_local $18) ) ) - (tee_local $0 - (get_local $18) - ) - ) - (i32.add - (i32.sub - (get_local $13) - (get_local $0) - ) - (i32.and - (i32.add - (get_local $19) + (i32.add + (i32.sub + (get_local $13) (get_local $0) ) - (i32.sub - (i32.const 0) - (get_local $6) + (i32.and + (i32.add + (get_local $19) + (get_local $0) + ) + (i32.sub + (i32.const 0) + (get_local $6) + ) ) ) + (get_local $13) ) - (get_local $13) ) - ) - (set_local $0 - (i32.add - (tee_local $6 - (i32.load - (i32.const 1640) + (set_local $0 + (i32.add + (tee_local $6 + (i32.load + (i32.const 1640) + ) ) - ) - (get_local $3) - ) - ) - (if - (i32.and - (i32.gt_u (get_local $3) - (get_local $5) - ) - (i32.lt_u - (get_local $3) - (i32.const 2147483647) ) ) - (block - (if - (tee_local $19 - (i32.load - (i32.const 1648) - ) + (if + (i32.and + (i32.gt_u + (get_local $3) + (get_local $5) ) - (br_if $do-once33 - (i32.or - (i32.le_u - (get_local $0) - (get_local $6) - ) - (i32.gt_u - (get_local $0) - (get_local $19) - ) - ) + (i32.lt_u + (get_local $3) + (i32.const 2147483647) ) ) - (if - (i32.eq + (block + (if (tee_local $19 - (call $ta - (get_local $3) + (i32.load + (i32.const 1648) ) ) - (get_local $18) - ) - (block - (set_local $20 - (get_local $18) - ) - (set_local $26 - (get_local $3) - ) - (br $label$break$b - (i32.const 191) + (br_if $do-once33 + (i32.or + (i32.le_u + (get_local $0) + (get_local $6) + ) + (i32.gt_u + (get_local $0) + (get_local $19) + ) + ) ) ) - (block - (set_local $11 - (get_local $19) + (if + (i32.eq + (tee_local $19 + (call $ta + (get_local $3) + ) + ) + (get_local $18) ) - (set_local $2 - (get_local $3) + (block + (set_local $20 + (get_local $18) + ) + (set_local $26 + (get_local $3) + ) + (br $label$break$b + (i32.const 191) + ) ) - (set_local $7 - (i32.const 181) + (block + (set_local $11 + (get_local $19) + ) + (set_local $2 + (get_local $3) + ) + (set_local $7 + (i32.const 181) + ) ) ) ) @@ -3421,1058 +3407,1084 @@ ) ) ) - ) - (block $label$break$d - (if - (i32.eq - (get_local $7) - (i32.const 181) - ) - (block - (set_local $19 - (i32.sub - (i32.const 0) - (get_local $2) - ) + (block $label$break$d + (if + (i32.eq + (get_local $7) + (i32.const 181) ) - (if - (i32.and - (i32.gt_u - (get_local $15) + (block + (set_local $19 + (i32.sub + (i32.const 0) (get_local $2) ) + ) + (if (i32.and - (i32.lt_u + (i32.gt_u + (get_local $15) (get_local $2) - (i32.const 2147483647) ) - (i32.ne - (get_local $11) - (i32.const -1) + (i32.and + (i32.lt_u + (get_local $2) + (i32.const 2147483647) + ) + (i32.ne + (get_local $11) + (i32.const -1) + ) ) ) - ) - (if - (i32.lt_u - (tee_local $0 - (i32.and - (i32.add - (i32.sub - (get_local $17) - (get_local $2) - ) - (tee_local $18 - (i32.load - (i32.const 1688) + (if + (i32.lt_u + (tee_local $0 + (i32.and + (i32.add + (i32.sub + (get_local $17) + (get_local $2) + ) + (tee_local $18 + (i32.load + (i32.const 1688) + ) ) ) + (i32.sub + (i32.const 0) + (get_local $18) + ) ) - (i32.sub - (i32.const 0) - (get_local $18) - ) - ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (call $ta - (get_local $0) ) - (i32.const -1) + (i32.const 2147483647) ) - (block - (drop + (if + (i32.eq (call $ta - (get_local $19) + (get_local $0) + ) + (i32.const -1) + ) + (block + (drop + (call $ta + (get_local $19) + ) + ) + (br $label$break$d) + ) + (set_local $1 + (i32.add + (get_local $0) + (get_local $2) ) ) - (br $label$break$d) ) (set_local $1 - (i32.add - (get_local $0) - (get_local $2) - ) + (get_local $2) ) ) (set_local $1 (get_local $2) ) ) - (set_local $1 - (get_local $2) - ) - ) - (if - (i32.ne - (get_local $11) - (i32.const -1) - ) - (block - (set_local $20 + (if + (i32.ne (get_local $11) + (i32.const -1) ) - (set_local $26 - (get_local $1) - ) - (br $label$break$b - (i32.const 191) + (block + (set_local $20 + (get_local $11) + ) + (set_local $26 + (get_local $1) + ) + (br $label$break$b + (i32.const 191) + ) ) ) ) ) ) - ) - (i32.store - (i32.const 1652) - (i32.or - (i32.load - (i32.const 1652) + (i32.store + (i32.const 1652) + (i32.or + (i32.load + (i32.const 1652) + ) + (i32.const 4) ) - (i32.const 4) ) + (i32.const 188) ) - (i32.const 188) ) ) ) - ) - (i32.const 188) - ) - (if - (i32.lt_u - (get_local $13) - (i32.const 2147483647) + (i32.const 188) ) (if - (i32.and - (i32.lt_u - (tee_local $1 - (call $ta - (get_local $13) + (i32.lt_u + (get_local $13) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (tee_local $1 + (call $ta + (get_local $13) + ) ) - ) - (tee_local $13 - (call $ta - (i32.const 0) + (tee_local $13 + (call $ta + (i32.const 0) + ) ) ) - ) - (i32.and - (i32.ne - (get_local $1) - (i32.const -1) - ) - (i32.ne - (get_local $13) - (i32.const -1) - ) - ) - ) - (if - (i32.gt_u - (tee_local $11 - (i32.sub - (get_local $13) + (i32.and + (i32.ne (get_local $1) + (i32.const -1) + ) + (i32.ne + (get_local $13) + (i32.const -1) ) - ) - (i32.add - (get_local $5) - (i32.const 40) ) ) - (block - (set_local $20 - (get_local $1) - ) - (set_local $26 - (get_local $11) + (if + (i32.gt_u + (tee_local $11 + (i32.sub + (get_local $13) + (get_local $1) + ) + ) + (i32.add + (get_local $5) + (i32.const 40) + ) ) - (set_local $7 - (i32.const 191) + (block + (set_local $20 + (get_local $1) + ) + (set_local $26 + (get_local $11) + ) + (set_local $7 + (i32.const 191) + ) ) ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 191) - ) - (block - (i32.store - (i32.const 1640) - (tee_local $11 - (i32.add - (i32.load - (i32.const 1640) - ) - (get_local $26) - ) - ) + (if + (i32.eq + (get_local $7) + (i32.const 191) ) - (if - (i32.gt_u - (get_local $11) - (i32.load - (i32.const 1644) - ) - ) + (block (i32.store - (i32.const 1644) - (get_local $11) + (i32.const 1640) + (tee_local $11 + (i32.add + (i32.load + (i32.const 1640) + ) + (get_local $26) + ) + ) ) - ) - (block $do-once38 (if - (tee_local $11 + (i32.gt_u + (get_local $11) (i32.load - (i32.const 1232) + (i32.const 1644) ) ) - (block - (set_local $2 - (i32.const 1656) + (i32.store + (i32.const 1644) + (get_local $11) + ) + ) + (block $do-once38 + (if + (tee_local $11 + (i32.load + (i32.const 1232) + ) ) - (loop $do-in41 - (block $do-out40 - (if - (i32.eq - (get_local $20) - (i32.add - (tee_local $1 - (i32.load - (get_local $2) + (block + (set_local $2 + (i32.const 1656) + ) + (loop $do-in41 + (block $do-out40 + (if + (i32.eq + (get_local $20) + (i32.add + (tee_local $1 + (i32.load + (get_local $2) + ) ) - ) - (tee_local $17 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 4) + (tee_local $17 + (i32.load + (tee_local $13 + (i32.add + (get_local $2) + (i32.const 4) + ) ) ) ) ) ) - ) - (block - (set_local $48 - (get_local $1) - ) - (set_local $49 - (get_local $13) - ) - (set_local $50 - (get_local $17) - ) - (set_local $51 - (get_local $2) - ) - (set_local $7 - (i32.const 201) + (block + (set_local $48 + (get_local $1) + ) + (set_local $49 + (get_local $13) + ) + (set_local $50 + (get_local $17) + ) + (set_local $51 + (get_local $2) + ) + (set_local $7 + (i32.const 201) + ) + (br $do-out40) ) - (br $do-out40) ) - ) - (br_if $do-in41 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $do-in41 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 201) - ) (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $51) - ) - (i32.const 8) - ) + (i32.eq + (get_local $7) + (i32.const 201) ) (if - (i32.and - (i32.lt_u - (get_local $11) - (get_local $20) - ) - (i32.ge_u - (get_local $11) - (get_local $48) + (i32.eqz + (i32.and + (i32.load offset=12 + (get_local $51) + ) + (i32.const 8) ) ) - (block - (i32.store - (get_local $49) - (i32.add - (get_local $50) - (get_local $26) + (if + (i32.and + (i32.lt_u + (get_local $11) + (get_local $20) ) - ) - (set_local $2 - (i32.add + (i32.ge_u (get_local $11) - (tee_local $17 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $11) - (i32.const 8) + (get_local $48) + ) + ) + (block + (i32.store + (get_local $49) + (i32.add + (get_local $50) + (get_local $26) + ) + ) + (set_local $2 + (i32.add + (get_local $11) + (tee_local $17 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $11) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) ) - ) - (set_local $13 - (i32.add - (i32.sub - (get_local $26) - (get_local $17) - ) - (i32.load - (i32.const 1220) + (set_local $13 + (i32.add + (i32.sub + (get_local $26) + (get_local $17) + ) + (i32.load + (i32.const 1220) + ) ) ) - ) - (i32.store - (i32.const 1232) - (get_local $2) - ) - (i32.store - (i32.const 1220) - (get_local $13) - ) - (i32.store offset=4 - (get_local $2) - (i32.or + (i32.store + (i32.const 1232) + (get_local $2) + ) + (i32.store + (i32.const 1220) (get_local $13) - (i32.const 1) ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $13) + (i32.or + (get_local $13) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $13) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) ) + (br $do-once38) ) - (br $do-once38) ) ) ) - ) - (set_local $14 - (if (result i32) - (i32.lt_u - (get_local $20) - (tee_local $13 - (i32.load - (i32.const 1224) + (set_local $14 + (if (result i32) + (i32.lt_u + (get_local $20) + (tee_local $13 + (i32.load + (i32.const 1224) + ) ) ) - ) - (block (result i32) - (i32.store - (i32.const 1224) + (block (result i32) + (i32.store + (i32.const 1224) + (get_local $20) + ) (get_local $20) ) + (get_local $13) + ) + ) + (set_local $13 + (i32.add (get_local $20) + (get_local $26) ) - (get_local $13) ) - ) - (set_local $13 - (i32.add - (get_local $20) - (get_local $26) + (set_local $2 + (i32.const 1656) ) - ) - (set_local $2 - (i32.const 1656) - ) - (loop $while-in43 - (block $while-out42 - (if - (i32.eq - (i32.load - (get_local $2) - ) - (get_local $13) - ) - (block - (set_local $52 - (get_local $2) - ) - (set_local $42 - (get_local $2) + (loop $while-in43 + (block $while-out42 + (if + (i32.eq + (i32.load + (get_local $2) + ) + (get_local $13) ) - (set_local $7 - (i32.const 209) + (block + (set_local $52 + (get_local $2) + ) + (set_local $42 + (get_local $2) + ) + (set_local $7 + (i32.const 209) + ) + (br $while-out42) ) - (br $while-out42) ) - ) - (br_if $while-in43 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $while-in43 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) + (set_local $30 + (i32.const 1656) + ) ) - (set_local $30 - (i32.const 1656) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 209) ) (if - (i32.and - (i32.load offset=12 - (get_local $42) - ) - (i32.const 8) - ) - (set_local $30 - (i32.const 1656) + (i32.eq + (get_local $7) + (i32.const 209) ) - (block - (i32.store - (get_local $52) - (get_local $20) + (if + (i32.and + (i32.load offset=12 + (get_local $42) + ) + (i32.const 8) ) - (i32.store - (tee_local $2 - (i32.add - (get_local $42) - (i32.const 4) - ) + (set_local $30 + (i32.const 1656) + ) + (block + (i32.store + (get_local $52) + (get_local $20) ) - (i32.add - (i32.load - (get_local $2) + (i32.store + (tee_local $2 + (i32.add + (get_local $42) + (i32.const 4) + ) + ) + (i32.add + (i32.load + (get_local $2) + ) + (get_local $26) ) - (get_local $26) ) - ) - (set_local $17 - (i32.add - (get_local $20) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $20) - (i32.const 8) + (set_local $17 + (i32.add + (get_local $20) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) - ) - (set_local $1 - (i32.add - (get_local $13) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $13) - (i32.const 8) + (set_local $1 + (i32.add + (get_local $13) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $13) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) - ) - (set_local $2 - (i32.add - (get_local $17) - (get_local $5) - ) - ) - (set_local $15 - (i32.sub - (i32.sub - (get_local $1) + (set_local $2 + (i32.add (get_local $17) + (get_local $5) ) - (get_local $5) ) - ) - (i32.store offset=4 - (get_local $17) - (i32.or - (get_local $5) - (i32.const 3) + (set_local $15 + (i32.sub + (i32.sub + (get_local $1) + (get_local $17) + ) + (get_local $5) + ) ) - ) - (block $do-once44 - (if - (i32.eq - (get_local $1) - (get_local $11) + (i32.store offset=4 + (get_local $17) + (i32.or + (get_local $5) + (i32.const 3) ) - (block - (i32.store - (i32.const 1220) - (tee_local $3 - (i32.add - (i32.load - (i32.const 1220) + ) + (block $do-once44 + (if + (i32.eq + (get_local $1) + (get_local $11) + ) + (block + (i32.store + (i32.const 1220) + (tee_local $3 + (i32.add + (i32.load + (i32.const 1220) + ) + (get_local $15) ) - (get_local $15) ) ) - ) - (i32.store - (i32.const 1232) - (get_local $2) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 1) + (i32.store + (i32.const 1232) + (get_local $2) ) - ) - ) - (block - (if - (i32.eq - (get_local $1) - (i32.load - (i32.const 1228) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $3) + (i32.const 1) ) ) - (block - (i32.store - (i32.const 1216) - (tee_local $3 - (i32.add - (i32.load - (i32.const 1216) + ) + (block + (if + (i32.eq + (get_local $1) + (i32.load + (i32.const 1228) + ) + ) + (block + (i32.store + (i32.const 1216) + (tee_local $3 + (i32.add + (i32.load + (i32.const 1216) + ) + (get_local $15) ) - (get_local $15) ) ) - ) - (i32.store - (i32.const 1228) - (get_local $2) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 1) + (i32.store + (i32.const 1228) + (get_local $2) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $3) + (i32.or + (get_local $3) + (i32.const 1) + ) ) - (get_local $3) - ) - (br $do-once44) - ) - ) - (if - (i32.eq - (i32.and - (tee_local $3 - (i32.load offset=4 - (get_local $1) + (i32.store + (i32.add + (get_local $2) + (get_local $3) ) + (get_local $3) ) - (i32.const 3) + (br $do-once44) ) - (i32.const 1) ) - (block - (set_local $4 + (if + (i32.eq (i32.and - (get_local $3) - (i32.const -8) - ) - ) - (set_local $0 - (i32.shr_u - (get_local $3) + (tee_local $3 + (i32.load offset=4 + (get_local $1) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$e - (if - (i32.lt_u + (block + (set_local $4 + (i32.and (get_local $3) - (i32.const 256) + (i32.const -8) ) - (block - (set_local $10 - (i32.load offset=12 - (get_local $1) - ) + ) + (set_local $0 + (i32.shr_u + (get_local $3) + (i32.const 3) + ) + ) + (block $label$break$e + (if + (i32.lt_u + (get_local $3) + (i32.const 256) ) - (block $do-once47 - (if - (i32.ne - (tee_local $21 - (i32.load offset=8 - (get_local $1) - ) - ) - (tee_local $19 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (block + (set_local $10 + (i32.load offset=12 + (get_local $1) + ) + ) + (block $do-once47 + (if + (i32.ne + (tee_local $21 + (i32.load offset=8 + (get_local $1) ) - (i32.const 1248) ) - ) - ) - (block - (if - (i32.lt_u - (get_local $21) - (get_local $14) + (tee_local $19 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 1248) + ) ) - (call $qa) ) - (br_if $do-once47 - (i32.eq - (i32.load offset=12 + (block + (if + (i32.lt_u (get_local $21) + (get_local $14) ) - (get_local $1) - ) - ) - (call $qa) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (get_local $21) - ) - (block - (i32.store - (i32.const 1208) - (i32.and - (i32.load - (i32.const 1208) + (call $qa) ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) + (br_if $do-once47 + (i32.eq + (i32.load offset=12 + (get_local $21) + ) + (get_local $1) ) - (i32.const -1) ) + (call $qa) ) ) - (br $label$break$e) ) - ) - (block $do-once49 (if (i32.eq (get_local $10) - (get_local $19) + (get_local $21) ) - (set_local $43 - (i32.add - (get_local $10) - (i32.const 8) + (block + (i32.store + (i32.const 1208) + (i32.and + (i32.load + (i32.const 1208) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) + ) + (i32.const -1) + ) + ) ) + (br $label$break$e) ) - (block - (if - (i32.lt_u + ) + (block $do-once49 + (if + (i32.eq + (get_local $10) + (get_local $19) + ) + (set_local $43 + (i32.add (get_local $10) - (get_local $14) + (i32.const 8) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $10) - (i32.const 8) + (block + (if + (i32.lt_u + (get_local $10) + (get_local $14) + ) + (call $qa) + ) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $10) + (i32.const 8) + ) ) ) + (get_local $1) ) - (get_local $1) - ) - (block - (set_local $43 - (get_local $0) + (block + (set_local $43 + (get_local $0) + ) + (br $do-once49) ) - (br $do-once49) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=12 - (get_local $21) - (get_local $10) - ) - (i32.store - (get_local $43) - (get_local $21) - ) - ) - (block - (set_local $19 - (i32.load offset=24 - (get_local $1) + (i32.store offset=12 + (get_local $21) + (get_local $10) + ) + (i32.store + (get_local $43) + (get_local $21) ) ) - (block $do-once51 - (if - (i32.eq - (tee_local $0 - (i32.load offset=12 - (get_local $1) - ) - ) + (block + (set_local $19 + (i32.load offset=24 (get_local $1) ) - (block - (if - (tee_local $16 - (i32.load - (tee_local $6 - (i32.add - (tee_local $18 - (i32.add - (get_local $1) - (i32.const 16) + ) + (block $do-once51 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $1) + ) + ) + (get_local $1) + ) + (block + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (tee_local $18 + (i32.add + (get_local $1) + (i32.const 16) + ) ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (block - (set_local $3 - (get_local $16) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) ) - (set_local $0 - (get_local $6) + (if + (tee_local $22 + (i32.load + (get_local $18) + ) + ) + (block + (set_local $3 + (get_local $22) + ) + (set_local $0 + (get_local $18) + ) + ) + (block + (set_local $24 + (i32.const 0) + ) + (br $do-once51) + ) ) ) - (if - (tee_local $22 - (i32.load - (get_local $18) + (loop $while-in54 + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (get_local $3) + (i32.const 20) + ) + ) + ) + ) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) + (br $while-in54) ) ) - (block - (set_local $3 - (get_local $22) + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (get_local $3) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $18) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) + (br $while-in54) ) ) + ) + (if + (i32.lt_u + (get_local $0) + (get_local $14) + ) + (call $qa) (block - (set_local $24 + (i32.store + (get_local $0) (i32.const 0) ) - (br $do-once51) + (set_local $24 + (get_local $3) + ) ) ) ) - (loop $while-in54 + (block (if - (tee_local $16 + (i32.lt_u + (tee_local $6 + (i32.load offset=8 + (get_local $1) + ) + ) + (get_local $14) + ) + (call $qa) + ) + (if + (i32.ne (i32.load - (tee_local $6 + (tee_local $16 (i32.add - (get_local $3) - (i32.const 20) + (get_local $6) + (i32.const 12) ) ) ) + (get_local $1) ) - (block - (set_local $3 - (get_local $16) - ) - (set_local $0 - (get_local $6) - ) - (br $while-in54) - ) + (call $qa) ) (if - (tee_local $16 + (i32.eq (i32.load - (tee_local $6 + (tee_local $18 (i32.add - (get_local $3) - (i32.const 16) + (get_local $0) + (i32.const 8) ) ) ) + (get_local $1) ) (block - (set_local $3 + (i32.store (get_local $16) + (get_local $0) ) - (set_local $0 + (i32.store + (get_local $18) (get_local $6) ) - (br $while-in54) - ) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $14) - ) - (call $qa) - (block - (i32.store - (get_local $0) - (i32.const 0) - ) - (set_local $24 - (get_local $3) + (set_local $24 + (get_local $0) + ) ) + (call $qa) ) ) ) - (block - (if - (i32.lt_u - (tee_local $6 - (i32.load offset=8 - (get_local $1) + ) + (br_if $label$break$e + (i32.eqz + (get_local $19) + ) + ) + (block $do-once55 + (if + (i32.eq + (get_local $1) + (i32.load + (tee_local $21 + (i32.add + (i32.shl + (tee_local $0 + (i32.load offset=28 + (get_local $1) + ) + ) + (i32.const 2) + ) + (i32.const 1512) ) ) - (get_local $14) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $16 - (i32.add - (get_local $6) - (i32.const 12) + (block + (i32.store + (get_local $21) + (get_local $24) + ) + (br_if $do-once55 + (get_local $24) + ) + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) ) + (i32.const -1) ) ) - (get_local $1) ) - (call $qa) + (br $label$break$e) ) - (if - (i32.eq - (i32.load - (tee_local $18 - (i32.add - (get_local $0) - (i32.const 8) - ) + (block + (if + (i32.lt_u + (get_local $19) + (i32.load + (i32.const 1224) ) ) - (get_local $1) + (call $qa) ) - (block - (i32.store - (get_local $16) - (get_local $0) + (if + (i32.eq + (i32.load + (tee_local $10 + (i32.add + (get_local $19) + (i32.const 16) + ) + ) + ) + (get_local $1) ) (i32.store - (get_local $18) - (get_local $6) + (get_local $10) + (get_local $24) ) - (set_local $24 - (get_local $0) + (i32.store offset=20 + (get_local $19) + (get_local $24) + ) + ) + (br_if $label$break$e + (i32.eqz + (get_local $24) ) ) - (call $qa) ) ) ) - ) - (br_if $label$break$e - (i32.eqz + (if + (i32.lt_u + (get_local $24) + (tee_local $0 + (i32.load + (i32.const 1224) + ) + ) + ) + (call $qa) + ) + (i32.store offset=24 + (get_local $24) (get_local $19) ) - ) - (block $do-once55 (if - (i32.eq - (get_local $1) + (tee_local $10 (i32.load (tee_local $21 (i32.add - (i32.shl - (tee_local $0 - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - ) - ) - (block - (i32.store - (get_local $21) - (get_local $24) - ) - (br_if $do-once55 - (get_local $24) - ) - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) - ) - (i32.const -1) + (get_local $1) + (i32.const 16) ) ) ) - (br $label$break$e) ) - (block - (if - (i32.lt_u - (get_local $19) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) + (if + (i32.lt_u + (get_local $10) + (get_local $0) ) - (if - (i32.eq - (i32.load - (tee_local $10 - (i32.add - (get_local $19) - (i32.const 16) - ) - ) - ) - (get_local $1) - ) - (i32.store - (get_local $10) - (get_local $24) - ) - (i32.store offset=20 - (get_local $19) + (call $qa) + (block + (i32.store offset=16 (get_local $24) + (get_local $10) ) - ) - (br_if $label$break$e - (i32.eqz + (i32.store offset=24 + (get_local $10) (get_local $24) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $24) - (tee_local $0 - (i32.load - (i32.const 1224) - ) - ) - ) - (call $qa) - ) - (i32.store offset=24 - (get_local $24) - (get_local $19) - ) - (if - (tee_local $10 - (i32.load - (tee_local $21 - (i32.add - (get_local $1) - (i32.const 16) + (br_if $label$break$e + (i32.eqz + (tee_local $10 + (i32.load offset=4 + (get_local $21) ) ) ) @@ -4480,11 +4492,13 @@ (if (i32.lt_u (get_local $10) - (get_local $0) + (i32.load + (i32.const 1224) + ) ) (call $qa) (block - (i32.store offset=16 + (i32.store offset=20 (get_local $24) (get_local $10) ) @@ -4495,467 +4509,313 @@ ) ) ) - (br_if $label$break$e - (i32.eqz - (tee_local $10 - (i32.load offset=4 - (get_local $21) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $10) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block - (i32.store offset=20 - (get_local $24) - (get_local $10) - ) - (i32.store offset=24 - (get_local $10) - (get_local $24) - ) - ) - ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (get_local $4) + ) + ) + (set_local $15 + (i32.add + (get_local $4) + (get_local $15) ) ) ) - (set_local $1 + ) + (i32.store + (tee_local $0 (i32.add (get_local $1) - (get_local $4) + (i32.const 4) ) ) - (set_local $15 - (i32.add - (get_local $4) - (get_local $15) + (i32.and + (i32.load + (get_local $0) ) + (i32.const -2) ) ) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $1) - (i32.const 4) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $15) + (i32.const 1) ) ) - (i32.and - (i32.load - (get_local $0) + (i32.store + (i32.add + (get_local $2) + (get_local $15) ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $15) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $2) (get_local $15) ) - (get_local $15) - ) - (set_local $0 - (i32.shr_u - (get_local $15) - (i32.const 3) - ) - ) - (if - (i32.lt_u - (get_local $15) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $15) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (if + (i32.lt_u + (get_local $15) + (i32.const 256) + ) + (block + (set_local $3 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 1248) ) - (i32.const 1248) ) - ) - (block $do-once59 - (if - (i32.and - (tee_local $10 - (i32.load - (i32.const 1208) + (block $do-once59 + (if + (i32.and + (tee_local $10 + (i32.load + (i32.const 1208) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) ) ) - ) - (block - (if - (i32.ge_u - (tee_local $19 - (i32.load - (tee_local $0 - (i32.add - (get_local $3) - (i32.const 8) + (block + (if + (i32.ge_u + (tee_local $19 + (i32.load + (tee_local $0 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (block + (set_local $44 + (get_local $0) + ) + (set_local $37 + (get_local $19) + ) + (br $do-once59) ) ) - (block - (set_local $44 + (call $qa) + ) + (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $10) (get_local $0) ) - (set_local $37 - (get_local $19) - ) - (br $do-once59) ) - ) - (call $qa) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $10) - (get_local $0) + (set_local $44 + (i32.add + (get_local $3) + (i32.const 8) + ) ) - ) - (set_local $44 - (i32.add + (set_local $37 (get_local $3) - (i32.const 8) ) ) - (set_local $37 - (get_local $3) - ) ) ) + (i32.store + (get_local $44) + (get_local $2) + ) + (i32.store offset=12 + (get_local $37) + (get_local $2) + ) + (i32.store offset=8 + (get_local $2) + (get_local $37) + ) + (i32.store offset=12 + (get_local $2) + (get_local $3) + ) + (br $do-once44) ) - (i32.store - (get_local $44) - (get_local $2) - ) - (i32.store offset=12 - (get_local $37) - (get_local $2) - ) - (i32.store offset=8 - (get_local $2) - (get_local $37) - ) - (i32.store offset=12 - (get_local $2) - (get_local $3) - ) - (br $do-once44) ) - ) - (set_local $0 - (i32.add - (i32.shl - (tee_local $4 - (block $do-once61 (result i32) - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $15) - (i32.const 8) + (set_local $0 + (i32.add + (i32.shl + (tee_local $4 + (block $do-once61 (result i32) + (if (result i32) + (tee_local $0 + (i32.shr_u + (get_local $15) + (i32.const 8) + ) ) - ) - (block (result i32) - (drop - (br_if $do-once61 - (i32.const 31) - (i32.gt_u - (get_local $15) - (i32.const 16777215) + (block (result i32) + (drop + (br_if $do-once61 + (i32.const 31) + (i32.gt_u + (get_local $15) + (i32.const 16777215) + ) ) ) - ) - (i32.or - (i32.and - (i32.shr_u - (get_local $15) - (i32.add - (tee_local $6 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $15) + (i32.add + (tee_local $6 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $19 - (i32.and - (i32.shr_u - (i32.add - (tee_local $4 - (i32.shl - (get_local $0) - (tee_local $10 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $19 + (i32.and + (i32.shr_u + (i32.add + (tee_local $4 + (i32.shl + (get_local $0) + (tee_local $10 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $10) ) - (get_local $10) - ) - (tee_local $4 - (i32.and - (i32.shr_u - (i32.add - (tee_local $0 - (i32.shl - (get_local $4) - (get_local $19) + (tee_local $4 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (i32.shl + (get_local $4) + (get_local $19) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $0) - (get_local $4) + (i32.shr_u + (i32.shl + (get_local $0) + (get_local $4) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $6) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $6) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) ) + (i32.const 2) ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $2) - (get_local $4) - ) - (i32.store offset=4 - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - (i32.const 0) - ) - (i32.store - (get_local $3) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $6 - (i32.shl - (i32.const 1) - (get_local $4) - ) - ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $3) - (get_local $6) - ) - ) - (i32.store - (get_local $0) - (get_local $2) - ) - (i32.store offset=24 - (get_local $2) - (get_local $0) - ) - (i32.store offset=12 - (get_local $2) - (get_local $2) - ) - (i32.store offset=8 - (get_local $2) - (get_local $2) - ) - (br $do-once44) + (i32.store offset=28 + (get_local $2) + (get_local $4) ) - ) - (set_local $6 - (i32.shl - (get_local $15) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $4) - (i32.const 1) - ) - ) - (i32.eq - (get_local $4) - (i32.const 31) + (i32.store offset=4 + (tee_local $3 + (i32.add + (get_local $2) + (i32.const 16) ) ) + (i32.const 0) ) - ) - (set_local $3 - (i32.load - (get_local $0) + (i32.store + (get_local $3) + (i32.const 0) ) - ) - (loop $while-in64 - (block $while-out63 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.const -8) - ) - (get_local $15) - ) - (block - (set_local $38 - (get_local $3) - ) - (set_local $7 - (i32.const 279) - ) - (br $while-out63) - ) - ) - (if - (tee_local $4 - (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $3) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $6) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $6 + (tee_local $6 (i32.shl - (get_local $6) (i32.const 1) + (get_local $4) ) ) - (set_local $3 - (get_local $4) - ) - (br $while-in64) ) - (block - (set_local $45 - (get_local $0) - ) - (set_local $53 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $3) - ) - (set_local $7 - (i32.const 276) + (get_local $6) ) ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 276) - ) - (if - (i32.lt_u - (get_local $45) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block (i32.store - (get_local $45) + (get_local $0) (get_local $2) ) (i32.store offset=24 (get_local $2) - (get_local $53) + (get_local $0) ) (i32.store offset=12 (get_local $2) @@ -4965,705 +4825,705 @@ (get_local $2) (get_local $2) ) + (br $do-once44) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 279) + (set_local $6 + (i32.shl + (get_local $15) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $4) + (i32.const 1) + ) + ) + (i32.eq + (get_local $4) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $6 - (i32.load - (tee_local $3 + ) + (set_local $3 + (i32.load + (get_local $0) + ) + ) + (loop $while-in64 + (block $while-out63 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) + ) + (get_local $15) + ) + (block + (set_local $38 + (get_local $3) + ) + (set_local $7 + (i32.const 279) + ) + (br $while-out63) + ) + ) + (if + (tee_local $4 + (i32.load + (tee_local $0 + (i32.add (i32.add - (get_local $38) - (i32.const 8) + (get_local $3) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $6) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $4 - (i32.load - (i32.const 1224) + ) + (block + (set_local $6 + (i32.shl + (get_local $6) + (i32.const 1) ) ) + (set_local $3 + (get_local $4) + ) + (br $while-in64) ) - (i32.ge_u - (get_local $38) - (get_local $4) + (block + (set_local $45 + (get_local $0) + ) + (set_local $53 + (get_local $3) + ) + (set_local $7 + (i32.const 276) + ) ) ) - (block - (i32.store offset=12 - (get_local $6) - (get_local $2) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 276) + ) + (if + (i32.lt_u + (get_local $45) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $3) + (get_local $45) (get_local $2) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $2) - (get_local $6) + (get_local $53) ) (i32.store offset=12 (get_local $2) - (get_local $38) + (get_local $2) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $2) (get_local $2) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 279) + ) + (if + (i32.and + (i32.ge_u + (tee_local $6 + (i32.load + (tee_local $3 + (i32.add + (get_local $38) + (i32.const 8) + ) + ) + ) + ) + (tee_local $4 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $38) + (get_local $4) + ) + ) + (block + (i32.store offset=12 + (get_local $6) + (get_local $2) + ) + (i32.store + (get_local $3) + (get_local $2) + ) + (i32.store offset=8 + (get_local $2) + (get_local $6) + ) + (i32.store offset=12 + (get_local $2) + (get_local $38) + ) + (i32.store offset=24 + (get_local $2) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $17) - (i32.const 8) + (set_global $r + (get_local $25) ) - ) - ) - ) - ) - (loop $while-in66 - (block $while-out65 - (if - (i32.le_u - (tee_local $2 - (i32.load - (get_local $30) + (return + (i32.add + (get_local $17) + (i32.const 8) ) ) - (get_local $11) ) + ) + ) + (loop $while-in66 + (block $while-out65 (if - (i32.gt_u - (tee_local $15 - (i32.add - (get_local $2) - (i32.load offset=4 - (get_local $30) - ) + (i32.le_u + (tee_local $2 + (i32.load + (get_local $30) ) ) (get_local $11) ) - (block - (set_local $0 - (get_local $15) + (if + (i32.gt_u + (tee_local $15 + (i32.add + (get_local $2) + (i32.load offset=4 + (get_local $30) + ) + ) + ) + (get_local $11) + ) + (block + (set_local $0 + (get_local $15) + ) + (br $while-out65) ) - (br $while-out65) ) ) - ) - (set_local $30 - (i32.load offset=8 - (get_local $30) + (set_local $30 + (i32.load offset=8 + (get_local $30) + ) ) + (br $while-in66) ) - (br $while-in66) ) - ) - (set_local $15 - (i32.add - (tee_local $17 - (i32.add - (get_local $0) - (i32.const -47) + (set_local $15 + (i32.add + (tee_local $17 + (i32.add + (get_local $0) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (set_local $2 - (i32.add - (tee_local $17 - (select - (get_local $11) - (tee_local $2 - (i32.add - (get_local $17) - (select - (i32.and - (i32.sub - (i32.const 0) + (set_local $2 + (i32.add + (tee_local $17 + (select + (get_local $11) + (tee_local $2 + (i32.add + (get_local $17) + (select + (i32.and + (i32.sub + (i32.const 0) + (get_local $15) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and (get_local $15) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $15) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (get_local $2) - (tee_local $15 - (i32.add - (get_local $11) - (i32.const 16) + (i32.lt_u + (get_local $2) + (tee_local $15 + (i32.add + (get_local $11) + (i32.const 16) + ) ) ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 1232) - (tee_local $1 - (i32.add - (get_local $20) - (tee_local $13 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $20) - (i32.const 8) + (i32.store + (i32.const 1232) + (tee_local $1 + (i32.add + (get_local $20) + (tee_local $13 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 1220) - (tee_local $6 - (i32.sub + (i32.store + (i32.const 1220) + (tee_local $6 + (i32.sub + (i32.add + (get_local $26) + (i32.const -40) + ) + (get_local $13) + ) + ) + ) + (i32.store offset=4 + (get_local $1) + (i32.or + (get_local $6) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $1) + (get_local $6) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) + ) + (i32.store + (tee_local $6 (i32.add - (get_local $26) - (i32.const -40) + (get_local $17) + (i32.const 4) ) - (get_local $13) ) + (i32.const 27) ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $6) - (i32.const 1) + (i32.store + (get_local $2) + (i32.load + (i32.const 1656) + ) ) - ) - (i32.store offset=4 - (i32.add - (get_local $1) - (get_local $6) + (i32.store offset=4 + (get_local $2) + (i32.load + (i32.const 1660) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=8 + (get_local $2) + (i32.load + (i32.const 1664) + ) ) - ) - (i32.store - (tee_local $6 - (i32.add - (get_local $17) - (i32.const 4) + (i32.store offset=12 + (get_local $2) + (i32.load + (i32.const 1668) ) ) - (i32.const 27) - ) - (i32.store - (get_local $2) - (i32.load + (i32.store (i32.const 1656) + (get_local $20) ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load + (i32.store (i32.const 1660) + (get_local $26) ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load - (i32.const 1664) - ) - ) - (i32.store offset=12 - (get_local $2) - (i32.load + (i32.store (i32.const 1668) + (i32.const 0) ) - ) - (i32.store - (i32.const 1656) - (get_local $20) - ) - (i32.store - (i32.const 1660) - (get_local $26) - ) - (i32.store - (i32.const 1668) - (i32.const 0) - ) - (i32.store - (i32.const 1664) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $17) - (i32.const 24) - ) - ) - (loop $do-in68 (i32.store - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 1664) + (get_local $2) ) - (br_if $do-in68 - (i32.lt_u - (i32.add - (get_local $2) - (i32.const 4) - ) - (get_local $0) + (set_local $2 + (i32.add + (get_local $17) + (i32.const 24) ) ) - ) - (if - (i32.ne - (get_local $17) - (get_local $11) - ) - (block + (loop $do-in68 (i32.store - (get_local $6) - (i32.and - (i32.load - (get_local $6) + (tee_local $2 + (i32.add + (get_local $2) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (get_local $11) - (i32.or - (tee_local $2 - (i32.sub - (get_local $17) - (get_local $11) - ) + (br_if $do-in68 + (i32.lt_u + (i32.add + (get_local $2) + (i32.const 4) ) - (i32.const 1) + (get_local $0) ) ) - (i32.store + ) + (if + (i32.ne (get_local $17) - (get_local $2) - ) - (set_local $1 - (i32.shr_u - (get_local $2) - (i32.const 3) - ) + (get_local $11) ) - (if - (i32.lt_u - (get_local $2) - (i32.const 256) + (block + (i32.store + (get_local $6) + (i32.and + (i32.load + (get_local $6) + ) + (i32.const -2) + ) ) - (block - (set_local $13 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (i32.store offset=4 + (get_local $11) + (i32.or + (tee_local $2 + (i32.sub + (get_local $17) + (get_local $11) ) - (i32.const 1248) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $4 + ) + (i32.store + (get_local $17) + (get_local $2) + ) + (set_local $1 + (i32.shr_u + (get_local $2) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (get_local $2) + (i32.const 256) + ) + (block + (set_local $13 + (i32.add (i32.shl - (i32.const 1) (get_local $1) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $3 (i32.load - (tee_local $4 - (i32.add - (get_local $13) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $4 + (i32.shl + (i32.const 1) + (get_local $1) + ) + ) + ) + (if + (i32.lt_u + (tee_local $3 + (i32.load + (tee_local $4 + (i32.add + (get_local $13) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $46 + (get_local $4) + ) + (set_local $39 + (get_local $3) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $3) + (get_local $4) + ) + ) (set_local $46 - (get_local $4) + (i32.add + (get_local $13) + (i32.const 8) + ) ) (set_local $39 - (get_local $3) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $3) - (get_local $4) - ) - ) - (set_local $46 - (i32.add (get_local $13) - (i32.const 8) ) ) - (set_local $39 - (get_local $13) - ) ) + (i32.store + (get_local $46) + (get_local $11) + ) + (i32.store offset=12 + (get_local $39) + (get_local $11) + ) + (i32.store offset=8 + (get_local $11) + (get_local $39) + ) + (i32.store offset=12 + (get_local $11) + (get_local $13) + ) + (br $do-once38) ) - (i32.store - (get_local $46) - (get_local $11) - ) - (i32.store offset=12 - (get_local $39) - (get_local $11) - ) - (i32.store offset=8 - (get_local $11) - (get_local $39) - ) - (i32.store offset=12 - (get_local $11) - (get_local $13) - ) - (br $do-once38) ) - ) - (set_local $0 - (i32.add - (i32.shl - (tee_local $3 - (if (result i32) - (tee_local $13 - (i32.shr_u - (get_local $2) - (i32.const 8) - ) - ) + (set_local $0 + (i32.add + (i32.shl + (tee_local $3 (if (result i32) - (i32.gt_u - (get_local $2) - (i32.const 16777215) + (tee_local $13 + (i32.shr_u + (get_local $2) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $2) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $2) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $2) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $13 - (i32.and - (i32.shr_u - (i32.add - (tee_local $4 - (i32.shl - (get_local $13) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $13) - (i32.const 1048320) + (i32.or + (tee_local $13 + (i32.and + (i32.shr_u + (i32.add + (tee_local $4 + (i32.shl + (get_local $13) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $13) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $4 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $4) - (get_local $13) + (tee_local $4 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $4) + (get_local $13) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $4) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $4) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $11) - (get_local $3) - ) - (i32.store offset=20 - (get_local $11) - (i32.const 0) - ) - (i32.store - (get_local $15) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $4 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $3) ) + (i32.const 2) ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $4) - (get_local $1) - ) - ) - (i32.store - (get_local $0) - (get_local $11) - ) - (i32.store offset=24 - (get_local $11) - (get_local $0) - ) - (i32.store offset=12 - (get_local $11) - (get_local $11) - ) - (i32.store offset=8 - (get_local $11) - (get_local $11) - ) - (br $do-once38) + (i32.store offset=28 + (get_local $11) + (get_local $3) ) - ) - (set_local $1 - (i32.shl - (get_local $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $3) - (i32.const 1) - ) - ) - (i32.eq - (get_local $3) - (i32.const 31) - ) - ) + (i32.store offset=20 + (get_local $11) + (i32.const 0) ) - ) - (set_local $4 - (i32.load - (get_local $0) + (i32.store + (get_local $15) + (i32.const 0) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $4) - ) - (i32.const -8) - ) - (get_local $2) - ) - (block - (set_local $31 - (get_local $4) - ) - (set_local $7 - (i32.const 305) - ) - (br $while-out69) - ) - ) - (if - (tee_local $3 - (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $4) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $4 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $1 + (tee_local $1 (i32.shl - (get_local $1) (i32.const 1) + (get_local $3) ) ) - (set_local $4 - (get_local $3) - ) - (br $while-in70) ) - (block - (set_local $47 - (get_local $0) - ) - (set_local $54 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $4) - ) - (set_local $7 - (i32.const 302) + (get_local $1) ) ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 302) - ) - (if - (i32.lt_u - (get_local $47) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block (i32.store - (get_local $47) + (get_local $0) (get_local $11) ) (i32.store offset=24 (get_local $11) - (get_local $54) + (get_local $0) ) (i32.store offset=12 (get_local $11) @@ -5673,271 +5533,406 @@ (get_local $11) (get_local $11) ) + (br $do-once38) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 305) + (set_local $1 + (i32.shl + (get_local $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $3) + (i32.const 1) + ) + ) + (i32.eq + (get_local $3) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $1 - (i32.load - (tee_local $4 + ) + (set_local $4 + (i32.load + (get_local $0) + ) + ) + (loop $while-in70 + (block $while-out69 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $4) + ) + (i32.const -8) + ) + (get_local $2) + ) + (block + (set_local $31 + (get_local $4) + ) + (set_local $7 + (i32.const 305) + ) + (br $while-out69) + ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $0 + (i32.add (i32.add - (get_local $31) - (i32.const 8) + (get_local $4) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $2 - (i32.load - (i32.const 1224) + ) + (block + (set_local $1 + (i32.shl + (get_local $1) + (i32.const 1) ) ) + (set_local $4 + (get_local $3) + ) + (br $while-in70) ) - (i32.ge_u - (get_local $31) - (get_local $2) + (block + (set_local $47 + (get_local $0) + ) + (set_local $54 + (get_local $4) + ) + (set_local $7 + (i32.const 302) + ) ) ) - (block - (i32.store offset=12 - (get_local $1) - (get_local $11) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 302) + ) + (if + (i32.lt_u + (get_local $47) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $4) + (get_local $47) (get_local $11) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $11) - (get_local $1) + (get_local $54) ) (i32.store offset=12 (get_local $11) - (get_local $31) + (get_local $11) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $11) (get_local $11) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 305) + ) + (if + (i32.and + (i32.ge_u + (tee_local $1 + (i32.load + (tee_local $4 + (i32.add + (get_local $31) + (i32.const 8) + ) + ) + ) + ) + (tee_local $2 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $31) + (get_local $2) + ) + ) + (block + (i32.store offset=12 + (get_local $1) + (get_local $11) + ) + (i32.store + (get_local $4) + (get_local $11) + ) + (i32.store offset=8 + (get_local $11) + (get_local $1) + ) + (i32.store offset=12 + (get_local $11) + (get_local $31) + ) + (i32.store offset=24 + (get_local $11) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (tee_local $1 - (i32.load - (i32.const 1224) + (block + (if + (i32.or + (i32.eqz + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (i32.lt_u + (get_local $20) + (get_local $1) + ) ) - (i32.lt_u + (i32.store + (i32.const 1224) (get_local $20) - (get_local $1) ) ) (i32.store - (i32.const 1224) + (i32.const 1656) (get_local $20) ) - ) - (i32.store - (i32.const 1656) - (get_local $20) - ) - (i32.store - (i32.const 1660) - (get_local $26) - ) - (i32.store - (i32.const 1668) - (i32.const 0) - ) - (i32.store - (i32.const 1244) - (i32.load - (i32.const 1680) + (i32.store + (i32.const 1660) + (get_local $26) ) - ) - (i32.store - (i32.const 1240) - (i32.const -1) - ) - (set_local $1 - (i32.const 0) - ) - (loop $do-in - (i32.store offset=12 - (tee_local $13 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) - ) - (i32.const 1248) - ) + (i32.store + (i32.const 1668) + (i32.const 0) + ) + (i32.store + (i32.const 1244) + (i32.load + (i32.const 1680) ) - (get_local $13) ) - (i32.store offset=8 - (get_local $13) - (get_local $13) + (i32.store + (i32.const 1240) + (i32.const -1) ) - (br_if $do-in - (i32.ne - (tee_local $1 + (set_local $1 + (i32.const 0) + ) + (loop $do-in + (i32.store offset=12 + (tee_local $13 (i32.add - (get_local $1) - (i32.const 1) + (i32.shl + (get_local $1) + (i32.const 3) + ) + (i32.const 1248) + ) + ) + (get_local $13) + ) + (i32.store offset=8 + (get_local $13) + (get_local $13) + ) + (br_if $do-in + (i32.ne + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) ) + (i32.const 32) ) - (i32.const 32) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $1 - (i32.add - (get_local $20) - (tee_local $13 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $20) - (i32.const 8) + (i32.store + (i32.const 1232) + (tee_local $1 + (i32.add + (get_local $20) + (tee_local $13 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 1220) - (tee_local $2 - (i32.sub - (i32.add - (get_local $26) - (i32.const -40) + (i32.store + (i32.const 1220) + (tee_local $2 + (i32.sub + (i32.add + (get_local $26) + (i32.const -40) + ) + (get_local $13) ) - (get_local $13) ) ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $2) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $1) - (get_local $2) + (i32.or + (get_local $2) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=4 + (i32.add + (get_local $1) + (get_local $2) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) ) ) ) ) - ) - (if - (i32.gt_u - (tee_local $11 - (i32.load - (i32.const 1220) + (if + (i32.gt_u + (tee_local $11 + (i32.load + (i32.const 1220) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (i32.store - (i32.const 1220) - (tee_local $31 - (i32.sub - (get_local $11) - (get_local $5) + (block + (i32.store + (i32.const 1220) + (tee_local $31 + (i32.sub + (get_local $11) + (get_local $5) + ) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $7 - (i32.add - (tee_local $11 - (i32.load - (i32.const 1232) + (i32.store + (i32.const 1232) + (tee_local $7 + (i32.add + (tee_local $11 + (i32.load + (i32.const 1232) + ) ) + (get_local $5) ) - (get_local $5) ) ) - ) - (i32.store offset=4 - (get_local $7) - (i32.or - (get_local $31) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $11) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $7) + (i32.or + (get_local $31) + (i32.const 1) + ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add + (i32.store offset=4 (get_local $11) - (i32.const 8) + (i32.or + (get_local $5) + (i32.const 3) + ) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.add + (get_local $11) + (i32.const 8) + ) ) ) ) ) ) - ) - (i32.store - (call $Qa) - (i32.const 12) + (i32.store + (call $Qa) + (i32.const 12) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.const 0) + ) ) (set_global $r (get_local $25) ) - (i32.const 0) + (i32.add + (get_local $15) + (i32.const 8) + ) ) (func $fb (param $0 i32) (local $1 i32) diff --git a/test/memorygrowth.fromasm.clamp b/test/memorygrowth.fromasm.clamp index a6d77f5cf..71c095deb 100644 --- a/test/memorygrowth.fromasm.clamp +++ b/test/memorygrowth.fromasm.clamp @@ -105,830 +105,790 @@ (local $52 i32) (local $53 i32) (local $54 i32) - (set_local $25 - (get_global $r) - ) - (set_global $r - (i32.add + (block $folding-inner0 + (set_local $25 (get_global $r) - (i32.const 16) ) - ) - (set_local $13 - (get_local $25) - ) - (block $do-once - (if - (i32.lt_u - (get_local $0) - (i32.const 245) + (set_global $r + (i32.add + (get_global $r) + (i32.const 16) ) - (block - (if - (i32.and - (tee_local $5 - (i32.shr_u - (tee_local $4 - (i32.load - (i32.const 1208) + ) + (set_local $13 + (get_local $25) + ) + (block $do-once + (if + (i32.lt_u + (get_local $0) + (i32.const 245) + ) + (block + (if + (i32.and + (tee_local $5 + (i32.shr_u + (tee_local $4 + (i32.load + (i32.const 1208) + ) ) - ) - (tee_local $0 - (i32.shr_u - (tee_local $3 - (select - (i32.const 16) - (i32.and - (i32.add + (tee_local $0 + (i32.shr_u + (tee_local $3 + (select + (i32.const 16) + (i32.and + (i32.add + (get_local $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (get_local $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (get_local $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (set_local $6 - (i32.load - (tee_local $3 - (i32.add - (tee_local $12 - (i32.load - (tee_local $14 - (i32.add - (tee_local $8 - (i32.add - (i32.shl - (tee_local $0 - (i32.add - (i32.xor - (i32.and - (get_local $5) + (block + (set_local $6 + (i32.load + (tee_local $3 + (i32.add + (tee_local $12 + (i32.load + (tee_local $14 + (i32.add + (tee_local $8 + (i32.add + (i32.shl + (tee_local $0 + (i32.add + (i32.xor + (i32.and + (get_local $5) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) + (get_local $0) ) - (get_local $0) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 1248) ) - (i32.const 1248) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $8) - (get_local $6) - ) - (i32.store - (i32.const 1208) - (i32.and - (get_local $4) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) - ) - (i32.const -1) - ) + (if + (i32.eq + (get_local $8) + (get_local $6) ) - ) - (block - (if - (i32.lt_u - (get_local $6) - (i32.load - (i32.const 1224) + (i32.store + (i32.const 1208) + (i32.and + (get_local $4) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) + ) + (i32.const -1) ) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $7 - (i32.add - (get_local $6) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $6) + (i32.load + (i32.const 1224) ) ) - (get_local $12) + (call $qa) ) - (block - (i32.store - (get_local $7) - (get_local $8) + (if + (i32.eq + (i32.load + (tee_local $7 + (i32.add + (get_local $6) + (i32.const 12) + ) + ) + ) + (get_local $12) ) - (i32.store - (get_local $14) - (get_local $6) + (block + (i32.store + (get_local $7) + (get_local $8) + ) + (i32.store + (get_local $14) + (get_local $6) + ) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.or - (tee_local $6 - (i32.shl - (get_local $0) - (i32.const 3) + (i32.store offset=4 + (get_local $12) + (i32.or + (tee_local $6 + (i32.shl + (get_local $0) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $14 - (i32.add + (i32.store + (tee_local $14 (i32.add - (get_local $12) - (get_local $6) + (i32.add + (get_local $12) + (get_local $6) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $14) + (i32.or + (i32.load + (get_local $14) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (set_global $r - (get_local $25) - ) - (return - (get_local $3) + (set_global $r + (get_local $25) + ) + (return + (get_local $3) + ) ) ) - ) - (if - (i32.gt_u - (get_local $3) - (tee_local $14 - (i32.load - (i32.const 1216) + (if + (i32.gt_u + (get_local $3) + (tee_local $14 + (i32.load + (i32.const 1216) + ) ) ) - ) - (block - (if - (get_local $5) - (block - (set_local $8 - (i32.and - (i32.shr_u - (tee_local $6 - (i32.add - (i32.and - (tee_local $8 - (i32.and - (i32.shl - (get_local $5) - (get_local $0) - ) - (i32.or - (tee_local $6 - (i32.shl - (i32.const 2) - (get_local $0) - ) + (block + (if + (get_local $5) + (block + (set_local $8 + (i32.and + (i32.shr_u + (tee_local $6 + (i32.add + (i32.and + (tee_local $8 + (i32.and + (i32.shl + (get_local $5) + (get_local $0) ) - (i32.sub - (i32.const 0) - (get_local $6) + (i32.or + (tee_local $6 + (i32.shl + (i32.const 2) + (get_local $0) + ) + ) + (i32.sub + (i32.const 0) + (get_local $6) + ) ) ) ) + (i32.sub + (i32.const 0) + (get_local $8) + ) ) - (i32.sub - (i32.const 0) - (get_local $8) - ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $8 - (i32.load - (tee_local $7 - (i32.add - (tee_local $9 - (i32.load - (tee_local $12 - (i32.add - (tee_local $1 - (i32.add - (i32.shl - (tee_local $16 - (i32.add - (i32.or + (set_local $8 + (i32.load + (tee_local $7 + (i32.add + (tee_local $9 + (i32.load + (tee_local $12 + (i32.add + (tee_local $1 + (i32.add + (i32.shl + (tee_local $16 + (i32.add (i32.or (i32.or (i32.or - (tee_local $6 + (i32.or + (tee_local $6 + (i32.and + (i32.shr_u + (tee_local $7 + (i32.shr_u + (get_local $6) + (get_local $8) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $8) + ) + (tee_local $7 (i32.and (i32.shr_u - (tee_local $7 + (tee_local $9 (i32.shr_u + (get_local $7) (get_local $6) - (get_local $8) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $8) ) - (tee_local $7 + (tee_local $9 (i32.and (i32.shr_u - (tee_local $9 + (tee_local $1 (i32.shr_u + (get_local $9) (get_local $7) - (get_local $6) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $9 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $12 (i32.shr_u + (get_local $1) (get_local $9) - (get_local $7) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (tee_local $12 - (i32.shr_u - (get_local $1) - (get_local $9) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) - ) - (i32.shr_u - (get_local $12) - (get_local $1) + (i32.shr_u + (get_local $12) + (get_local $1) + ) ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 1248) ) - (i32.const 1248) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $1) - (get_local $8) - ) - (block - (i32.store - (i32.const 1208) - (i32.and - (get_local $4) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $16) + (if + (i32.eq + (get_local $1) + (get_local $8) + ) + (block + (i32.store + (i32.const 1208) + (i32.and + (get_local $4) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $16) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $34 - (get_local $14) - ) - ) - (block - (if - (i32.lt_u - (get_local $8) - (i32.load - (i32.const 1224) - ) + (set_local $34 + (get_local $14) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $6 - (i32.add - (get_local $8) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $8) + (i32.load + (i32.const 1224) ) ) - (get_local $9) + (call $qa) ) - (block - (i32.store - (get_local $6) - (get_local $1) - ) - (i32.store - (get_local $12) - (get_local $8) - ) - (set_local $34 + (if + (i32.eq (i32.load - (i32.const 1216) + (tee_local $6 + (i32.add + (get_local $8) + (i32.const 12) + ) + ) + ) + (get_local $9) + ) + (block + (i32.store + (get_local $6) + (get_local $1) + ) + (i32.store + (get_local $12) + (get_local $8) + ) + (set_local $34 + (i32.load + (i32.const 1216) + ) ) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=4 - (get_local $9) - (i32.or - (get_local $3) - (i32.const 3) - ) - ) - (i32.store offset=4 - (tee_local $12 - (i32.add - (get_local $9) + (i32.store offset=4 + (get_local $9) + (i32.or (get_local $3) + (i32.const 3) ) ) - (i32.or - (tee_local $8 - (i32.sub - (i32.shl - (get_local $16) - (i32.const 3) - ) + (i32.store offset=4 + (tee_local $12 + (i32.add + (get_local $9) (get_local $3) ) ) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $12) - (get_local $8) - ) - (get_local $8) - ) - (if - (get_local $34) - (block - (set_local $1 - (i32.load - (i32.const 1228) - ) - ) - (set_local $4 - (i32.add - (i32.shl - (tee_local $14 - (i32.shr_u - (get_local $34) - (i32.const 3) - ) + (i32.or + (tee_local $8 + (i32.sub + (i32.shl + (get_local $16) + (i32.const 3) ) - (i32.const 3) + (get_local $3) ) - (i32.const 1248) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $0 - (i32.load - (i32.const 1208) - ) + ) + (i32.store + (i32.add + (get_local $12) + (get_local $8) + ) + (get_local $8) + ) + (if + (get_local $34) + (block + (set_local $1 + (i32.load + (i32.const 1228) ) - (tee_local $5 + ) + (set_local $4 + (i32.add (i32.shl - (i32.const 1) - (get_local $14) + (tee_local $14 + (i32.shr_u + (get_local $34) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $0 (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $5 + (i32.shl + (i32.const 1) + (get_local $14) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $5 + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $40 + (get_local $5) + ) + (set_local $35 + (get_local $0) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $0) + (get_local $5) + ) + ) (set_local $40 - (get_local $5) + (i32.add + (get_local $4) + (i32.const 8) + ) ) (set_local $35 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $0) - (get_local $5) - ) - ) - (set_local $40 - (i32.add (get_local $4) - (i32.const 8) ) ) - (set_local $35 - (get_local $4) - ) ) - ) - (i32.store - (get_local $40) - (get_local $1) - ) - (i32.store offset=12 - (get_local $35) - (get_local $1) - ) - (i32.store offset=8 - (get_local $1) - (get_local $35) - ) - (i32.store offset=12 - (get_local $1) - (get_local $4) + (i32.store + (get_local $40) + (get_local $1) + ) + (i32.store offset=12 + (get_local $35) + (get_local $1) + ) + (i32.store offset=8 + (get_local $1) + (get_local $35) + ) + (i32.store offset=12 + (get_local $1) + (get_local $4) + ) ) ) - ) - (i32.store - (i32.const 1216) - (get_local $8) - ) - (i32.store - (i32.const 1228) - (get_local $12) - ) - (set_global $r - (get_local $25) - ) - (return - (get_local $7) + (i32.store + (i32.const 1216) + (get_local $8) + ) + (i32.store + (i32.const 1228) + (get_local $12) + ) + (set_global $r + (get_local $25) + ) + (return + (get_local $7) + ) ) ) - ) - (if - (tee_local $12 - (i32.load - (i32.const 1212) + (if + (tee_local $12 + (i32.load + (i32.const 1212) + ) ) - ) - (block - (set_local $12 - (i32.and - (i32.shr_u - (tee_local $8 - (i32.add - (i32.and - (get_local $12) - (i32.sub - (i32.const 0) + (block + (set_local $12 + (i32.and + (i32.shr_u + (tee_local $8 + (i32.add + (i32.and (get_local $12) + (i32.sub + (i32.const 0) + (get_local $12) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $0 - (i32.sub - (i32.and - (i32.load offset=4 - (tee_local $14 - (i32.load - (i32.add - (i32.shl - (i32.add - (i32.or + (set_local $0 + (i32.sub + (i32.and + (i32.load offset=4 + (tee_local $14 + (i32.load + (i32.add + (i32.shl + (i32.add (i32.or (i32.or (i32.or - (tee_local $8 + (i32.or + (tee_local $8 + (i32.and + (i32.shr_u + (tee_local $4 + (i32.shr_u + (get_local $8) + (get_local $12) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $12) + ) + (tee_local $4 (i32.and (i32.shr_u - (tee_local $4 + (tee_local $1 (i32.shr_u + (get_local $4) (get_local $8) - (get_local $12) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $12) ) - (tee_local $4 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u + (get_local $1) (get_local $4) - (get_local $8) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $5 (i32.shr_u + (get_local $0) (get_local $1) - (get_local $4) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (tee_local $5 - (i32.shr_u - (get_local $0) - (get_local $1) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $5) + (get_local $0) + ) ) - (i32.shr_u - (get_local $5) - (get_local $0) - ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) - ) - (set_local $5 - (get_local $14) - ) - (set_local $1 - (get_local $14) - ) - (loop $while-in - (block $while-out - (if - (tee_local $14 - (i32.load offset=16 - (get_local $5) - ) - ) - (set_local $6 - (get_local $14) - ) + (set_local $5 + (get_local $14) + ) + (set_local $1 + (get_local $14) + ) + (loop $while-in + (block $while-out (if - (tee_local $4 - (i32.load offset=20 + (tee_local $14 + (i32.load offset=16 (get_local $5) ) ) (set_local $6 - (get_local $4) + (get_local $14) ) - (block + (if + (tee_local $4 + (i32.load offset=20 + (get_local $5) + ) + ) (set_local $6 - (get_local $0) + (get_local $4) ) - (set_local $2 - (get_local $1) + (block + (set_local $6 + (get_local $0) + ) + (set_local $2 + (get_local $1) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (set_local $4 - (i32.lt_u - (tee_local $14 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $6) + (set_local $4 + (i32.lt_u + (tee_local $14 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $6) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) + (get_local $0) ) - (get_local $0) ) - ) - (set_local $0 - (select - (get_local $14) - (get_local $0) - (get_local $4) + (set_local $0 + (select + (get_local $14) + (get_local $0) + (get_local $4) + ) ) - ) - (set_local $5 - (get_local $6) - ) - (set_local $1 - (select + (set_local $5 (get_local $6) - (get_local $1) - (get_local $4) ) - ) - (br $while-in) - ) - ) - (if - (i32.lt_u - (get_local $2) - (tee_local $1 - (i32.load - (i32.const 1224) + (set_local $1 + (select + (get_local $6) + (get_local $1) + (get_local $4) + ) ) + (br $while-in) ) ) - (call $qa) - ) - (if - (i32.ge_u - (get_local $2) - (tee_local $5 - (i32.add - (get_local $2) - (get_local $3) + (if + (i32.lt_u + (get_local $2) + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (set_local $0 - (i32.load offset=24 - (get_local $2) - ) - ) - (block $do-once4 (if - (i32.eq - (tee_local $7 - (i32.load offset=12 + (i32.ge_u + (get_local $2) + (tee_local $5 + (i32.add (get_local $2) + (get_local $3) ) ) + ) + (call $qa) + ) + (set_local $0 + (i32.load offset=24 (get_local $2) ) - (block - (if - (tee_local $16 - (i32.load - (tee_local $9 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) - ) - ) - (block - (set_local $14 - (get_local $16) - ) - (set_local $4 - (get_local $9) - ) - ) - (if - (i32.eqz - (tee_local $14 - (i32.load - (tee_local $4 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - ) - ) - ) - (block - (set_local $23 - (i32.const 0) - ) - (br $do-once4) + ) + (block $do-once4 + (if + (i32.eq + (tee_local $7 + (i32.load offset=12 + (get_local $2) ) ) + (get_local $2) ) - (loop $while-in7 + (block (if (tee_local $16 (i32.load (tee_local $9 (i32.add - (get_local $14) + (get_local $2) (i32.const 20) ) ) @@ -941,702 +901,744 @@ (set_local $4 (get_local $9) ) - (br $while-in7) + ) + (if + (i32.eqz + (tee_local $14 + (i32.load + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 16) + ) + ) + ) + ) + ) + (block + (set_local $23 + (i32.const 0) + ) + (br $do-once4) + ) ) ) - (if - (tee_local $16 - (i32.load - (tee_local $9 - (i32.add - (get_local $14) - (i32.const 16) + (loop $while-in7 + (if + (tee_local $16 + (i32.load + (tee_local $9 + (i32.add + (get_local $14) + (i32.const 20) + ) ) ) ) + (block + (set_local $14 + (get_local $16) + ) + (set_local $4 + (get_local $9) + ) + (br $while-in7) + ) ) - (block - (set_local $14 - (get_local $16) + (if + (tee_local $16 + (i32.load + (tee_local $9 + (i32.add + (get_local $14) + (i32.const 16) + ) + ) + ) ) - (set_local $4 - (get_local $9) + (block + (set_local $14 + (get_local $16) + ) + (set_local $4 + (get_local $9) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (get_local $4) - (get_local $1) - ) - (call $qa) - (block - (i32.store + (if + (i32.lt_u (get_local $4) - (i32.const 0) - ) - (set_local $23 - (get_local $14) + (get_local $1) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $9 - (i32.load offset=8 - (get_local $2) + (call $qa) + (block + (i32.store + (get_local $4) + (i32.const 0) + ) + (set_local $23 + (get_local $14) ) ) - (get_local $1) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $16 - (i32.add - (get_local $9) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $9 + (i32.load offset=8 + (get_local $2) ) ) + (get_local $1) ) - (get_local $2) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $4 - (i32.add - (get_local $7) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $16 + (i32.add + (get_local $9) + (i32.const 12) + ) ) ) + (get_local $2) ) - (get_local $2) + (call $qa) ) - (block - (i32.store - (get_local $16) - (get_local $7) - ) - (i32.store - (get_local $4) - (get_local $9) + (if + (i32.eq + (i32.load + (tee_local $4 + (i32.add + (get_local $7) + (i32.const 8) + ) + ) + ) + (get_local $2) ) - (set_local $23 - (get_local $7) + (block + (i32.store + (get_local $16) + (get_local $7) + ) + (i32.store + (get_local $4) + (get_local $9) + ) + (set_local $23 + (get_local $7) + ) ) + (call $qa) ) - (call $qa) ) ) ) - ) - (block $do-once8 - (if - (get_local $0) - (block - (if - (i32.eq - (get_local $2) - (i32.load - (tee_local $1 - (i32.add - (i32.shl - (tee_local $7 - (i32.load offset=28 - (get_local $2) + (block $do-once8 + (if + (get_local $0) + (block + (if + (i32.eq + (get_local $2) + (i32.load + (tee_local $1 + (i32.add + (i32.shl + (tee_local $7 + (i32.load offset=28 + (get_local $2) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) - ) - (block - (i32.store - (get_local $1) - (get_local $23) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $1) (get_local $23) ) - (block - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $7) + (if + (i32.eqz + (get_local $23) + ) + (block + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $7) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 1224) + (block + (if + (i32.lt_u + (get_local $0) + (i32.load + (i32.const 1224) + ) ) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $7 - (i32.add - (get_local $0) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $7 + (i32.add + (get_local $0) + (i32.const 16) + ) ) ) + (get_local $2) + ) + (i32.store + (get_local $7) + (get_local $23) + ) + (i32.store offset=20 + (get_local $0) + (get_local $23) ) - (get_local $2) - ) - (i32.store - (get_local $7) - (get_local $23) - ) - (i32.store offset=20 - (get_local $0) - (get_local $23) ) - ) - (br_if $do-once8 - (i32.eqz - (get_local $23) + (br_if $do-once8 + (i32.eqz + (get_local $23) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $23) - (tee_local $7 - (i32.load - (i32.const 1224) + (if + (i32.lt_u + (get_local $23) + (tee_local $7 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (i32.store offset=24 - (get_local $23) - (get_local $0) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $2) - ) + (i32.store offset=24 + (get_local $23) + (get_local $0) ) (if - (i32.lt_u - (get_local $1) - (get_local $7) + (tee_local $1 + (i32.load offset=16 + (get_local $2) + ) ) - (call $qa) - (block - (i32.store offset=16 - (get_local $23) + (if + (i32.lt_u (get_local $1) + (get_local $7) ) - (i32.store offset=24 - (get_local $1) - (get_local $23) + (call $qa) + (block + (i32.store offset=16 + (get_local $23) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $23) + ) ) ) ) - ) - (if - (tee_local $1 - (i32.load offset=20 - (get_local $2) - ) - ) (if - (i32.lt_u - (get_local $1) - (i32.load - (i32.const 1224) + (tee_local $1 + (i32.load offset=20 + (get_local $2) ) ) - (call $qa) - (block - (i32.store offset=20 - (get_local $23) + (if + (i32.lt_u (get_local $1) + (i32.load + (i32.const 1224) + ) ) - (i32.store offset=24 - (get_local $1) - (get_local $23) + (call $qa) + (block + (i32.store offset=20 + (get_local $23) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $23) + ) ) ) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $6) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $2) - (i32.or - (tee_local $0 - (i32.add - (get_local $6) - (get_local $3) + (if + (i32.lt_u + (get_local $6) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $2) + (i32.or + (tee_local $0 + (i32.add + (get_local $6) + (get_local $3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $1 - (i32.add + (i32.store + (tee_local $1 (i32.add - (get_local $2) - (get_local $0) + (i32.add + (get_local $2) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $1) + (i32.or + (i32.load + (get_local $1) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 3) - ) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $6) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $3) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $5) - (get_local $6) + (i32.or + (get_local $6) + (i32.const 1) + ) ) - (get_local $6) - ) - (if - (tee_local $1 - (i32.load - (i32.const 1216) + (i32.store + (i32.add + (get_local $5) + (get_local $6) ) + (get_local $6) ) - (block - (set_local $0 + (if + (tee_local $1 (i32.load - (i32.const 1228) + (i32.const 1216) ) ) - (set_local $1 - (i32.add - (i32.shl - (tee_local $7 - (i32.shr_u - (get_local $1) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (set_local $0 + (i32.load + (i32.const 1228) ) - (i32.const 1248) ) - ) - (if - (i32.and - (tee_local $9 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $4 + (set_local $1 + (i32.add (i32.shl - (i32.const 1) - (get_local $7) + (tee_local $7 + (i32.shr_u + (get_local $1) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $9 (i32.load - (tee_local $4 - (i32.add - (get_local $1) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $4 + (i32.shl + (i32.const 1) + (get_local $7) + ) + ) + ) + (if + (i32.lt_u + (tee_local $9 + (i32.load + (tee_local $4 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $41 + (get_local $4) + ) + (set_local $27 + (get_local $9) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $9) + (get_local $4) + ) + ) (set_local $41 - (get_local $4) + (i32.add + (get_local $1) + (i32.const 8) + ) ) (set_local $27 - (get_local $9) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $9) - (get_local $4) - ) - ) - (set_local $41 - (i32.add (get_local $1) - (i32.const 8) ) ) - (set_local $27 - (get_local $1) - ) ) - ) - (i32.store - (get_local $41) - (get_local $0) - ) - (i32.store offset=12 - (get_local $27) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $27) - ) - (i32.store offset=12 - (get_local $0) - (get_local $1) + (i32.store + (get_local $41) + (get_local $0) + ) + (i32.store offset=12 + (get_local $27) + (get_local $0) + ) + (i32.store offset=8 + (get_local $0) + (get_local $27) + ) + (i32.store offset=12 + (get_local $0) + (get_local $1) + ) ) ) + (i32.store + (i32.const 1216) + (get_local $6) + ) + (i32.store + (i32.const 1228) + (get_local $5) + ) ) - (i32.store - (i32.const 1216) - (get_local $6) - ) - (i32.store - (i32.const 1228) - (get_local $5) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.add + (get_local $2) + (i32.const 8) ) ) ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) - ) + (set_local $5 + (get_local $3) ) ) - (set_local $5 - (get_local $3) - ) ) + (set_local $5 + (get_local $3) + ) + ) + ) + (if + (i32.gt_u + (get_local $0) + (i32.const -65) ) (set_local $5 - (get_local $3) + (i32.const -1) ) - ) - ) - (if - (i32.gt_u - (get_local $0) - (i32.const -65) - ) - (set_local $5 - (i32.const -1) - ) - (block - (set_local $0 - (i32.and - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 11) + (block + (set_local $0 + (i32.and + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 11) + ) ) - ) - (i32.const -8) - ) - ) - (if - (tee_local $9 - (i32.load - (i32.const 1212) + (i32.const -8) ) ) - (block - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $0) + (if + (tee_local $9 + (i32.load + (i32.const 1212) ) ) - (block $label$break$a - (if - (tee_local $12 - (i32.load - (i32.add - (i32.shl - (tee_local $27 - (if (result i32) - (tee_local $7 - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - ) + (block + (set_local $4 + (i32.sub + (i32.const 0) + (get_local $0) + ) + ) + (block $label$break$a + (if + (tee_local $12 + (i32.load + (i32.add + (i32.shl + (tee_local $27 (if (result i32) - (i32.gt_u - (get_local $0) - (i32.const 16777215) + (tee_local $7 + (i32.shr_u + (get_local $1) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $0) - (i32.add - (tee_local $12 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $0) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $0) + (i32.add + (tee_local $12 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $7 - (i32.and - (i32.shr_u - (i32.add - (tee_local $16 - (i32.shl - (get_local $7) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (get_local $7) - (i32.const 1048320) + (i32.or + (tee_local $7 + (i32.and + (i32.shr_u + (i32.add + (tee_local $16 + (i32.shl + (get_local $7) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (get_local $7) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $1) ) - (get_local $1) - ) - (tee_local $16 - (i32.and - (i32.shr_u - (i32.add - (tee_local $14 - (i32.shl - (get_local $16) - (get_local $7) + (tee_local $16 + (i32.and + (i32.shr_u + (i32.add + (tee_local $14 + (i32.shl + (get_local $16) + (get_local $7) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $14) - (get_local $16) + (i32.shr_u + (i32.shl + (get_local $14) + (get_local $16) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $12) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $12) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) - ) - (block - (set_local $16 - (get_local $4) - ) - (set_local $14 - (i32.const 0) - ) - (set_local $1 - (i32.shl - (get_local $0) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block + (set_local $16 + (get_local $4) + ) + (set_local $14 + (i32.const 0) + ) + (set_local $1 + (i32.shl + (get_local $0) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $27) + (i32.const 1) + ) + ) + (i32.eq (get_local $27) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $27) - (i32.const 31) - ) ) ) - ) - (set_local $7 - (get_local $12) - ) - (set_local $8 - (i32.const 0) - ) - (loop $while-in14 - (if - (i32.lt_u - (tee_local $12 - (i32.sub - (tee_local $3 - (i32.and - (i32.load offset=4 - (get_local $7) + (set_local $7 + (get_local $12) + ) + (set_local $8 + (i32.const 0) + ) + (loop $while-in14 + (if + (i32.lt_u + (tee_local $12 + (i32.sub + (tee_local $3 + (i32.and + (i32.load offset=4 + (get_local $7) + ) + (i32.const -8) ) - (i32.const -8) ) + (get_local $0) ) - (get_local $0) ) + (get_local $16) ) - (get_local $16) - ) - (if - (i32.eq - (get_local $3) - (get_local $0) - ) - (block - (set_local $29 - (get_local $12) - ) - (set_local $28 - (get_local $7) - ) - (set_local $32 - (get_local $7) - ) - (set_local $7 - (i32.const 90) + (if + (i32.eq + (get_local $3) + (get_local $0) ) - (br $label$break$a) - ) - (block - (set_local $16 - (get_local $12) + (block + (set_local $29 + (get_local $12) + ) + (set_local $28 + (get_local $7) + ) + (set_local $32 + (get_local $7) + ) + (set_local $7 + (i32.const 90) + ) + (br $label$break$a) ) - (set_local $8 - (get_local $7) + (block + (set_local $16 + (get_local $12) + ) + (set_local $8 + (get_local $7) + ) ) ) ) - ) - (set_local $3 - (select - (get_local $14) - (tee_local $12 - (i32.load offset=20 - (get_local $7) - ) - ) - (i32.or - (i32.eqz - (get_local $12) + (set_local $3 + (select + (get_local $14) + (tee_local $12 + (i32.load offset=20 + (get_local $7) + ) ) - (i32.eq - (get_local $12) - (tee_local $7 - (i32.load - (i32.add + (i32.or + (i32.eqz + (get_local $12) + ) + (i32.eq + (get_local $12) + (tee_local $7 + (i32.load (i32.add - (get_local $7) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) + (i32.add + (get_local $7) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -1644,419 +1646,376 @@ ) ) ) - ) - (if - (tee_local $12 - (i32.eqz - (get_local $7) - ) - ) - (block - (set_local $36 - (get_local $16) - ) - (set_local $5 - (get_local $3) - ) - (set_local $33 - (get_local $8) - ) - (set_local $7 - (i32.const 86) + (if + (tee_local $12 + (i32.eqz + (get_local $7) + ) ) - ) - (block - (set_local $14 - (get_local $3) + (block + (set_local $36 + (get_local $16) + ) + (set_local $5 + (get_local $3) + ) + (set_local $33 + (get_local $8) + ) + (set_local $7 + (i32.const 86) + ) ) - (set_local $1 - (i32.shl - (get_local $1) - (i32.xor - (i32.and - (get_local $12) + (block + (set_local $14 + (get_local $3) + ) + (set_local $1 + (i32.shl + (get_local $1) + (i32.xor + (i32.and + (get_local $12) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) ) ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block - (set_local $36 - (get_local $4) - ) - (set_local $5 - (i32.const 0) - ) - (set_local $33 - (i32.const 0) - ) - (set_local $7 - (i32.const 86) + (block + (set_local $36 + (get_local $4) + ) + (set_local $5 + (i32.const 0) + ) + (set_local $33 + (i32.const 0) + ) + (set_local $7 + (i32.const 86) + ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 86) - ) (if - (tee_local $3 - (if (result i32) - (i32.and - (i32.eqz - (get_local $5) - ) - (i32.eqz - (get_local $33) - ) - ) - (block (result i32) - (if + (i32.eq + (get_local $7) + (i32.const 86) + ) + (if + (tee_local $3 + (if (result i32) + (i32.and (i32.eqz - (tee_local $4 - (i32.and - (get_local $9) - (i32.or - (tee_local $12 - (i32.shl - (i32.const 2) - (get_local $27) + (get_local $5) + ) + (i32.eqz + (get_local $33) + ) + ) + (block (result i32) + (if + (i32.eqz + (tee_local $4 + (i32.and + (get_local $9) + (i32.or + (tee_local $12 + (i32.shl + (i32.const 2) + (get_local $27) + ) + ) + (i32.sub + (i32.const 0) + (get_local $12) ) - ) - (i32.sub - (i32.const 0) - (get_local $12) ) ) ) ) - ) - (block - (set_local $5 - (get_local $0) + (block + (set_local $5 + (get_local $0) + ) + (br $do-once) ) - (br $do-once) ) - ) - (set_local $4 - (i32.and - (i32.shr_u - (tee_local $12 - (i32.add - (i32.and - (get_local $4) - (i32.sub - (i32.const 0) + (set_local $4 + (i32.and + (i32.shr_u + (tee_local $12 + (i32.add + (i32.and (get_local $4) + (i32.sub + (i32.const 0) + (get_local $4) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (i32.load - (i32.add - (i32.shl - (i32.add - (i32.or + (i32.load + (i32.add + (i32.shl + (i32.add (i32.or (i32.or (i32.or - (tee_local $12 + (i32.or + (tee_local $12 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.shr_u + (get_local $12) + (get_local $4) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $4) + ) + (tee_local $3 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u + (get_local $3) (get_local $12) - (get_local $4) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $4) ) - (tee_local $3 + (tee_local $5 (i32.and (i32.shr_u - (tee_local $5 + (tee_local $8 (i32.shr_u + (get_local $5) (get_local $3) - (get_local $12) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $5 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $8 + (tee_local $1 (i32.shr_u + (get_local $8) (get_local $5) - (get_local $3) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $8 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.shr_u - (get_local $8) - (get_local $5) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $1) + (get_local $8) + ) ) - (i32.shr_u - (get_local $1) - (get_local $8) - ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) + (get_local $5) ) - (get_local $5) ) - ) - (block - (set_local $29 - (get_local $36) - ) - (set_local $28 - (get_local $3) - ) - (set_local $32 - (get_local $33) - ) - (set_local $7 - (i32.const 90) - ) - ) - (block - (set_local $18 - (get_local $36) + (block + (set_local $29 + (get_local $36) + ) + (set_local $28 + (get_local $3) + ) + (set_local $32 + (get_local $33) + ) + (set_local $7 + (i32.const 90) + ) ) - (set_local $10 - (get_local $33) + (block + (set_local $18 + (get_local $36) + ) + (set_local $10 + (get_local $33) + ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 90) - ) - (loop $while-in16 - (set_local $7 - (i32.const 0) + (if + (i32.eq + (get_local $7) + (i32.const 90) ) - (set_local $1 - (i32.lt_u - (tee_local $8 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $28) + (loop $while-in16 + (set_local $7 + (i32.const 0) + ) + (set_local $1 + (i32.lt_u + (tee_local $8 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $28) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $0) ) - (get_local $0) ) + (get_local $29) ) - (get_local $29) - ) - ) - (set_local $5 - (select - (get_local $8) - (get_local $29) - (get_local $1) - ) - ) - (set_local $8 - (select - (get_local $28) - (get_local $32) - (get_local $1) ) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $28) - ) - ) - (block - (set_local $29 - (get_local $5) - ) - (set_local $28 - (get_local $1) - ) - (set_local $32 + (set_local $5 + (select (get_local $8) + (get_local $29) + (get_local $1) ) - (br $while-in16) ) - ) - (if - (tee_local $28 - (i32.load offset=20 + (set_local $8 + (select (get_local $28) + (get_local $32) + (get_local $1) ) ) - (block - (set_local $29 - (get_local $5) + (if + (tee_local $1 + (i32.load offset=16 + (get_local $28) + ) ) - (set_local $32 - (get_local $8) + (block + (set_local $29 + (get_local $5) + ) + (set_local $28 + (get_local $1) + ) + (set_local $32 + (get_local $8) + ) + (br $while-in16) ) - (br $while-in16) ) - (block - (set_local $18 - (get_local $5) + (if + (tee_local $28 + (i32.load offset=20 + (get_local $28) + ) ) - (set_local $10 - (get_local $8) + (block + (set_local $29 + (get_local $5) + ) + (set_local $32 + (get_local $8) + ) + (br $while-in16) + ) + (block + (set_local $18 + (get_local $5) + ) + (set_local $10 + (get_local $8) + ) ) ) ) ) - ) - (if - (get_local $10) (if - (i32.lt_u - (get_local $18) - (i32.sub - (i32.load - (i32.const 1216) - ) - (get_local $0) - ) - ) - (block - (if - (i32.lt_u - (get_local $10) - (tee_local $9 - (i32.load - (i32.const 1224) - ) + (get_local $10) + (if + (i32.lt_u + (get_local $18) + (i32.sub + (i32.load + (i32.const 1216) ) + (get_local $0) ) - (call $qa) ) - (if - (i32.ge_u - (get_local $10) - (tee_local $8 - (i32.add - (get_local $10) - (get_local $0) + (block + (if + (i32.lt_u + (get_local $10) + (tee_local $9 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (set_local $5 - (i32.load offset=24 - (get_local $10) - ) - ) - (block $do-once17 (if - (i32.eq - (tee_local $1 - (i32.load offset=12 + (i32.ge_u + (get_local $10) + (tee_local $8 + (i32.add (get_local $10) + (get_local $0) ) ) + ) + (call $qa) + ) + (set_local $5 + (i32.load offset=24 (get_local $10) ) - (block - (if - (tee_local $4 - (i32.load - (tee_local $3 - (i32.add - (get_local $10) - (i32.const 20) - ) - ) - ) - ) - (block - (set_local $14 - (get_local $4) - ) - (set_local $1 - (get_local $3) - ) - ) - (if - (tee_local $14 - (i32.load - (tee_local $12 - (i32.add - (get_local $10) - (i32.const 16) - ) - ) - ) - ) - (set_local $1 - (get_local $12) - ) - (block - (set_local $22 - (i32.const 0) - ) - (br $do-once17) + ) + (block $do-once17 + (if + (i32.eq + (tee_local $1 + (i32.load offset=12 + (get_local $10) ) ) + (get_local $10) ) - (loop $while-in20 + (block (if (tee_local $4 (i32.load (tee_local $3 (i32.add - (get_local $14) + (get_local $10) (i32.const 20) ) ) @@ -2069,698 +2028,615 @@ (set_local $1 (get_local $3) ) - (br $while-in20) + ) + (if + (tee_local $14 + (i32.load + (tee_local $12 + (i32.add + (get_local $10) + (i32.const 16) + ) + ) + ) + ) + (set_local $1 + (get_local $12) + ) + (block + (set_local $22 + (i32.const 0) + ) + (br $do-once17) + ) ) ) - (if - (tee_local $4 - (i32.load - (tee_local $3 - (i32.add - (get_local $14) - (i32.const 16) + (loop $while-in20 + (if + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $14) + (i32.const 20) + ) ) ) ) + (block + (set_local $14 + (get_local $4) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in20) + ) ) - (block - (set_local $14 - (get_local $4) + (if + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $14) + (i32.const 16) + ) + ) + ) ) - (set_local $1 - (get_local $3) + (block + (set_local $14 + (get_local $4) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (get_local $1) - (get_local $9) - ) - (call $qa) - (block - (i32.store + (if + (i32.lt_u (get_local $1) - (i32.const 0) - ) - (set_local $22 - (get_local $14) + (get_local $9) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $3 - (i32.load offset=8 - (get_local $10) + (call $qa) + (block + (i32.store + (get_local $1) + (i32.const 0) + ) + (set_local $22 + (get_local $14) ) ) - (get_local $9) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $4 - (i32.add - (get_local $3) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $3 + (i32.load offset=8 + (get_local $10) ) ) + (get_local $9) ) - (get_local $10) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $12 - (i32.add - (get_local $1) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $4 + (i32.add + (get_local $3) + (i32.const 12) + ) ) ) + (get_local $10) ) - (get_local $10) + (call $qa) ) - (block - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store - (get_local $12) - (get_local $3) + (if + (i32.eq + (i32.load + (tee_local $12 + (i32.add + (get_local $1) + (i32.const 8) + ) + ) + ) + (get_local $10) ) - (set_local $22 - (get_local $1) + (block + (i32.store + (get_local $4) + (get_local $1) + ) + (i32.store + (get_local $12) + (get_local $3) + ) + (set_local $22 + (get_local $1) + ) ) + (call $qa) ) - (call $qa) ) ) ) - ) - (block $do-once21 - (if - (get_local $5) - (block - (if - (i32.eq - (get_local $10) - (i32.load - (tee_local $9 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $10) + (block $do-once21 + (if + (get_local $5) + (block + (if + (i32.eq + (get_local $10) + (i32.load + (tee_local $9 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $10) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) - ) - (block - (i32.store - (get_local $9) - (get_local $22) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $9) (get_local $22) ) - (block - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $22) + ) + (block + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (get_local $5) - (i32.load - (i32.const 1224) + (block + (if + (i32.lt_u + (get_local $5) + (i32.load + (i32.const 1224) + ) ) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $5) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $5) + (i32.const 16) + ) ) ) + (get_local $10) + ) + (i32.store + (get_local $1) + (get_local $22) + ) + (i32.store offset=20 + (get_local $5) + (get_local $22) ) - (get_local $10) - ) - (i32.store - (get_local $1) - (get_local $22) - ) - (i32.store offset=20 - (get_local $5) - (get_local $22) ) - ) - (br_if $do-once21 - (i32.eqz - (get_local $22) + (br_if $do-once21 + (i32.eqz + (get_local $22) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $22) - (tee_local $1 - (i32.load - (i32.const 1224) + (if + (i32.lt_u + (get_local $22) + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (i32.store offset=24 - (get_local $22) - (get_local $5) - ) - (if - (tee_local $9 - (i32.load offset=16 - (get_local $10) - ) + (i32.store offset=24 + (get_local $22) + (get_local $5) ) (if - (i32.lt_u - (get_local $9) - (get_local $1) + (tee_local $9 + (i32.load offset=16 + (get_local $10) + ) ) - (call $qa) - (block - (i32.store offset=16 - (get_local $22) + (if + (i32.lt_u (get_local $9) + (get_local $1) ) - (i32.store offset=24 - (get_local $9) - (get_local $22) + (call $qa) + (block + (i32.store offset=16 + (get_local $22) + (get_local $9) + ) + (i32.store offset=24 + (get_local $9) + (get_local $22) + ) ) ) ) - ) - (if - (tee_local $9 - (i32.load offset=20 - (get_local $10) - ) - ) (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 1224) + (tee_local $9 + (i32.load offset=20 + (get_local $10) ) ) - (call $qa) - (block - (i32.store offset=20 - (get_local $22) + (if + (i32.lt_u (get_local $9) + (i32.load + (i32.const 1224) + ) ) - (i32.store offset=24 - (get_local $9) - (get_local $22) + (call $qa) + (block + (i32.store offset=20 + (get_local $22) + (get_local $9) + ) + (i32.store offset=24 + (get_local $9) + (get_local $22) + ) ) ) ) ) ) ) - ) - (block $do-once25 - (if - (i32.lt_u - (get_local $18) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $10) - (i32.or - (tee_local $5 - (i32.add - (get_local $18) - (get_local $0) + (block $do-once25 + (if + (i32.lt_u + (get_local $18) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $10) + (i32.or + (tee_local $5 + (i32.add + (get_local $18) + (get_local $0) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $9 - (i32.add + (i32.store + (tee_local $9 (i32.add - (get_local $10) - (get_local $5) + (i32.add + (get_local $10) + (get_local $5) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $9) + (i32.or + (i32.load + (get_local $9) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (get_local $10) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $18) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $10) + (i32.or + (get_local $0) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) - (get_local $18) + (i32.or + (get_local $18) + (i32.const 1) + ) ) - (get_local $18) - ) - (set_local $9 - (i32.shr_u + (i32.store + (i32.add + (get_local $8) + (get_local $18) + ) (get_local $18) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $18) - (i32.const 256) + (set_local $9 + (i32.shr_u + (get_local $18) + (i32.const 3) + ) ) - (block - (set_local $5 - (i32.add - (i32.shl - (get_local $9) - (i32.const 3) - ) - (i32.const 1248) - ) + (if + (i32.lt_u + (get_local $18) + (i32.const 256) ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $3 + (block + (set_local $5 + (i32.add (i32.shl - (i32.const 1) (get_local $9) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $1 (i32.load - (tee_local $3 - (i32.add - (get_local $5) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $3 + (i32.shl + (i32.const 1) + (get_local $9) + ) + ) + ) + (if + (i32.lt_u + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (get_local $5) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $19 + (get_local $3) + ) + (set_local $6 + (get_local $1) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $1) + (get_local $3) + ) + ) (set_local $19 - (get_local $3) + (i32.add + (get_local $5) + (i32.const 8) + ) ) (set_local $6 - (get_local $1) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $1) - (get_local $3) - ) - ) - (set_local $19 - (i32.add (get_local $5) - (i32.const 8) ) ) - (set_local $6 - (get_local $5) - ) ) + (i32.store + (get_local $19) + (get_local $8) + ) + (i32.store offset=12 + (get_local $6) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $6) + ) + (i32.store offset=12 + (get_local $8) + (get_local $5) + ) + (br $do-once25) ) - (i32.store - (get_local $19) - (get_local $8) - ) - (i32.store offset=12 - (get_local $6) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $6) - ) - (i32.store offset=12 - (get_local $8) - (get_local $5) - ) - (br $do-once25) ) - ) - (set_local $12 - (i32.add - (i32.shl - (tee_local $16 - (if (result i32) - (tee_local $5 - (i32.shr_u - (get_local $18) - (i32.const 8) - ) - ) + (set_local $12 + (i32.add + (i32.shl + (tee_local $16 (if (result i32) - (i32.gt_u - (get_local $18) - (i32.const 16777215) + (tee_local $5 + (i32.shr_u + (get_local $18) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $18) - (i32.add - (tee_local $12 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $18) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $18) + (i32.add + (tee_local $12 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $5 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $5) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (get_local $5) - (i32.const 1048320) + (i32.or + (tee_local $5 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $5) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (get_local $5) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $1) ) - (get_local $1) - ) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (tee_local $9 - (i32.shl - (get_local $3) - (get_local $5) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (tee_local $9 + (i32.shl + (get_local $3) + (get_local $5) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $9) - (get_local $3) + (i32.shr_u + (i32.shl + (get_local $9) + (get_local $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $12) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $12) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $8) - (get_local $16) - ) - (i32.store offset=4 - (tee_local $3 - (i32.add - (get_local $8) - (i32.const 16) - ) - ) - (i32.const 0) - ) - (i32.store - (get_local $3) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $9 - (i32.shl - (i32.const 1) - (get_local $16) ) + (i32.const 2) ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $3) - (get_local $9) - ) - ) - (i32.store - (get_local $12) - (get_local $8) - ) - (i32.store offset=24 - (get_local $8) - (get_local $12) - ) - (i32.store offset=12 - (get_local $8) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $8) - ) - (br $do-once25) + (i32.store offset=28 + (get_local $8) + (get_local $16) ) - ) - (set_local $9 - (i32.shl - (get_local $18) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $16) - (i32.const 1) - ) - ) - (i32.eq - (get_local $16) - (i32.const 31) + (i32.store offset=4 + (tee_local $3 + (i32.add + (get_local $8) + (i32.const 16) ) ) + (i32.const 0) ) - ) - (set_local $3 - (i32.load - (get_local $12) + (i32.store + (get_local $3) + (i32.const 0) ) - ) - (loop $while-in28 - (block $while-out27 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.const -8) - ) - (get_local $18) - ) - (block - (set_local $17 - (get_local $3) - ) - (set_local $7 - (i32.const 148) - ) - (br $while-out27) - ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $12 - (i32.add - (i32.add - (get_local $3) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $9) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $9 + (tee_local $9 (i32.shl - (get_local $9) (i32.const 1) + (get_local $16) ) ) - (set_local $3 - (get_local $1) - ) - (br $while-in28) ) - (block - (set_local $21 - (get_local $12) - ) - (set_local $15 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $3) + (get_local $9) ) - (set_local $7 - (i32.const 145) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 145) - ) - (if - (i32.lt_u - (get_local $21) - (i32.load - (i32.const 1224) ) - ) - (call $qa) - (block (i32.store - (get_local $21) + (get_local $12) (get_local $8) ) (i32.store offset=24 (get_local $8) - (get_local $15) + (get_local $12) ) (i32.store offset=12 (get_local $8) @@ -2770,375 +2646,449 @@ (get_local $8) (get_local $8) ) + (br $do-once25) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 148) + (set_local $9 + (i32.shl + (get_local $18) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $16) + (i32.const 1) + ) + ) + (i32.eq + (get_local $16) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $9 - (i32.load - (tee_local $3 + ) + (set_local $3 + (i32.load + (get_local $12) + ) + ) + (loop $while-in28 + (block $while-out27 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) + ) + (get_local $18) + ) + (block + (set_local $17 + (get_local $3) + ) + (set_local $7 + (i32.const 148) + ) + (br $while-out27) + ) + ) + (if + (tee_local $1 + (i32.load + (tee_local $12 + (i32.add (i32.add - (get_local $17) - (i32.const 8) + (get_local $3) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $9) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $1 - (i32.load - (i32.const 1224) + ) + (block + (set_local $9 + (i32.shl + (get_local $9) + (i32.const 1) ) ) + (set_local $3 + (get_local $1) + ) + (br $while-in28) ) - (i32.ge_u - (get_local $17) - (get_local $1) + (block + (set_local $21 + (get_local $12) + ) + (set_local $15 + (get_local $3) + ) + (set_local $7 + (i32.const 145) + ) ) ) - (block - (i32.store offset=12 - (get_local $9) - (get_local $8) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 145) + ) + (if + (i32.lt_u + (get_local $21) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $3) + (get_local $21) (get_local $8) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $8) - (get_local $9) + (get_local $15) ) (i32.store offset=12 (get_local $8) - (get_local $17) + (get_local $8) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $8) (get_local $8) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 148) + ) + (if + (i32.and + (i32.ge_u + (tee_local $9 + (i32.load + (tee_local $3 + (i32.add + (get_local $17) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $17) + (get_local $1) + ) + ) + (block + (i32.store offset=12 + (get_local $9) + (get_local $8) + ) + (i32.store + (get_local $3) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $9) + ) + (i32.store offset=12 + (get_local $8) + (get_local $17) + ) + (i32.store offset=24 + (get_local $8) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $10) - (i32.const 8) + (set_global $r + (get_local $25) ) + (return + (i32.add + (get_local $10) + (i32.const 8) + ) + ) + ) + (set_local $5 + (get_local $0) ) ) (set_local $5 (get_local $0) ) ) - (set_local $5 - (get_local $0) - ) ) - ) - (set_local $5 - (get_local $0) + (set_local $5 + (get_local $0) + ) ) ) ) ) ) - ) - (if - (i32.ge_u - (tee_local $10 - (i32.load - (i32.const 1216) - ) - ) - (get_local $5) - ) - (block - (set_local $15 - (i32.load - (i32.const 1228) + (if + (i32.ge_u + (tee_local $10 + (i32.load + (i32.const 1216) + ) ) + (get_local $5) ) - (if - (i32.gt_u - (tee_local $17 - (i32.sub - (get_local $10) - (get_local $5) - ) + (block + (set_local $15 + (i32.load + (i32.const 1228) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 1228) - (tee_local $21 - (i32.add - (get_local $15) + (if + (i32.gt_u + (tee_local $17 + (i32.sub + (get_local $10) (get_local $5) ) ) + (i32.const 15) ) - (i32.store - (i32.const 1216) - (get_local $17) - ) - (i32.store offset=4 - (get_local $21) - (i32.or + (block + (i32.store + (i32.const 1228) + (tee_local $21 + (i32.add + (get_local $15) + (get_local $5) + ) + ) + ) + (i32.store + (i32.const 1216) (get_local $17) - (i32.const 1) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $21) + (i32.or + (get_local $17) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $21) + (get_local $17) + ) (get_local $17) ) - (get_local $17) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $15) + (i32.or + (get_local $5) + (i32.const 3) + ) ) ) - ) - (block - (i32.store - (i32.const 1216) - (i32.const 0) - ) - (i32.store - (i32.const 1228) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $10) - (i32.const 3) + (block + (i32.store + (i32.const 1216) + (i32.const 0) ) - ) - (i32.store - (tee_local $17 - (i32.add + (i32.store + (i32.const 1228) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $15) + (i32.or + (get_local $10) + (i32.const 3) + ) + ) + (i32.store + (tee_local $17 (i32.add - (get_local $15) - (get_local $10) + (i32.add + (get_local $15) + (get_local $10) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $17) + (i32.or + (i32.load + (get_local $17) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $15) - (i32.const 8) - ) + (br $folding-inner0) ) ) - ) - (if - (i32.gt_u - (tee_local $15 - (i32.load - (i32.const 1220) + (if + (i32.gt_u + (tee_local $15 + (i32.load + (i32.const 1220) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (i32.store - (i32.const 1220) - (tee_local $17 - (i32.sub - (get_local $15) - (get_local $5) + (block + (i32.store + (i32.const 1220) + (tee_local $17 + (i32.sub + (get_local $15) + (get_local $5) + ) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $10 - (i32.add - (tee_local $15 - (i32.load - (i32.const 1232) + (i32.store + (i32.const 1232) + (tee_local $10 + (i32.add + (tee_local $15 + (i32.load + (i32.const 1232) + ) ) + (get_local $5) ) - (get_local $5) ) ) - ) - (i32.store offset=4 - (get_local $10) - (i32.or - (get_local $17) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $10) + (i32.or + (get_local $17) + (i32.const 1) + ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add + (i32.store offset=4 (get_local $15) - (i32.const 8) + (i32.or + (get_local $5) + (i32.const 3) + ) ) + (br $folding-inner0) ) ) - ) - (if - (i32.eqz - (i32.load - (i32.const 1680) - ) - ) - (block - (i32.store - (i32.const 1688) - (i32.const 4096) - ) - (i32.store - (i32.const 1684) - (i32.const 4096) - ) - (i32.store - (i32.const 1692) - (i32.const -1) - ) - (i32.store - (i32.const 1696) - (i32.const -1) - ) - (i32.store - (i32.const 1700) - (i32.const 0) - ) - (i32.store - (i32.const 1652) - (i32.const 0) - ) - (i32.store - (get_local $13) - (tee_local $15 - (i32.xor - (i32.and - (get_local $13) - (i32.const -16) - ) - (i32.const 1431655768) - ) + (if + (i32.eqz + (i32.load + (i32.const 1680) ) ) - (i32.store - (i32.const 1680) - (get_local $15) - ) - ) - ) - (set_local $15 - (i32.add - (get_local $5) - (i32.const 48) - ) - ) - (if - (i32.le_u - (tee_local $13 - (i32.and - (tee_local $10 - (i32.add - (tee_local $13 - (i32.load - (i32.const 1688) - ) - ) - (tee_local $17 - (i32.add - (get_local $5) - (i32.const 47) - ) + (block + (i32.store + (i32.const 1688) + (i32.const 4096) + ) + (i32.store + (i32.const 1684) + (i32.const 4096) + ) + (i32.store + (i32.const 1692) + (i32.const -1) + ) + (i32.store + (i32.const 1696) + (i32.const -1) + ) + (i32.store + (i32.const 1700) + (i32.const 0) + ) + (i32.store + (i32.const 1652) + (i32.const 0) + ) + (i32.store + (get_local $13) + (tee_local $15 + (i32.xor + (i32.and + (get_local $13) + (i32.const -16) ) - ) - ) - (tee_local $21 - (i32.sub - (i32.const 0) - (get_local $13) + (i32.const 1431655768) ) ) ) - ) - (get_local $5) - ) - (block - (set_global $r - (get_local $25) - ) - (return - (i32.const 0) + (i32.store + (i32.const 1680) + (get_local $15) + ) ) ) - ) - (if - (tee_local $18 - (i32.load - (i32.const 1648) + (set_local $15 + (i32.add + (get_local $5) + (i32.const 48) ) ) (if - (i32.or - (i32.le_u - (tee_local $6 - (i32.add - (tee_local $16 - (i32.load - (i32.const 1640) + (i32.le_u + (tee_local $13 + (i32.and + (tee_local $10 + (i32.add + (tee_local $13 + (i32.load + (i32.const 1688) + ) + ) + (tee_local $17 + (i32.add + (get_local $5) + (i32.const 47) + ) ) ) - (get_local $13) + ) + (tee_local $21 + (i32.sub + (i32.const 0) + (get_local $13) + ) ) ) - (get_local $16) - ) - (i32.gt_u - (get_local $6) - (get_local $18) ) + (get_local $5) ) (block (set_global $r @@ -3149,270 +3099,306 @@ ) ) ) - ) - (if - (i32.eq - (tee_local $7 - (block $label$break$b (result i32) - (if (result i32) - (i32.and - (i32.load - (i32.const 1652) + (if + (tee_local $18 + (i32.load + (i32.const 1648) + ) + ) + (if + (i32.or + (i32.le_u + (tee_local $6 + (i32.add + (tee_local $16 + (i32.load + (i32.const 1640) + ) + ) + (get_local $13) ) - (i32.const 4) ) - (i32.const 188) - (block (result i32) - (block $label$break$c - (if - (tee_local $18 - (i32.load - (i32.const 1232) - ) - ) - (block - (set_local $6 - (i32.const 1656) + (get_local $16) + ) + (i32.gt_u + (get_local $6) + (get_local $18) + ) + ) + (block + (set_global $r + (get_local $25) + ) + (return + (i32.const 0) + ) + ) + ) + ) + (if + (i32.eq + (tee_local $7 + (block $label$break$b (result i32) + (if (result i32) + (i32.and + (i32.load + (i32.const 1652) + ) + (i32.const 4) + ) + (i32.const 188) + (block (result i32) + (block $label$break$c + (if + (tee_local $18 + (i32.load + (i32.const 1232) + ) ) - (loop $while-in32 - (block $while-out31 - (if - (i32.le_u - (tee_local $16 - (i32.load - (get_local $6) - ) - ) - (get_local $18) - ) + (block + (set_local $6 + (i32.const 1656) + ) + (loop $while-in32 + (block $while-out31 (if - (i32.gt_u - (i32.add - (get_local $16) + (i32.le_u + (tee_local $16 (i32.load - (tee_local $19 - (i32.add - (get_local $6) - (i32.const 4) - ) - ) + (get_local $6) ) ) (get_local $18) ) - (block - (set_local $0 - (get_local $6) + (if + (i32.gt_u + (i32.add + (get_local $16) + (i32.load + (tee_local $19 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + ) + ) + (get_local $18) ) - (set_local $4 - (get_local $19) + (block + (set_local $0 + (get_local $6) + ) + (set_local $4 + (get_local $19) + ) + (br $while-out31) ) - (br $while-out31) ) ) - ) - (br_if $while-in32 - (tee_local $6 - (i32.load offset=8 - (get_local $6) + (br_if $while-in32 + (tee_local $6 + (i32.load offset=8 + (get_local $6) + ) ) ) + (set_local $7 + (i32.const 171) + ) + (br $label$break$c) ) - (set_local $7 - (i32.const 171) - ) - (br $label$break$c) ) - ) - (if - (i32.lt_u - (tee_local $6 - (i32.and - (i32.sub - (get_local $10) - (i32.load - (i32.const 1220) + (if + (i32.lt_u + (tee_local $6 + (i32.and + (i32.sub + (get_local $10) + (i32.load + (i32.const 1220) + ) ) + (get_local $21) ) - (get_local $21) ) + (i32.const 2147483647) ) - (i32.const 2147483647) - ) - (if - (i32.eq - (tee_local $19 - (call $ta - (get_local $6) + (if + (i32.eq + (tee_local $19 + (call $ta + (get_local $6) + ) + ) + (i32.add + (i32.load + (get_local $0) + ) + (i32.load + (get_local $4) + ) ) ) - (i32.add - (i32.load - (get_local $0) + (if + (i32.ne + (get_local $19) + (i32.const -1) ) - (i32.load - (get_local $4) + (block + (set_local $20 + (get_local $19) + ) + (set_local $26 + (get_local $6) + ) + (br $label$break$b + (i32.const 191) + ) ) ) - ) - (if - (i32.ne - (get_local $19) - (i32.const -1) - ) (block - (set_local $20 + (set_local $11 (get_local $19) ) - (set_local $26 + (set_local $2 (get_local $6) ) - (br $label$break$b - (i32.const 191) + (set_local $7 + (i32.const 181) ) ) ) - (block - (set_local $11 - (get_local $19) - ) - (set_local $2 - (get_local $6) - ) - (set_local $7 - (i32.const 181) - ) - ) ) ) - ) - (set_local $7 - (i32.const 171) + (set_local $7 + (i32.const 171) + ) ) ) - ) - (block $do-once33 - (if - (i32.eq - (get_local $7) - (i32.const 171) - ) + (block $do-once33 (if - (i32.ne - (tee_local $18 - (call $ta - (i32.const 0) + (i32.eq + (get_local $7) + (i32.const 171) + ) + (if + (i32.ne + (tee_local $18 + (call $ta + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (set_local $3 - (if (result i32) - (i32.and - (tee_local $19 - (i32.add - (tee_local $6 - (i32.load - (i32.const 1684) + (block + (set_local $3 + (if (result i32) + (i32.and + (tee_local $19 + (i32.add + (tee_local $6 + (i32.load + (i32.const 1684) + ) ) + (i32.const -1) ) - (i32.const -1) + ) + (tee_local $0 + (get_local $18) ) ) - (tee_local $0 - (get_local $18) - ) - ) - (i32.add - (i32.sub - (get_local $13) - (get_local $0) - ) - (i32.and - (i32.add - (get_local $19) + (i32.add + (i32.sub + (get_local $13) (get_local $0) ) - (i32.sub - (i32.const 0) - (get_local $6) + (i32.and + (i32.add + (get_local $19) + (get_local $0) + ) + (i32.sub + (i32.const 0) + (get_local $6) + ) ) ) + (get_local $13) ) - (get_local $13) ) - ) - (set_local $0 - (i32.add - (tee_local $6 - (i32.load - (i32.const 1640) + (set_local $0 + (i32.add + (tee_local $6 + (i32.load + (i32.const 1640) + ) ) - ) - (get_local $3) - ) - ) - (if - (i32.and - (i32.gt_u (get_local $3) - (get_local $5) - ) - (i32.lt_u - (get_local $3) - (i32.const 2147483647) ) ) - (block - (if - (tee_local $19 - (i32.load - (i32.const 1648) - ) + (if + (i32.and + (i32.gt_u + (get_local $3) + (get_local $5) ) - (br_if $do-once33 - (i32.or - (i32.le_u - (get_local $0) - (get_local $6) - ) - (i32.gt_u - (get_local $0) - (get_local $19) - ) - ) + (i32.lt_u + (get_local $3) + (i32.const 2147483647) ) ) - (if - (i32.eq + (block + (if (tee_local $19 - (call $ta - (get_local $3) + (i32.load + (i32.const 1648) ) ) - (get_local $18) - ) - (block - (set_local $20 - (get_local $18) - ) - (set_local $26 - (get_local $3) - ) - (br $label$break$b - (i32.const 191) + (br_if $do-once33 + (i32.or + (i32.le_u + (get_local $0) + (get_local $6) + ) + (i32.gt_u + (get_local $0) + (get_local $19) + ) + ) ) ) - (block - (set_local $11 - (get_local $19) + (if + (i32.eq + (tee_local $19 + (call $ta + (get_local $3) + ) + ) + (get_local $18) ) - (set_local $2 - (get_local $3) + (block + (set_local $20 + (get_local $18) + ) + (set_local $26 + (get_local $3) + ) + (br $label$break$b + (i32.const 191) + ) ) - (set_local $7 - (i32.const 181) + (block + (set_local $11 + (get_local $19) + ) + (set_local $2 + (get_local $3) + ) + (set_local $7 + (i32.const 181) + ) ) ) ) @@ -3421,1058 +3407,1084 @@ ) ) ) - ) - (block $label$break$d - (if - (i32.eq - (get_local $7) - (i32.const 181) - ) - (block - (set_local $19 - (i32.sub - (i32.const 0) - (get_local $2) - ) + (block $label$break$d + (if + (i32.eq + (get_local $7) + (i32.const 181) ) - (if - (i32.and - (i32.gt_u - (get_local $15) + (block + (set_local $19 + (i32.sub + (i32.const 0) (get_local $2) ) + ) + (if (i32.and - (i32.lt_u + (i32.gt_u + (get_local $15) (get_local $2) - (i32.const 2147483647) ) - (i32.ne - (get_local $11) - (i32.const -1) + (i32.and + (i32.lt_u + (get_local $2) + (i32.const 2147483647) + ) + (i32.ne + (get_local $11) + (i32.const -1) + ) ) ) - ) - (if - (i32.lt_u - (tee_local $0 - (i32.and - (i32.add - (i32.sub - (get_local $17) - (get_local $2) - ) - (tee_local $18 - (i32.load - (i32.const 1688) + (if + (i32.lt_u + (tee_local $0 + (i32.and + (i32.add + (i32.sub + (get_local $17) + (get_local $2) + ) + (tee_local $18 + (i32.load + (i32.const 1688) + ) ) ) + (i32.sub + (i32.const 0) + (get_local $18) + ) ) - (i32.sub - (i32.const 0) - (get_local $18) - ) - ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (call $ta - (get_local $0) ) - (i32.const -1) + (i32.const 2147483647) ) - (block - (drop + (if + (i32.eq (call $ta - (get_local $19) + (get_local $0) + ) + (i32.const -1) + ) + (block + (drop + (call $ta + (get_local $19) + ) + ) + (br $label$break$d) + ) + (set_local $1 + (i32.add + (get_local $0) + (get_local $2) ) ) - (br $label$break$d) ) (set_local $1 - (i32.add - (get_local $0) - (get_local $2) - ) + (get_local $2) ) ) (set_local $1 (get_local $2) ) ) - (set_local $1 - (get_local $2) - ) - ) - (if - (i32.ne - (get_local $11) - (i32.const -1) - ) - (block - (set_local $20 + (if + (i32.ne (get_local $11) + (i32.const -1) ) - (set_local $26 - (get_local $1) - ) - (br $label$break$b - (i32.const 191) + (block + (set_local $20 + (get_local $11) + ) + (set_local $26 + (get_local $1) + ) + (br $label$break$b + (i32.const 191) + ) ) ) ) ) ) - ) - (i32.store - (i32.const 1652) - (i32.or - (i32.load - (i32.const 1652) + (i32.store + (i32.const 1652) + (i32.or + (i32.load + (i32.const 1652) + ) + (i32.const 4) ) - (i32.const 4) ) + (i32.const 188) ) - (i32.const 188) ) ) ) - ) - (i32.const 188) - ) - (if - (i32.lt_u - (get_local $13) - (i32.const 2147483647) + (i32.const 188) ) (if - (i32.and - (i32.lt_u - (tee_local $1 - (call $ta - (get_local $13) + (i32.lt_u + (get_local $13) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (tee_local $1 + (call $ta + (get_local $13) + ) ) - ) - (tee_local $13 - (call $ta - (i32.const 0) + (tee_local $13 + (call $ta + (i32.const 0) + ) ) ) - ) - (i32.and - (i32.ne - (get_local $1) - (i32.const -1) - ) - (i32.ne - (get_local $13) - (i32.const -1) - ) - ) - ) - (if - (i32.gt_u - (tee_local $11 - (i32.sub - (get_local $13) + (i32.and + (i32.ne (get_local $1) + (i32.const -1) + ) + (i32.ne + (get_local $13) + (i32.const -1) ) - ) - (i32.add - (get_local $5) - (i32.const 40) ) ) - (block - (set_local $20 - (get_local $1) - ) - (set_local $26 - (get_local $11) + (if + (i32.gt_u + (tee_local $11 + (i32.sub + (get_local $13) + (get_local $1) + ) + ) + (i32.add + (get_local $5) + (i32.const 40) + ) ) - (set_local $7 - (i32.const 191) + (block + (set_local $20 + (get_local $1) + ) + (set_local $26 + (get_local $11) + ) + (set_local $7 + (i32.const 191) + ) ) ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 191) - ) - (block - (i32.store - (i32.const 1640) - (tee_local $11 - (i32.add - (i32.load - (i32.const 1640) - ) - (get_local $26) - ) - ) + (if + (i32.eq + (get_local $7) + (i32.const 191) ) - (if - (i32.gt_u - (get_local $11) - (i32.load - (i32.const 1644) - ) - ) + (block (i32.store - (i32.const 1644) - (get_local $11) + (i32.const 1640) + (tee_local $11 + (i32.add + (i32.load + (i32.const 1640) + ) + (get_local $26) + ) + ) ) - ) - (block $do-once38 (if - (tee_local $11 + (i32.gt_u + (get_local $11) (i32.load - (i32.const 1232) + (i32.const 1644) ) ) - (block - (set_local $2 - (i32.const 1656) + (i32.store + (i32.const 1644) + (get_local $11) + ) + ) + (block $do-once38 + (if + (tee_local $11 + (i32.load + (i32.const 1232) + ) ) - (loop $do-in41 - (block $do-out40 - (if - (i32.eq - (get_local $20) - (i32.add - (tee_local $1 - (i32.load - (get_local $2) + (block + (set_local $2 + (i32.const 1656) + ) + (loop $do-in41 + (block $do-out40 + (if + (i32.eq + (get_local $20) + (i32.add + (tee_local $1 + (i32.load + (get_local $2) + ) ) - ) - (tee_local $17 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 4) + (tee_local $17 + (i32.load + (tee_local $13 + (i32.add + (get_local $2) + (i32.const 4) + ) ) ) ) ) ) - ) - (block - (set_local $48 - (get_local $1) - ) - (set_local $49 - (get_local $13) - ) - (set_local $50 - (get_local $17) - ) - (set_local $51 - (get_local $2) - ) - (set_local $7 - (i32.const 201) + (block + (set_local $48 + (get_local $1) + ) + (set_local $49 + (get_local $13) + ) + (set_local $50 + (get_local $17) + ) + (set_local $51 + (get_local $2) + ) + (set_local $7 + (i32.const 201) + ) + (br $do-out40) ) - (br $do-out40) ) - ) - (br_if $do-in41 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $do-in41 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 201) - ) (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $51) - ) - (i32.const 8) - ) + (i32.eq + (get_local $7) + (i32.const 201) ) (if - (i32.and - (i32.lt_u - (get_local $11) - (get_local $20) - ) - (i32.ge_u - (get_local $11) - (get_local $48) + (i32.eqz + (i32.and + (i32.load offset=12 + (get_local $51) + ) + (i32.const 8) ) ) - (block - (i32.store - (get_local $49) - (i32.add - (get_local $50) - (get_local $26) + (if + (i32.and + (i32.lt_u + (get_local $11) + (get_local $20) ) - ) - (set_local $2 - (i32.add + (i32.ge_u (get_local $11) - (tee_local $17 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $11) - (i32.const 8) + (get_local $48) + ) + ) + (block + (i32.store + (get_local $49) + (i32.add + (get_local $50) + (get_local $26) + ) + ) + (set_local $2 + (i32.add + (get_local $11) + (tee_local $17 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $11) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) ) - ) - (set_local $13 - (i32.add - (i32.sub - (get_local $26) - (get_local $17) - ) - (i32.load - (i32.const 1220) + (set_local $13 + (i32.add + (i32.sub + (get_local $26) + (get_local $17) + ) + (i32.load + (i32.const 1220) + ) ) ) - ) - (i32.store - (i32.const 1232) - (get_local $2) - ) - (i32.store - (i32.const 1220) - (get_local $13) - ) - (i32.store offset=4 - (get_local $2) - (i32.or + (i32.store + (i32.const 1232) + (get_local $2) + ) + (i32.store + (i32.const 1220) (get_local $13) - (i32.const 1) ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $13) + (i32.or + (get_local $13) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $13) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) ) + (br $do-once38) ) - (br $do-once38) ) ) ) - ) - (set_local $14 - (if (result i32) - (i32.lt_u - (get_local $20) - (tee_local $13 - (i32.load - (i32.const 1224) + (set_local $14 + (if (result i32) + (i32.lt_u + (get_local $20) + (tee_local $13 + (i32.load + (i32.const 1224) + ) ) ) - ) - (block (result i32) - (i32.store - (i32.const 1224) + (block (result i32) + (i32.store + (i32.const 1224) + (get_local $20) + ) (get_local $20) ) + (get_local $13) + ) + ) + (set_local $13 + (i32.add (get_local $20) + (get_local $26) ) - (get_local $13) ) - ) - (set_local $13 - (i32.add - (get_local $20) - (get_local $26) + (set_local $2 + (i32.const 1656) ) - ) - (set_local $2 - (i32.const 1656) - ) - (loop $while-in43 - (block $while-out42 - (if - (i32.eq - (i32.load - (get_local $2) - ) - (get_local $13) - ) - (block - (set_local $52 - (get_local $2) - ) - (set_local $42 - (get_local $2) + (loop $while-in43 + (block $while-out42 + (if + (i32.eq + (i32.load + (get_local $2) + ) + (get_local $13) ) - (set_local $7 - (i32.const 209) + (block + (set_local $52 + (get_local $2) + ) + (set_local $42 + (get_local $2) + ) + (set_local $7 + (i32.const 209) + ) + (br $while-out42) ) - (br $while-out42) ) - ) - (br_if $while-in43 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $while-in43 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) + (set_local $30 + (i32.const 1656) + ) ) - (set_local $30 - (i32.const 1656) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 209) ) (if - (i32.and - (i32.load offset=12 - (get_local $42) - ) - (i32.const 8) - ) - (set_local $30 - (i32.const 1656) + (i32.eq + (get_local $7) + (i32.const 209) ) - (block - (i32.store - (get_local $52) - (get_local $20) + (if + (i32.and + (i32.load offset=12 + (get_local $42) + ) + (i32.const 8) ) - (i32.store - (tee_local $2 - (i32.add - (get_local $42) - (i32.const 4) - ) + (set_local $30 + (i32.const 1656) + ) + (block + (i32.store + (get_local $52) + (get_local $20) ) - (i32.add - (i32.load - (get_local $2) + (i32.store + (tee_local $2 + (i32.add + (get_local $42) + (i32.const 4) + ) + ) + (i32.add + (i32.load + (get_local $2) + ) + (get_local $26) ) - (get_local $26) ) - ) - (set_local $17 - (i32.add - (get_local $20) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $20) - (i32.const 8) + (set_local $17 + (i32.add + (get_local $20) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) - ) - (set_local $1 - (i32.add - (get_local $13) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $13) - (i32.const 8) + (set_local $1 + (i32.add + (get_local $13) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $13) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) - ) - (set_local $2 - (i32.add - (get_local $17) - (get_local $5) - ) - ) - (set_local $15 - (i32.sub - (i32.sub - (get_local $1) + (set_local $2 + (i32.add (get_local $17) + (get_local $5) ) - (get_local $5) ) - ) - (i32.store offset=4 - (get_local $17) - (i32.or - (get_local $5) - (i32.const 3) + (set_local $15 + (i32.sub + (i32.sub + (get_local $1) + (get_local $17) + ) + (get_local $5) + ) ) - ) - (block $do-once44 - (if - (i32.eq - (get_local $1) - (get_local $11) + (i32.store offset=4 + (get_local $17) + (i32.or + (get_local $5) + (i32.const 3) ) - (block - (i32.store - (i32.const 1220) - (tee_local $3 - (i32.add - (i32.load - (i32.const 1220) + ) + (block $do-once44 + (if + (i32.eq + (get_local $1) + (get_local $11) + ) + (block + (i32.store + (i32.const 1220) + (tee_local $3 + (i32.add + (i32.load + (i32.const 1220) + ) + (get_local $15) ) - (get_local $15) ) ) - ) - (i32.store - (i32.const 1232) - (get_local $2) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 1) + (i32.store + (i32.const 1232) + (get_local $2) ) - ) - ) - (block - (if - (i32.eq - (get_local $1) - (i32.load - (i32.const 1228) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $3) + (i32.const 1) ) ) - (block - (i32.store - (i32.const 1216) - (tee_local $3 - (i32.add - (i32.load - (i32.const 1216) + ) + (block + (if + (i32.eq + (get_local $1) + (i32.load + (i32.const 1228) + ) + ) + (block + (i32.store + (i32.const 1216) + (tee_local $3 + (i32.add + (i32.load + (i32.const 1216) + ) + (get_local $15) ) - (get_local $15) ) ) - ) - (i32.store - (i32.const 1228) - (get_local $2) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 1) + (i32.store + (i32.const 1228) + (get_local $2) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $3) + (i32.or + (get_local $3) + (i32.const 1) + ) ) - (get_local $3) - ) - (br $do-once44) - ) - ) - (if - (i32.eq - (i32.and - (tee_local $3 - (i32.load offset=4 - (get_local $1) + (i32.store + (i32.add + (get_local $2) + (get_local $3) ) + (get_local $3) ) - (i32.const 3) + (br $do-once44) ) - (i32.const 1) ) - (block - (set_local $4 + (if + (i32.eq (i32.and - (get_local $3) - (i32.const -8) - ) - ) - (set_local $0 - (i32.shr_u - (get_local $3) + (tee_local $3 + (i32.load offset=4 + (get_local $1) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$e - (if - (i32.lt_u + (block + (set_local $4 + (i32.and (get_local $3) - (i32.const 256) + (i32.const -8) ) - (block - (set_local $10 - (i32.load offset=12 - (get_local $1) - ) + ) + (set_local $0 + (i32.shr_u + (get_local $3) + (i32.const 3) + ) + ) + (block $label$break$e + (if + (i32.lt_u + (get_local $3) + (i32.const 256) ) - (block $do-once47 - (if - (i32.ne - (tee_local $21 - (i32.load offset=8 - (get_local $1) - ) - ) - (tee_local $19 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (block + (set_local $10 + (i32.load offset=12 + (get_local $1) + ) + ) + (block $do-once47 + (if + (i32.ne + (tee_local $21 + (i32.load offset=8 + (get_local $1) ) - (i32.const 1248) ) - ) - ) - (block - (if - (i32.lt_u - (get_local $21) - (get_local $14) + (tee_local $19 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 1248) + ) ) - (call $qa) ) - (br_if $do-once47 - (i32.eq - (i32.load offset=12 + (block + (if + (i32.lt_u (get_local $21) + (get_local $14) ) - (get_local $1) - ) - ) - (call $qa) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (get_local $21) - ) - (block - (i32.store - (i32.const 1208) - (i32.and - (i32.load - (i32.const 1208) + (call $qa) ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) + (br_if $do-once47 + (i32.eq + (i32.load offset=12 + (get_local $21) + ) + (get_local $1) ) - (i32.const -1) ) + (call $qa) ) ) - (br $label$break$e) ) - ) - (block $do-once49 (if (i32.eq (get_local $10) - (get_local $19) + (get_local $21) ) - (set_local $43 - (i32.add - (get_local $10) - (i32.const 8) + (block + (i32.store + (i32.const 1208) + (i32.and + (i32.load + (i32.const 1208) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) + ) + (i32.const -1) + ) + ) ) + (br $label$break$e) ) - (block - (if - (i32.lt_u + ) + (block $do-once49 + (if + (i32.eq + (get_local $10) + (get_local $19) + ) + (set_local $43 + (i32.add (get_local $10) - (get_local $14) + (i32.const 8) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $10) - (i32.const 8) + (block + (if + (i32.lt_u + (get_local $10) + (get_local $14) + ) + (call $qa) + ) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $10) + (i32.const 8) + ) ) ) + (get_local $1) ) - (get_local $1) - ) - (block - (set_local $43 - (get_local $0) + (block + (set_local $43 + (get_local $0) + ) + (br $do-once49) ) - (br $do-once49) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=12 - (get_local $21) - (get_local $10) - ) - (i32.store - (get_local $43) - (get_local $21) - ) - ) - (block - (set_local $19 - (i32.load offset=24 - (get_local $1) + (i32.store offset=12 + (get_local $21) + (get_local $10) + ) + (i32.store + (get_local $43) + (get_local $21) ) ) - (block $do-once51 - (if - (i32.eq - (tee_local $0 - (i32.load offset=12 - (get_local $1) - ) - ) + (block + (set_local $19 + (i32.load offset=24 (get_local $1) ) - (block - (if - (tee_local $16 - (i32.load - (tee_local $6 - (i32.add - (tee_local $18 - (i32.add - (get_local $1) - (i32.const 16) + ) + (block $do-once51 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $1) + ) + ) + (get_local $1) + ) + (block + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (tee_local $18 + (i32.add + (get_local $1) + (i32.const 16) + ) ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (block - (set_local $3 - (get_local $16) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) ) - (set_local $0 - (get_local $6) + (if + (tee_local $22 + (i32.load + (get_local $18) + ) + ) + (block + (set_local $3 + (get_local $22) + ) + (set_local $0 + (get_local $18) + ) + ) + (block + (set_local $24 + (i32.const 0) + ) + (br $do-once51) + ) ) ) - (if - (tee_local $22 - (i32.load - (get_local $18) + (loop $while-in54 + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (get_local $3) + (i32.const 20) + ) + ) + ) + ) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) + (br $while-in54) ) ) - (block - (set_local $3 - (get_local $22) + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (get_local $3) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $18) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) + (br $while-in54) ) ) + ) + (if + (i32.lt_u + (get_local $0) + (get_local $14) + ) + (call $qa) (block - (set_local $24 + (i32.store + (get_local $0) (i32.const 0) ) - (br $do-once51) + (set_local $24 + (get_local $3) + ) ) ) ) - (loop $while-in54 + (block (if - (tee_local $16 + (i32.lt_u + (tee_local $6 + (i32.load offset=8 + (get_local $1) + ) + ) + (get_local $14) + ) + (call $qa) + ) + (if + (i32.ne (i32.load - (tee_local $6 + (tee_local $16 (i32.add - (get_local $3) - (i32.const 20) + (get_local $6) + (i32.const 12) ) ) ) + (get_local $1) ) - (block - (set_local $3 - (get_local $16) - ) - (set_local $0 - (get_local $6) - ) - (br $while-in54) - ) + (call $qa) ) (if - (tee_local $16 + (i32.eq (i32.load - (tee_local $6 + (tee_local $18 (i32.add - (get_local $3) - (i32.const 16) + (get_local $0) + (i32.const 8) ) ) ) + (get_local $1) ) (block - (set_local $3 + (i32.store (get_local $16) + (get_local $0) ) - (set_local $0 + (i32.store + (get_local $18) (get_local $6) ) - (br $while-in54) - ) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $14) - ) - (call $qa) - (block - (i32.store - (get_local $0) - (i32.const 0) - ) - (set_local $24 - (get_local $3) + (set_local $24 + (get_local $0) + ) ) + (call $qa) ) ) ) - (block - (if - (i32.lt_u - (tee_local $6 - (i32.load offset=8 - (get_local $1) + ) + (br_if $label$break$e + (i32.eqz + (get_local $19) + ) + ) + (block $do-once55 + (if + (i32.eq + (get_local $1) + (i32.load + (tee_local $21 + (i32.add + (i32.shl + (tee_local $0 + (i32.load offset=28 + (get_local $1) + ) + ) + (i32.const 2) + ) + (i32.const 1512) ) ) - (get_local $14) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $16 - (i32.add - (get_local $6) - (i32.const 12) + (block + (i32.store + (get_local $21) + (get_local $24) + ) + (br_if $do-once55 + (get_local $24) + ) + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) ) + (i32.const -1) ) ) - (get_local $1) ) - (call $qa) + (br $label$break$e) ) - (if - (i32.eq - (i32.load - (tee_local $18 - (i32.add - (get_local $0) - (i32.const 8) - ) + (block + (if + (i32.lt_u + (get_local $19) + (i32.load + (i32.const 1224) ) ) - (get_local $1) + (call $qa) ) - (block - (i32.store - (get_local $16) - (get_local $0) + (if + (i32.eq + (i32.load + (tee_local $10 + (i32.add + (get_local $19) + (i32.const 16) + ) + ) + ) + (get_local $1) ) (i32.store - (get_local $18) - (get_local $6) + (get_local $10) + (get_local $24) ) - (set_local $24 - (get_local $0) + (i32.store offset=20 + (get_local $19) + (get_local $24) + ) + ) + (br_if $label$break$e + (i32.eqz + (get_local $24) ) ) - (call $qa) ) ) ) - ) - (br_if $label$break$e - (i32.eqz + (if + (i32.lt_u + (get_local $24) + (tee_local $0 + (i32.load + (i32.const 1224) + ) + ) + ) + (call $qa) + ) + (i32.store offset=24 + (get_local $24) (get_local $19) ) - ) - (block $do-once55 (if - (i32.eq - (get_local $1) + (tee_local $10 (i32.load (tee_local $21 (i32.add - (i32.shl - (tee_local $0 - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - ) - ) - (block - (i32.store - (get_local $21) - (get_local $24) - ) - (br_if $do-once55 - (get_local $24) - ) - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) - ) - (i32.const -1) + (get_local $1) + (i32.const 16) ) ) ) - (br $label$break$e) ) - (block - (if - (i32.lt_u - (get_local $19) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) + (if + (i32.lt_u + (get_local $10) + (get_local $0) ) - (if - (i32.eq - (i32.load - (tee_local $10 - (i32.add - (get_local $19) - (i32.const 16) - ) - ) - ) - (get_local $1) - ) - (i32.store - (get_local $10) - (get_local $24) - ) - (i32.store offset=20 - (get_local $19) + (call $qa) + (block + (i32.store offset=16 (get_local $24) + (get_local $10) ) - ) - (br_if $label$break$e - (i32.eqz + (i32.store offset=24 + (get_local $10) (get_local $24) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $24) - (tee_local $0 - (i32.load - (i32.const 1224) - ) - ) - ) - (call $qa) - ) - (i32.store offset=24 - (get_local $24) - (get_local $19) - ) - (if - (tee_local $10 - (i32.load - (tee_local $21 - (i32.add - (get_local $1) - (i32.const 16) + (br_if $label$break$e + (i32.eqz + (tee_local $10 + (i32.load offset=4 + (get_local $21) ) ) ) @@ -4480,11 +4492,13 @@ (if (i32.lt_u (get_local $10) - (get_local $0) + (i32.load + (i32.const 1224) + ) ) (call $qa) (block - (i32.store offset=16 + (i32.store offset=20 (get_local $24) (get_local $10) ) @@ -4495,467 +4509,313 @@ ) ) ) - (br_if $label$break$e - (i32.eqz - (tee_local $10 - (i32.load offset=4 - (get_local $21) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $10) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block - (i32.store offset=20 - (get_local $24) - (get_local $10) - ) - (i32.store offset=24 - (get_local $10) - (get_local $24) - ) - ) - ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (get_local $4) + ) + ) + (set_local $15 + (i32.add + (get_local $4) + (get_local $15) ) ) ) - (set_local $1 + ) + (i32.store + (tee_local $0 (i32.add (get_local $1) - (get_local $4) + (i32.const 4) ) ) - (set_local $15 - (i32.add - (get_local $4) - (get_local $15) + (i32.and + (i32.load + (get_local $0) ) + (i32.const -2) ) ) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $1) - (i32.const 4) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $15) + (i32.const 1) ) ) - (i32.and - (i32.load - (get_local $0) + (i32.store + (i32.add + (get_local $2) + (get_local $15) ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $15) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $2) (get_local $15) ) - (get_local $15) - ) - (set_local $0 - (i32.shr_u - (get_local $15) - (i32.const 3) - ) - ) - (if - (i32.lt_u - (get_local $15) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $15) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (if + (i32.lt_u + (get_local $15) + (i32.const 256) + ) + (block + (set_local $3 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 1248) ) - (i32.const 1248) ) - ) - (block $do-once59 - (if - (i32.and - (tee_local $10 - (i32.load - (i32.const 1208) + (block $do-once59 + (if + (i32.and + (tee_local $10 + (i32.load + (i32.const 1208) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) ) ) - ) - (block - (if - (i32.ge_u - (tee_local $19 - (i32.load - (tee_local $0 - (i32.add - (get_local $3) - (i32.const 8) + (block + (if + (i32.ge_u + (tee_local $19 + (i32.load + (tee_local $0 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (block + (set_local $44 + (get_local $0) + ) + (set_local $37 + (get_local $19) + ) + (br $do-once59) ) ) - (block - (set_local $44 + (call $qa) + ) + (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $10) (get_local $0) ) - (set_local $37 - (get_local $19) - ) - (br $do-once59) ) - ) - (call $qa) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $10) - (get_local $0) + (set_local $44 + (i32.add + (get_local $3) + (i32.const 8) + ) ) - ) - (set_local $44 - (i32.add + (set_local $37 (get_local $3) - (i32.const 8) ) ) - (set_local $37 - (get_local $3) - ) ) ) + (i32.store + (get_local $44) + (get_local $2) + ) + (i32.store offset=12 + (get_local $37) + (get_local $2) + ) + (i32.store offset=8 + (get_local $2) + (get_local $37) + ) + (i32.store offset=12 + (get_local $2) + (get_local $3) + ) + (br $do-once44) ) - (i32.store - (get_local $44) - (get_local $2) - ) - (i32.store offset=12 - (get_local $37) - (get_local $2) - ) - (i32.store offset=8 - (get_local $2) - (get_local $37) - ) - (i32.store offset=12 - (get_local $2) - (get_local $3) - ) - (br $do-once44) ) - ) - (set_local $0 - (i32.add - (i32.shl - (tee_local $4 - (block $do-once61 (result i32) - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $15) - (i32.const 8) + (set_local $0 + (i32.add + (i32.shl + (tee_local $4 + (block $do-once61 (result i32) + (if (result i32) + (tee_local $0 + (i32.shr_u + (get_local $15) + (i32.const 8) + ) ) - ) - (block (result i32) - (drop - (br_if $do-once61 - (i32.const 31) - (i32.gt_u - (get_local $15) - (i32.const 16777215) + (block (result i32) + (drop + (br_if $do-once61 + (i32.const 31) + (i32.gt_u + (get_local $15) + (i32.const 16777215) + ) ) ) - ) - (i32.or - (i32.and - (i32.shr_u - (get_local $15) - (i32.add - (tee_local $6 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $15) + (i32.add + (tee_local $6 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $19 - (i32.and - (i32.shr_u - (i32.add - (tee_local $4 - (i32.shl - (get_local $0) - (tee_local $10 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $19 + (i32.and + (i32.shr_u + (i32.add + (tee_local $4 + (i32.shl + (get_local $0) + (tee_local $10 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $10) ) - (get_local $10) - ) - (tee_local $4 - (i32.and - (i32.shr_u - (i32.add - (tee_local $0 - (i32.shl - (get_local $4) - (get_local $19) + (tee_local $4 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (i32.shl + (get_local $4) + (get_local $19) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $0) - (get_local $4) + (i32.shr_u + (i32.shl + (get_local $0) + (get_local $4) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $6) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $6) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) ) + (i32.const 2) ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $2) - (get_local $4) - ) - (i32.store offset=4 - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - (i32.const 0) - ) - (i32.store - (get_local $3) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $6 - (i32.shl - (i32.const 1) - (get_local $4) - ) - ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $3) - (get_local $6) - ) - ) - (i32.store - (get_local $0) - (get_local $2) - ) - (i32.store offset=24 - (get_local $2) - (get_local $0) - ) - (i32.store offset=12 - (get_local $2) - (get_local $2) - ) - (i32.store offset=8 - (get_local $2) - (get_local $2) - ) - (br $do-once44) + (i32.store offset=28 + (get_local $2) + (get_local $4) ) - ) - (set_local $6 - (i32.shl - (get_local $15) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $4) - (i32.const 1) - ) - ) - (i32.eq - (get_local $4) - (i32.const 31) + (i32.store offset=4 + (tee_local $3 + (i32.add + (get_local $2) + (i32.const 16) ) ) + (i32.const 0) ) - ) - (set_local $3 - (i32.load - (get_local $0) + (i32.store + (get_local $3) + (i32.const 0) ) - ) - (loop $while-in64 - (block $while-out63 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.const -8) - ) - (get_local $15) - ) - (block - (set_local $38 - (get_local $3) - ) - (set_local $7 - (i32.const 279) - ) - (br $while-out63) - ) - ) - (if - (tee_local $4 - (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $3) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $6) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $6 + (tee_local $6 (i32.shl - (get_local $6) (i32.const 1) + (get_local $4) ) ) - (set_local $3 - (get_local $4) - ) - (br $while-in64) ) - (block - (set_local $45 - (get_local $0) - ) - (set_local $53 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $3) - ) - (set_local $7 - (i32.const 276) + (get_local $6) ) ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 276) - ) - (if - (i32.lt_u - (get_local $45) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block (i32.store - (get_local $45) + (get_local $0) (get_local $2) ) (i32.store offset=24 (get_local $2) - (get_local $53) + (get_local $0) ) (i32.store offset=12 (get_local $2) @@ -4965,705 +4825,705 @@ (get_local $2) (get_local $2) ) + (br $do-once44) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 279) + (set_local $6 + (i32.shl + (get_local $15) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $4) + (i32.const 1) + ) + ) + (i32.eq + (get_local $4) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $6 - (i32.load - (tee_local $3 + ) + (set_local $3 + (i32.load + (get_local $0) + ) + ) + (loop $while-in64 + (block $while-out63 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) + ) + (get_local $15) + ) + (block + (set_local $38 + (get_local $3) + ) + (set_local $7 + (i32.const 279) + ) + (br $while-out63) + ) + ) + (if + (tee_local $4 + (i32.load + (tee_local $0 + (i32.add (i32.add - (get_local $38) - (i32.const 8) + (get_local $3) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $6) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $4 - (i32.load - (i32.const 1224) + ) + (block + (set_local $6 + (i32.shl + (get_local $6) + (i32.const 1) ) ) + (set_local $3 + (get_local $4) + ) + (br $while-in64) ) - (i32.ge_u - (get_local $38) - (get_local $4) + (block + (set_local $45 + (get_local $0) + ) + (set_local $53 + (get_local $3) + ) + (set_local $7 + (i32.const 276) + ) ) ) - (block - (i32.store offset=12 - (get_local $6) - (get_local $2) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 276) + ) + (if + (i32.lt_u + (get_local $45) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $3) + (get_local $45) (get_local $2) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $2) - (get_local $6) + (get_local $53) ) (i32.store offset=12 (get_local $2) - (get_local $38) + (get_local $2) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $2) (get_local $2) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 279) + ) + (if + (i32.and + (i32.ge_u + (tee_local $6 + (i32.load + (tee_local $3 + (i32.add + (get_local $38) + (i32.const 8) + ) + ) + ) + ) + (tee_local $4 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $38) + (get_local $4) + ) + ) + (block + (i32.store offset=12 + (get_local $6) + (get_local $2) + ) + (i32.store + (get_local $3) + (get_local $2) + ) + (i32.store offset=8 + (get_local $2) + (get_local $6) + ) + (i32.store offset=12 + (get_local $2) + (get_local $38) + ) + (i32.store offset=24 + (get_local $2) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $17) - (i32.const 8) + (set_global $r + (get_local $25) ) - ) - ) - ) - ) - (loop $while-in66 - (block $while-out65 - (if - (i32.le_u - (tee_local $2 - (i32.load - (get_local $30) + (return + (i32.add + (get_local $17) + (i32.const 8) ) ) - (get_local $11) ) + ) + ) + (loop $while-in66 + (block $while-out65 (if - (i32.gt_u - (tee_local $15 - (i32.add - (get_local $2) - (i32.load offset=4 - (get_local $30) - ) + (i32.le_u + (tee_local $2 + (i32.load + (get_local $30) ) ) (get_local $11) ) - (block - (set_local $0 - (get_local $15) + (if + (i32.gt_u + (tee_local $15 + (i32.add + (get_local $2) + (i32.load offset=4 + (get_local $30) + ) + ) + ) + (get_local $11) + ) + (block + (set_local $0 + (get_local $15) + ) + (br $while-out65) ) - (br $while-out65) ) ) - ) - (set_local $30 - (i32.load offset=8 - (get_local $30) + (set_local $30 + (i32.load offset=8 + (get_local $30) + ) ) + (br $while-in66) ) - (br $while-in66) ) - ) - (set_local $15 - (i32.add - (tee_local $17 - (i32.add - (get_local $0) - (i32.const -47) + (set_local $15 + (i32.add + (tee_local $17 + (i32.add + (get_local $0) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (set_local $2 - (i32.add - (tee_local $17 - (select - (get_local $11) - (tee_local $2 - (i32.add - (get_local $17) - (select - (i32.and - (i32.sub - (i32.const 0) + (set_local $2 + (i32.add + (tee_local $17 + (select + (get_local $11) + (tee_local $2 + (i32.add + (get_local $17) + (select + (i32.and + (i32.sub + (i32.const 0) + (get_local $15) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and (get_local $15) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $15) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (get_local $2) - (tee_local $15 - (i32.add - (get_local $11) - (i32.const 16) + (i32.lt_u + (get_local $2) + (tee_local $15 + (i32.add + (get_local $11) + (i32.const 16) + ) ) ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 1232) - (tee_local $1 - (i32.add - (get_local $20) - (tee_local $13 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $20) - (i32.const 8) + (i32.store + (i32.const 1232) + (tee_local $1 + (i32.add + (get_local $20) + (tee_local $13 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 1220) - (tee_local $6 - (i32.sub + (i32.store + (i32.const 1220) + (tee_local $6 + (i32.sub + (i32.add + (get_local $26) + (i32.const -40) + ) + (get_local $13) + ) + ) + ) + (i32.store offset=4 + (get_local $1) + (i32.or + (get_local $6) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $1) + (get_local $6) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) + ) + (i32.store + (tee_local $6 (i32.add - (get_local $26) - (i32.const -40) + (get_local $17) + (i32.const 4) ) - (get_local $13) ) + (i32.const 27) ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $6) - (i32.const 1) + (i32.store + (get_local $2) + (i32.load + (i32.const 1656) + ) ) - ) - (i32.store offset=4 - (i32.add - (get_local $1) - (get_local $6) + (i32.store offset=4 + (get_local $2) + (i32.load + (i32.const 1660) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=8 + (get_local $2) + (i32.load + (i32.const 1664) + ) ) - ) - (i32.store - (tee_local $6 - (i32.add - (get_local $17) - (i32.const 4) + (i32.store offset=12 + (get_local $2) + (i32.load + (i32.const 1668) ) ) - (i32.const 27) - ) - (i32.store - (get_local $2) - (i32.load + (i32.store (i32.const 1656) + (get_local $20) ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load + (i32.store (i32.const 1660) + (get_local $26) ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load - (i32.const 1664) - ) - ) - (i32.store offset=12 - (get_local $2) - (i32.load + (i32.store (i32.const 1668) + (i32.const 0) ) - ) - (i32.store - (i32.const 1656) - (get_local $20) - ) - (i32.store - (i32.const 1660) - (get_local $26) - ) - (i32.store - (i32.const 1668) - (i32.const 0) - ) - (i32.store - (i32.const 1664) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $17) - (i32.const 24) - ) - ) - (loop $do-in68 (i32.store - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 1664) + (get_local $2) ) - (br_if $do-in68 - (i32.lt_u - (i32.add - (get_local $2) - (i32.const 4) - ) - (get_local $0) + (set_local $2 + (i32.add + (get_local $17) + (i32.const 24) ) ) - ) - (if - (i32.ne - (get_local $17) - (get_local $11) - ) - (block + (loop $do-in68 (i32.store - (get_local $6) - (i32.and - (i32.load - (get_local $6) + (tee_local $2 + (i32.add + (get_local $2) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (get_local $11) - (i32.or - (tee_local $2 - (i32.sub - (get_local $17) - (get_local $11) - ) + (br_if $do-in68 + (i32.lt_u + (i32.add + (get_local $2) + (i32.const 4) ) - (i32.const 1) + (get_local $0) ) ) - (i32.store + ) + (if + (i32.ne (get_local $17) - (get_local $2) - ) - (set_local $1 - (i32.shr_u - (get_local $2) - (i32.const 3) - ) + (get_local $11) ) - (if - (i32.lt_u - (get_local $2) - (i32.const 256) + (block + (i32.store + (get_local $6) + (i32.and + (i32.load + (get_local $6) + ) + (i32.const -2) + ) ) - (block - (set_local $13 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (i32.store offset=4 + (get_local $11) + (i32.or + (tee_local $2 + (i32.sub + (get_local $17) + (get_local $11) ) - (i32.const 1248) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $4 + ) + (i32.store + (get_local $17) + (get_local $2) + ) + (set_local $1 + (i32.shr_u + (get_local $2) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (get_local $2) + (i32.const 256) + ) + (block + (set_local $13 + (i32.add (i32.shl - (i32.const 1) (get_local $1) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $3 (i32.load - (tee_local $4 - (i32.add - (get_local $13) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $4 + (i32.shl + (i32.const 1) + (get_local $1) + ) + ) + ) + (if + (i32.lt_u + (tee_local $3 + (i32.load + (tee_local $4 + (i32.add + (get_local $13) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $46 + (get_local $4) + ) + (set_local $39 + (get_local $3) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $3) + (get_local $4) + ) + ) (set_local $46 - (get_local $4) + (i32.add + (get_local $13) + (i32.const 8) + ) ) (set_local $39 - (get_local $3) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $3) - (get_local $4) - ) - ) - (set_local $46 - (i32.add (get_local $13) - (i32.const 8) ) ) - (set_local $39 - (get_local $13) - ) ) + (i32.store + (get_local $46) + (get_local $11) + ) + (i32.store offset=12 + (get_local $39) + (get_local $11) + ) + (i32.store offset=8 + (get_local $11) + (get_local $39) + ) + (i32.store offset=12 + (get_local $11) + (get_local $13) + ) + (br $do-once38) ) - (i32.store - (get_local $46) - (get_local $11) - ) - (i32.store offset=12 - (get_local $39) - (get_local $11) - ) - (i32.store offset=8 - (get_local $11) - (get_local $39) - ) - (i32.store offset=12 - (get_local $11) - (get_local $13) - ) - (br $do-once38) ) - ) - (set_local $0 - (i32.add - (i32.shl - (tee_local $3 - (if (result i32) - (tee_local $13 - (i32.shr_u - (get_local $2) - (i32.const 8) - ) - ) + (set_local $0 + (i32.add + (i32.shl + (tee_local $3 (if (result i32) - (i32.gt_u - (get_local $2) - (i32.const 16777215) + (tee_local $13 + (i32.shr_u + (get_local $2) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $2) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $2) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $2) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $13 - (i32.and - (i32.shr_u - (i32.add - (tee_local $4 - (i32.shl - (get_local $13) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $13) - (i32.const 1048320) + (i32.or + (tee_local $13 + (i32.and + (i32.shr_u + (i32.add + (tee_local $4 + (i32.shl + (get_local $13) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $13) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $4 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $4) - (get_local $13) + (tee_local $4 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $4) + (get_local $13) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $4) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $4) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $11) - (get_local $3) - ) - (i32.store offset=20 - (get_local $11) - (i32.const 0) - ) - (i32.store - (get_local $15) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $4 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $3) ) + (i32.const 2) ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $4) - (get_local $1) - ) - ) - (i32.store - (get_local $0) - (get_local $11) - ) - (i32.store offset=24 - (get_local $11) - (get_local $0) - ) - (i32.store offset=12 - (get_local $11) - (get_local $11) - ) - (i32.store offset=8 - (get_local $11) - (get_local $11) - ) - (br $do-once38) + (i32.store offset=28 + (get_local $11) + (get_local $3) ) - ) - (set_local $1 - (i32.shl - (get_local $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $3) - (i32.const 1) - ) - ) - (i32.eq - (get_local $3) - (i32.const 31) - ) - ) + (i32.store offset=20 + (get_local $11) + (i32.const 0) ) - ) - (set_local $4 - (i32.load - (get_local $0) + (i32.store + (get_local $15) + (i32.const 0) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $4) - ) - (i32.const -8) - ) - (get_local $2) - ) - (block - (set_local $31 - (get_local $4) - ) - (set_local $7 - (i32.const 305) - ) - (br $while-out69) - ) - ) - (if - (tee_local $3 - (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $4) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $4 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $1 + (tee_local $1 (i32.shl - (get_local $1) (i32.const 1) + (get_local $3) ) ) - (set_local $4 - (get_local $3) - ) - (br $while-in70) ) - (block - (set_local $47 - (get_local $0) - ) - (set_local $54 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $4) - ) - (set_local $7 - (i32.const 302) + (get_local $1) ) ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 302) - ) - (if - (i32.lt_u - (get_local $47) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block (i32.store - (get_local $47) + (get_local $0) (get_local $11) ) (i32.store offset=24 (get_local $11) - (get_local $54) + (get_local $0) ) (i32.store offset=12 (get_local $11) @@ -5673,271 +5533,406 @@ (get_local $11) (get_local $11) ) + (br $do-once38) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 305) + (set_local $1 + (i32.shl + (get_local $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $3) + (i32.const 1) + ) + ) + (i32.eq + (get_local $3) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $1 - (i32.load - (tee_local $4 + ) + (set_local $4 + (i32.load + (get_local $0) + ) + ) + (loop $while-in70 + (block $while-out69 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $4) + ) + (i32.const -8) + ) + (get_local $2) + ) + (block + (set_local $31 + (get_local $4) + ) + (set_local $7 + (i32.const 305) + ) + (br $while-out69) + ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $0 + (i32.add (i32.add - (get_local $31) - (i32.const 8) + (get_local $4) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $2 - (i32.load - (i32.const 1224) + ) + (block + (set_local $1 + (i32.shl + (get_local $1) + (i32.const 1) ) ) + (set_local $4 + (get_local $3) + ) + (br $while-in70) ) - (i32.ge_u - (get_local $31) - (get_local $2) + (block + (set_local $47 + (get_local $0) + ) + (set_local $54 + (get_local $4) + ) + (set_local $7 + (i32.const 302) + ) ) ) - (block - (i32.store offset=12 - (get_local $1) - (get_local $11) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 302) + ) + (if + (i32.lt_u + (get_local $47) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $4) + (get_local $47) (get_local $11) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $11) - (get_local $1) + (get_local $54) ) (i32.store offset=12 (get_local $11) - (get_local $31) + (get_local $11) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $11) (get_local $11) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 305) + ) + (if + (i32.and + (i32.ge_u + (tee_local $1 + (i32.load + (tee_local $4 + (i32.add + (get_local $31) + (i32.const 8) + ) + ) + ) + ) + (tee_local $2 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $31) + (get_local $2) + ) + ) + (block + (i32.store offset=12 + (get_local $1) + (get_local $11) + ) + (i32.store + (get_local $4) + (get_local $11) + ) + (i32.store offset=8 + (get_local $11) + (get_local $1) + ) + (i32.store offset=12 + (get_local $11) + (get_local $31) + ) + (i32.store offset=24 + (get_local $11) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (tee_local $1 - (i32.load - (i32.const 1224) + (block + (if + (i32.or + (i32.eqz + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (i32.lt_u + (get_local $20) + (get_local $1) + ) ) - (i32.lt_u + (i32.store + (i32.const 1224) (get_local $20) - (get_local $1) ) ) (i32.store - (i32.const 1224) + (i32.const 1656) (get_local $20) ) - ) - (i32.store - (i32.const 1656) - (get_local $20) - ) - (i32.store - (i32.const 1660) - (get_local $26) - ) - (i32.store - (i32.const 1668) - (i32.const 0) - ) - (i32.store - (i32.const 1244) - (i32.load - (i32.const 1680) + (i32.store + (i32.const 1660) + (get_local $26) ) - ) - (i32.store - (i32.const 1240) - (i32.const -1) - ) - (set_local $1 - (i32.const 0) - ) - (loop $do-in - (i32.store offset=12 - (tee_local $13 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) - ) - (i32.const 1248) - ) + (i32.store + (i32.const 1668) + (i32.const 0) + ) + (i32.store + (i32.const 1244) + (i32.load + (i32.const 1680) ) - (get_local $13) ) - (i32.store offset=8 - (get_local $13) - (get_local $13) + (i32.store + (i32.const 1240) + (i32.const -1) ) - (br_if $do-in - (i32.ne - (tee_local $1 + (set_local $1 + (i32.const 0) + ) + (loop $do-in + (i32.store offset=12 + (tee_local $13 (i32.add - (get_local $1) - (i32.const 1) + (i32.shl + (get_local $1) + (i32.const 3) + ) + (i32.const 1248) + ) + ) + (get_local $13) + ) + (i32.store offset=8 + (get_local $13) + (get_local $13) + ) + (br_if $do-in + (i32.ne + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) ) + (i32.const 32) ) - (i32.const 32) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $1 - (i32.add - (get_local $20) - (tee_local $13 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $20) - (i32.const 8) + (i32.store + (i32.const 1232) + (tee_local $1 + (i32.add + (get_local $20) + (tee_local $13 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 1220) - (tee_local $2 - (i32.sub - (i32.add - (get_local $26) - (i32.const -40) + (i32.store + (i32.const 1220) + (tee_local $2 + (i32.sub + (i32.add + (get_local $26) + (i32.const -40) + ) + (get_local $13) ) - (get_local $13) ) ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $2) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $1) - (get_local $2) + (i32.or + (get_local $2) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=4 + (i32.add + (get_local $1) + (get_local $2) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) ) ) ) ) - ) - (if - (i32.gt_u - (tee_local $11 - (i32.load - (i32.const 1220) + (if + (i32.gt_u + (tee_local $11 + (i32.load + (i32.const 1220) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (i32.store - (i32.const 1220) - (tee_local $31 - (i32.sub - (get_local $11) - (get_local $5) + (block + (i32.store + (i32.const 1220) + (tee_local $31 + (i32.sub + (get_local $11) + (get_local $5) + ) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $7 - (i32.add - (tee_local $11 - (i32.load - (i32.const 1232) + (i32.store + (i32.const 1232) + (tee_local $7 + (i32.add + (tee_local $11 + (i32.load + (i32.const 1232) + ) ) + (get_local $5) ) - (get_local $5) ) ) - ) - (i32.store offset=4 - (get_local $7) - (i32.or - (get_local $31) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $11) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $7) + (i32.or + (get_local $31) + (i32.const 1) + ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add + (i32.store offset=4 (get_local $11) - (i32.const 8) + (i32.or + (get_local $5) + (i32.const 3) + ) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.add + (get_local $11) + (i32.const 8) + ) ) ) ) ) ) - ) - (i32.store - (call $Qa) - (i32.const 12) + (i32.store + (call $Qa) + (i32.const 12) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.const 0) + ) ) (set_global $r (get_local $25) ) - (i32.const 0) + (i32.add + (get_local $15) + (i32.const 8) + ) ) (func $fb (param $0 i32) (local $1 i32) diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise index bd959d564..38e3724a5 100644 --- a/test/memorygrowth.fromasm.imprecise +++ b/test/memorygrowth.fromasm.imprecise @@ -104,830 +104,790 @@ (local $52 i32) (local $53 i32) (local $54 i32) - (set_local $25 - (get_global $r) - ) - (set_global $r - (i32.add + (block $folding-inner0 + (set_local $25 (get_global $r) - (i32.const 16) ) - ) - (set_local $13 - (get_local $25) - ) - (block $do-once - (if - (i32.lt_u - (get_local $0) - (i32.const 245) + (set_global $r + (i32.add + (get_global $r) + (i32.const 16) ) - (block - (if - (i32.and - (tee_local $5 - (i32.shr_u - (tee_local $4 - (i32.load - (i32.const 1208) + ) + (set_local $13 + (get_local $25) + ) + (block $do-once + (if + (i32.lt_u + (get_local $0) + (i32.const 245) + ) + (block + (if + (i32.and + (tee_local $5 + (i32.shr_u + (tee_local $4 + (i32.load + (i32.const 1208) + ) ) - ) - (tee_local $0 - (i32.shr_u - (tee_local $3 - (select - (i32.const 16) - (i32.and - (i32.add + (tee_local $0 + (i32.shr_u + (tee_local $3 + (select + (i32.const 16) + (i32.and + (i32.add + (get_local $0) + (i32.const 11) + ) + (i32.const -8) + ) + (i32.lt_u (get_local $0) (i32.const 11) ) - (i32.const -8) - ) - (i32.lt_u - (get_local $0) - (i32.const 11) ) ) + (i32.const 3) ) - (i32.const 3) ) ) ) + (i32.const 3) ) - (i32.const 3) - ) - (block - (set_local $6 - (i32.load - (tee_local $3 - (i32.add - (tee_local $12 - (i32.load - (tee_local $14 - (i32.add - (tee_local $8 - (i32.add - (i32.shl - (tee_local $0 - (i32.add - (i32.xor - (i32.and - (get_local $5) + (block + (set_local $6 + (i32.load + (tee_local $3 + (i32.add + (tee_local $12 + (i32.load + (tee_local $14 + (i32.add + (tee_local $8 + (i32.add + (i32.shl + (tee_local $0 + (i32.add + (i32.xor + (i32.and + (get_local $5) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) + (get_local $0) ) - (get_local $0) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 1248) ) - (i32.const 1248) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $8) - (get_local $6) - ) - (i32.store - (i32.const 1208) - (i32.and - (get_local $4) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) - ) - (i32.const -1) - ) + (if + (i32.eq + (get_local $8) + (get_local $6) ) - ) - (block - (if - (i32.lt_u - (get_local $6) - (i32.load - (i32.const 1224) + (i32.store + (i32.const 1208) + (i32.and + (get_local $4) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) + ) + (i32.const -1) ) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $7 - (i32.add - (get_local $6) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $6) + (i32.load + (i32.const 1224) ) ) - (get_local $12) + (call $qa) ) - (block - (i32.store - (get_local $7) - (get_local $8) + (if + (i32.eq + (i32.load + (tee_local $7 + (i32.add + (get_local $6) + (i32.const 12) + ) + ) + ) + (get_local $12) ) - (i32.store - (get_local $14) - (get_local $6) + (block + (i32.store + (get_local $7) + (get_local $8) + ) + (i32.store + (get_local $14) + (get_local $6) + ) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=4 - (get_local $12) - (i32.or - (tee_local $6 - (i32.shl - (get_local $0) - (i32.const 3) + (i32.store offset=4 + (get_local $12) + (i32.or + (tee_local $6 + (i32.shl + (get_local $0) + (i32.const 3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $14 - (i32.add + (i32.store + (tee_local $14 (i32.add - (get_local $12) - (get_local $6) + (i32.add + (get_local $12) + (get_local $6) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $14) + (i32.or + (i32.load + (get_local $14) + ) + (i32.const 1) ) - (i32.const 1) ) - ) - (set_global $r - (get_local $25) - ) - (return - (get_local $3) + (set_global $r + (get_local $25) + ) + (return + (get_local $3) + ) ) ) - ) - (if - (i32.gt_u - (get_local $3) - (tee_local $14 - (i32.load - (i32.const 1216) + (if + (i32.gt_u + (get_local $3) + (tee_local $14 + (i32.load + (i32.const 1216) + ) ) ) - ) - (block - (if - (get_local $5) - (block - (set_local $8 - (i32.and - (i32.shr_u - (tee_local $6 - (i32.add - (i32.and - (tee_local $8 - (i32.and - (i32.shl - (get_local $5) - (get_local $0) - ) - (i32.or - (tee_local $6 - (i32.shl - (i32.const 2) - (get_local $0) - ) + (block + (if + (get_local $5) + (block + (set_local $8 + (i32.and + (i32.shr_u + (tee_local $6 + (i32.add + (i32.and + (tee_local $8 + (i32.and + (i32.shl + (get_local $5) + (get_local $0) ) - (i32.sub - (i32.const 0) - (get_local $6) + (i32.or + (tee_local $6 + (i32.shl + (i32.const 2) + (get_local $0) + ) + ) + (i32.sub + (i32.const 0) + (get_local $6) + ) ) ) ) + (i32.sub + (i32.const 0) + (get_local $8) + ) ) - (i32.sub - (i32.const 0) - (get_local $8) - ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $8 - (i32.load - (tee_local $7 - (i32.add - (tee_local $9 - (i32.load - (tee_local $12 - (i32.add - (tee_local $1 - (i32.add - (i32.shl - (tee_local $16 - (i32.add - (i32.or + (set_local $8 + (i32.load + (tee_local $7 + (i32.add + (tee_local $9 + (i32.load + (tee_local $12 + (i32.add + (tee_local $1 + (i32.add + (i32.shl + (tee_local $16 + (i32.add (i32.or (i32.or (i32.or - (tee_local $6 + (i32.or + (tee_local $6 + (i32.and + (i32.shr_u + (tee_local $7 + (i32.shr_u + (get_local $6) + (get_local $8) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $8) + ) + (tee_local $7 (i32.and (i32.shr_u - (tee_local $7 + (tee_local $9 (i32.shr_u + (get_local $7) (get_local $6) - (get_local $8) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $8) ) - (tee_local $7 + (tee_local $9 (i32.and (i32.shr_u - (tee_local $9 + (tee_local $1 (i32.shr_u + (get_local $9) (get_local $7) - (get_local $6) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $9 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $12 (i32.shr_u + (get_local $1) (get_local $9) - (get_local $7) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $1 - (i32.and - (i32.shr_u - (tee_local $12 - (i32.shr_u - (get_local $1) - (get_local $9) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) - ) - (i32.shr_u - (get_local $12) - (get_local $1) + (i32.shr_u + (get_local $12) + (get_local $1) + ) ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 1248) ) - (i32.const 1248) ) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 8) ) - (i32.const 8) ) ) ) - ) - (if - (i32.eq - (get_local $1) - (get_local $8) - ) - (block - (i32.store - (i32.const 1208) - (i32.and - (get_local $4) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $16) + (if + (i32.eq + (get_local $1) + (get_local $8) + ) + (block + (i32.store + (i32.const 1208) + (i32.and + (get_local $4) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $16) + ) + (i32.const -1) ) - (i32.const -1) ) ) - ) - (set_local $34 - (get_local $14) - ) - ) - (block - (if - (i32.lt_u - (get_local $8) - (i32.load - (i32.const 1224) - ) + (set_local $34 + (get_local $14) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $6 - (i32.add - (get_local $8) - (i32.const 12) - ) + (block + (if + (i32.lt_u + (get_local $8) + (i32.load + (i32.const 1224) ) ) - (get_local $9) + (call $qa) ) - (block - (i32.store - (get_local $6) - (get_local $1) - ) - (i32.store - (get_local $12) - (get_local $8) - ) - (set_local $34 + (if + (i32.eq (i32.load - (i32.const 1216) + (tee_local $6 + (i32.add + (get_local $8) + (i32.const 12) + ) + ) + ) + (get_local $9) + ) + (block + (i32.store + (get_local $6) + (get_local $1) + ) + (i32.store + (get_local $12) + (get_local $8) + ) + (set_local $34 + (i32.load + (i32.const 1216) + ) ) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=4 - (get_local $9) - (i32.or - (get_local $3) - (i32.const 3) - ) - ) - (i32.store offset=4 - (tee_local $12 - (i32.add - (get_local $9) + (i32.store offset=4 + (get_local $9) + (i32.or (get_local $3) + (i32.const 3) ) ) - (i32.or - (tee_local $8 - (i32.sub - (i32.shl - (get_local $16) - (i32.const 3) - ) + (i32.store offset=4 + (tee_local $12 + (i32.add + (get_local $9) (get_local $3) ) ) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $12) - (get_local $8) - ) - (get_local $8) - ) - (if - (get_local $34) - (block - (set_local $1 - (i32.load - (i32.const 1228) - ) - ) - (set_local $4 - (i32.add - (i32.shl - (tee_local $14 - (i32.shr_u - (get_local $34) - (i32.const 3) - ) + (i32.or + (tee_local $8 + (i32.sub + (i32.shl + (get_local $16) + (i32.const 3) ) - (i32.const 3) + (get_local $3) ) - (i32.const 1248) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $0 - (i32.load - (i32.const 1208) - ) + ) + (i32.store + (i32.add + (get_local $12) + (get_local $8) + ) + (get_local $8) + ) + (if + (get_local $34) + (block + (set_local $1 + (i32.load + (i32.const 1228) ) - (tee_local $5 + ) + (set_local $4 + (i32.add (i32.shl - (i32.const 1) - (get_local $14) + (tee_local $14 + (i32.shr_u + (get_local $34) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $0 (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $5 + (i32.shl + (i32.const 1) + (get_local $14) + ) + ) + ) + (if + (i32.lt_u + (tee_local $0 + (i32.load + (tee_local $5 + (i32.add + (get_local $4) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $40 + (get_local $5) + ) + (set_local $35 + (get_local $0) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $0) + (get_local $5) + ) + ) (set_local $40 - (get_local $5) + (i32.add + (get_local $4) + (i32.const 8) + ) ) (set_local $35 - (get_local $0) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $0) - (get_local $5) - ) - ) - (set_local $40 - (i32.add (get_local $4) - (i32.const 8) ) ) - (set_local $35 - (get_local $4) - ) ) - ) - (i32.store - (get_local $40) - (get_local $1) - ) - (i32.store offset=12 - (get_local $35) - (get_local $1) - ) - (i32.store offset=8 - (get_local $1) - (get_local $35) - ) - (i32.store offset=12 - (get_local $1) - (get_local $4) + (i32.store + (get_local $40) + (get_local $1) + ) + (i32.store offset=12 + (get_local $35) + (get_local $1) + ) + (i32.store offset=8 + (get_local $1) + (get_local $35) + ) + (i32.store offset=12 + (get_local $1) + (get_local $4) + ) ) ) - ) - (i32.store - (i32.const 1216) - (get_local $8) - ) - (i32.store - (i32.const 1228) - (get_local $12) - ) - (set_global $r - (get_local $25) - ) - (return - (get_local $7) + (i32.store + (i32.const 1216) + (get_local $8) + ) + (i32.store + (i32.const 1228) + (get_local $12) + ) + (set_global $r + (get_local $25) + ) + (return + (get_local $7) + ) ) ) - ) - (if - (tee_local $12 - (i32.load - (i32.const 1212) + (if + (tee_local $12 + (i32.load + (i32.const 1212) + ) ) - ) - (block - (set_local $12 - (i32.and - (i32.shr_u - (tee_local $8 - (i32.add - (i32.and - (get_local $12) - (i32.sub - (i32.const 0) + (block + (set_local $12 + (i32.and + (i32.shr_u + (tee_local $8 + (i32.add + (i32.and (get_local $12) + (i32.sub + (i32.const 0) + (get_local $12) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (set_local $0 - (i32.sub - (i32.and - (i32.load offset=4 - (tee_local $14 - (i32.load - (i32.add - (i32.shl - (i32.add - (i32.or + (set_local $0 + (i32.sub + (i32.and + (i32.load offset=4 + (tee_local $14 + (i32.load + (i32.add + (i32.shl + (i32.add (i32.or (i32.or (i32.or - (tee_local $8 + (i32.or + (tee_local $8 + (i32.and + (i32.shr_u + (tee_local $4 + (i32.shr_u + (get_local $8) + (get_local $12) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $12) + ) + (tee_local $4 (i32.and (i32.shr_u - (tee_local $4 + (tee_local $1 (i32.shr_u + (get_local $4) (get_local $8) - (get_local $12) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $12) ) - (tee_local $4 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u + (get_local $1) (get_local $4) - (get_local $8) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $5 (i32.shr_u + (get_local $0) (get_local $1) - (get_local $4) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (tee_local $5 - (i32.shr_u - (get_local $0) - (get_local $1) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $5) + (get_local $0) + ) ) - (i32.shr_u - (get_local $5) - (get_local $0) - ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) - ) - (set_local $5 - (get_local $14) - ) - (set_local $1 - (get_local $14) - ) - (loop $while-in - (block $while-out - (if - (tee_local $14 - (i32.load offset=16 - (get_local $5) - ) - ) - (set_local $6 - (get_local $14) - ) + (set_local $5 + (get_local $14) + ) + (set_local $1 + (get_local $14) + ) + (loop $while-in + (block $while-out (if - (tee_local $4 - (i32.load offset=20 + (tee_local $14 + (i32.load offset=16 (get_local $5) ) ) (set_local $6 - (get_local $4) + (get_local $14) ) - (block + (if + (tee_local $4 + (i32.load offset=20 + (get_local $5) + ) + ) (set_local $6 - (get_local $0) + (get_local $4) ) - (set_local $2 - (get_local $1) + (block + (set_local $6 + (get_local $0) + ) + (set_local $2 + (get_local $1) + ) + (br $while-out) ) - (br $while-out) ) ) - ) - (set_local $4 - (i32.lt_u - (tee_local $14 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $6) + (set_local $4 + (i32.lt_u + (tee_local $14 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $6) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $3) ) - (get_local $3) ) + (get_local $0) ) - (get_local $0) ) - ) - (set_local $0 - (select - (get_local $14) - (get_local $0) - (get_local $4) + (set_local $0 + (select + (get_local $14) + (get_local $0) + (get_local $4) + ) ) - ) - (set_local $5 - (get_local $6) - ) - (set_local $1 - (select + (set_local $5 (get_local $6) - (get_local $1) - (get_local $4) ) - ) - (br $while-in) - ) - ) - (if - (i32.lt_u - (get_local $2) - (tee_local $1 - (i32.load - (i32.const 1224) + (set_local $1 + (select + (get_local $6) + (get_local $1) + (get_local $4) + ) ) + (br $while-in) ) ) - (call $qa) - ) - (if - (i32.ge_u - (get_local $2) - (tee_local $5 - (i32.add - (get_local $2) - (get_local $3) + (if + (i32.lt_u + (get_local $2) + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (set_local $0 - (i32.load offset=24 - (get_local $2) - ) - ) - (block $do-once4 (if - (i32.eq - (tee_local $7 - (i32.load offset=12 + (i32.ge_u + (get_local $2) + (tee_local $5 + (i32.add (get_local $2) + (get_local $3) ) ) + ) + (call $qa) + ) + (set_local $0 + (i32.load offset=24 (get_local $2) ) - (block - (if - (tee_local $16 - (i32.load - (tee_local $9 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) - ) - ) - (block - (set_local $14 - (get_local $16) - ) - (set_local $4 - (get_local $9) - ) - ) - (if - (i32.eqz - (tee_local $14 - (i32.load - (tee_local $4 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - ) - ) - ) - (block - (set_local $23 - (i32.const 0) - ) - (br $do-once4) + ) + (block $do-once4 + (if + (i32.eq + (tee_local $7 + (i32.load offset=12 + (get_local $2) ) ) + (get_local $2) ) - (loop $while-in7 + (block (if (tee_local $16 (i32.load (tee_local $9 (i32.add - (get_local $14) + (get_local $2) (i32.const 20) ) ) @@ -940,702 +900,744 @@ (set_local $4 (get_local $9) ) - (br $while-in7) + ) + (if + (i32.eqz + (tee_local $14 + (i32.load + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 16) + ) + ) + ) + ) + ) + (block + (set_local $23 + (i32.const 0) + ) + (br $do-once4) + ) ) ) - (if - (tee_local $16 - (i32.load - (tee_local $9 - (i32.add - (get_local $14) - (i32.const 16) + (loop $while-in7 + (if + (tee_local $16 + (i32.load + (tee_local $9 + (i32.add + (get_local $14) + (i32.const 20) + ) ) ) ) + (block + (set_local $14 + (get_local $16) + ) + (set_local $4 + (get_local $9) + ) + (br $while-in7) + ) ) - (block - (set_local $14 - (get_local $16) + (if + (tee_local $16 + (i32.load + (tee_local $9 + (i32.add + (get_local $14) + (i32.const 16) + ) + ) + ) ) - (set_local $4 - (get_local $9) + (block + (set_local $14 + (get_local $16) + ) + (set_local $4 + (get_local $9) + ) + (br $while-in7) ) - (br $while-in7) ) ) - ) - (if - (i32.lt_u - (get_local $4) - (get_local $1) - ) - (call $qa) - (block - (i32.store + (if + (i32.lt_u (get_local $4) - (i32.const 0) - ) - (set_local $23 - (get_local $14) + (get_local $1) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $9 - (i32.load offset=8 - (get_local $2) + (call $qa) + (block + (i32.store + (get_local $4) + (i32.const 0) + ) + (set_local $23 + (get_local $14) ) ) - (get_local $1) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $16 - (i32.add - (get_local $9) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $9 + (i32.load offset=8 + (get_local $2) ) ) + (get_local $1) ) - (get_local $2) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $4 - (i32.add - (get_local $7) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $16 + (i32.add + (get_local $9) + (i32.const 12) + ) ) ) + (get_local $2) ) - (get_local $2) + (call $qa) ) - (block - (i32.store - (get_local $16) - (get_local $7) - ) - (i32.store - (get_local $4) - (get_local $9) + (if + (i32.eq + (i32.load + (tee_local $4 + (i32.add + (get_local $7) + (i32.const 8) + ) + ) + ) + (get_local $2) ) - (set_local $23 - (get_local $7) + (block + (i32.store + (get_local $16) + (get_local $7) + ) + (i32.store + (get_local $4) + (get_local $9) + ) + (set_local $23 + (get_local $7) + ) ) + (call $qa) ) - (call $qa) ) ) ) - ) - (block $do-once8 - (if - (get_local $0) - (block - (if - (i32.eq - (get_local $2) - (i32.load - (tee_local $1 - (i32.add - (i32.shl - (tee_local $7 - (i32.load offset=28 - (get_local $2) + (block $do-once8 + (if + (get_local $0) + (block + (if + (i32.eq + (get_local $2) + (i32.load + (tee_local $1 + (i32.add + (i32.shl + (tee_local $7 + (i32.load offset=28 + (get_local $2) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) - ) - (block - (i32.store - (get_local $1) - (get_local $23) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $1) (get_local $23) ) - (block - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $7) + (if + (i32.eqz + (get_local $23) + ) + (block + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $7) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once8) ) - (br $do-once8) ) ) - ) - (block - (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 1224) + (block + (if + (i32.lt_u + (get_local $0) + (i32.load + (i32.const 1224) + ) ) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $7 - (i32.add - (get_local $0) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $7 + (i32.add + (get_local $0) + (i32.const 16) + ) ) ) + (get_local $2) + ) + (i32.store + (get_local $7) + (get_local $23) + ) + (i32.store offset=20 + (get_local $0) + (get_local $23) ) - (get_local $2) - ) - (i32.store - (get_local $7) - (get_local $23) - ) - (i32.store offset=20 - (get_local $0) - (get_local $23) ) - ) - (br_if $do-once8 - (i32.eqz - (get_local $23) + (br_if $do-once8 + (i32.eqz + (get_local $23) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $23) - (tee_local $7 - (i32.load - (i32.const 1224) + (if + (i32.lt_u + (get_local $23) + (tee_local $7 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (i32.store offset=24 - (get_local $23) - (get_local $0) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $2) - ) + (i32.store offset=24 + (get_local $23) + (get_local $0) ) (if - (i32.lt_u - (get_local $1) - (get_local $7) + (tee_local $1 + (i32.load offset=16 + (get_local $2) + ) ) - (call $qa) - (block - (i32.store offset=16 - (get_local $23) + (if + (i32.lt_u (get_local $1) + (get_local $7) ) - (i32.store offset=24 - (get_local $1) - (get_local $23) + (call $qa) + (block + (i32.store offset=16 + (get_local $23) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $23) + ) ) ) ) - ) - (if - (tee_local $1 - (i32.load offset=20 - (get_local $2) - ) - ) (if - (i32.lt_u - (get_local $1) - (i32.load - (i32.const 1224) + (tee_local $1 + (i32.load offset=20 + (get_local $2) ) ) - (call $qa) - (block - (i32.store offset=20 - (get_local $23) + (if + (i32.lt_u (get_local $1) + (i32.load + (i32.const 1224) + ) ) - (i32.store offset=24 - (get_local $1) - (get_local $23) + (call $qa) + (block + (i32.store offset=20 + (get_local $23) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $23) + ) ) ) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $6) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $2) - (i32.or - (tee_local $0 - (i32.add - (get_local $6) - (get_local $3) + (if + (i32.lt_u + (get_local $6) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $2) + (i32.or + (tee_local $0 + (i32.add + (get_local $6) + (get_local $3) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $1 - (i32.add + (i32.store + (tee_local $1 (i32.add - (get_local $2) - (get_local $0) + (i32.add + (get_local $2) + (get_local $0) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $1) + (i32.or + (i32.load + (get_local $1) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 3) - ) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $6) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $3) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $5) - (get_local $6) + (i32.or + (get_local $6) + (i32.const 1) + ) ) - (get_local $6) - ) - (if - (tee_local $1 - (i32.load - (i32.const 1216) + (i32.store + (i32.add + (get_local $5) + (get_local $6) ) + (get_local $6) ) - (block - (set_local $0 + (if + (tee_local $1 (i32.load - (i32.const 1228) + (i32.const 1216) ) ) - (set_local $1 - (i32.add - (i32.shl - (tee_local $7 - (i32.shr_u - (get_local $1) - (i32.const 3) - ) - ) - (i32.const 3) + (block + (set_local $0 + (i32.load + (i32.const 1228) ) - (i32.const 1248) ) - ) - (if - (i32.and - (tee_local $9 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $4 + (set_local $1 + (i32.add (i32.shl - (i32.const 1) - (get_local $7) + (tee_local $7 + (i32.shr_u + (get_local $1) + (i32.const 3) + ) + ) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $9 (i32.load - (tee_local $4 - (i32.add - (get_local $1) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $4 + (i32.shl + (i32.const 1) + (get_local $7) + ) + ) + ) + (if + (i32.lt_u + (tee_local $9 + (i32.load + (tee_local $4 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $41 + (get_local $4) + ) + (set_local $27 + (get_local $9) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $9) + (get_local $4) + ) + ) (set_local $41 - (get_local $4) + (i32.add + (get_local $1) + (i32.const 8) + ) ) (set_local $27 - (get_local $9) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $9) - (get_local $4) - ) - ) - (set_local $41 - (i32.add (get_local $1) - (i32.const 8) ) ) - (set_local $27 - (get_local $1) - ) ) - ) - (i32.store - (get_local $41) - (get_local $0) - ) - (i32.store offset=12 - (get_local $27) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $27) - ) - (i32.store offset=12 - (get_local $0) - (get_local $1) + (i32.store + (get_local $41) + (get_local $0) + ) + (i32.store offset=12 + (get_local $27) + (get_local $0) + ) + (i32.store offset=8 + (get_local $0) + (get_local $27) + ) + (i32.store offset=12 + (get_local $0) + (get_local $1) + ) ) ) + (i32.store + (i32.const 1216) + (get_local $6) + ) + (i32.store + (i32.const 1228) + (get_local $5) + ) ) - (i32.store - (i32.const 1216) - (get_local $6) - ) - (i32.store - (i32.const 1228) - (get_local $5) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.add + (get_local $2) + (i32.const 8) ) ) ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $2) - (i32.const 8) - ) + (set_local $5 + (get_local $3) ) ) - (set_local $5 - (get_local $3) - ) ) + (set_local $5 + (get_local $3) + ) + ) + ) + (if + (i32.gt_u + (get_local $0) + (i32.const -65) ) (set_local $5 - (get_local $3) + (i32.const -1) ) - ) - ) - (if - (i32.gt_u - (get_local $0) - (i32.const -65) - ) - (set_local $5 - (i32.const -1) - ) - (block - (set_local $0 - (i32.and - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 11) + (block + (set_local $0 + (i32.and + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 11) + ) ) - ) - (i32.const -8) - ) - ) - (if - (tee_local $9 - (i32.load - (i32.const 1212) + (i32.const -8) ) ) - (block - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $0) + (if + (tee_local $9 + (i32.load + (i32.const 1212) ) ) - (block $label$break$a - (if - (tee_local $12 - (i32.load - (i32.add - (i32.shl - (tee_local $27 - (if (result i32) - (tee_local $7 - (i32.shr_u - (get_local $1) - (i32.const 8) - ) - ) + (block + (set_local $4 + (i32.sub + (i32.const 0) + (get_local $0) + ) + ) + (block $label$break$a + (if + (tee_local $12 + (i32.load + (i32.add + (i32.shl + (tee_local $27 (if (result i32) - (i32.gt_u - (get_local $0) - (i32.const 16777215) + (tee_local $7 + (i32.shr_u + (get_local $1) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $0) - (i32.add - (tee_local $12 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $0) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $0) + (i32.add + (tee_local $12 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $7 - (i32.and - (i32.shr_u - (i32.add - (tee_local $16 - (i32.shl - (get_local $7) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (get_local $7) - (i32.const 1048320) + (i32.or + (tee_local $7 + (i32.and + (i32.shr_u + (i32.add + (tee_local $16 + (i32.shl + (get_local $7) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (get_local $7) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $1) ) - (get_local $1) - ) - (tee_local $16 - (i32.and - (i32.shr_u - (i32.add - (tee_local $14 - (i32.shl - (get_local $16) - (get_local $7) + (tee_local $16 + (i32.and + (i32.shr_u + (i32.add + (tee_local $14 + (i32.shl + (get_local $16) + (get_local $7) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $14) - (get_local $16) + (i32.shr_u + (i32.shl + (get_local $14) + (get_local $16) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $12) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $12) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) - ) - (block - (set_local $16 - (get_local $4) - ) - (set_local $14 - (i32.const 0) - ) - (set_local $1 - (i32.shl - (get_local $0) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u + (block + (set_local $16 + (get_local $4) + ) + (set_local $14 + (i32.const 0) + ) + (set_local $1 + (i32.shl + (get_local $0) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $27) + (i32.const 1) + ) + ) + (i32.eq (get_local $27) - (i32.const 1) + (i32.const 31) ) ) - (i32.eq - (get_local $27) - (i32.const 31) - ) ) ) - ) - (set_local $7 - (get_local $12) - ) - (set_local $8 - (i32.const 0) - ) - (loop $while-in14 - (if - (i32.lt_u - (tee_local $12 - (i32.sub - (tee_local $3 - (i32.and - (i32.load offset=4 - (get_local $7) + (set_local $7 + (get_local $12) + ) + (set_local $8 + (i32.const 0) + ) + (loop $while-in14 + (if + (i32.lt_u + (tee_local $12 + (i32.sub + (tee_local $3 + (i32.and + (i32.load offset=4 + (get_local $7) + ) + (i32.const -8) ) - (i32.const -8) ) + (get_local $0) ) - (get_local $0) ) + (get_local $16) ) - (get_local $16) - ) - (if - (i32.eq - (get_local $3) - (get_local $0) - ) - (block - (set_local $29 - (get_local $12) - ) - (set_local $28 - (get_local $7) - ) - (set_local $32 - (get_local $7) - ) - (set_local $7 - (i32.const 90) + (if + (i32.eq + (get_local $3) + (get_local $0) ) - (br $label$break$a) - ) - (block - (set_local $16 - (get_local $12) + (block + (set_local $29 + (get_local $12) + ) + (set_local $28 + (get_local $7) + ) + (set_local $32 + (get_local $7) + ) + (set_local $7 + (i32.const 90) + ) + (br $label$break$a) ) - (set_local $8 - (get_local $7) + (block + (set_local $16 + (get_local $12) + ) + (set_local $8 + (get_local $7) + ) ) ) ) - ) - (set_local $3 - (select - (get_local $14) - (tee_local $12 - (i32.load offset=20 - (get_local $7) - ) - ) - (i32.or - (i32.eqz - (get_local $12) + (set_local $3 + (select + (get_local $14) + (tee_local $12 + (i32.load offset=20 + (get_local $7) + ) ) - (i32.eq - (get_local $12) - (tee_local $7 - (i32.load - (i32.add + (i32.or + (i32.eqz + (get_local $12) + ) + (i32.eq + (get_local $12) + (tee_local $7 + (i32.load (i32.add - (get_local $7) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) + (i32.add + (get_local $7) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) + ) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -1643,419 +1645,376 @@ ) ) ) - ) - (if - (tee_local $12 - (i32.eqz - (get_local $7) - ) - ) - (block - (set_local $36 - (get_local $16) - ) - (set_local $5 - (get_local $3) - ) - (set_local $33 - (get_local $8) - ) - (set_local $7 - (i32.const 86) + (if + (tee_local $12 + (i32.eqz + (get_local $7) + ) ) - ) - (block - (set_local $14 - (get_local $3) + (block + (set_local $36 + (get_local $16) + ) + (set_local $5 + (get_local $3) + ) + (set_local $33 + (get_local $8) + ) + (set_local $7 + (i32.const 86) + ) ) - (set_local $1 - (i32.shl - (get_local $1) - (i32.xor - (i32.and - (get_local $12) + (block + (set_local $14 + (get_local $3) + ) + (set_local $1 + (i32.shl + (get_local $1) + (i32.xor + (i32.and + (get_local $12) + (i32.const 1) + ) (i32.const 1) ) - (i32.const 1) ) ) + (br $while-in14) ) - (br $while-in14) ) ) ) - ) - (block - (set_local $36 - (get_local $4) - ) - (set_local $5 - (i32.const 0) - ) - (set_local $33 - (i32.const 0) - ) - (set_local $7 - (i32.const 86) + (block + (set_local $36 + (get_local $4) + ) + (set_local $5 + (i32.const 0) + ) + (set_local $33 + (i32.const 0) + ) + (set_local $7 + (i32.const 86) + ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 86) - ) (if - (tee_local $3 - (if (result i32) - (i32.and - (i32.eqz - (get_local $5) - ) - (i32.eqz - (get_local $33) - ) - ) - (block (result i32) - (if + (i32.eq + (get_local $7) + (i32.const 86) + ) + (if + (tee_local $3 + (if (result i32) + (i32.and (i32.eqz - (tee_local $4 - (i32.and - (get_local $9) - (i32.or - (tee_local $12 - (i32.shl - (i32.const 2) - (get_local $27) + (get_local $5) + ) + (i32.eqz + (get_local $33) + ) + ) + (block (result i32) + (if + (i32.eqz + (tee_local $4 + (i32.and + (get_local $9) + (i32.or + (tee_local $12 + (i32.shl + (i32.const 2) + (get_local $27) + ) + ) + (i32.sub + (i32.const 0) + (get_local $12) ) - ) - (i32.sub - (i32.const 0) - (get_local $12) ) ) ) ) - ) - (block - (set_local $5 - (get_local $0) + (block + (set_local $5 + (get_local $0) + ) + (br $do-once) ) - (br $do-once) ) - ) - (set_local $4 - (i32.and - (i32.shr_u - (tee_local $12 - (i32.add - (i32.and - (get_local $4) - (i32.sub - (i32.const 0) + (set_local $4 + (i32.and + (i32.shr_u + (tee_local $12 + (i32.add + (i32.and (get_local $4) + (i32.sub + (i32.const 0) + (get_local $4) + ) ) + (i32.const -1) ) - (i32.const -1) ) + (i32.const 12) ) - (i32.const 12) + (i32.const 16) ) - (i32.const 16) ) - ) - (i32.load - (i32.add - (i32.shl - (i32.add - (i32.or + (i32.load + (i32.add + (i32.shl + (i32.add (i32.or (i32.or (i32.or - (tee_local $12 + (i32.or + (tee_local $12 + (i32.and + (i32.shr_u + (tee_local $3 + (i32.shr_u + (get_local $12) + (get_local $4) + ) + ) + (i32.const 5) + ) + (i32.const 8) + ) + ) + (get_local $4) + ) + (tee_local $3 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u + (get_local $3) (get_local $12) - (get_local $4) ) ) - (i32.const 5) + (i32.const 2) ) - (i32.const 8) + (i32.const 4) ) ) - (get_local $4) ) - (tee_local $3 + (tee_local $5 (i32.and (i32.shr_u - (tee_local $5 + (tee_local $8 (i32.shr_u + (get_local $5) (get_local $3) - (get_local $12) ) ) - (i32.const 2) + (i32.const 1) ) - (i32.const 4) + (i32.const 2) ) ) ) - (tee_local $5 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $8 + (tee_local $1 (i32.shr_u + (get_local $8) (get_local $5) - (get_local $3) ) ) (i32.const 1) ) - (i32.const 2) - ) - ) - ) - (tee_local $8 - (i32.and - (i32.shr_u - (tee_local $1 - (i32.shr_u - (get_local $8) - (get_local $5) - ) - ) (i32.const 1) ) - (i32.const 1) ) ) + (i32.shr_u + (get_local $1) + (get_local $8) + ) ) - (i32.shr_u - (get_local $1) - (get_local $8) - ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) + (get_local $5) ) - (get_local $5) ) - ) - (block - (set_local $29 - (get_local $36) - ) - (set_local $28 - (get_local $3) - ) - (set_local $32 - (get_local $33) - ) - (set_local $7 - (i32.const 90) - ) - ) - (block - (set_local $18 - (get_local $36) + (block + (set_local $29 + (get_local $36) + ) + (set_local $28 + (get_local $3) + ) + (set_local $32 + (get_local $33) + ) + (set_local $7 + (i32.const 90) + ) ) - (set_local $10 - (get_local $33) + (block + (set_local $18 + (get_local $36) + ) + (set_local $10 + (get_local $33) + ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 90) - ) - (loop $while-in16 - (set_local $7 - (i32.const 0) + (if + (i32.eq + (get_local $7) + (i32.const 90) ) - (set_local $1 - (i32.lt_u - (tee_local $8 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $28) + (loop $while-in16 + (set_local $7 + (i32.const 0) + ) + (set_local $1 + (i32.lt_u + (tee_local $8 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $28) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $0) ) - (get_local $0) ) + (get_local $29) ) - (get_local $29) - ) - ) - (set_local $5 - (select - (get_local $8) - (get_local $29) - (get_local $1) - ) - ) - (set_local $8 - (select - (get_local $28) - (get_local $32) - (get_local $1) ) - ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $28) - ) - ) - (block - (set_local $29 - (get_local $5) - ) - (set_local $28 - (get_local $1) - ) - (set_local $32 + (set_local $5 + (select (get_local $8) + (get_local $29) + (get_local $1) ) - (br $while-in16) ) - ) - (if - (tee_local $28 - (i32.load offset=20 + (set_local $8 + (select (get_local $28) + (get_local $32) + (get_local $1) ) ) - (block - (set_local $29 - (get_local $5) + (if + (tee_local $1 + (i32.load offset=16 + (get_local $28) + ) ) - (set_local $32 - (get_local $8) + (block + (set_local $29 + (get_local $5) + ) + (set_local $28 + (get_local $1) + ) + (set_local $32 + (get_local $8) + ) + (br $while-in16) ) - (br $while-in16) ) - (block - (set_local $18 - (get_local $5) + (if + (tee_local $28 + (i32.load offset=20 + (get_local $28) + ) ) - (set_local $10 - (get_local $8) + (block + (set_local $29 + (get_local $5) + ) + (set_local $32 + (get_local $8) + ) + (br $while-in16) + ) + (block + (set_local $18 + (get_local $5) + ) + (set_local $10 + (get_local $8) + ) ) ) ) ) - ) - (if - (get_local $10) (if - (i32.lt_u - (get_local $18) - (i32.sub - (i32.load - (i32.const 1216) - ) - (get_local $0) - ) - ) - (block - (if - (i32.lt_u - (get_local $10) - (tee_local $9 - (i32.load - (i32.const 1224) - ) + (get_local $10) + (if + (i32.lt_u + (get_local $18) + (i32.sub + (i32.load + (i32.const 1216) ) + (get_local $0) ) - (call $qa) ) - (if - (i32.ge_u - (get_local $10) - (tee_local $8 - (i32.add - (get_local $10) - (get_local $0) + (block + (if + (i32.lt_u + (get_local $10) + (tee_local $9 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (set_local $5 - (i32.load offset=24 - (get_local $10) - ) - ) - (block $do-once17 (if - (i32.eq - (tee_local $1 - (i32.load offset=12 + (i32.ge_u + (get_local $10) + (tee_local $8 + (i32.add (get_local $10) + (get_local $0) ) ) + ) + (call $qa) + ) + (set_local $5 + (i32.load offset=24 (get_local $10) ) - (block - (if - (tee_local $4 - (i32.load - (tee_local $3 - (i32.add - (get_local $10) - (i32.const 20) - ) - ) - ) - ) - (block - (set_local $14 - (get_local $4) - ) - (set_local $1 - (get_local $3) - ) - ) - (if - (tee_local $14 - (i32.load - (tee_local $12 - (i32.add - (get_local $10) - (i32.const 16) - ) - ) - ) - ) - (set_local $1 - (get_local $12) - ) - (block - (set_local $22 - (i32.const 0) - ) - (br $do-once17) + ) + (block $do-once17 + (if + (i32.eq + (tee_local $1 + (i32.load offset=12 + (get_local $10) ) ) + (get_local $10) ) - (loop $while-in20 + (block (if (tee_local $4 (i32.load (tee_local $3 (i32.add - (get_local $14) + (get_local $10) (i32.const 20) ) ) @@ -2068,698 +2027,615 @@ (set_local $1 (get_local $3) ) - (br $while-in20) + ) + (if + (tee_local $14 + (i32.load + (tee_local $12 + (i32.add + (get_local $10) + (i32.const 16) + ) + ) + ) + ) + (set_local $1 + (get_local $12) + ) + (block + (set_local $22 + (i32.const 0) + ) + (br $do-once17) + ) ) ) - (if - (tee_local $4 - (i32.load - (tee_local $3 - (i32.add - (get_local $14) - (i32.const 16) + (loop $while-in20 + (if + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $14) + (i32.const 20) + ) ) ) ) + (block + (set_local $14 + (get_local $4) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in20) + ) ) - (block - (set_local $14 - (get_local $4) + (if + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $14) + (i32.const 16) + ) + ) + ) ) - (set_local $1 - (get_local $3) + (block + (set_local $14 + (get_local $4) + ) + (set_local $1 + (get_local $3) + ) + (br $while-in20) ) - (br $while-in20) ) ) - ) - (if - (i32.lt_u - (get_local $1) - (get_local $9) - ) - (call $qa) - (block - (i32.store + (if + (i32.lt_u (get_local $1) - (i32.const 0) - ) - (set_local $22 - (get_local $14) + (get_local $9) ) - ) - ) - ) - (block - (if - (i32.lt_u - (tee_local $3 - (i32.load offset=8 - (get_local $10) + (call $qa) + (block + (i32.store + (get_local $1) + (i32.const 0) + ) + (set_local $22 + (get_local $14) ) ) - (get_local $9) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $4 - (i32.add - (get_local $3) - (i32.const 12) + (block + (if + (i32.lt_u + (tee_local $3 + (i32.load offset=8 + (get_local $10) ) ) + (get_local $9) ) - (get_local $10) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $12 - (i32.add - (get_local $1) - (i32.const 8) + (if + (i32.ne + (i32.load + (tee_local $4 + (i32.add + (get_local $3) + (i32.const 12) + ) ) ) + (get_local $10) ) - (get_local $10) + (call $qa) ) - (block - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store - (get_local $12) - (get_local $3) + (if + (i32.eq + (i32.load + (tee_local $12 + (i32.add + (get_local $1) + (i32.const 8) + ) + ) + ) + (get_local $10) ) - (set_local $22 - (get_local $1) + (block + (i32.store + (get_local $4) + (get_local $1) + ) + (i32.store + (get_local $12) + (get_local $3) + ) + (set_local $22 + (get_local $1) + ) ) + (call $qa) ) - (call $qa) ) ) ) - ) - (block $do-once21 - (if - (get_local $5) - (block - (if - (i32.eq - (get_local $10) - (i32.load - (tee_local $9 - (i32.add - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $10) + (block $do-once21 + (if + (get_local $5) + (block + (if + (i32.eq + (get_local $10) + (i32.load + (tee_local $9 + (i32.add + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $10) + ) ) + (i32.const 2) ) - (i32.const 2) + (i32.const 1512) ) - (i32.const 1512) ) ) ) - ) - (block - (i32.store - (get_local $9) - (get_local $22) - ) - (if - (i32.eqz + (block + (i32.store + (get_local $9) (get_local $22) ) - (block - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $1) + (if + (i32.eqz + (get_local $22) + ) + (block + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $1) + ) + (i32.const -1) ) - (i32.const -1) ) ) + (br $do-once21) ) - (br $do-once21) ) ) - ) - (block - (if - (i32.lt_u - (get_local $5) - (i32.load - (i32.const 1224) + (block + (if + (i32.lt_u + (get_local $5) + (i32.load + (i32.const 1224) + ) ) + (call $qa) ) - (call $qa) - ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $5) - (i32.const 16) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $5) + (i32.const 16) + ) ) ) + (get_local $10) + ) + (i32.store + (get_local $1) + (get_local $22) + ) + (i32.store offset=20 + (get_local $5) + (get_local $22) ) - (get_local $10) - ) - (i32.store - (get_local $1) - (get_local $22) - ) - (i32.store offset=20 - (get_local $5) - (get_local $22) ) - ) - (br_if $do-once21 - (i32.eqz - (get_local $22) + (br_if $do-once21 + (i32.eqz + (get_local $22) + ) ) ) ) - ) - (if - (i32.lt_u - (get_local $22) - (tee_local $1 - (i32.load - (i32.const 1224) + (if + (i32.lt_u + (get_local $22) + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (call $qa) ) - (call $qa) - ) - (i32.store offset=24 - (get_local $22) - (get_local $5) - ) - (if - (tee_local $9 - (i32.load offset=16 - (get_local $10) - ) + (i32.store offset=24 + (get_local $22) + (get_local $5) ) (if - (i32.lt_u - (get_local $9) - (get_local $1) + (tee_local $9 + (i32.load offset=16 + (get_local $10) + ) ) - (call $qa) - (block - (i32.store offset=16 - (get_local $22) + (if + (i32.lt_u (get_local $9) + (get_local $1) ) - (i32.store offset=24 - (get_local $9) - (get_local $22) + (call $qa) + (block + (i32.store offset=16 + (get_local $22) + (get_local $9) + ) + (i32.store offset=24 + (get_local $9) + (get_local $22) + ) ) ) ) - ) - (if - (tee_local $9 - (i32.load offset=20 - (get_local $10) - ) - ) (if - (i32.lt_u - (get_local $9) - (i32.load - (i32.const 1224) + (tee_local $9 + (i32.load offset=20 + (get_local $10) ) ) - (call $qa) - (block - (i32.store offset=20 - (get_local $22) + (if + (i32.lt_u (get_local $9) + (i32.load + (i32.const 1224) + ) ) - (i32.store offset=24 - (get_local $9) - (get_local $22) + (call $qa) + (block + (i32.store offset=20 + (get_local $22) + (get_local $9) + ) + (i32.store offset=24 + (get_local $9) + (get_local $22) + ) ) ) ) ) ) ) - ) - (block $do-once25 - (if - (i32.lt_u - (get_local $18) - (i32.const 16) - ) - (block - (i32.store offset=4 - (get_local $10) - (i32.or - (tee_local $5 - (i32.add - (get_local $18) - (get_local $0) + (block $do-once25 + (if + (i32.lt_u + (get_local $18) + (i32.const 16) + ) + (block + (i32.store offset=4 + (get_local $10) + (i32.or + (tee_local $5 + (i32.add + (get_local $18) + (get_local $0) + ) ) + (i32.const 3) ) - (i32.const 3) ) - ) - (i32.store - (tee_local $9 - (i32.add + (i32.store + (tee_local $9 (i32.add - (get_local $10) - (get_local $5) + (i32.add + (get_local $10) + (get_local $5) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $9) + (i32.or + (i32.load + (get_local $9) + ) + (i32.const 1) ) - (i32.const 1) ) ) - ) - (block - (i32.store offset=4 - (get_local $10) - (i32.or - (get_local $0) - (i32.const 3) - ) - ) - (i32.store offset=4 - (get_local $8) - (i32.or - (get_local $18) - (i32.const 1) + (block + (i32.store offset=4 + (get_local $10) + (i32.or + (get_local $0) + (i32.const 3) + ) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $8) - (get_local $18) + (i32.or + (get_local $18) + (i32.const 1) + ) ) - (get_local $18) - ) - (set_local $9 - (i32.shr_u + (i32.store + (i32.add + (get_local $8) + (get_local $18) + ) (get_local $18) - (i32.const 3) ) - ) - (if - (i32.lt_u - (get_local $18) - (i32.const 256) + (set_local $9 + (i32.shr_u + (get_local $18) + (i32.const 3) + ) ) - (block - (set_local $5 - (i32.add - (i32.shl - (get_local $9) - (i32.const 3) - ) - (i32.const 1248) - ) + (if + (i32.lt_u + (get_local $18) + (i32.const 256) ) - (if - (i32.and - (tee_local $1 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $3 + (block + (set_local $5 + (i32.add (i32.shl - (i32.const 1) (get_local $9) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $1 (i32.load - (tee_local $3 - (i32.add - (get_local $5) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $3 + (i32.shl + (i32.const 1) + (get_local $9) + ) + ) + ) + (if + (i32.lt_u + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (get_local $5) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $19 + (get_local $3) + ) + (set_local $6 + (get_local $1) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $1) + (get_local $3) + ) + ) (set_local $19 - (get_local $3) + (i32.add + (get_local $5) + (i32.const 8) + ) ) (set_local $6 - (get_local $1) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $1) - (get_local $3) - ) - ) - (set_local $19 - (i32.add (get_local $5) - (i32.const 8) ) ) - (set_local $6 - (get_local $5) - ) ) + (i32.store + (get_local $19) + (get_local $8) + ) + (i32.store offset=12 + (get_local $6) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $6) + ) + (i32.store offset=12 + (get_local $8) + (get_local $5) + ) + (br $do-once25) ) - (i32.store - (get_local $19) - (get_local $8) - ) - (i32.store offset=12 - (get_local $6) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $6) - ) - (i32.store offset=12 - (get_local $8) - (get_local $5) - ) - (br $do-once25) ) - ) - (set_local $12 - (i32.add - (i32.shl - (tee_local $16 - (if (result i32) - (tee_local $5 - (i32.shr_u - (get_local $18) - (i32.const 8) - ) - ) + (set_local $12 + (i32.add + (i32.shl + (tee_local $16 (if (result i32) - (i32.gt_u - (get_local $18) - (i32.const 16777215) + (tee_local $5 + (i32.shr_u + (get_local $18) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $18) - (i32.add - (tee_local $12 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $18) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $18) + (i32.add + (tee_local $12 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $5 - (i32.and - (i32.shr_u - (i32.add - (tee_local $3 - (i32.shl - (get_local $5) - (tee_local $1 - (i32.and - (i32.shr_u - (i32.add - (get_local $5) - (i32.const 1048320) + (i32.or + (tee_local $5 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $5) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (get_local $5) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $1) ) - (get_local $1) - ) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (tee_local $9 - (i32.shl - (get_local $3) - (get_local $5) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (tee_local $9 + (i32.shl + (get_local $3) + (get_local $5) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $9) - (get_local $3) + (i32.shr_u + (i32.shl + (get_local $9) + (get_local $3) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $12) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $12) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $8) - (get_local $16) - ) - (i32.store offset=4 - (tee_local $3 - (i32.add - (get_local $8) - (i32.const 16) - ) - ) - (i32.const 0) - ) - (i32.store - (get_local $3) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $9 - (i32.shl - (i32.const 1) - (get_local $16) ) + (i32.const 2) ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $3) - (get_local $9) - ) - ) - (i32.store - (get_local $12) - (get_local $8) - ) - (i32.store offset=24 - (get_local $8) - (get_local $12) - ) - (i32.store offset=12 - (get_local $8) - (get_local $8) - ) - (i32.store offset=8 - (get_local $8) - (get_local $8) - ) - (br $do-once25) + (i32.store offset=28 + (get_local $8) + (get_local $16) ) - ) - (set_local $9 - (i32.shl - (get_local $18) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $16) - (i32.const 1) - ) - ) - (i32.eq - (get_local $16) - (i32.const 31) + (i32.store offset=4 + (tee_local $3 + (i32.add + (get_local $8) + (i32.const 16) ) ) + (i32.const 0) ) - ) - (set_local $3 - (i32.load - (get_local $12) + (i32.store + (get_local $3) + (i32.const 0) ) - ) - (loop $while-in28 - (block $while-out27 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.const -8) - ) - (get_local $18) - ) - (block - (set_local $17 - (get_local $3) - ) - (set_local $7 - (i32.const 148) - ) - (br $while-out27) - ) - ) - (if - (tee_local $1 - (i32.load - (tee_local $12 - (i32.add - (i32.add - (get_local $3) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $9) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $9 + (tee_local $9 (i32.shl - (get_local $9) (i32.const 1) + (get_local $16) ) ) - (set_local $3 - (get_local $1) - ) - (br $while-in28) ) - (block - (set_local $21 - (get_local $12) - ) - (set_local $15 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $3) + (get_local $9) ) - (set_local $7 - (i32.const 145) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 145) - ) - (if - (i32.lt_u - (get_local $21) - (i32.load - (i32.const 1224) ) - ) - (call $qa) - (block (i32.store - (get_local $21) + (get_local $12) (get_local $8) ) (i32.store offset=24 (get_local $8) - (get_local $15) + (get_local $12) ) (i32.store offset=12 (get_local $8) @@ -2769,375 +2645,449 @@ (get_local $8) (get_local $8) ) + (br $do-once25) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 148) + (set_local $9 + (i32.shl + (get_local $18) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $16) + (i32.const 1) + ) + ) + (i32.eq + (get_local $16) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $9 - (i32.load - (tee_local $3 + ) + (set_local $3 + (i32.load + (get_local $12) + ) + ) + (loop $while-in28 + (block $while-out27 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) + ) + (get_local $18) + ) + (block + (set_local $17 + (get_local $3) + ) + (set_local $7 + (i32.const 148) + ) + (br $while-out27) + ) + ) + (if + (tee_local $1 + (i32.load + (tee_local $12 + (i32.add (i32.add - (get_local $17) - (i32.const 8) + (get_local $3) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $9) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $1 - (i32.load - (i32.const 1224) + ) + (block + (set_local $9 + (i32.shl + (get_local $9) + (i32.const 1) ) ) + (set_local $3 + (get_local $1) + ) + (br $while-in28) ) - (i32.ge_u - (get_local $17) - (get_local $1) + (block + (set_local $21 + (get_local $12) + ) + (set_local $15 + (get_local $3) + ) + (set_local $7 + (i32.const 145) + ) ) ) - (block - (i32.store offset=12 - (get_local $9) - (get_local $8) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 145) + ) + (if + (i32.lt_u + (get_local $21) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $3) + (get_local $21) (get_local $8) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $8) - (get_local $9) + (get_local $15) ) (i32.store offset=12 (get_local $8) - (get_local $17) + (get_local $8) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $8) (get_local $8) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 148) + ) + (if + (i32.and + (i32.ge_u + (tee_local $9 + (i32.load + (tee_local $3 + (i32.add + (get_local $17) + (i32.const 8) + ) + ) + ) + ) + (tee_local $1 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $17) + (get_local $1) + ) + ) + (block + (i32.store offset=12 + (get_local $9) + (get_local $8) + ) + (i32.store + (get_local $3) + (get_local $8) + ) + (i32.store offset=8 + (get_local $8) + (get_local $9) + ) + (i32.store offset=12 + (get_local $8) + (get_local $17) + ) + (i32.store offset=24 + (get_local $8) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $10) - (i32.const 8) + (set_global $r + (get_local $25) ) + (return + (i32.add + (get_local $10) + (i32.const 8) + ) + ) + ) + (set_local $5 + (get_local $0) ) ) (set_local $5 (get_local $0) ) ) - (set_local $5 - (get_local $0) - ) ) - ) - (set_local $5 - (get_local $0) + (set_local $5 + (get_local $0) + ) ) ) ) ) ) - ) - (if - (i32.ge_u - (tee_local $10 - (i32.load - (i32.const 1216) - ) - ) - (get_local $5) - ) - (block - (set_local $15 - (i32.load - (i32.const 1228) + (if + (i32.ge_u + (tee_local $10 + (i32.load + (i32.const 1216) + ) ) + (get_local $5) ) - (if - (i32.gt_u - (tee_local $17 - (i32.sub - (get_local $10) - (get_local $5) - ) + (block + (set_local $15 + (i32.load + (i32.const 1228) ) - (i32.const 15) ) - (block - (i32.store - (i32.const 1228) - (tee_local $21 - (i32.add - (get_local $15) + (if + (i32.gt_u + (tee_local $17 + (i32.sub + (get_local $10) (get_local $5) ) ) + (i32.const 15) ) - (i32.store - (i32.const 1216) - (get_local $17) - ) - (i32.store offset=4 - (get_local $21) - (i32.or + (block + (i32.store + (i32.const 1228) + (tee_local $21 + (i32.add + (get_local $15) + (get_local $5) + ) + ) + ) + (i32.store + (i32.const 1216) (get_local $17) - (i32.const 1) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $21) + (i32.or + (get_local $17) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $21) + (get_local $17) + ) (get_local $17) ) - (get_local $17) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $15) + (i32.or + (get_local $5) + (i32.const 3) + ) ) ) - ) - (block - (i32.store - (i32.const 1216) - (i32.const 0) - ) - (i32.store - (i32.const 1228) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $10) - (i32.const 3) + (block + (i32.store + (i32.const 1216) + (i32.const 0) ) - ) - (i32.store - (tee_local $17 - (i32.add + (i32.store + (i32.const 1228) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $15) + (i32.or + (get_local $10) + (i32.const 3) + ) + ) + (i32.store + (tee_local $17 (i32.add - (get_local $15) - (get_local $10) + (i32.add + (get_local $15) + (get_local $10) + ) + (i32.const 4) ) - (i32.const 4) ) - ) - (i32.or - (i32.load - (get_local $17) + (i32.or + (i32.load + (get_local $17) + ) + (i32.const 1) ) - (i32.const 1) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $15) - (i32.const 8) - ) + (br $folding-inner0) ) ) - ) - (if - (i32.gt_u - (tee_local $15 - (i32.load - (i32.const 1220) + (if + (i32.gt_u + (tee_local $15 + (i32.load + (i32.const 1220) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (i32.store - (i32.const 1220) - (tee_local $17 - (i32.sub - (get_local $15) - (get_local $5) + (block + (i32.store + (i32.const 1220) + (tee_local $17 + (i32.sub + (get_local $15) + (get_local $5) + ) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $10 - (i32.add - (tee_local $15 - (i32.load - (i32.const 1232) + (i32.store + (i32.const 1232) + (tee_local $10 + (i32.add + (tee_local $15 + (i32.load + (i32.const 1232) + ) ) + (get_local $5) ) - (get_local $5) ) ) - ) - (i32.store offset=4 - (get_local $10) - (i32.or - (get_local $17) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $15) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $10) + (i32.or + (get_local $17) + (i32.const 1) + ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add + (i32.store offset=4 (get_local $15) - (i32.const 8) + (i32.or + (get_local $5) + (i32.const 3) + ) ) + (br $folding-inner0) ) ) - ) - (if - (i32.eqz - (i32.load - (i32.const 1680) - ) - ) - (block - (i32.store - (i32.const 1688) - (i32.const 4096) - ) - (i32.store - (i32.const 1684) - (i32.const 4096) - ) - (i32.store - (i32.const 1692) - (i32.const -1) - ) - (i32.store - (i32.const 1696) - (i32.const -1) - ) - (i32.store - (i32.const 1700) - (i32.const 0) - ) - (i32.store - (i32.const 1652) - (i32.const 0) - ) - (i32.store - (get_local $13) - (tee_local $15 - (i32.xor - (i32.and - (get_local $13) - (i32.const -16) - ) - (i32.const 1431655768) - ) + (if + (i32.eqz + (i32.load + (i32.const 1680) ) ) - (i32.store - (i32.const 1680) - (get_local $15) - ) - ) - ) - (set_local $15 - (i32.add - (get_local $5) - (i32.const 48) - ) - ) - (if - (i32.le_u - (tee_local $13 - (i32.and - (tee_local $10 - (i32.add - (tee_local $13 - (i32.load - (i32.const 1688) - ) - ) - (tee_local $17 - (i32.add - (get_local $5) - (i32.const 47) - ) + (block + (i32.store + (i32.const 1688) + (i32.const 4096) + ) + (i32.store + (i32.const 1684) + (i32.const 4096) + ) + (i32.store + (i32.const 1692) + (i32.const -1) + ) + (i32.store + (i32.const 1696) + (i32.const -1) + ) + (i32.store + (i32.const 1700) + (i32.const 0) + ) + (i32.store + (i32.const 1652) + (i32.const 0) + ) + (i32.store + (get_local $13) + (tee_local $15 + (i32.xor + (i32.and + (get_local $13) + (i32.const -16) ) - ) - ) - (tee_local $21 - (i32.sub - (i32.const 0) - (get_local $13) + (i32.const 1431655768) ) ) ) - ) - (get_local $5) - ) - (block - (set_global $r - (get_local $25) - ) - (return - (i32.const 0) + (i32.store + (i32.const 1680) + (get_local $15) + ) ) ) - ) - (if - (tee_local $18 - (i32.load - (i32.const 1648) + (set_local $15 + (i32.add + (get_local $5) + (i32.const 48) ) ) (if - (i32.or - (i32.le_u - (tee_local $6 - (i32.add - (tee_local $16 - (i32.load - (i32.const 1640) + (i32.le_u + (tee_local $13 + (i32.and + (tee_local $10 + (i32.add + (tee_local $13 + (i32.load + (i32.const 1688) + ) + ) + (tee_local $17 + (i32.add + (get_local $5) + (i32.const 47) + ) ) ) - (get_local $13) + ) + (tee_local $21 + (i32.sub + (i32.const 0) + (get_local $13) + ) ) ) - (get_local $16) - ) - (i32.gt_u - (get_local $6) - (get_local $18) ) + (get_local $5) ) (block (set_global $r @@ -3148,270 +3098,306 @@ ) ) ) - ) - (if - (i32.eq - (tee_local $7 - (block $label$break$b (result i32) - (if (result i32) - (i32.and - (i32.load - (i32.const 1652) + (if + (tee_local $18 + (i32.load + (i32.const 1648) + ) + ) + (if + (i32.or + (i32.le_u + (tee_local $6 + (i32.add + (tee_local $16 + (i32.load + (i32.const 1640) + ) + ) + (get_local $13) ) - (i32.const 4) ) - (i32.const 188) - (block (result i32) - (block $label$break$c - (if - (tee_local $18 - (i32.load - (i32.const 1232) - ) - ) - (block - (set_local $6 - (i32.const 1656) + (get_local $16) + ) + (i32.gt_u + (get_local $6) + (get_local $18) + ) + ) + (block + (set_global $r + (get_local $25) + ) + (return + (i32.const 0) + ) + ) + ) + ) + (if + (i32.eq + (tee_local $7 + (block $label$break$b (result i32) + (if (result i32) + (i32.and + (i32.load + (i32.const 1652) + ) + (i32.const 4) + ) + (i32.const 188) + (block (result i32) + (block $label$break$c + (if + (tee_local $18 + (i32.load + (i32.const 1232) + ) ) - (loop $while-in32 - (block $while-out31 - (if - (i32.le_u - (tee_local $16 - (i32.load - (get_local $6) - ) - ) - (get_local $18) - ) + (block + (set_local $6 + (i32.const 1656) + ) + (loop $while-in32 + (block $while-out31 (if - (i32.gt_u - (i32.add - (get_local $16) + (i32.le_u + (tee_local $16 (i32.load - (tee_local $19 - (i32.add - (get_local $6) - (i32.const 4) - ) - ) + (get_local $6) ) ) (get_local $18) ) - (block - (set_local $0 - (get_local $6) + (if + (i32.gt_u + (i32.add + (get_local $16) + (i32.load + (tee_local $19 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + ) + ) + (get_local $18) ) - (set_local $4 - (get_local $19) + (block + (set_local $0 + (get_local $6) + ) + (set_local $4 + (get_local $19) + ) + (br $while-out31) ) - (br $while-out31) ) ) - ) - (br_if $while-in32 - (tee_local $6 - (i32.load offset=8 - (get_local $6) + (br_if $while-in32 + (tee_local $6 + (i32.load offset=8 + (get_local $6) + ) ) ) + (set_local $7 + (i32.const 171) + ) + (br $label$break$c) ) - (set_local $7 - (i32.const 171) - ) - (br $label$break$c) ) - ) - (if - (i32.lt_u - (tee_local $6 - (i32.and - (i32.sub - (get_local $10) - (i32.load - (i32.const 1220) + (if + (i32.lt_u + (tee_local $6 + (i32.and + (i32.sub + (get_local $10) + (i32.load + (i32.const 1220) + ) ) + (get_local $21) ) - (get_local $21) ) + (i32.const 2147483647) ) - (i32.const 2147483647) - ) - (if - (i32.eq - (tee_local $19 - (call $ta - (get_local $6) + (if + (i32.eq + (tee_local $19 + (call $ta + (get_local $6) + ) + ) + (i32.add + (i32.load + (get_local $0) + ) + (i32.load + (get_local $4) + ) ) ) - (i32.add - (i32.load - (get_local $0) + (if + (i32.ne + (get_local $19) + (i32.const -1) ) - (i32.load - (get_local $4) + (block + (set_local $20 + (get_local $19) + ) + (set_local $26 + (get_local $6) + ) + (br $label$break$b + (i32.const 191) + ) ) ) - ) - (if - (i32.ne - (get_local $19) - (i32.const -1) - ) (block - (set_local $20 + (set_local $11 (get_local $19) ) - (set_local $26 + (set_local $2 (get_local $6) ) - (br $label$break$b - (i32.const 191) + (set_local $7 + (i32.const 181) ) ) ) - (block - (set_local $11 - (get_local $19) - ) - (set_local $2 - (get_local $6) - ) - (set_local $7 - (i32.const 181) - ) - ) ) ) - ) - (set_local $7 - (i32.const 171) + (set_local $7 + (i32.const 171) + ) ) ) - ) - (block $do-once33 - (if - (i32.eq - (get_local $7) - (i32.const 171) - ) + (block $do-once33 (if - (i32.ne - (tee_local $18 - (call $ta - (i32.const 0) + (i32.eq + (get_local $7) + (i32.const 171) + ) + (if + (i32.ne + (tee_local $18 + (call $ta + (i32.const 0) + ) ) + (i32.const -1) ) - (i32.const -1) - ) - (block - (set_local $3 - (if (result i32) - (i32.and - (tee_local $19 - (i32.add - (tee_local $6 - (i32.load - (i32.const 1684) + (block + (set_local $3 + (if (result i32) + (i32.and + (tee_local $19 + (i32.add + (tee_local $6 + (i32.load + (i32.const 1684) + ) ) + (i32.const -1) ) - (i32.const -1) + ) + (tee_local $0 + (get_local $18) ) ) - (tee_local $0 - (get_local $18) - ) - ) - (i32.add - (i32.sub - (get_local $13) - (get_local $0) - ) - (i32.and - (i32.add - (get_local $19) + (i32.add + (i32.sub + (get_local $13) (get_local $0) ) - (i32.sub - (i32.const 0) - (get_local $6) + (i32.and + (i32.add + (get_local $19) + (get_local $0) + ) + (i32.sub + (i32.const 0) + (get_local $6) + ) ) ) + (get_local $13) ) - (get_local $13) ) - ) - (set_local $0 - (i32.add - (tee_local $6 - (i32.load - (i32.const 1640) + (set_local $0 + (i32.add + (tee_local $6 + (i32.load + (i32.const 1640) + ) ) - ) - (get_local $3) - ) - ) - (if - (i32.and - (i32.gt_u (get_local $3) - (get_local $5) - ) - (i32.lt_u - (get_local $3) - (i32.const 2147483647) ) ) - (block - (if - (tee_local $19 - (i32.load - (i32.const 1648) - ) + (if + (i32.and + (i32.gt_u + (get_local $3) + (get_local $5) ) - (br_if $do-once33 - (i32.or - (i32.le_u - (get_local $0) - (get_local $6) - ) - (i32.gt_u - (get_local $0) - (get_local $19) - ) - ) + (i32.lt_u + (get_local $3) + (i32.const 2147483647) ) ) - (if - (i32.eq + (block + (if (tee_local $19 - (call $ta - (get_local $3) + (i32.load + (i32.const 1648) ) ) - (get_local $18) - ) - (block - (set_local $20 - (get_local $18) - ) - (set_local $26 - (get_local $3) - ) - (br $label$break$b - (i32.const 191) + (br_if $do-once33 + (i32.or + (i32.le_u + (get_local $0) + (get_local $6) + ) + (i32.gt_u + (get_local $0) + (get_local $19) + ) + ) ) ) - (block - (set_local $11 - (get_local $19) + (if + (i32.eq + (tee_local $19 + (call $ta + (get_local $3) + ) + ) + (get_local $18) ) - (set_local $2 - (get_local $3) + (block + (set_local $20 + (get_local $18) + ) + (set_local $26 + (get_local $3) + ) + (br $label$break$b + (i32.const 191) + ) ) - (set_local $7 - (i32.const 181) + (block + (set_local $11 + (get_local $19) + ) + (set_local $2 + (get_local $3) + ) + (set_local $7 + (i32.const 181) + ) ) ) ) @@ -3420,1058 +3406,1084 @@ ) ) ) - ) - (block $label$break$d - (if - (i32.eq - (get_local $7) - (i32.const 181) - ) - (block - (set_local $19 - (i32.sub - (i32.const 0) - (get_local $2) - ) + (block $label$break$d + (if + (i32.eq + (get_local $7) + (i32.const 181) ) - (if - (i32.and - (i32.gt_u - (get_local $15) + (block + (set_local $19 + (i32.sub + (i32.const 0) (get_local $2) ) + ) + (if (i32.and - (i32.lt_u + (i32.gt_u + (get_local $15) (get_local $2) - (i32.const 2147483647) ) - (i32.ne - (get_local $11) - (i32.const -1) + (i32.and + (i32.lt_u + (get_local $2) + (i32.const 2147483647) + ) + (i32.ne + (get_local $11) + (i32.const -1) + ) ) ) - ) - (if - (i32.lt_u - (tee_local $0 - (i32.and - (i32.add - (i32.sub - (get_local $17) - (get_local $2) - ) - (tee_local $18 - (i32.load - (i32.const 1688) + (if + (i32.lt_u + (tee_local $0 + (i32.and + (i32.add + (i32.sub + (get_local $17) + (get_local $2) + ) + (tee_local $18 + (i32.load + (i32.const 1688) + ) ) ) + (i32.sub + (i32.const 0) + (get_local $18) + ) ) - (i32.sub - (i32.const 0) - (get_local $18) - ) - ) - ) - (i32.const 2147483647) - ) - (if - (i32.eq - (call $ta - (get_local $0) ) - (i32.const -1) + (i32.const 2147483647) ) - (block - (drop + (if + (i32.eq (call $ta - (get_local $19) + (get_local $0) + ) + (i32.const -1) + ) + (block + (drop + (call $ta + (get_local $19) + ) + ) + (br $label$break$d) + ) + (set_local $1 + (i32.add + (get_local $0) + (get_local $2) ) ) - (br $label$break$d) ) (set_local $1 - (i32.add - (get_local $0) - (get_local $2) - ) + (get_local $2) ) ) (set_local $1 (get_local $2) ) ) - (set_local $1 - (get_local $2) - ) - ) - (if - (i32.ne - (get_local $11) - (i32.const -1) - ) - (block - (set_local $20 + (if + (i32.ne (get_local $11) + (i32.const -1) ) - (set_local $26 - (get_local $1) - ) - (br $label$break$b - (i32.const 191) + (block + (set_local $20 + (get_local $11) + ) + (set_local $26 + (get_local $1) + ) + (br $label$break$b + (i32.const 191) + ) ) ) ) ) ) - ) - (i32.store - (i32.const 1652) - (i32.or - (i32.load - (i32.const 1652) + (i32.store + (i32.const 1652) + (i32.or + (i32.load + (i32.const 1652) + ) + (i32.const 4) ) - (i32.const 4) ) + (i32.const 188) ) - (i32.const 188) ) ) ) - ) - (i32.const 188) - ) - (if - (i32.lt_u - (get_local $13) - (i32.const 2147483647) + (i32.const 188) ) (if - (i32.and - (i32.lt_u - (tee_local $1 - (call $ta - (get_local $13) + (i32.lt_u + (get_local $13) + (i32.const 2147483647) + ) + (if + (i32.and + (i32.lt_u + (tee_local $1 + (call $ta + (get_local $13) + ) ) - ) - (tee_local $13 - (call $ta - (i32.const 0) + (tee_local $13 + (call $ta + (i32.const 0) + ) ) ) - ) - (i32.and - (i32.ne - (get_local $1) - (i32.const -1) - ) - (i32.ne - (get_local $13) - (i32.const -1) - ) - ) - ) - (if - (i32.gt_u - (tee_local $11 - (i32.sub - (get_local $13) + (i32.and + (i32.ne (get_local $1) + (i32.const -1) + ) + (i32.ne + (get_local $13) + (i32.const -1) ) - ) - (i32.add - (get_local $5) - (i32.const 40) ) ) - (block - (set_local $20 - (get_local $1) - ) - (set_local $26 - (get_local $11) + (if + (i32.gt_u + (tee_local $11 + (i32.sub + (get_local $13) + (get_local $1) + ) + ) + (i32.add + (get_local $5) + (i32.const 40) + ) ) - (set_local $7 - (i32.const 191) + (block + (set_local $20 + (get_local $1) + ) + (set_local $26 + (get_local $11) + ) + (set_local $7 + (i32.const 191) + ) ) ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 191) - ) - (block - (i32.store - (i32.const 1640) - (tee_local $11 - (i32.add - (i32.load - (i32.const 1640) - ) - (get_local $26) - ) - ) + (if + (i32.eq + (get_local $7) + (i32.const 191) ) - (if - (i32.gt_u - (get_local $11) - (i32.load - (i32.const 1644) - ) - ) + (block (i32.store - (i32.const 1644) - (get_local $11) + (i32.const 1640) + (tee_local $11 + (i32.add + (i32.load + (i32.const 1640) + ) + (get_local $26) + ) + ) ) - ) - (block $do-once38 (if - (tee_local $11 + (i32.gt_u + (get_local $11) (i32.load - (i32.const 1232) + (i32.const 1644) ) ) - (block - (set_local $2 - (i32.const 1656) + (i32.store + (i32.const 1644) + (get_local $11) + ) + ) + (block $do-once38 + (if + (tee_local $11 + (i32.load + (i32.const 1232) + ) ) - (loop $do-in41 - (block $do-out40 - (if - (i32.eq - (get_local $20) - (i32.add - (tee_local $1 - (i32.load - (get_local $2) + (block + (set_local $2 + (i32.const 1656) + ) + (loop $do-in41 + (block $do-out40 + (if + (i32.eq + (get_local $20) + (i32.add + (tee_local $1 + (i32.load + (get_local $2) + ) ) - ) - (tee_local $17 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 4) + (tee_local $17 + (i32.load + (tee_local $13 + (i32.add + (get_local $2) + (i32.const 4) + ) ) ) ) ) ) - ) - (block - (set_local $48 - (get_local $1) - ) - (set_local $49 - (get_local $13) - ) - (set_local $50 - (get_local $17) - ) - (set_local $51 - (get_local $2) - ) - (set_local $7 - (i32.const 201) + (block + (set_local $48 + (get_local $1) + ) + (set_local $49 + (get_local $13) + ) + (set_local $50 + (get_local $17) + ) + (set_local $51 + (get_local $2) + ) + (set_local $7 + (i32.const 201) + ) + (br $do-out40) ) - (br $do-out40) ) - ) - (br_if $do-in41 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $do-in41 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) ) ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 201) - ) (if - (i32.eqz - (i32.and - (i32.load offset=12 - (get_local $51) - ) - (i32.const 8) - ) + (i32.eq + (get_local $7) + (i32.const 201) ) (if - (i32.and - (i32.lt_u - (get_local $11) - (get_local $20) - ) - (i32.ge_u - (get_local $11) - (get_local $48) + (i32.eqz + (i32.and + (i32.load offset=12 + (get_local $51) + ) + (i32.const 8) ) ) - (block - (i32.store - (get_local $49) - (i32.add - (get_local $50) - (get_local $26) + (if + (i32.and + (i32.lt_u + (get_local $11) + (get_local $20) ) - ) - (set_local $2 - (i32.add + (i32.ge_u (get_local $11) - (tee_local $17 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $11) - (i32.const 8) + (get_local $48) + ) + ) + (block + (i32.store + (get_local $49) + (i32.add + (get_local $50) + (get_local $26) + ) + ) + (set_local $2 + (i32.add + (get_local $11) + (tee_local $17 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $11) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) ) - ) - (set_local $13 - (i32.add - (i32.sub - (get_local $26) - (get_local $17) - ) - (i32.load - (i32.const 1220) + (set_local $13 + (i32.add + (i32.sub + (get_local $26) + (get_local $17) + ) + (i32.load + (i32.const 1220) + ) ) ) - ) - (i32.store - (i32.const 1232) - (get_local $2) - ) - (i32.store - (i32.const 1220) - (get_local $13) - ) - (i32.store offset=4 - (get_local $2) - (i32.or + (i32.store + (i32.const 1232) + (get_local $2) + ) + (i32.store + (i32.const 1220) (get_local $13) - (i32.const 1) ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $13) + (i32.or + (get_local $13) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=4 + (i32.add + (get_local $2) + (get_local $13) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) ) + (br $do-once38) ) - (br $do-once38) ) ) ) - ) - (set_local $14 - (if (result i32) - (i32.lt_u - (get_local $20) - (tee_local $13 - (i32.load - (i32.const 1224) + (set_local $14 + (if (result i32) + (i32.lt_u + (get_local $20) + (tee_local $13 + (i32.load + (i32.const 1224) + ) ) ) - ) - (block (result i32) - (i32.store - (i32.const 1224) + (block (result i32) + (i32.store + (i32.const 1224) + (get_local $20) + ) (get_local $20) ) + (get_local $13) + ) + ) + (set_local $13 + (i32.add (get_local $20) + (get_local $26) ) - (get_local $13) ) - ) - (set_local $13 - (i32.add - (get_local $20) - (get_local $26) + (set_local $2 + (i32.const 1656) ) - ) - (set_local $2 - (i32.const 1656) - ) - (loop $while-in43 - (block $while-out42 - (if - (i32.eq - (i32.load - (get_local $2) - ) - (get_local $13) - ) - (block - (set_local $52 - (get_local $2) - ) - (set_local $42 - (get_local $2) + (loop $while-in43 + (block $while-out42 + (if + (i32.eq + (i32.load + (get_local $2) + ) + (get_local $13) ) - (set_local $7 - (i32.const 209) + (block + (set_local $52 + (get_local $2) + ) + (set_local $42 + (get_local $2) + ) + (set_local $7 + (i32.const 209) + ) + (br $while-out42) ) - (br $while-out42) ) - ) - (br_if $while-in43 - (tee_local $2 - (i32.load offset=8 - (get_local $2) + (br_if $while-in43 + (tee_local $2 + (i32.load offset=8 + (get_local $2) + ) ) ) + (set_local $30 + (i32.const 1656) + ) ) - (set_local $30 - (i32.const 1656) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 209) ) (if - (i32.and - (i32.load offset=12 - (get_local $42) - ) - (i32.const 8) - ) - (set_local $30 - (i32.const 1656) + (i32.eq + (get_local $7) + (i32.const 209) ) - (block - (i32.store - (get_local $52) - (get_local $20) + (if + (i32.and + (i32.load offset=12 + (get_local $42) + ) + (i32.const 8) ) - (i32.store - (tee_local $2 - (i32.add - (get_local $42) - (i32.const 4) - ) + (set_local $30 + (i32.const 1656) + ) + (block + (i32.store + (get_local $52) + (get_local $20) ) - (i32.add - (i32.load - (get_local $2) + (i32.store + (tee_local $2 + (i32.add + (get_local $42) + (i32.const 4) + ) + ) + (i32.add + (i32.load + (get_local $2) + ) + (get_local $26) ) - (get_local $26) ) - ) - (set_local $17 - (i32.add - (get_local $20) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $20) - (i32.const 8) + (set_local $17 + (i32.add + (get_local $20) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) - ) - (set_local $1 - (i32.add - (get_local $13) - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $2 - (i32.add - (get_local $13) - (i32.const 8) + (set_local $1 + (i32.add + (get_local $13) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $13) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $2) - (i32.const 7) ) ) ) - ) - (set_local $2 - (i32.add - (get_local $17) - (get_local $5) - ) - ) - (set_local $15 - (i32.sub - (i32.sub - (get_local $1) + (set_local $2 + (i32.add (get_local $17) + (get_local $5) ) - (get_local $5) ) - ) - (i32.store offset=4 - (get_local $17) - (i32.or - (get_local $5) - (i32.const 3) + (set_local $15 + (i32.sub + (i32.sub + (get_local $1) + (get_local $17) + ) + (get_local $5) + ) ) - ) - (block $do-once44 - (if - (i32.eq - (get_local $1) - (get_local $11) + (i32.store offset=4 + (get_local $17) + (i32.or + (get_local $5) + (i32.const 3) ) - (block - (i32.store - (i32.const 1220) - (tee_local $3 - (i32.add - (i32.load - (i32.const 1220) + ) + (block $do-once44 + (if + (i32.eq + (get_local $1) + (get_local $11) + ) + (block + (i32.store + (i32.const 1220) + (tee_local $3 + (i32.add + (i32.load + (i32.const 1220) + ) + (get_local $15) ) - (get_local $15) ) ) - ) - (i32.store - (i32.const 1232) - (get_local $2) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 1) + (i32.store + (i32.const 1232) + (get_local $2) ) - ) - ) - (block - (if - (i32.eq - (get_local $1) - (i32.load - (i32.const 1228) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $3) + (i32.const 1) ) ) - (block - (i32.store - (i32.const 1216) - (tee_local $3 - (i32.add - (i32.load - (i32.const 1216) + ) + (block + (if + (i32.eq + (get_local $1) + (i32.load + (i32.const 1228) + ) + ) + (block + (i32.store + (i32.const 1216) + (tee_local $3 + (i32.add + (i32.load + (i32.const 1216) + ) + (get_local $15) ) - (get_local $15) ) ) - ) - (i32.store - (i32.const 1228) - (get_local $2) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $3) - (i32.const 1) + (i32.store + (i32.const 1228) + (get_local $2) ) - ) - (i32.store - (i32.add + (i32.store offset=4 (get_local $2) - (get_local $3) + (i32.or + (get_local $3) + (i32.const 1) + ) ) - (get_local $3) - ) - (br $do-once44) - ) - ) - (if - (i32.eq - (i32.and - (tee_local $3 - (i32.load offset=4 - (get_local $1) + (i32.store + (i32.add + (get_local $2) + (get_local $3) ) + (get_local $3) ) - (i32.const 3) + (br $do-once44) ) - (i32.const 1) ) - (block - (set_local $4 + (if + (i32.eq (i32.and - (get_local $3) - (i32.const -8) - ) - ) - (set_local $0 - (i32.shr_u - (get_local $3) + (tee_local $3 + (i32.load offset=4 + (get_local $1) + ) + ) (i32.const 3) ) + (i32.const 1) ) - (block $label$break$e - (if - (i32.lt_u + (block + (set_local $4 + (i32.and (get_local $3) - (i32.const 256) + (i32.const -8) ) - (block - (set_local $10 - (i32.load offset=12 - (get_local $1) - ) + ) + (set_local $0 + (i32.shr_u + (get_local $3) + (i32.const 3) + ) + ) + (block $label$break$e + (if + (i32.lt_u + (get_local $3) + (i32.const 256) ) - (block $do-once47 - (if - (i32.ne - (tee_local $21 - (i32.load offset=8 - (get_local $1) - ) - ) - (tee_local $19 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (block + (set_local $10 + (i32.load offset=12 + (get_local $1) + ) + ) + (block $do-once47 + (if + (i32.ne + (tee_local $21 + (i32.load offset=8 + (get_local $1) ) - (i32.const 1248) ) - ) - ) - (block - (if - (i32.lt_u - (get_local $21) - (get_local $14) + (tee_local $19 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 1248) + ) ) - (call $qa) ) - (br_if $do-once47 - (i32.eq - (i32.load offset=12 + (block + (if + (i32.lt_u (get_local $21) + (get_local $14) ) - (get_local $1) - ) - ) - (call $qa) - ) - ) - ) - (if - (i32.eq - (get_local $10) - (get_local $21) - ) - (block - (i32.store - (i32.const 1208) - (i32.and - (i32.load - (i32.const 1208) + (call $qa) ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) + (br_if $do-once47 + (i32.eq + (i32.load offset=12 + (get_local $21) + ) + (get_local $1) ) - (i32.const -1) ) + (call $qa) ) ) - (br $label$break$e) ) - ) - (block $do-once49 (if (i32.eq (get_local $10) - (get_local $19) + (get_local $21) ) - (set_local $43 - (i32.add - (get_local $10) - (i32.const 8) + (block + (i32.store + (i32.const 1208) + (i32.and + (i32.load + (i32.const 1208) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) + ) + (i32.const -1) + ) + ) ) + (br $label$break$e) ) - (block - (if - (i32.lt_u + ) + (block $do-once49 + (if + (i32.eq + (get_local $10) + (get_local $19) + ) + (set_local $43 + (i32.add (get_local $10) - (get_local $14) + (i32.const 8) ) - (call $qa) ) - (if - (i32.eq - (i32.load - (tee_local $0 - (i32.add - (get_local $10) - (i32.const 8) + (block + (if + (i32.lt_u + (get_local $10) + (get_local $14) + ) + (call $qa) + ) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $10) + (i32.const 8) + ) ) ) + (get_local $1) ) - (get_local $1) - ) - (block - (set_local $43 - (get_local $0) + (block + (set_local $43 + (get_local $0) + ) + (br $do-once49) ) - (br $do-once49) ) + (call $qa) ) - (call $qa) ) ) - ) - (i32.store offset=12 - (get_local $21) - (get_local $10) - ) - (i32.store - (get_local $43) - (get_local $21) - ) - ) - (block - (set_local $19 - (i32.load offset=24 - (get_local $1) + (i32.store offset=12 + (get_local $21) + (get_local $10) + ) + (i32.store + (get_local $43) + (get_local $21) ) ) - (block $do-once51 - (if - (i32.eq - (tee_local $0 - (i32.load offset=12 - (get_local $1) - ) - ) + (block + (set_local $19 + (i32.load offset=24 (get_local $1) ) - (block - (if - (tee_local $16 - (i32.load - (tee_local $6 - (i32.add - (tee_local $18 - (i32.add - (get_local $1) - (i32.const 16) + ) + (block $do-once51 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $1) + ) + ) + (get_local $1) + ) + (block + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (tee_local $18 + (i32.add + (get_local $1) + (i32.const 16) + ) ) + (i32.const 4) ) - (i32.const 4) ) ) ) - ) - (block - (set_local $3 - (get_local $16) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) ) - (set_local $0 - (get_local $6) + (if + (tee_local $22 + (i32.load + (get_local $18) + ) + ) + (block + (set_local $3 + (get_local $22) + ) + (set_local $0 + (get_local $18) + ) + ) + (block + (set_local $24 + (i32.const 0) + ) + (br $do-once51) + ) ) ) - (if - (tee_local $22 - (i32.load - (get_local $18) + (loop $while-in54 + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (get_local $3) + (i32.const 20) + ) + ) + ) + ) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) + (br $while-in54) ) ) - (block - (set_local $3 - (get_local $22) + (if + (tee_local $16 + (i32.load + (tee_local $6 + (i32.add + (get_local $3) + (i32.const 16) + ) + ) + ) ) - (set_local $0 - (get_local $18) + (block + (set_local $3 + (get_local $16) + ) + (set_local $0 + (get_local $6) + ) + (br $while-in54) ) ) + ) + (if + (i32.lt_u + (get_local $0) + (get_local $14) + ) + (call $qa) (block - (set_local $24 + (i32.store + (get_local $0) (i32.const 0) ) - (br $do-once51) + (set_local $24 + (get_local $3) + ) ) ) ) - (loop $while-in54 + (block (if - (tee_local $16 + (i32.lt_u + (tee_local $6 + (i32.load offset=8 + (get_local $1) + ) + ) + (get_local $14) + ) + (call $qa) + ) + (if + (i32.ne (i32.load - (tee_local $6 + (tee_local $16 (i32.add - (get_local $3) - (i32.const 20) + (get_local $6) + (i32.const 12) ) ) ) + (get_local $1) ) - (block - (set_local $3 - (get_local $16) - ) - (set_local $0 - (get_local $6) - ) - (br $while-in54) - ) + (call $qa) ) (if - (tee_local $16 + (i32.eq (i32.load - (tee_local $6 + (tee_local $18 (i32.add - (get_local $3) - (i32.const 16) + (get_local $0) + (i32.const 8) ) ) ) + (get_local $1) ) (block - (set_local $3 + (i32.store (get_local $16) + (get_local $0) ) - (set_local $0 + (i32.store + (get_local $18) (get_local $6) ) - (br $while-in54) - ) - ) - ) - (if - (i32.lt_u - (get_local $0) - (get_local $14) - ) - (call $qa) - (block - (i32.store - (get_local $0) - (i32.const 0) - ) - (set_local $24 - (get_local $3) + (set_local $24 + (get_local $0) + ) ) + (call $qa) ) ) ) - (block - (if - (i32.lt_u - (tee_local $6 - (i32.load offset=8 - (get_local $1) + ) + (br_if $label$break$e + (i32.eqz + (get_local $19) + ) + ) + (block $do-once55 + (if + (i32.eq + (get_local $1) + (i32.load + (tee_local $21 + (i32.add + (i32.shl + (tee_local $0 + (i32.load offset=28 + (get_local $1) + ) + ) + (i32.const 2) + ) + (i32.const 1512) ) ) - (get_local $14) ) - (call $qa) ) - (if - (i32.ne - (i32.load - (tee_local $16 - (i32.add - (get_local $6) - (i32.const 12) + (block + (i32.store + (get_local $21) + (get_local $24) + ) + (br_if $do-once55 + (get_local $24) + ) + (i32.store + (i32.const 1212) + (i32.and + (i32.load + (i32.const 1212) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) ) + (i32.const -1) ) ) - (get_local $1) ) - (call $qa) + (br $label$break$e) ) - (if - (i32.eq - (i32.load - (tee_local $18 - (i32.add - (get_local $0) - (i32.const 8) - ) + (block + (if + (i32.lt_u + (get_local $19) + (i32.load + (i32.const 1224) ) ) - (get_local $1) + (call $qa) ) - (block - (i32.store - (get_local $16) - (get_local $0) + (if + (i32.eq + (i32.load + (tee_local $10 + (i32.add + (get_local $19) + (i32.const 16) + ) + ) + ) + (get_local $1) ) (i32.store - (get_local $18) - (get_local $6) + (get_local $10) + (get_local $24) ) - (set_local $24 - (get_local $0) + (i32.store offset=20 + (get_local $19) + (get_local $24) + ) + ) + (br_if $label$break$e + (i32.eqz + (get_local $24) ) ) - (call $qa) ) ) ) - ) - (br_if $label$break$e - (i32.eqz + (if + (i32.lt_u + (get_local $24) + (tee_local $0 + (i32.load + (i32.const 1224) + ) + ) + ) + (call $qa) + ) + (i32.store offset=24 + (get_local $24) (get_local $19) ) - ) - (block $do-once55 (if - (i32.eq - (get_local $1) + (tee_local $10 (i32.load (tee_local $21 (i32.add - (i32.shl - (tee_local $0 - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - ) - ) - (block - (i32.store - (get_local $21) - (get_local $24) - ) - (br_if $do-once55 - (get_local $24) - ) - (i32.store - (i32.const 1212) - (i32.and - (i32.load - (i32.const 1212) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $0) - ) - (i32.const -1) + (get_local $1) + (i32.const 16) ) ) ) - (br $label$break$e) ) - (block - (if - (i32.lt_u - (get_local $19) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) + (if + (i32.lt_u + (get_local $10) + (get_local $0) ) - (if - (i32.eq - (i32.load - (tee_local $10 - (i32.add - (get_local $19) - (i32.const 16) - ) - ) - ) - (get_local $1) - ) - (i32.store - (get_local $10) - (get_local $24) - ) - (i32.store offset=20 - (get_local $19) + (call $qa) + (block + (i32.store offset=16 (get_local $24) + (get_local $10) ) - ) - (br_if $label$break$e - (i32.eqz + (i32.store offset=24 + (get_local $10) (get_local $24) ) ) ) ) - ) - (if - (i32.lt_u - (get_local $24) - (tee_local $0 - (i32.load - (i32.const 1224) - ) - ) - ) - (call $qa) - ) - (i32.store offset=24 - (get_local $24) - (get_local $19) - ) - (if - (tee_local $10 - (i32.load - (tee_local $21 - (i32.add - (get_local $1) - (i32.const 16) + (br_if $label$break$e + (i32.eqz + (tee_local $10 + (i32.load offset=4 + (get_local $21) ) ) ) @@ -4479,11 +4491,13 @@ (if (i32.lt_u (get_local $10) - (get_local $0) + (i32.load + (i32.const 1224) + ) ) (call $qa) (block - (i32.store offset=16 + (i32.store offset=20 (get_local $24) (get_local $10) ) @@ -4494,467 +4508,313 @@ ) ) ) - (br_if $label$break$e - (i32.eqz - (tee_local $10 - (i32.load offset=4 - (get_local $21) - ) - ) - ) - ) - (if - (i32.lt_u - (get_local $10) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block - (i32.store offset=20 - (get_local $24) - (get_local $10) - ) - (i32.store offset=24 - (get_local $10) - (get_local $24) - ) - ) - ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (get_local $4) + ) + ) + (set_local $15 + (i32.add + (get_local $4) + (get_local $15) ) ) ) - (set_local $1 + ) + (i32.store + (tee_local $0 (i32.add (get_local $1) - (get_local $4) + (i32.const 4) ) ) - (set_local $15 - (i32.add - (get_local $4) - (get_local $15) + (i32.and + (i32.load + (get_local $0) ) + (i32.const -2) ) ) - ) - (i32.store - (tee_local $0 - (i32.add - (get_local $1) - (i32.const 4) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $15) + (i32.const 1) ) ) - (i32.and - (i32.load - (get_local $0) + (i32.store + (i32.add + (get_local $2) + (get_local $15) ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $2) - (i32.or - (get_local $15) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $2) (get_local $15) ) - (get_local $15) - ) - (set_local $0 - (i32.shr_u - (get_local $15) - (i32.const 3) - ) - ) - (if - (i32.lt_u - (get_local $15) - (i32.const 256) + (set_local $0 + (i32.shr_u + (get_local $15) + (i32.const 3) + ) ) - (block - (set_local $3 - (i32.add - (i32.shl - (get_local $0) - (i32.const 3) + (if + (i32.lt_u + (get_local $15) + (i32.const 256) + ) + (block + (set_local $3 + (i32.add + (i32.shl + (get_local $0) + (i32.const 3) + ) + (i32.const 1248) ) - (i32.const 1248) ) - ) - (block $do-once59 - (if - (i32.and - (tee_local $10 - (i32.load - (i32.const 1208) + (block $do-once59 + (if + (i32.and + (tee_local $10 + (i32.load + (i32.const 1208) + ) ) - ) - (tee_local $0 - (i32.shl - (i32.const 1) - (get_local $0) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $0) + ) ) ) - ) - (block - (if - (i32.ge_u - (tee_local $19 - (i32.load - (tee_local $0 - (i32.add - (get_local $3) - (i32.const 8) + (block + (if + (i32.ge_u + (tee_local $19 + (i32.load + (tee_local $0 + (i32.add + (get_local $3) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (block + (set_local $44 + (get_local $0) + ) + (set_local $37 + (get_local $19) + ) + (br $do-once59) ) ) - (block - (set_local $44 + (call $qa) + ) + (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $10) (get_local $0) ) - (set_local $37 - (get_local $19) - ) - (br $do-once59) ) - ) - (call $qa) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $10) - (get_local $0) + (set_local $44 + (i32.add + (get_local $3) + (i32.const 8) + ) ) - ) - (set_local $44 - (i32.add + (set_local $37 (get_local $3) - (i32.const 8) ) ) - (set_local $37 - (get_local $3) - ) ) ) + (i32.store + (get_local $44) + (get_local $2) + ) + (i32.store offset=12 + (get_local $37) + (get_local $2) + ) + (i32.store offset=8 + (get_local $2) + (get_local $37) + ) + (i32.store offset=12 + (get_local $2) + (get_local $3) + ) + (br $do-once44) ) - (i32.store - (get_local $44) - (get_local $2) - ) - (i32.store offset=12 - (get_local $37) - (get_local $2) - ) - (i32.store offset=8 - (get_local $2) - (get_local $37) - ) - (i32.store offset=12 - (get_local $2) - (get_local $3) - ) - (br $do-once44) ) - ) - (set_local $0 - (i32.add - (i32.shl - (tee_local $4 - (block $do-once61 (result i32) - (if (result i32) - (tee_local $0 - (i32.shr_u - (get_local $15) - (i32.const 8) + (set_local $0 + (i32.add + (i32.shl + (tee_local $4 + (block $do-once61 (result i32) + (if (result i32) + (tee_local $0 + (i32.shr_u + (get_local $15) + (i32.const 8) + ) ) - ) - (block (result i32) - (drop - (br_if $do-once61 - (i32.const 31) - (i32.gt_u - (get_local $15) - (i32.const 16777215) + (block (result i32) + (drop + (br_if $do-once61 + (i32.const 31) + (i32.gt_u + (get_local $15) + (i32.const 16777215) + ) ) ) - ) - (i32.or - (i32.and - (i32.shr_u - (get_local $15) - (i32.add - (tee_local $6 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $15) + (i32.add + (tee_local $6 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $19 - (i32.and - (i32.shr_u - (i32.add - (tee_local $4 - (i32.shl - (get_local $0) - (tee_local $10 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $19 + (i32.and + (i32.shr_u + (i32.add + (tee_local $4 + (i32.shl + (get_local $0) + (tee_local $10 + (i32.and + (i32.shr_u + (i32.add + (get_local $0) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $10) ) - (get_local $10) - ) - (tee_local $4 - (i32.and - (i32.shr_u - (i32.add - (tee_local $0 - (i32.shl - (get_local $4) - (get_local $19) + (tee_local $4 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (i32.shl + (get_local $4) + (get_local $19) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $0) - (get_local $4) + (i32.shr_u + (i32.shl + (get_local $0) + (get_local $4) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $6) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $6) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) ) ) + (i32.const 2) ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $2) - (get_local $4) - ) - (i32.store offset=4 - (tee_local $3 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - (i32.const 0) - ) - (i32.store - (get_local $3) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $3 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $6 - (i32.shl - (i32.const 1) - (get_local $4) - ) - ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $3) - (get_local $6) - ) - ) - (i32.store - (get_local $0) - (get_local $2) - ) - (i32.store offset=24 - (get_local $2) - (get_local $0) - ) - (i32.store offset=12 - (get_local $2) - (get_local $2) - ) - (i32.store offset=8 - (get_local $2) - (get_local $2) - ) - (br $do-once44) + (i32.store offset=28 + (get_local $2) + (get_local $4) ) - ) - (set_local $6 - (i32.shl - (get_local $15) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $4) - (i32.const 1) - ) - ) - (i32.eq - (get_local $4) - (i32.const 31) + (i32.store offset=4 + (tee_local $3 + (i32.add + (get_local $2) + (i32.const 16) ) ) + (i32.const 0) ) - ) - (set_local $3 - (i32.load - (get_local $0) + (i32.store + (get_local $3) + (i32.const 0) ) - ) - (loop $while-in64 - (block $while-out63 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $3) - ) - (i32.const -8) - ) - (get_local $15) - ) - (block - (set_local $38 - (get_local $3) - ) - (set_local $7 - (i32.const 279) - ) - (br $while-out63) - ) - ) - (if - (tee_local $4 - (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $3) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $6) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $3 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $6 + (tee_local $6 (i32.shl - (get_local $6) (i32.const 1) + (get_local $4) ) ) - (set_local $3 - (get_local $4) - ) - (br $while-in64) ) - (block - (set_local $45 - (get_local $0) - ) - (set_local $53 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $3) - ) - (set_local $7 - (i32.const 276) + (get_local $6) ) ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 276) - ) - (if - (i32.lt_u - (get_local $45) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block (i32.store - (get_local $45) + (get_local $0) (get_local $2) ) (i32.store offset=24 (get_local $2) - (get_local $53) + (get_local $0) ) (i32.store offset=12 (get_local $2) @@ -4964,705 +4824,705 @@ (get_local $2) (get_local $2) ) + (br $do-once44) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 279) + (set_local $6 + (i32.shl + (get_local $15) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $4) + (i32.const 1) + ) + ) + (i32.eq + (get_local $4) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $6 - (i32.load - (tee_local $3 + ) + (set_local $3 + (i32.load + (get_local $0) + ) + ) + (loop $while-in64 + (block $while-out63 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $3) + ) + (i32.const -8) + ) + (get_local $15) + ) + (block + (set_local $38 + (get_local $3) + ) + (set_local $7 + (i32.const 279) + ) + (br $while-out63) + ) + ) + (if + (tee_local $4 + (i32.load + (tee_local $0 + (i32.add (i32.add - (get_local $38) - (i32.const 8) + (get_local $3) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $6) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $4 - (i32.load - (i32.const 1224) + ) + (block + (set_local $6 + (i32.shl + (get_local $6) + (i32.const 1) ) ) + (set_local $3 + (get_local $4) + ) + (br $while-in64) ) - (i32.ge_u - (get_local $38) - (get_local $4) + (block + (set_local $45 + (get_local $0) + ) + (set_local $53 + (get_local $3) + ) + (set_local $7 + (i32.const 276) + ) ) ) - (block - (i32.store offset=12 - (get_local $6) - (get_local $2) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 276) + ) + (if + (i32.lt_u + (get_local $45) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $3) + (get_local $45) (get_local $2) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $2) - (get_local $6) + (get_local $53) ) (i32.store offset=12 (get_local $2) - (get_local $38) + (get_local $2) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $2) (get_local $2) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 279) + ) + (if + (i32.and + (i32.ge_u + (tee_local $6 + (i32.load + (tee_local $3 + (i32.add + (get_local $38) + (i32.const 8) + ) + ) + ) + ) + (tee_local $4 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $38) + (get_local $4) + ) + ) + (block + (i32.store offset=12 + (get_local $6) + (get_local $2) + ) + (i32.store + (get_local $3) + (get_local $2) + ) + (i32.store offset=8 + (get_local $2) + (get_local $6) + ) + (i32.store offset=12 + (get_local $2) + (get_local $38) + ) + (i32.store offset=24 + (get_local $2) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add - (get_local $17) - (i32.const 8) + (set_global $r + (get_local $25) ) - ) - ) - ) - ) - (loop $while-in66 - (block $while-out65 - (if - (i32.le_u - (tee_local $2 - (i32.load - (get_local $30) + (return + (i32.add + (get_local $17) + (i32.const 8) ) ) - (get_local $11) ) + ) + ) + (loop $while-in66 + (block $while-out65 (if - (i32.gt_u - (tee_local $15 - (i32.add - (get_local $2) - (i32.load offset=4 - (get_local $30) - ) + (i32.le_u + (tee_local $2 + (i32.load + (get_local $30) ) ) (get_local $11) ) - (block - (set_local $0 - (get_local $15) + (if + (i32.gt_u + (tee_local $15 + (i32.add + (get_local $2) + (i32.load offset=4 + (get_local $30) + ) + ) + ) + (get_local $11) + ) + (block + (set_local $0 + (get_local $15) + ) + (br $while-out65) ) - (br $while-out65) ) ) - ) - (set_local $30 - (i32.load offset=8 - (get_local $30) + (set_local $30 + (i32.load offset=8 + (get_local $30) + ) ) + (br $while-in66) ) - (br $while-in66) ) - ) - (set_local $15 - (i32.add - (tee_local $17 - (i32.add - (get_local $0) - (i32.const -47) + (set_local $15 + (i32.add + (tee_local $17 + (i32.add + (get_local $0) + (i32.const -47) + ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (set_local $2 - (i32.add - (tee_local $17 - (select - (get_local $11) - (tee_local $2 - (i32.add - (get_local $17) - (select - (i32.and - (i32.sub - (i32.const 0) + (set_local $2 + (i32.add + (tee_local $17 + (select + (get_local $11) + (tee_local $2 + (i32.add + (get_local $17) + (select + (i32.and + (i32.sub + (i32.const 0) + (get_local $15) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and (get_local $15) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $15) - (i32.const 7) ) ) ) - ) - (i32.lt_u - (get_local $2) - (tee_local $15 - (i32.add - (get_local $11) - (i32.const 16) + (i32.lt_u + (get_local $2) + (tee_local $15 + (i32.add + (get_local $11) + (i32.const 16) + ) ) ) ) ) + (i32.const 8) ) - (i32.const 8) ) - ) - (i32.store - (i32.const 1232) - (tee_local $1 - (i32.add - (get_local $20) - (tee_local $13 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $20) - (i32.const 8) + (i32.store + (i32.const 1232) + (tee_local $1 + (i32.add + (get_local $20) + (tee_local $13 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 1220) - (tee_local $6 - (i32.sub + (i32.store + (i32.const 1220) + (tee_local $6 + (i32.sub + (i32.add + (get_local $26) + (i32.const -40) + ) + (get_local $13) + ) + ) + ) + (i32.store offset=4 + (get_local $1) + (i32.or + (get_local $6) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $1) + (get_local $6) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) + ) + (i32.store + (tee_local $6 (i32.add - (get_local $26) - (i32.const -40) + (get_local $17) + (i32.const 4) ) - (get_local $13) ) + (i32.const 27) ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $6) - (i32.const 1) + (i32.store + (get_local $2) + (i32.load + (i32.const 1656) + ) ) - ) - (i32.store offset=4 - (i32.add - (get_local $1) - (get_local $6) + (i32.store offset=4 + (get_local $2) + (i32.load + (i32.const 1660) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=8 + (get_local $2) + (i32.load + (i32.const 1664) + ) ) - ) - (i32.store - (tee_local $6 - (i32.add - (get_local $17) - (i32.const 4) + (i32.store offset=12 + (get_local $2) + (i32.load + (i32.const 1668) ) ) - (i32.const 27) - ) - (i32.store - (get_local $2) - (i32.load + (i32.store (i32.const 1656) + (get_local $20) ) - ) - (i32.store offset=4 - (get_local $2) - (i32.load + (i32.store (i32.const 1660) + (get_local $26) ) - ) - (i32.store offset=8 - (get_local $2) - (i32.load - (i32.const 1664) - ) - ) - (i32.store offset=12 - (get_local $2) - (i32.load + (i32.store (i32.const 1668) + (i32.const 0) ) - ) - (i32.store - (i32.const 1656) - (get_local $20) - ) - (i32.store - (i32.const 1660) - (get_local $26) - ) - (i32.store - (i32.const 1668) - (i32.const 0) - ) - (i32.store - (i32.const 1664) - (get_local $2) - ) - (set_local $2 - (i32.add - (get_local $17) - (i32.const 24) - ) - ) - (loop $do-in68 (i32.store - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 4) - ) - ) - (i32.const 7) + (i32.const 1664) + (get_local $2) ) - (br_if $do-in68 - (i32.lt_u - (i32.add - (get_local $2) - (i32.const 4) - ) - (get_local $0) + (set_local $2 + (i32.add + (get_local $17) + (i32.const 24) ) ) - ) - (if - (i32.ne - (get_local $17) - (get_local $11) - ) - (block + (loop $do-in68 (i32.store - (get_local $6) - (i32.and - (i32.load - (get_local $6) + (tee_local $2 + (i32.add + (get_local $2) + (i32.const 4) ) - (i32.const -2) ) + (i32.const 7) ) - (i32.store offset=4 - (get_local $11) - (i32.or - (tee_local $2 - (i32.sub - (get_local $17) - (get_local $11) - ) + (br_if $do-in68 + (i32.lt_u + (i32.add + (get_local $2) + (i32.const 4) ) - (i32.const 1) + (get_local $0) ) ) - (i32.store + ) + (if + (i32.ne (get_local $17) - (get_local $2) - ) - (set_local $1 - (i32.shr_u - (get_local $2) - (i32.const 3) - ) + (get_local $11) ) - (if - (i32.lt_u - (get_local $2) - (i32.const 256) + (block + (i32.store + (get_local $6) + (i32.and + (i32.load + (get_local $6) + ) + (i32.const -2) + ) ) - (block - (set_local $13 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) + (i32.store offset=4 + (get_local $11) + (i32.or + (tee_local $2 + (i32.sub + (get_local $17) + (get_local $11) ) - (i32.const 1248) ) + (i32.const 1) ) - (if - (i32.and - (tee_local $3 - (i32.load - (i32.const 1208) - ) - ) - (tee_local $4 + ) + (i32.store + (get_local $17) + (get_local $2) + ) + (set_local $1 + (i32.shr_u + (get_local $2) + (i32.const 3) + ) + ) + (if + (i32.lt_u + (get_local $2) + (i32.const 256) + ) + (block + (set_local $13 + (i32.add (i32.shl - (i32.const 1) (get_local $1) + (i32.const 3) ) + (i32.const 1248) ) ) (if - (i32.lt_u + (i32.and (tee_local $3 (i32.load - (tee_local $4 - (i32.add - (get_local $13) - (i32.const 8) + (i32.const 1208) + ) + ) + (tee_local $4 + (i32.shl + (i32.const 1) + (get_local $1) + ) + ) + ) + (if + (i32.lt_u + (tee_local $3 + (i32.load + (tee_local $4 + (i32.add + (get_local $13) + (i32.const 8) + ) ) ) ) + (i32.load + (i32.const 1224) + ) ) - (i32.load - (i32.const 1224) + (call $qa) + (block + (set_local $46 + (get_local $4) + ) + (set_local $39 + (get_local $3) + ) ) ) - (call $qa) (block + (i32.store + (i32.const 1208) + (i32.or + (get_local $3) + (get_local $4) + ) + ) (set_local $46 - (get_local $4) + (i32.add + (get_local $13) + (i32.const 8) + ) ) (set_local $39 - (get_local $3) - ) - ) - ) - (block - (i32.store - (i32.const 1208) - (i32.or - (get_local $3) - (get_local $4) - ) - ) - (set_local $46 - (i32.add (get_local $13) - (i32.const 8) ) ) - (set_local $39 - (get_local $13) - ) ) + (i32.store + (get_local $46) + (get_local $11) + ) + (i32.store offset=12 + (get_local $39) + (get_local $11) + ) + (i32.store offset=8 + (get_local $11) + (get_local $39) + ) + (i32.store offset=12 + (get_local $11) + (get_local $13) + ) + (br $do-once38) ) - (i32.store - (get_local $46) - (get_local $11) - ) - (i32.store offset=12 - (get_local $39) - (get_local $11) - ) - (i32.store offset=8 - (get_local $11) - (get_local $39) - ) - (i32.store offset=12 - (get_local $11) - (get_local $13) - ) - (br $do-once38) ) - ) - (set_local $0 - (i32.add - (i32.shl - (tee_local $3 - (if (result i32) - (tee_local $13 - (i32.shr_u - (get_local $2) - (i32.const 8) - ) - ) + (set_local $0 + (i32.add + (i32.shl + (tee_local $3 (if (result i32) - (i32.gt_u - (get_local $2) - (i32.const 16777215) + (tee_local $13 + (i32.shr_u + (get_local $2) + (i32.const 8) + ) ) - (i32.const 31) - (i32.or - (i32.and - (i32.shr_u - (get_local $2) - (i32.add - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (if (result i32) + (i32.gt_u + (get_local $2) + (i32.const 16777215) + ) + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $2) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $13 - (i32.and - (i32.shr_u - (i32.add - (tee_local $4 - (i32.shl - (get_local $13) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $13) - (i32.const 1048320) + (i32.or + (tee_local $13 + (i32.and + (i32.shr_u + (i32.add + (tee_local $4 + (i32.shl + (get_local $13) + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (get_local $13) + (i32.const 1048320) + ) + (i32.const 16) ) - (i32.const 16) + (i32.const 8) ) - (i32.const 8) ) ) ) + (i32.const 520192) ) - (i32.const 520192) + (i32.const 16) ) - (i32.const 16) + (i32.const 4) ) - (i32.const 4) ) + (get_local $3) ) - (get_local $3) - ) - (tee_local $4 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $4) - (get_local $13) + (tee_local $4 + (i32.and + (i32.shr_u + (i32.add + (tee_local $1 + (i32.shl + (get_local $4) + (get_local $13) + ) ) + (i32.const 245760) ) - (i32.const 245760) + (i32.const 16) ) - (i32.const 16) + (i32.const 2) ) - (i32.const 2) ) ) ) - ) - (i32.shr_u - (i32.shl - (get_local $1) - (get_local $4) + (i32.shr_u + (i32.shl + (get_local $1) + (get_local $4) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 7) ) + (i32.const 1) + ) + (i32.shl + (get_local $0) + (i32.const 1) ) - (i32.const 1) - ) - (i32.shl - (get_local $0) - (i32.const 1) ) ) + (i32.const 0) ) - (i32.const 0) - ) - ) - (i32.const 2) - ) - (i32.const 1512) - ) - ) - (i32.store offset=28 - (get_local $11) - (get_local $3) - ) - (i32.store offset=20 - (get_local $11) - (i32.const 0) - ) - (i32.store - (get_local $15) - (i32.const 0) - ) - (if - (i32.eqz - (i32.and - (tee_local $4 - (i32.load - (i32.const 1212) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $3) ) + (i32.const 2) ) + (i32.const 1512) ) ) - (block - (i32.store - (i32.const 1212) - (i32.or - (get_local $4) - (get_local $1) - ) - ) - (i32.store - (get_local $0) - (get_local $11) - ) - (i32.store offset=24 - (get_local $11) - (get_local $0) - ) - (i32.store offset=12 - (get_local $11) - (get_local $11) - ) - (i32.store offset=8 - (get_local $11) - (get_local $11) - ) - (br $do-once38) + (i32.store offset=28 + (get_local $11) + (get_local $3) ) - ) - (set_local $1 - (i32.shl - (get_local $2) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $3) - (i32.const 1) - ) - ) - (i32.eq - (get_local $3) - (i32.const 31) - ) - ) + (i32.store offset=20 + (get_local $11) + (i32.const 0) ) - ) - (set_local $4 - (i32.load - (get_local $0) + (i32.store + (get_local $15) + (i32.const 0) ) - ) - (loop $while-in70 - (block $while-out69 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $4) - ) - (i32.const -8) - ) - (get_local $2) - ) - (block - (set_local $31 - (get_local $4) - ) - (set_local $7 - (i32.const 305) - ) - (br $while-out69) - ) - ) - (if - (tee_local $3 - (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $4) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) - ) - ) + (if + (i32.eqz + (i32.and + (tee_local $4 + (i32.load + (i32.const 1212) ) ) - ) - (block - (set_local $1 + (tee_local $1 (i32.shl - (get_local $1) (i32.const 1) + (get_local $3) ) ) - (set_local $4 - (get_local $3) - ) - (br $while-in70) ) - (block - (set_local $47 - (get_local $0) - ) - (set_local $54 + ) + (block + (i32.store + (i32.const 1212) + (i32.or (get_local $4) - ) - (set_local $7 - (i32.const 302) + (get_local $1) ) ) - ) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 302) - ) - (if - (i32.lt_u - (get_local $47) - (i32.load - (i32.const 1224) - ) - ) - (call $qa) - (block (i32.store - (get_local $47) + (get_local $0) (get_local $11) ) (i32.store offset=24 (get_local $11) - (get_local $54) + (get_local $0) ) (i32.store offset=12 (get_local $11) @@ -5672,271 +5532,406 @@ (get_local $11) (get_local $11) ) + (br $do-once38) ) ) - (if - (i32.eq - (get_local $7) - (i32.const 305) + (set_local $1 + (i32.shl + (get_local $2) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $3) + (i32.const 1) + ) + ) + (i32.eq + (get_local $3) + (i32.const 31) + ) + ) ) - (if - (i32.and - (i32.ge_u - (tee_local $1 - (i32.load - (tee_local $4 + ) + (set_local $4 + (i32.load + (get_local $0) + ) + ) + (loop $while-in70 + (block $while-out69 + (if + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $4) + ) + (i32.const -8) + ) + (get_local $2) + ) + (block + (set_local $31 + (get_local $4) + ) + (set_local $7 + (i32.const 305) + ) + (br $while-out69) + ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $0 + (i32.add (i32.add - (get_local $31) - (i32.const 8) + (get_local $4) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $1) + (i32.const 31) + ) + (i32.const 2) ) ) ) ) - (tee_local $2 - (i32.load - (i32.const 1224) + ) + (block + (set_local $1 + (i32.shl + (get_local $1) + (i32.const 1) ) ) + (set_local $4 + (get_local $3) + ) + (br $while-in70) ) - (i32.ge_u - (get_local $31) - (get_local $2) + (block + (set_local $47 + (get_local $0) + ) + (set_local $54 + (get_local $4) + ) + (set_local $7 + (i32.const 302) + ) ) ) - (block - (i32.store offset=12 - (get_local $1) - (get_local $11) + ) + ) + (if + (i32.eq + (get_local $7) + (i32.const 302) + ) + (if + (i32.lt_u + (get_local $47) + (i32.load + (i32.const 1224) ) + ) + (call $qa) + (block (i32.store - (get_local $4) + (get_local $47) (get_local $11) ) - (i32.store offset=8 + (i32.store offset=24 (get_local $11) - (get_local $1) + (get_local $54) ) (i32.store offset=12 (get_local $11) - (get_local $31) + (get_local $11) ) - (i32.store offset=24 + (i32.store offset=8 + (get_local $11) (get_local $11) - (i32.const 0) ) ) - (call $qa) + ) + (if + (i32.eq + (get_local $7) + (i32.const 305) + ) + (if + (i32.and + (i32.ge_u + (tee_local $1 + (i32.load + (tee_local $4 + (i32.add + (get_local $31) + (i32.const 8) + ) + ) + ) + ) + (tee_local $2 + (i32.load + (i32.const 1224) + ) + ) + ) + (i32.ge_u + (get_local $31) + (get_local $2) + ) + ) + (block + (i32.store offset=12 + (get_local $1) + (get_local $11) + ) + (i32.store + (get_local $4) + (get_local $11) + ) + (i32.store offset=8 + (get_local $11) + (get_local $1) + ) + (i32.store offset=12 + (get_local $11) + (get_local $31) + ) + (i32.store offset=24 + (get_local $11) + (i32.const 0) + ) + ) + (call $qa) + ) ) ) ) ) ) - ) - (block - (if - (i32.or - (i32.eqz - (tee_local $1 - (i32.load - (i32.const 1224) + (block + (if + (i32.or + (i32.eqz + (tee_local $1 + (i32.load + (i32.const 1224) + ) ) ) + (i32.lt_u + (get_local $20) + (get_local $1) + ) ) - (i32.lt_u + (i32.store + (i32.const 1224) (get_local $20) - (get_local $1) ) ) (i32.store - (i32.const 1224) + (i32.const 1656) (get_local $20) ) - ) - (i32.store - (i32.const 1656) - (get_local $20) - ) - (i32.store - (i32.const 1660) - (get_local $26) - ) - (i32.store - (i32.const 1668) - (i32.const 0) - ) - (i32.store - (i32.const 1244) - (i32.load - (i32.const 1680) + (i32.store + (i32.const 1660) + (get_local $26) ) - ) - (i32.store - (i32.const 1240) - (i32.const -1) - ) - (set_local $1 - (i32.const 0) - ) - (loop $do-in - (i32.store offset=12 - (tee_local $13 - (i32.add - (i32.shl - (get_local $1) - (i32.const 3) - ) - (i32.const 1248) - ) + (i32.store + (i32.const 1668) + (i32.const 0) + ) + (i32.store + (i32.const 1244) + (i32.load + (i32.const 1680) ) - (get_local $13) ) - (i32.store offset=8 - (get_local $13) - (get_local $13) + (i32.store + (i32.const 1240) + (i32.const -1) ) - (br_if $do-in - (i32.ne - (tee_local $1 + (set_local $1 + (i32.const 0) + ) + (loop $do-in + (i32.store offset=12 + (tee_local $13 (i32.add - (get_local $1) - (i32.const 1) + (i32.shl + (get_local $1) + (i32.const 3) + ) + (i32.const 1248) + ) + ) + (get_local $13) + ) + (i32.store offset=8 + (get_local $13) + (get_local $13) + ) + (br_if $do-in + (i32.ne + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) ) + (i32.const 32) ) - (i32.const 32) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $1 - (i32.add - (get_local $20) - (tee_local $13 - (select - (i32.and - (i32.sub - (i32.const 0) - (tee_local $1 - (i32.add - (get_local $20) - (i32.const 8) + (i32.store + (i32.const 1232) + (tee_local $1 + (i32.add + (get_local $20) + (tee_local $13 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $20) + (i32.const 8) + ) ) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) - (i32.const 7) - ) - (i32.const 0) - (i32.and - (get_local $1) - (i32.const 7) ) ) ) ) ) - ) - (i32.store - (i32.const 1220) - (tee_local $2 - (i32.sub - (i32.add - (get_local $26) - (i32.const -40) + (i32.store + (i32.const 1220) + (tee_local $2 + (i32.sub + (i32.add + (get_local $26) + (i32.const -40) + ) + (get_local $13) ) - (get_local $13) ) ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $2) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add + (i32.store offset=4 (get_local $1) - (get_local $2) + (i32.or + (get_local $2) + (i32.const 1) + ) ) - (i32.const 40) - ) - (i32.store - (i32.const 1236) - (i32.load - (i32.const 1696) + (i32.store offset=4 + (i32.add + (get_local $1) + (get_local $2) + ) + (i32.const 40) + ) + (i32.store + (i32.const 1236) + (i32.load + (i32.const 1696) + ) ) ) ) ) - ) - (if - (i32.gt_u - (tee_local $11 - (i32.load - (i32.const 1220) + (if + (i32.gt_u + (tee_local $11 + (i32.load + (i32.const 1220) + ) ) + (get_local $5) ) - (get_local $5) - ) - (block - (i32.store - (i32.const 1220) - (tee_local $31 - (i32.sub - (get_local $11) - (get_local $5) + (block + (i32.store + (i32.const 1220) + (tee_local $31 + (i32.sub + (get_local $11) + (get_local $5) + ) ) ) - ) - (i32.store - (i32.const 1232) - (tee_local $7 - (i32.add - (tee_local $11 - (i32.load - (i32.const 1232) + (i32.store + (i32.const 1232) + (tee_local $7 + (i32.add + (tee_local $11 + (i32.load + (i32.const 1232) + ) ) + (get_local $5) ) - (get_local $5) ) ) - ) - (i32.store offset=4 - (get_local $7) - (i32.or - (get_local $31) - (i32.const 1) - ) - ) - (i32.store offset=4 - (get_local $11) - (i32.or - (get_local $5) - (i32.const 3) + (i32.store offset=4 + (get_local $7) + (i32.or + (get_local $31) + (i32.const 1) + ) ) - ) - (set_global $r - (get_local $25) - ) - (return - (i32.add + (i32.store offset=4 (get_local $11) - (i32.const 8) + (i32.or + (get_local $5) + (i32.const 3) + ) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.add + (get_local $11) + (i32.const 8) + ) ) ) ) ) ) - ) - (i32.store - (call $Qa) - (i32.const 12) + (i32.store + (call $Qa) + (i32.const 12) + ) + (set_global $r + (get_local $25) + ) + (return + (i32.const 0) + ) ) (set_global $r (get_local $25) ) - (i32.const 0) + (i32.add + (get_local $15) + (i32.const 8) + ) ) (func $fb (param $0 i32) (local $1 i32) diff --git a/test/passes/remove-unused-names_code-folding.txt b/test/passes/remove-unused-names_code-folding.txt new file mode 100644 index 000000000..0ad10704f --- /dev/null +++ b/test/passes/remove-unused-names_code-folding.txt @@ -0,0 +1,1681 @@ +(module + (type $0 (func)) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func (result i32))) + (memory $0 0) + (func $ifs (type $0) + (if + (i32.const 0) + (nop) + ) + (block + (drop + (i32.const 0) + ) + (nop) + ) + (if + (i32.const 0) + (nop) + (unreachable) + ) + (drop + (block (result i32) + (drop + (i32.const 0) + ) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (drop + (if (result i32) + (i32.const 0) + (i32.add + (i32.const 1) + (i32.const 2) + ) + (i32.add + (i32.const 1) + (i32.const 333333333) + ) + ) + ) + ) + (func $ifs-blocks (type $0) + (block + (drop + (i32.const 0) + ) + (block + (nop) + ) + ) + (block + (if + (i32.const 0) + (unreachable) + (block + ) + ) + (nop) + ) + (block + (if + (i32.const 0) + (block + ) + (unreachable) + ) + (nop) + ) + (if + (i32.const 0) + (block + (nop) + (unreachable) + ) + (nop) + ) + (if + (i32.const 0) + (nop) + (block + (nop) + (unreachable) + ) + ) + ) + (func $ifs-blocks-big (type $0) + (block + (drop + (i32.const 0) + ) + (block + (drop + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + ) + (block + (if + (i32.const 0) + (unreachable) + (block + ) + ) + (drop + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (block + (if + (i32.const 0) + (block + ) + (unreachable) + ) + (drop + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (if + (i32.const 0) + (block + (drop + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + (unreachable) + ) + (drop + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (if + (i32.const 0) + (drop + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + (block + (drop + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + (unreachable) + ) + ) + ) + (func $ifs-blocks-long (type $0) + (block + (if + (i32.const 1) + (block + (drop + (i32.const -1234) + ) + (drop + (i32.const -1000) + ) + ) + (drop + (i32.const 999) + ) + ) + (drop + (i32.const 1) + ) + (nop) + (unreachable) + ) + (drop + (block (result i32) + (if + (i32.const 2) + (block + (drop + (i32.const -1234) + ) + (drop + (i32.const -1000) + ) + ) + (drop + (i32.const 999) + ) + ) + (drop + (i32.const 1) + ) + (nop) + (unreachable) + (i32.const 2) + ) + ) + (drop + (block (result i32) + (if + (i32.const 3) + (block + (drop + (i32.const -1234) + ) + (drop + (i32.const -1000) + ) + ) + (drop + (i32.const 999) + ) + ) + (drop + (i32.const 1) + ) + (nop) + (i32.const 2) + ) + ) + ) + (func $if-worth-it-i-dunno (type $0) + (block $folding-inner0 + (block + (if + (i32.const 0) + (if + (i32.const 0) + (block + (drop + (i32.const -1234) + ) + (drop + (i32.const -1000) + ) + (br $folding-inner0) + ) + (block + (drop + (i32.const 999) + ) + (drop + (i32.const 1) + ) + (br $folding-inner0) + ) + ) + ) + (if + (i32.const 0) + (block + (if + (i32.const 0) + (block + (drop + (i32.const -1234) + ) + (drop + (i32.const -1000) + ) + ) + (block + (drop + (i32.const 999) + ) + (drop + (i32.const 1) + ) + ) + ) + (unreachable) + (br $folding-inner0) + ) + ) + (if + (i32.const 0) + (block + (if + (i32.const 0) + (block + ) + (block + (drop + (i32.const 999) + ) + (drop + (i32.const 1) + ) + ) + ) + (br $folding-inner0) + ) + ) + (if + (i32.const 0) + (block + (if + (i32.const 0) + (block + (drop + (i32.const -1234) + ) + (drop + (i32.const -1000) + ) + ) + (block + ) + ) + (br $folding-inner0) + ) + ) + (block + (block + (if + (i32.const 9999) + (block + (drop + (i32.const -51234) + ) + (drop + (i32.const -51000) + ) + ) + (block + (drop + (i32.const 5999) + ) + (drop + (i32.const 51) + ) + ) + ) + (br $folding-inner0) + ) + ) + (drop + (block (result i32) + (block (result i32) + (if + (i32.const 9999) + (block + (drop + (i32.const -51234) + ) + (drop + (i32.const -51000) + ) + ) + (block + (drop + (i32.const 5999) + ) + (drop + (i32.const 51) + ) + ) + ) + (unreachable) + (i32.const 10) + ) + ) + ) + (block + (drop + (if (result i32) + (i32.const 9999) + (block (result i32) + (drop + (i32.const -51234) + ) + (drop + (i32.const -51000) + ) + (unreachable) + (i32.const 10) + ) + (block (result i32) + (drop + (i32.const 5999) + ) + (drop + (i32.const 51) + ) + (unreachable) + (i32.const 10) + ) + ) + ) + ) + ) + ) + (unreachable) + (unreachable) + ) + (func $no-grandparent (type $0) + (if + (i32.const 9999) + (block + (drop + (i32.const -51234) + ) + (drop + (i32.const -51000) + ) + (unreachable) + (unreachable) + ) + (block + (drop + (i32.const 5999) + ) + (drop + (i32.const 51) + ) + (unreachable) + (unreachable) + ) + ) + ) + (func $yes-grandparent (type $0) + (block + (if + (i32.const 9999) + (block + (drop + (i32.const -51234) + ) + (drop + (i32.const -51000) + ) + ) + (block + (drop + (i32.const 5999) + ) + (drop + (i32.const 51) + ) + ) + ) + (unreachable) + (unreachable) + ) + ) + (func $ifs-named-block (type $1) (param $x i32) (param $y i32) (result i32) + (block $out + (block $out2 + (block + (drop + (get_local $x) + ) + (block + (br_if $out + (get_local $y) + ) + (nop) + ) + ) + (block + (if + (get_local $x) + (br_if $out + (get_local $y) + ) + (br_if $out2 + (get_local $y) + ) + ) + (nop) + ) + (if + (i32.const 1234) + (if + (get_local $x) + (block + (nop) + (br_if $out + (get_local $y) + ) + (nop) + ) + (block + (nop) + (br_if $out2 + (get_local $y) + ) + (nop) + ) + ) + ) + (if + (get_local $x) + (block $left + (br_if $left + (get_local $y) + ) + (nop) + ) + (block + (br_if $out + (get_local $y) + ) + (nop) + ) + ) + (if + (get_local $x) + (block + (br_if $out + (get_local $y) + ) + (nop) + ) + (block $right + (br_if $right + (get_local $y) + ) + (nop) + ) + ) + ) + (return + (i32.const 10) + ) + ) + (return + (i32.const 20) + ) + ) + (func $block (type $0) + (block $x + (if + (i32.const 0) + (br $x) + ) + (if + (i32.const 0) + (br $x) + ) + (br $x) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (func $block2 (type $0) + (block $x + (if + (i32.const 0) + (block + (drop + (i32.const 1) + ) + (drop + (i32.const 333333) + ) + (br $x) + ) + ) + (if + (i32.const 0) + (block + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br $x) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br $x) + ) + ) + (func $block3 (type $0) + (block $x + (if + (i32.const 0) + (block + (drop + (i32.const 1000) + ) + (br $x) + ) + ) + (if + (i32.const 0) + (block + (drop + (i32.const 2000) + ) + (drop + (i32.const 3000) + ) + (br $x) + ) + ) + (drop + (i32.const 4000) + ) + (drop + (i32.const 5000) + ) + (drop + (i32.const 6000) + ) + (br $x) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (func $mixture (type $0) + (block $out + (block + (drop + (i32.const 1) + ) + (block + (drop + (i32.const 2) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (br $out) + ) + ) + ) + (block $out2 + (block + (if + (i32.const 1) + (drop + (i32.const 3) + ) + (block + (drop + (i32.const 4) + ) + (drop + (i32.const 5) + ) + ) + ) + (drop + (i32.const 2) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (br $out2) + ) + ) + (block + (block $out3 + (block + (drop + (i32.const 1) + ) + (block + (br $out3) + ) + ) + (block + (drop + (i32.const 1) + ) + (block + (br $out3) + ) + ) + (br $out3) + ) + (drop + (i32.const 2) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + ) + ) + (func $block-corners (type $0) + (block + (block $x + (if + (i32.const 0) + (br $x) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (drop + (block $y (result i32) + (if + (i32.const 0) + (block + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br $y + (i32.const 3) + ) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br $y + (i32.const 3) + ) + ) + ) + (drop + (block $z (result i32) + (if + (i32.const 0) + (block + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br $z + (i32.const 2) + ) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (i32.const 3) + ) + ) + (block $w + (if + (i32.const 0) + (block + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br_if $w + (i32.const 3) + ) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (block $x1 + (if + (i32.const 0) + (block + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br $x1) + (nop) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (block $side + (block $x2 + (br_table $x2 $side + (i32.const 0) + ) + (if + (i32.const 0) + (block + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br $x2) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (block $x3 + (br_table $side $x3 + (i32.const 0) + ) + (if + (i32.const 0) + (block + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (br $x3) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + ) + ) + (func $terminating (type $0) + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + ) + (return) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (unreachable) + ) + (func $terminating-unreachable (type $0) + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + (unreachable) + ) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (unreachable) + ) + (func $terminating-value (type $2) (result i32) + (block $folding-inner0 + (return + (block (result i32) + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + (i32.const 4) + ) + ) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (unreachable) + ) + (func $terminating-just-2 (type $0) + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (block + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (drop + (i32.const 10) + ) + (unreachable) + ) + ) + ) + (return) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (unreachable) + ) + (func $terminating-shortness (type $0) + (block $folding-inner1 + (block + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner1) + ) + (if + (i32.const 3) + (block + (drop + (i32.const 10) + ) + (br $folding-inner0) + ) + ) + ) + (return) + ) + (nop) + (br $folding-inner1) + ) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (unreachable) + ) + (func $terminating-multiple-separate (type $0) + (block $folding-inner1 + (block + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 1) + (br $folding-inner1) + ) + (if + (i32.const 1) + (br $folding-inner1) + ) + ) + (return) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (drop + (i32.const 1) + ) + (unreachable) + ) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (drop + (i32.const 2) + ) + (unreachable) + ) + (func $terminating-just-worth-it (type $0) + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + ) + (return) + ) + (nop) + (nop) + (nop) + (unreachable) + ) + (func $terminating-not-worth-it (type $0) + (if + (i32.const 1) + (block + (nop) + (nop) + (unreachable) + ) + ) + (if + (i32.const 2) + (block + (nop) + (nop) + (unreachable) + ) + ) + (if + (i32.const 3) + (block + (nop) + (nop) + (unreachable) + ) + ) + ) + (func $terminating-return (type $0) + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + ) + (return) + ) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (nop) + (return) + ) + (func $terminating-return-value (type $2) (result i32) + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + (if + (i32.const 3) + (block + (nop) + (return + (i32.add + (i32.const 111111111) + (i32.const 2222222) + ) + ) + ) + ) + (return + (i32.const 1234) + ) + ) + ) + (nop) + (return + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (func $terminating-fallthrough-value (type $2) (result i32) + (block $folding-inner0 + (return + (block (result i32) + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + (if + (i32.const 3) + (block + (nop) + (return + (i32.add + (i32.const 111111111) + (i32.const 2222222) + ) + ) + ) + ) + (i32.const 1234) + ) + ) + ) + (nop) + (return + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (func $big-return (type $2) (result i32) + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + (if + (i32.const 4) + (br $folding-inner0) + ) + (if + (i32.const 5) + (br $folding-inner0) + ) + (if + (i32.const 6) + (br $folding-inner0) + ) + (unreachable) + ) + ) + (return + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (func $return-mix (type $2) (result i32) + (block $folding-inner0 + (block + (if + (i32.const 1) + (br $folding-inner0) + ) + (if + (i32.const 2) + (br $folding-inner0) + ) + (if + (i32.const 3) + (br $folding-inner0) + ) + (if + (i32.const 4) + (br $folding-inner0) + ) + (if + (i32.const 3) + (return + (i32.add + (i32.const 1) + (i32.const 234567) + ) + ) + ) + (br $folding-inner0) + ) + ) + (return + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (func $just-unreachable (type $0) + (unreachable) + ) + (func $just-return (type $2) (result i32) + (return + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + (func $drop-if-with-value-but-unreachable (type $0) + (if + (i32.const 0) + (nop) + ) + (block + (drop + (i32.const 0) + ) + (block + (nop) + ) + ) + (if + (i32.const 0) + (nop) + (unreachable) + ) + (nop) + (drop + (block (result i32) + (drop + (unreachable) + ) + (block (result i32) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + ) + (drop + (if (result i32) + (i32.const 0) + (i32.add + (i32.const 1) + (i32.const 2) + ) + (i32.add + (i32.const 1) + (i32.const 333333333) + ) + ) + ) + ) + (func $nested-control-flow (type $0) + (block $out + (block + (block $x + (if + (i32.const 0) + (br $x) + ) + (if + (i32.const 0) + (br $x) + ) + (br $x) + ) + (if + (i32.const 1) + (br $out) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (drop + (i32.const 3) + ) + ) + ) + (func $nested-control-flow-dangerous (type $0) + (block $folding-inner0 + (block $out + (block + (if + (i32.const 0) + (block + (if + (i32.const 1) + (br $out) + ) + (br $folding-inner0) + ) + ) + (if + (i32.const 0) + (block + (if + (i32.const 1) + (br $out) + ) + (br $folding-inner0) + ) + ) + (if + (i32.const 1) + (br $out) + ) + (br $folding-inner0) + ) + (drop + (i32.const 3) + ) + ) + (return) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (return) + ) + (func $nested-control-flow-dangerous-but-ok (type $0) + (block $folding-inner0 + (block + (block $middle + (block + (if + (i32.const 0) + (block + (if + (i32.add + (i32.const 0) + (i32.const 1) + ) + (br $middle) + ) + (br $folding-inner0) + ) + ) + (if + (i32.const 0) + (block + (if + (i32.add + (i32.const 0) + (i32.const 1) + ) + (br $middle) + ) + (br $folding-inner0) + ) + ) + (if + (i32.add + (i32.const 0) + (i32.const 1) + ) + (br $middle) + ) + (br $folding-inner0) + ) + ) + (drop + (i32.const 3) + ) + ) + (return) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (return) + ) + (func $nested-control-flow-dangerous-but-ok-b (type $0) + (block $out + (block $middle + (block + (if + (i32.const 0) + (block + (if + (i32.add + (i32.const 0) + (i32.const 1) + ) + (br $middle) + ) + (br $out) + ) + ) + (if + (i32.const 0) + (block + (if + (i32.add + (i32.const 0) + (i32.const 1) + ) + (br $middle) + ) + (br $out) + ) + ) + (if + (i32.add + (i32.const 0) + (i32.const 1) + ) + (br $middle) + ) + ) + ) + (unreachable) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (drop + (i32.const 3) + ) + (drop + (i32.const 4) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + (drop + (i32.const 3) + ) + (drop + (i32.const 4) + ) + ) + (func $nested-control-flow-dangerous-but-ok-c (type $0) + (block $x + (block + (block $out + (block + (if + (i32.const 0) + (br $out) + ) + (if + (i32.const 0) + (br $out) + ) + (br $out) + ) + (unreachable) + ) + (if + (i32.add + (i32.const 0) + (i32.const 1) + ) + (br $x) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (unreachable) + ) + (drop + (i32.const 5) + ) + ) + (func $nested-control-flow-dangerous-but-ok-d (type $0) + (block + (block $out + (block + (if + (i32.const 0) + (br $out) + ) + (if + (i32.const 0) + (br $out) + ) + (br $out) + ) + ) + (block $x + (if + (i32.add + (i32.const 0) + (i32.const 1) + ) + (br $x) + ) + ) + (drop + (i32.const 1) + ) + (drop + (i32.const 2) + ) + ) + (drop + (i32.const 3) + ) + ) +) diff --git a/test/passes/remove-unused-names_code-folding.wast b/test/passes/remove-unused-names_code-folding.wast new file mode 100644 index 000000000..35d95ba90 --- /dev/null +++ b/test/passes/remove-unused-names_code-folding.wast @@ -0,0 +1,1176 @@ +(module + (func $ifs + (if (i32.const 0) (nop)) + (if (i32.const 0) (nop) (nop)) + (if (i32.const 0) (nop) (unreachable)) + (drop + (if (result i32) (i32.const 0) + (i32.add (i32.const 1) (i32.const 2)) + (i32.add (i32.const 1) (i32.const 2)) + ) + ) + (drop + (if (result i32) (i32.const 0) + (i32.add (i32.const 1) (i32.const 2)) + (i32.add (i32.const 1) (i32.const 333333333)) + ) + ) + ) + (func $ifs-blocks + (if (i32.const 0) + (block + (nop) + ) + (block + (nop) + ) + ) + (if (i32.const 0) + (block + (unreachable) + (nop) + ) + (block + (nop) + ) + ) + (if (i32.const 0) + (block + (nop) + ) + (block + (unreachable) + (nop) + ) + ) + (if (i32.const 0) + (block + (nop) + (unreachable) + ) + (block + (nop) + ) + ) + (if (i32.const 0) + (block + (nop) + ) + (block + (nop) + (unreachable) + ) + ) + ) + (func $ifs-blocks-big + (if (i32.const 0) + (block + (drop (i32.add (i32.const 1) (i32.const 2))) + ) + (block + (drop (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 0) + (block + (unreachable) + (drop (i32.add (i32.const 1) (i32.const 2))) + ) + (block + (drop (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 0) + (block + (drop (i32.add (i32.const 1) (i32.const 2))) + ) + (block + (unreachable) + (drop (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 0) + (block + (drop (i32.add (i32.const 1) (i32.const 2))) + (unreachable) + ) + (block + (drop (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 0) + (block + (drop (i32.add (i32.const 1) (i32.const 2))) + ) + (block + (drop (i32.add (i32.const 1) (i32.const 2))) + (unreachable) + ) + ) + ) + (func $ifs-blocks-long + (if (i32.const 1) + (block + (drop (i32.const -1234)) + (drop (i32.const -1000)) + (drop (i32.const 1)) + (nop) + (unreachable) + ) + (block + (drop (i32.const 999)) + (drop (i32.const 1)) + (nop) + (unreachable) + ) + ) + (drop + (if (result i32) (i32.const 2) + (block (result i32) + (drop (i32.const -1234)) + (drop (i32.const -1000)) + (drop (i32.const 1)) + (nop) + (unreachable) + (i32.const 2) + ) + (block (result i32) + (drop (i32.const 999)) + (drop (i32.const 1)) + (nop) + (unreachable) + (i32.const 2) + ) + ) + ) + (drop + (if (result i32) (i32.const 3) + (block (result i32) + (drop (i32.const -1234)) + (drop (i32.const -1000)) + (drop (i32.const 1)) + (nop) + (i32.const 2) + ) + (block (result i32) + (drop (i32.const 999)) + (drop (i32.const 1)) + (nop) + (i32.const 2) + ) + ) + ) + ) + (func $if-worth-it-i-dunno + ;; just 2, so not worth it + (if (i32.const 0) ;; (put them in ifs, so no block outside which would make us more confident in creating a block in hopes it would vanish) + (if (i32.const 0) + (block + (drop (i32.const -1234)) + (drop (i32.const -1000)) + (unreachable) + (unreachable) + ) + (block + (drop (i32.const 999)) + (drop (i32.const 1)) + (unreachable) + (unreachable) + ) + ) + ) + ;; 3, so why not + (if (i32.const 0) ;; (put them in ifs, so no block outside which would make us more confident in creating a block in hopes it would vanish) + (if (i32.const 0) + (block + (drop (i32.const -1234)) + (drop (i32.const -1000)) + (unreachable) + (unreachable) + (unreachable) + ) + (block + (drop (i32.const 999)) + (drop (i32.const 1)) + (unreachable) + (unreachable) + (unreachable) + ) + ) + ) + ;; just 2, but we'll empty out a block + (if (i32.const 0) ;; (put them in ifs, so no block outside which would make us more confident in creating a block in hopes it would vanish) + (if (i32.const 0) + (block + (unreachable) + (unreachable) + ) + (block + (drop (i32.const 999)) + (drop (i32.const 1)) + (unreachable) + (unreachable) + ) + ) + ) + ;; just 2, but we'll empty out a block + (if (i32.const 0) ;; (put them in ifs, so no block outside which would make us more confident in creating a block in hopes it would vanish) + (if (i32.const 0) + (block + (drop (i32.const -1234)) + (drop (i32.const -1000)) + (unreachable) + (unreachable) + ) + (block + (unreachable) + (unreachable) + ) + ) + ) + ;; just two, but on a block, so we hope to merge, and can optimize here + (block $a-holding-block + (if (i32.const 9999) + (block + (drop (i32.const -51234)) + (drop (i32.const -51000)) + (unreachable) + (unreachable) + ) + (block + (drop (i32.const 5999)) + (drop (i32.const 51)) + (unreachable) + (unreachable) + ) + ) + ) + ;; with value + (drop + (block $b-holding-block (result i32) + (if (result i32) (i32.const 9999) + (block (result i32) + (drop (i32.const -51234)) + (drop (i32.const -51000)) + (unreachable) + (i32.const 10) + ) + (block (result i32) + (drop (i32.const 5999)) + (drop (i32.const 51)) + (unreachable) + (i32.const 10) + ) + ) + ) + ) + ;; oops, something in between + (block $c-holding-block + (drop + (if (result i32) (i32.const 9999) + (block (result i32) + (drop (i32.const -51234)) + (drop (i32.const -51000)) + (unreachable) + (i32.const 10) + ) + (block (result i32) + (drop (i32.const 5999)) + (drop (i32.const 51)) + (unreachable) + (i32.const 10) + ) + ) + ) + ) + ) + (func $no-grandparent + ;; if we had a parent block, we might optimize this + (if (i32.const 9999) + (block + (drop (i32.const -51234)) + (drop (i32.const -51000)) + (unreachable) + (unreachable) + ) + (block + (drop (i32.const 5999)) + (drop (i32.const 51)) + (unreachable) + (unreachable) + ) + ) + ) + (func $yes-grandparent + (block + (if (i32.const 9999) + (block + (drop (i32.const -51234)) + (drop (i32.const -51000)) + (unreachable) + (unreachable) + ) + (block + (drop (i32.const 5999)) + (drop (i32.const 51)) + (unreachable) + (unreachable) + ) + ) + ) + ) + (func $ifs-named-block (param $x i32) (param $y i32) (result i32) + (block $out + (block $out2 + (if (get_local $x) + (block + (br_if $out (get_local $y i32)) + (nop) + ) + (block + (br_if $out (get_local $y i32)) + (nop) + ) + ) + (if (get_local $x) + (block + (br_if $out (get_local $y i32)) + (nop) + ) + (block + (br_if $out2 (get_local $y i32)) + (nop) + ) + ) + (if (i32.const 1234) + (if (get_local $x) + (block + (nop) + (br_if $out (get_local $y i32)) + (nop) + ) + (block + (nop) + (br_if $out2 (get_local $y i32)) + (nop) + ) + ) + ) + (if (get_local $x) + (block $left + (br_if $left (get_local $y i32)) + (nop) + ) + (block + (br_if $out (get_local $y i32)) + (nop) + ) + ) + (if (get_local $x) + (block + (br_if $out (get_local $y i32)) + (nop) + ) + (block $right + (br_if $right (get_local $y i32)) + (nop) + ) + ) + ) + (return (i32.const 10)) + ) + (return (i32.const 20)) + ) + (func $block + (block $x + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + ;; no fallthrough, another thing to merge + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + (func $block2 + (block $x + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 333333)) + (br $x) + ) + ) + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + ;; no fallthrough, another thing to merge + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + (func $block3 + (block $x + (if (i32.const 0) + (block + (drop (i32.const 1000)) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + (if (i32.const 0) + (block + (drop (i32.const 2000)) + (drop (i32.const 3000)) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + (drop (i32.const 4000)) + (drop (i32.const 5000)) + (drop (i32.const 6000)) + ;; no fallthrough, another thing to merge + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + (func $mixture + (block $out ;; then we reach the block, and the tail infos are stale, should ignore + (if (i32.const 1) ;; then we optimize the if, pushing those brs outside! + (block + (drop (i32.const 2)) ;; first we note the block tails for $out + (nop) (nop) (nop) (nop) (nop) (nop) ;; totally worth it + (br $out) + ) + (block + (drop (i32.const 2)) + (nop) (nop) (nop) (nop) (nop) (nop) + (br $out) + ) + ) + ) + (block $out2 + (if (i32.const 1) + (block + (drop (i32.const 3)) ;; leave something + (drop (i32.const 2)) + (nop) (nop) (nop) (nop) (nop) (nop) + (br $out2) + ) + (block + (drop (i32.const 4)) ;; leave something + (drop (i32.const 5)) ;; leave something + (drop (i32.const 2)) + (nop) (nop) (nop) (nop) (nop) (nop) + (br $out2) + ) + ) + ) + ;; now a case where do **do** want to fold for the block (which we can only do in a later pass) + (block $out3 + (if (i32.const 1) + (block + (drop (i32.const 2)) + (nop) (nop) (nop) (nop) (nop) (nop) + (br $out3) + ) + (block + (drop (i32.const 2)) + (nop) (nop) (nop) (nop) (nop) (nop) + (br $out3) + ) + ) + (if (i32.const 1) + (block + (drop (i32.const 2)) + (nop) (nop) (nop) (nop) (nop) (nop) + (br $out3) + ) + (block + (drop (i32.const 2)) + (nop) (nop) (nop) (nop) (nop) (nop) + (br $out3) + ) + ) + (drop (i32.const 2)) + (nop) (nop) (nop) (nop) (nop) (nop) + (br $out3) + ) + ) + (func $block-corners + ;; these should be merged + (block $x + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + ) + ;; these should not + ;; values + (drop + (block $y (result i32) + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $y (i32.const 3)) + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $y (i32.const 3)) + ) + ) + (drop + (block $z (result i32) + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $z (i32.const 2)) + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (i32.const 3) + ) + ) + ;; condition + (block $w + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br_if $w (i32.const 3)) + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + ) + ;; not at the end + (block $x1 + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x1) + (nop) + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + ) + ;; switches + (block $side + (block $x2 + (br_table $x2 $side (i32.const 0)) + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x2) + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + ) + (block $x3 + (br_table $side $x3 (i32.const 0)) + (if (i32.const 0) + (block + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x3) + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + ) + ) + ) + (func $terminating + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 2) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 3) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + ) + (func $terminating-unreachable + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 2) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 3) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (unreachable) + ) + (func $terminating-value (result i32) + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 2) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 3) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (i32.const 4) + ) + (func $terminating-just-2 + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 2) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 3) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (drop (i32.const 10)) + (unreachable) + ) + ) + ) + (func $terminating-shortness + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 2) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) ;; shorter. we do the two long ones greedily, then the merged one and this can also be opted + (unreachable) + ) + ) + (if (i32.const 3) + (block + (drop (i32.const 10)) + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (unreachable) + ) + ) + ) + (func $terminating-multiple-separate + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (drop (i32.const 1)) + (unreachable) + ) + ) + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (drop (i32.const 1)) + (unreachable) + ) + ) + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (drop (i32.const 2)) + (unreachable) + ) + ) + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (drop (i32.const 2)) + (unreachable) + ) + ) + ) + (func $terminating-just-worth-it + (if (i32.const 1) + (block + (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 2) + (block + (nop) (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 3) + (block + (nop) (nop) (nop) + (unreachable) + ) + ) + ) + (func $terminating-not-worth-it + (if (i32.const 1) + (block + (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 2) + (block + (nop) (nop) + (unreachable) + ) + ) + (if (i32.const 3) + (block + (nop) (nop) + (unreachable) + ) + ) + ) + (func $terminating-return + (if (i32.const 1) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (return) + ) + ) + (if (i32.const 2) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (return) + ) + ) + (if (i32.const 3) + (block + (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) (nop) + (return) + ) + ) + ) + (func $terminating-return-value (result i32) + (if (i32.const 1) + (block + (nop) + (return (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 2) + (block + (nop) + (return (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 3) + (block + (nop) + (return (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 3) + (block + (nop) + (return (i32.add (i32.const 111111111) (i32.const 2222222))) + ) + ) + (return (i32.const 1234)) + ) + (func $terminating-fallthrough-value (result i32) + (if (i32.const 1) + (block + (nop) + (return (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 2) + (block + (nop) + (return (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 3) + (block + (nop) + (return (i32.add (i32.const 1) (i32.const 2))) + ) + ) + (if (i32.const 3) + (block + (nop) + (return (i32.add (i32.const 111111111) (i32.const 2222222))) + ) + ) + (i32.const 1234) + ) + (func $big-return (result i32) + (if (i32.const 1) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 2) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 3) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 4) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 5) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 6) (return (i32.add (i32.const 1) (i32.const 2)))) + (unreachable) + ) + (func $return-mix (result i32) + (if (i32.const 1) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 2) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 3) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 4) (return (i32.add (i32.const 1) (i32.const 2)))) + (if (i32.const 3) (return (i32.add (i32.const 1) (i32.const 234567)))) + (return (i32.add (i32.const 1) (i32.const 2))) ;; on a block, and the toplevel in fact + ) + (func $just-unreachable + (unreachable) + ) + (func $just-return (result i32) + (return (i32.add (i32.const 1) (i32.const 2))) ;; on a block, and the toplevel in fact + ) + (func $drop-if-with-value-but-unreachable + (block $label$0 + (if + (i32.const 0) + (block $label$1 + (nop) + ) + ) + (if + (i32.const 0) + (block $label$2 + (nop) + ) + (block $label$3 + (nop) + ) + ) + (if + (i32.const 0) + (block $label$4 + (nop) + ) + (block $label$5 + (unreachable) + ) + ) + (nop) + (drop + (if (result i32) ;; we replace this if, must replace with same type! + (unreachable) + (block $label$6 (result i32) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + (block $label$7 (result i32) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + ) + ) + (drop + (if (result i32) + (i32.const 0) + (block $label$8 (result i32) + (i32.add + (i32.const 1) + (i32.const 2) + ) + ) + (block $label$9 (result i32) + (i32.add + (i32.const 1) + (i32.const 333333333) + ) + ) + ) + ) + ) + ) + (func $nested-control-flow + (block $out + (block $x + (if (i32.const 0) + (block + (if (i32.const 1) + (br $out) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + (if (i32.const 0) + (block + (if (i32.const 1) + (br $out) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + ) + ;; no fallthrough, another thing to merge + (if (i32.const 1) + (br $out) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $x) + ) + (drop (i32.const 3)) + ) + ) + (func $nested-control-flow-dangerous + (block $out + (block $x + (if (i32.const 0) + (block + (if (i32.const 1) + (br $out) ;; this br cannot be moved out of the $out block! + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (return) + ) + ) + (if (i32.const 0) + (block + (if (i32.const 1) + (br $out) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (return) + ) + ) + ;; no fallthrough, another thing to merge + (if (i32.const 1) + (br $out) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (return) + ) + (drop (i32.const 3)) + ) + ) + (func $nested-control-flow-dangerous-but-ok + (block $out + (block $middle + (block $x + (if (i32.const 0) + (block + (if (i32.add (i32.const 0) (i32.const 1)) + (br $middle) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (return) + ) + ) + (if (i32.const 0) + (block + (if (i32.add (i32.const 0) (i32.const 1)) + (br $middle) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (return) + ) + ) + ;; no fallthrough, another thing to merge + (if (i32.add (i32.const 0) (i32.const 1)) + (br $middle) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (return) + ) + ) + (drop (i32.const 3)) + ) + ) + (func $nested-control-flow-dangerous-but-ok-b + (block $out + (block $middle + (block $x + (if (i32.const 0) + (block + (if (i32.add (i32.const 0) (i32.const 1)) + (br $middle) ;; this is dangerous - we branch to middle with is inside out, so we can't move this out of out + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (drop (i32.const 3)) + (drop (i32.const 4)) + (drop (i32.const 1)) + (drop (i32.const 2)) + (drop (i32.const 3)) + (drop (i32.const 4)) + (br $out) + ) + ) + (if (i32.const 0) + (block + (if (i32.add (i32.const 0) (i32.const 1)) + (br $middle) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (drop (i32.const 3)) + (drop (i32.const 4)) + (drop (i32.const 1)) + (drop (i32.const 2)) + (drop (i32.const 3)) + (drop (i32.const 4)) + (br $out) + ) + ) + ;; no fallthrough, another thing to merge + (if (i32.add (i32.const 0) (i32.const 1)) + (br $middle) + ) + ) + ) + (unreachable) ;; no fallthrough + ) + ) + (func $nested-control-flow-dangerous-but-ok-c + (block $x + (block $out + (block $middle + (if (i32.const 0) + (block + (if (i32.add (i32.const 0) (i32.const 1)) + (br $x) ;; this is ok - we branch to x which is outside of out + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $out) + ) + ) + (if (i32.const 0) + (block + (if (i32.add (i32.const 0) (i32.const 1)) + (br $x) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $out) + ) + ) + ;; no fallthrough, another thing to merge + (if (i32.add (i32.const 0) (i32.const 1)) + (br $x) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $out) + ) + (unreachable) ;; no fallthrough + ) + (unreachable) ;; no fallthrough + ) + (drop (i32.const 5)) + ) + (func $nested-control-flow-dangerous-but-ok-d + (block $out + (block $middle + (if (i32.const 0) + (block + (block $x + (if (i32.add (i32.const 0) (i32.const 1)) + (br $x) ;; this is ok - we branch to x which is nested in us + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $out) + ) + ) + (if (i32.const 0) + (block + (block $x + (if (i32.add (i32.const 0) (i32.const 1)) + (br $x) ;; this is ok - we branch to x which is nested in us + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $out) + ) + ) + ;; no fallthrough, another thing to merge + (block $x + (if (i32.add (i32.const 0) (i32.const 1)) + (br $x) ;; this is ok - we branch to x which is nested in us + ) + ) + (drop (i32.const 1)) + (drop (i32.const 2)) + (br $out) + ) + ) + (drop (i32.const 3)) + ) +) diff --git a/test/wasm-only.fromasm b/test/wasm-only.fromasm index f12226b1d..6ac8c0ef1 100644 --- a/test/wasm-only.fromasm +++ b/test/wasm-only.fromasm @@ -545,7 +545,7 @@ (get_local $0) ) (loop $while-in - (if + (br_if $__rjti$2 (i32.eq (i32.load8_u (get_local $2) @@ -555,12 +555,6 @@ (i32.const 255) ) ) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) ) (br_if $while-in (i32.and @@ -603,20 +597,17 @@ ) ) ) - (if + (br_if $__rjti$2 (get_local $0) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) - (set_local $0 - (i32.const 0) - ) + ) + (set_local $0 + (i32.const 0) ) (br $label$break$L8) ) + (set_local $0 + (get_local $3) + ) (if (i32.ne (i32.load8_u diff --git a/test/wasm-only.fromasm.clamp b/test/wasm-only.fromasm.clamp index f12226b1d..6ac8c0ef1 100644 --- a/test/wasm-only.fromasm.clamp +++ b/test/wasm-only.fromasm.clamp @@ -545,7 +545,7 @@ (get_local $0) ) (loop $while-in - (if + (br_if $__rjti$2 (i32.eq (i32.load8_u (get_local $2) @@ -555,12 +555,6 @@ (i32.const 255) ) ) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) ) (br_if $while-in (i32.and @@ -603,20 +597,17 @@ ) ) ) - (if + (br_if $__rjti$2 (get_local $0) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) - (set_local $0 - (i32.const 0) - ) + ) + (set_local $0 + (i32.const 0) ) (br $label$break$L8) ) + (set_local $0 + (get_local $3) + ) (if (i32.ne (i32.load8_u diff --git a/test/wasm-only.fromasm.imprecise b/test/wasm-only.fromasm.imprecise index e05da9799..6d013e11a 100644 --- a/test/wasm-only.fromasm.imprecise +++ b/test/wasm-only.fromasm.imprecise @@ -400,7 +400,7 @@ (get_local $0) ) (loop $while-in - (if + (br_if $__rjti$2 (i32.eq (i32.load8_u (get_local $2) @@ -410,12 +410,6 @@ (i32.const 255) ) ) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) ) (br_if $while-in (i32.and @@ -458,20 +452,17 @@ ) ) ) - (if + (br_if $__rjti$2 (get_local $0) - (block - (set_local $0 - (get_local $3) - ) - (br $__rjti$2) - ) - (set_local $0 - (i32.const 0) - ) + ) + (set_local $0 + (i32.const 0) ) (br $label$break$L8) ) + (set_local $0 + (get_local $3) + ) (if (i32.ne (i32.load8_u |