diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-09-14 21:28:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-14 21:28:43 -0700 |
commit | e567fa8675831e79f855cea2181fa58beb107e42 (patch) | |
tree | 14f1e37d27244b349e8ee34939119002f742748d | |
parent | 63b499e3ec9bbdf4e79ab6d9dc198299516e8aec (diff) | |
parent | af3bea2786fe62070522b7fd7add4290a4cb4e6d (diff) | |
download | binaryen-e567fa8675831e79f855cea2181fa58beb107e42.tar.gz binaryen-e567fa8675831e79f855cea2181fa58beb107e42.tar.bz2 binaryen-e567fa8675831e79f855cea2181fa58beb107e42.zip |
Merge pull request #695 from WebAssembly/opts
Get optimizer on par with emscripten asm.js optimizer
56 files changed, 30908 insertions, 35073 deletions
diff --git a/build-js.sh b/build-js.sh index d4951402f..b346e14f4 100755 --- a/build-js.sh +++ b/build-js.sh @@ -43,7 +43,7 @@ EMCC_ARGS="$EMCC_ARGS -s DEMANGLE_SUPPORT=1" OUT_FILE_SUFFIX= if [ "$1" == "-g" ]; then - EMCC_ARGS="$EMCC_ARGS -O0" + EMCC_ARGS="$EMCC_ARGS -O2" # need emcc js opts to be decently fast EMCC_ARGS="$EMCC_ARGS --llvm-opts 0 --llvm-lto 0" EMCC_ARGS="$EMCC_ARGS -profiling" OUT_FILE_SUFFIX=-g diff --git a/src/asm2wasm.h b/src/asm2wasm.h index b19451a7b..eb5413e20 100644 --- a/src/asm2wasm.h +++ b/src/asm2wasm.h @@ -523,6 +523,8 @@ void Asm2WasmBuilder::processAsm(Ref ast) { optimizingBuilder = make_unique<OptimizingIncrementalModuleBuilder>(&wasm, numFunctions, [&](PassRunner& passRunner) { // run autodrop first, before optimizations passRunner.add<AutoDrop>(); + // optimize relooper label variable usage at the wasm level, where it is easy + passRunner.add("relooper-jump-threading"); }); } @@ -803,13 +805,16 @@ void Asm2WasmBuilder::processAsm(Ref ast) { add->right = parent->builder.makeConst(Literal((int32_t)parent->functionTableStarts[tableName])); } }; + PassRunner passRunner(&wasm); passRunner.add<FinalizeCalls>(this); passRunner.add<ReFinalize>(); // FinalizeCalls changes call types, need to percolate passRunner.add<AutoDrop>(); // FinalizeCalls may cause us to require additional drops if (optimize) { - passRunner.add("vacuum"); // autodrop can add some garbage - passRunner.add("remove-unused-brs"); // vacuum may open up more opportunities + // autodrop can add some garbage + passRunner.add("vacuum"); + passRunner.add("remove-unused-brs"); + passRunner.add("optimize-instructions"); } passRunner.run(); @@ -866,19 +871,17 @@ void Asm2WasmBuilder::processAsm(Ref ast) { #endif -#if 0 // enable asm2wasm i64 optimizations when browsers have consistent i64 support in wasm if (udivmoddi4.is() && getTempRet0.is()) { // generate a wasm-optimized __udivmoddi4 method, which we can do much more efficiently in wasm // we can only do this if we know getTempRet0 as well since we use it to figure out which minified global is tempRet0 // (getTempRet0 might be an import, if this is a shared module, so we can't optimize that case) - int tempRet0; + Name tempRet0; { Expression* curr = wasm.getFunction(getTempRet0)->body; if (curr->is<Block>()) curr = curr->cast<Block>()->list[0]; - curr = curr->cast<Return>()->value; - auto* load = curr->cast<Load>(); - auto* ptr = load->ptr->cast<Const>(); - tempRet0 = ptr->value.geti32() + load->offset; + if (curr->is<Return>()) curr = curr->cast<Return>()->value; + auto* get = curr->cast<GetGlobal>(); + tempRet0 = get->name; } // udivmoddi4 receives xl, xh, yl, yl, r, and // if r then *r = x % y @@ -898,13 +901,13 @@ void Asm2WasmBuilder::processAsm(Ref ast) { return builder.makeSetLocal( target, builder.makeBinary( - Or, + OrInt64, builder.makeUnary( ExtendUInt32, builder.makeGetLocal(low, i32) ), builder.makeBinary( - Shl, + ShlInt64, builder.makeUnary( ExtendUInt32, builder.makeGetLocal(high, i32) @@ -923,10 +926,11 @@ void Asm2WasmBuilder::processAsm(Ref ast) { 8, 0, 8, builder.makeGetLocal(r, i32), builder.makeBinary( - RemU, + RemUInt64, builder.makeGetLocal(x64, i64), builder.makeGetLocal(y64, i64) - ) + ), + i64 ) ) ); @@ -934,20 +938,19 @@ void Asm2WasmBuilder::processAsm(Ref ast) { builder.makeSetLocal( x64, builder.makeBinary( - DivU, + DivUInt64, builder.makeGetLocal(x64, i64), builder.makeGetLocal(y64, i64) ) ) ); body->list.push_back( - builder.makeStore( - 4, 0, 4, - builder.makeConst(Literal(int32_t(tempRet0))), + builder.makeSetGlobal( + tempRet0, builder.makeUnary( WrapInt64, builder.makeBinary( - ShrU, + ShrUInt64, builder.makeGetLocal(x64, i64), builder.makeConst(Literal(int64_t(32))) ) @@ -960,9 +963,9 @@ void Asm2WasmBuilder::processAsm(Ref ast) { builder.makeGetLocal(x64, i64) ) ); + body->finalize(); func->body = body; } -#endif assert(WasmValidator().validate(wasm)); } diff --git a/src/ast_utils.h b/src/ast_utils.h index 9b2ff10cd..4664f22ae 100644 --- a/src/ast_utils.h +++ b/src/ast_utils.h @@ -27,19 +27,27 @@ namespace wasm { struct BreakSeeker : public PostWalker<BreakSeeker, Visitor<BreakSeeker>> { Name target; // look for this one XXX looking by name may fall prey to duplicate names - size_t found; + Index found; + WasmType valueType; - BreakSeeker(Name target) : target(target), found(false) {} + BreakSeeker(Name target) : target(target), found(0) {} + + void noteFound(Expression* value) { + found++; + if (found == 1) valueType = unreachable; + if (!value) valueType = none; + else if (value->type != unreachable) valueType = value->type; + } void visitBreak(Break *curr) { - if (curr->name == target) found++; + if (curr->name == target) noteFound(curr->value); } void visitSwitch(Switch *curr) { for (auto name : curr->targets) { - if (name == target) found++; + if (name == target) noteFound(curr->value); } - if (curr->default_ == target) found++; + if (curr->default_ == target) noteFound(curr->value); } static bool has(Expression* tree, Name target) { @@ -47,6 +55,12 @@ struct BreakSeeker : public PostWalker<BreakSeeker, Visitor<BreakSeeker>> { breakSeeker.walk(tree); return breakSeeker.found > 0; } + + static Index count(Expression* tree, Name target) { + BreakSeeker breakSeeker(target); + breakSeeker.walk(tree); + return breakSeeker.found; + } }; // Finds all functions that are reachable via direct calls. @@ -92,13 +106,16 @@ struct EffectAnalyzer : public PostWalker<EffectAnalyzer, Visitor<EffectAnalyzer bool calls = false; std::set<Index> localsRead; std::set<Index> localsWritten; + std::set<Name> globalsRead; + std::set<Name> globalsWritten; bool readsMemory = false; bool writesMemory = false; bool accessesLocal() { return localsRead.size() + localsWritten.size() > 0; } + bool accessesGlobal() { return globalsRead.size() + globalsWritten.size() > 0; } bool accessesMemory() { return calls || readsMemory || writesMemory; } - bool hasSideEffects() { return calls || localsWritten.size() > 0 || writesMemory || branches; } - bool hasAnything() { return branches || calls || accessesLocal() || readsMemory || writesMemory; } + bool hasSideEffects() { return calls || localsWritten.size() > 0 || writesMemory || branches || globalsWritten.size() > 0; } + bool hasAnything() { return branches || calls || accessesLocal() || readsMemory || writesMemory || accessesGlobal(); } // checks if these effects would invalidate another set (e.g., if we write, we invalidate someone that reads, they can't be moved past us) bool invalidates(EffectAnalyzer& other) { @@ -115,6 +132,17 @@ struct EffectAnalyzer : public PostWalker<EffectAnalyzer, Visitor<EffectAnalyzer for (auto local : localsRead) { if (other.localsWritten.count(local)) return true; } + if ((accessesGlobal() && other.calls) || (other.accessesGlobal() && calls)) { + return true; + } + for (auto global : globalsWritten) { + if (other.globalsWritten.count(global) || other.globalsRead.count(global)) { + return true; + } + } + for (auto global : globalsRead) { + if (other.globalsWritten.count(global)) return true; + } return false; } @@ -163,8 +191,12 @@ struct EffectAnalyzer : public PostWalker<EffectAnalyzer, Visitor<EffectAnalyzer void visitSetLocal(SetLocal *curr) { localsWritten.insert(curr->index); } - void visitGetGlobal(GetGlobal *curr) { readsMemory = true; } // TODO: global-specific - void visitSetGlobal(SetGlobal *curr) { writesMemory = true; } // stuff? + void visitGetGlobal(GetGlobal *curr) { + globalsRead.insert(curr->name); + } + void visitSetGlobal(SetGlobal *curr) { + globalsWritten.insert(curr->name); + } void visitLoad(Load *curr) { readsMemory = true; } void visitStore(Store *curr) { writesMemory = true; } void visitReturn(Return *curr) { branches = true; } @@ -340,6 +372,21 @@ struct ExpressionManipulator { } copier; return flexibleCopy(original, wasm, copier); } + + // Splice an item into the middle of a block's list + static void spliceIntoBlock(Block* block, Index index, Expression* add) { + auto& list = block->list; + if (index == list.size()) { + list.push_back(add); // simple append + } else { + // we need to make room + list.push_back(nullptr); + for (Index i = list.size() - 1; i > index; i--) { + list[i] = list[i - 1]; + } + list[index] = add; + } + } }; struct ExpressionAnalyzer { @@ -373,6 +420,25 @@ struct ExpressionAnalyzer { return func->result != none; } + // Checks if a break is a simple - no condition, no value, just a plain branching + static bool isSimple(Break* curr) { + return !curr->condition && !curr->value; + } + + // Checks if an expression ends with a simple break, + // and returns a pointer to it if so. + // (It might also have other internal branches.) + static Expression* getEndingSimpleBreak(Expression* curr) { + if (auto* br = curr->dynCast<Break>()) { + if (isSimple(br)) return br; + return nullptr; + } + if (auto* block = curr->dynCast<Block>()) { + if (block->list.size() > 0) return getEndingSimpleBreak(block->list.back()); + } + return nullptr; + } + template<typename T> static bool flexibleEqual(Expression* left, Expression* right, T& comparer) { std::vector<Name> nameStack; @@ -814,6 +880,25 @@ struct AutoDrop : public WalkerPass<ExpressionStackWalker<AutoDrop, Visitor<Auto curr->finalize(); // we may have changed our type } + void visitIf(If* curr) { + if (curr->ifFalse) { + if (!isConcreteWasmType(curr->type)) { + // if either side of an if-else not returning a value is concrete, drop it + if (isConcreteWasmType(curr->ifTrue->type)) { + curr->ifTrue = Builder(*getModule()).makeDrop(curr->ifTrue); + } + if (isConcreteWasmType(curr->ifFalse->type)) { + curr->ifFalse = Builder(*getModule()).makeDrop(curr->ifFalse); + } + } + } else { + // if without else does not return a value, so the body must be dropped if it is concrete + if (isConcreteWasmType(curr->ifTrue->type)) { + curr->ifTrue = Builder(*getModule()).makeDrop(curr->ifTrue); + } + } + } + void visitFunction(Function* curr) { if (curr->result == none && isConcreteWasmType(curr->body->type)) { curr->body = Builder(*getModule()).makeDrop(curr->body); diff --git a/src/pass.h b/src/pass.h index 0ad8d8c1d..e237b8a98 100644 --- a/src/pass.h +++ b/src/pass.h @@ -72,17 +72,17 @@ struct PassRunner { void add(std::string passName) { auto pass = PassRegistry::get()->createPass(passName); if (!pass) Fatal() << "Could not find pass: " << passName << "\n"; - passes.push_back(pass); + doAdd(pass); } template<class P> void add() { - passes.push_back(new P()); + doAdd(new P()); } template<class P, class Arg> void add(Arg arg){ - passes.push_back(new P(arg)); + doAdd(new P(arg)); } // Adds the default set of optimization passes; this is @@ -110,6 +110,8 @@ struct PassRunner { ~PassRunner(); private: + void doAdd(Pass* pass); + void runPassOnFunction(Pass* pass, Function* func); }; @@ -121,12 +123,13 @@ public: virtual ~Pass() {}; // Override this to perform preparation work before the pass runs. - virtual void prepare(PassRunner* runner, Module* module) {} + // This will be called before the pass is run on a module. + virtual void prepareToRun(PassRunner* runner, Module* module) {} + + // Implement this with code to run the pass on the whole module virtual void run(PassRunner* runner, Module* module) = 0; - // Override this to perform finalization work after the pass runs. - virtual void finalize(PassRunner* runner, Module* module) {} - // Run on a single function. This has no prepare/finalize calls. + // Implement this with code to run the pass on a single function virtual void runFunction(PassRunner* runner, Module* module, Function* function) { WASM_UNREACHABLE(); // by default, passes cannot be run this way } @@ -166,9 +169,7 @@ template <typename WalkerType> class WalkerPass : public Pass, public WalkerType { public: void run(PassRunner* runner, Module* module) override { - prepare(runner, module); WalkerType::walkModule(module); - finalize(runner, module); } void runFunction(PassRunner* runner, Module* module, Function* func) override { diff --git a/src/passes/CMakeLists.txt b/src/passes/CMakeLists.txt index 1b4c65562..30f63c880 100644 --- a/src/passes/CMakeLists.txt +++ b/src/passes/CMakeLists.txt @@ -3,6 +3,7 @@ SET(passes_SOURCES CoalesceLocals.cpp DeadCodeElimination.cpp DuplicateFunctionElimination.cpp + ExtractFunction.cpp MergeBlocks.cpp Metrics.cpp NameManager.cpp @@ -11,6 +12,7 @@ SET(passes_SOURCES PostEmscripten.cpp Precompute.cpp Print.cpp + RelooperJumpThreading.cpp RemoveImports.cpp RemoveMemory.cpp RemoveUnusedBrs.cpp diff --git a/src/passes/CoalesceLocals.cpp b/src/passes/CoalesceLocals.cpp index 2063a20db..ba2c6dd81 100644 --- a/src/passes/CoalesceLocals.cpp +++ b/src/passes/CoalesceLocals.cpp @@ -198,6 +198,7 @@ struct CoalesceLocals : public WalkerPass<CFGWalker<CoalesceLocals, Visitor<Coal void scanLivenessThroughActions(std::vector<Action>& actions, LocalSet& live); void pickIndicesFromOrder(std::vector<Index>& order, std::vector<Index>& indices); + void pickIndicesFromOrder(std::vector<Index>& order, std::vector<Index>& indices, Index& removedCopies); virtual void pickIndices(std::vector<Index>& indices); // returns a vector of oldIndex => newIndex @@ -224,14 +225,17 @@ struct CoalesceLocals : public WalkerPass<CFGWalker<CoalesceLocals, Visitor<Coal // copying state - std::vector<uint8_t> copies; // canonicalized - accesses should check (low, high) + std::vector<uint8_t> copies; // canonicalized - accesses should check (low, high) TODO: use a map for high N, as this tends to be sparse? or don't look at copies at all for big N? + std::vector<Index> totalCopies; // total # of copies for each local, with all others void addCopy(Index i, Index j) { auto k = std::min(i, j) * numLocals + std::max(i, j); copies[k] = std::min(copies[k], uint8_t(254)) + 1; + totalCopies[i]++; + totalCopies[j]++; } - bool getCopies(Index i, Index j) { + uint8_t getCopies(Index i, Index j) { return copies[std::min(i, j) * numLocals + std::max(i, j)]; } }; @@ -240,6 +244,8 @@ void CoalesceLocals::doWalkFunction(Function* func) { numLocals = func->getNumLocals(); copies.resize(numLocals * numLocals); std::fill(copies.begin(), copies.end(), 0); + totalCopies.resize(numLocals); + std::fill(totalCopies.begin(), totalCopies.end(), 0); // collect initial liveness info WalkerPass<CFGWalker<CoalesceLocals, Visitor<CoalesceLocals>, Liveness>>::doWalkFunction(func); // ignore links to dead blocks, so they don't confuse us and we can see their stores are all ineffective @@ -388,8 +394,43 @@ void CoalesceLocals::calculateInterferences(const LocalSet& locals) { // Indices decision making void CoalesceLocals::pickIndicesFromOrder(std::vector<Index>& order, std::vector<Index>& indices) { - // simple greedy coloring - // TODO: take into account eliminated copies + Index removedCopies; + pickIndicesFromOrder(order, indices, removedCopies); +} + +void CoalesceLocals::pickIndicesFromOrder(std::vector<Index>& order, std::vector<Index>& indices, Index& removedCopies) { + // mostly-simple greedy coloring +#if CFG_DEBUG + std::cerr << "\npickIndicesFromOrder on " << getFunction()->name << '\n'; + std::cerr << getFunction()->body << '\n'; + std::cerr << "order:\n"; + for (auto i : order) std::cerr << i << ' '; + std::cerr << '\n'; + std::cerr << "interferences:\n"; + for (Index i = 0; i < numLocals; i++) { + for (Index j = 0; j < i + 1; j++) { + std::cerr << " "; + } + for (Index j = i + 1; j < numLocals; j++) { + std::cerr << int(interferes(i, j)) << ' '; + } + std::cerr << " : $" << i << '\n'; + } + std::cerr << "copies:\n"; + for (Index i = 0; i < numLocals; i++) { + for (Index j = 0; j < i + 1; j++) { + std::cerr << " "; + } + for (Index j = i + 1; j < numLocals; j++) { + std::cerr << int(getCopies(i, j)) << ' '; + } + std::cerr << " : $" << i << '\n'; + } + std::cerr << "total copies:\n"; + for (Index i = 0; i < numLocals; i++) { + std::cerr << " $" << i << ": " << totalCopies[i] << '\n'; + } +#endif // TODO: take into account distribution (99-1 is better than 50-50 with two registers, for gzip) std::vector<WasmType> types; std::vector<bool> newInterferences; // new index * numLocals => list of all interferences of locals merged to it @@ -397,12 +438,13 @@ void CoalesceLocals::pickIndicesFromOrder(std::vector<Index>& order, std::vector indices.resize(numLocals); types.resize(numLocals); newInterferences.resize(numLocals * numLocals); - newCopies.resize(numLocals * numLocals); std::fill(newInterferences.begin(), newInterferences.end(), 0); + auto numParams = getFunction()->getNumParams(); + newCopies.resize(numParams * numLocals); // start with enough room for the params std::fill(newCopies.begin(), newCopies.end(), 0); Index nextFree = 0; + removedCopies = 0; // we can't reorder parameters, they are fixed in order, and cannot coalesce - auto numParams = getFunction()->getNumParams(); Index i = 0; for (; i < numParams; i++) { assert(order[i] == i); // order must leave the params in place @@ -421,6 +463,7 @@ void CoalesceLocals::pickIndicesFromOrder(std::vector<Index>& order, std::vector for (Index j = 0; j < nextFree; j++) { if (!newInterferences[j * numLocals + actual] && getFunction()->getLocalType(actual) == types[j]) { // this does not interfere, so it might be what we want. but pick the one eliminating the most copies + // (we could stop looking forward when there are no more items that have copies anyhow, but it doesn't seem to help) auto currCopies = newCopies[j * numLocals + actual]; if (found == Index(-1) || currCopies > foundCopies) { indices[actual] = found = j; @@ -432,7 +475,14 @@ void CoalesceLocals::pickIndicesFromOrder(std::vector<Index>& order, std::vector indices[actual] = found = nextFree; types[found] = getFunction()->getLocalType(actual); nextFree++; + removedCopies += getCopies(found, actual); + newCopies.resize(nextFree * numLocals); + } else { + removedCopies += foundCopies; } +#if CFG_DEBUG + std::cerr << "set local $" << actual << " to $" << found << '\n'; +#endif // merge new interferences and copies for the new index for (Index k = i + 1; k < numLocals; k++) { auto j = order[k]; // go in the order, we only need to update for those we will see later @@ -442,31 +492,85 @@ void CoalesceLocals::pickIndicesFromOrder(std::vector<Index>& order, std::vector } } +// Utilities for operating on permutation vectors + +static std::vector<Index> makeIdentity(Index num) { + std::vector<Index> ret; + ret.resize(num); + for (Index i = 0; i < num; i++) { + ret[i] = i; + } + return ret; +} + +static void setIdentity(std::vector<Index>& ret) { + auto num = ret.size(); + assert(num > 0); // must already be of the right size + for (Index i = 0; i < num; i++) { + ret[i] = i; + } +} + +static std::vector<Index> makeReversed(std::vector<Index>& original) { + std::vector<Index> ret; + auto num = original.size(); + ret.resize(num); + for (Index i = 0; i < num; i++) { + ret[original[i]] = i; + } + return ret; +} + +// given a baseline order, adjust it based on an important order of priorities (higher values +// are higher priority). The priorities take precedence, unless they are equal and then +// the original order should be kept. +std::vector<Index> adjustOrderByPriorities(std::vector<Index>& baseline, std::vector<Index>& priorities) { + std::vector<Index> ret = baseline; + std::vector<Index> reversed = makeReversed(baseline); + std::sort(ret.begin(), ret.end(), [&priorities, &reversed](Index x, Index y) { + return priorities[x] > priorities[y] || (priorities[x] == priorities[y] && reversed[x] < reversed[y]); + }); + return ret; +}; + void CoalesceLocals::pickIndices(std::vector<Index>& indices) { if (numLocals == 0) return; if (numLocals == 1) { indices.push_back(0); return; } + if (getFunction()->getNumVars() <= 1) { + // nothing to think about here, since we can't reorder params + indices = makeIdentity(numLocals); + return; + } + // take into account total copies. but we must keep params in place, so give them max priority + auto adjustedTotalCopies = totalCopies; + auto numParams = getFunction()->getNumParams(); + for (Index i = 0; i < numParams; i++) { + adjustedTotalCopies[i] = std::numeric_limits<Index>::max(); + } // first try the natural order. this is less arbitrary than it seems, as the program // may have a natural order of locals inherent in it. - std::vector<Index> order; - order.resize(numLocals); - for (Index i = 0; i < numLocals; i++) { - order[i] = i; - } - pickIndicesFromOrder(order, indices); + auto order = makeIdentity(numLocals); + order = adjustOrderByPriorities(order, adjustedTotalCopies); + Index removedCopies; + pickIndicesFromOrder(order, indices, removedCopies); auto maxIndex = *std::max_element(indices.begin(), indices.end()); - // next try the reverse order. this both gives us anothe chance at something good, + // next try the reverse order. this both gives us another chance at something good, // and also the very naturalness of the simple order may be quite suboptimal - auto numParams = getFunction()->getNumParams(); + setIdentity(order); for (Index i = numParams; i < numLocals; i++) { order[i] = numParams + numLocals - 1 - i; } + order = adjustOrderByPriorities(order, adjustedTotalCopies); std::vector<Index> reverseIndices; - pickIndicesFromOrder(order, reverseIndices); + Index reverseRemovedCopies; + pickIndicesFromOrder(order, reverseIndices, reverseRemovedCopies); auto reverseMaxIndex = *std::max_element(reverseIndices.begin(), reverseIndices.end()); - if (reverseMaxIndex < maxIndex) { + // prefer to remove copies foremost, as it matters more for code size (minus gzip), and + // improves throughput. + if (reverseRemovedCopies > removedCopies || (reverseRemovedCopies == removedCopies && reverseMaxIndex < maxIndex)) { indices.swap(reverseIndices); } } @@ -553,7 +657,8 @@ void CoalesceLocalsWithLearning::pickIndices(std::vector<Index>& indices) { void calculateFitness(Order* order) { // apply the order std::vector<Index> indices; // the phenotype - parent->pickIndicesFromOrder(*order, indices); + Index removedCopies; + parent->pickIndicesFromOrder(*order, indices, removedCopies); auto maxIndex = *std::max_element(indices.begin(), indices.end()); assert(maxIndex <= parent->numLocals); // main part of fitness is the number of locals @@ -563,6 +668,7 @@ void CoalesceLocalsWithLearning::pickIndices(std::vector<Index>& indices) { for (Index i = 0; i < parent->numLocals; i++) { if ((*order)[i] == i) fitness += fragment; // boost for each that wasn't moved } + fitness = (100 * fitness) + removedCopies; // removing copies is a secondary concern order->setFitness(fitness); } @@ -577,6 +683,8 @@ void CoalesceLocalsWithLearning::pickIndices(std::vector<Index>& indices) { // first, there may be an inherent order in the input (frequent indices are lower, // etc.). second, by ensuring we start with the natural order, we ensure we are at // least as good as the non-learning variant. + // TODO: use ::pickIndices from the parent, so we literally get the simpler approach + // as our first option first = false; } else { // leave params alone, shuffle the rest diff --git a/src/passes/DuplicateFunctionElimination.cpp b/src/passes/DuplicateFunctionElimination.cpp index 2b8e69b54..cfe2d8565 100644 --- a/src/passes/DuplicateFunctionElimination.cpp +++ b/src/passes/DuplicateFunctionElimination.cpp @@ -102,7 +102,17 @@ struct DuplicateFunctionElimination : public Pass { auto& group = pair.second; if (group.size() == 1) continue; // pick a base for each group, and try to replace everyone else to it. TODO: multiple bases per hash group, for collisions +#if 0 + // for comparison purposes, pick in a deterministic way based on the names + Function* base = nullptr; + for (auto* func : group) { + if (!base || strcmp(func->name.str, base->name.str) < 0) { + base = func; + } + } +#else Function* base = group[0]; +#endif for (auto* func : group) { if (func != base && equal(func, base)) { replacements[func->name] = base->name; diff --git a/src/passes/ExtractFunction.cpp b/src/passes/ExtractFunction.cpp new file mode 100644 index 000000000..b342efc3b --- /dev/null +++ b/src/passes/ExtractFunction.cpp @@ -0,0 +1,46 @@ +/* + * Copyright 2016 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. + */ + +// Removes code from all functions but one, leaving a valid module +// with (mostly) just the code you want to debug (function-parallel, +// non-lto) passes on. + +#include "wasm.h" +#include "pass.h" + +namespace wasm { + +Name TO_LEAVE("_bytearray_join"); // TODO: commandline param + +struct ExtractFunction : public Pass { + void run(PassRunner* runner, Module* module) override { + for (auto& func : module->functions) { + if (func->name != TO_LEAVE) { + // wipe out the body + func->body = module->allocator.alloc<Unreachable>(); + } + } + } +}; + +// declare pass + +Pass *createExtractFunctionPass() { + return new ExtractFunction(); +} + +} // namespace wasm + diff --git a/src/passes/LowerInt64.cpp b/src/passes/LowerInt64.cpp deleted file mode 100644 index 69f6d5ae9..000000000 --- a/src/passes/LowerInt64.cpp +++ /dev/null @@ -1,196 +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. - */ - -// -// Lowers 64-bit ints to pairs of 32-bit ints, plus some library routines -// -// This is useful for wasm2asm, as JS has no native 64-bit integer support. -// - -#include <memory> - -#include <wasm.h> -#include <pass.h> - -namespace wasm { - -cashew::IString GET_HIGH("getHigh"); - -struct LowerInt64 : public Pass { - MixedArena* allocator; - std::unique_ptr<NameManager> namer; - - void prepare(PassRunner* runner, Module *module) override { - allocator = runner->allocator; - namer = make_unique<NameManager>(); - namer->run(runner, module); - } - - std::map<Expression*, Expression*> fixes; // fixed nodes, outputs of lowering, mapped to their high bits - std::map<Name, Name> locals; // maps locals which were i64->i32 to their high bits - - void makeGetHigh() { - auto ret = allocator->alloc<CallImport>(); - ret->target = GET_HIGH; - ret->type = i32; - return ret; - } - - void fixCall(CallBase *call) { - auto& operands = call->operands; - for (size_t i = 0; i < operands.size(); i++) { - auto fix = fixes.find(operands[i]); - if (fix != fixes.end()) { - operands.insert(operands.begin() + i + 1, *fix); - } - } - if (curr->type == i64) { - curr->type = i32; - fixes[curr] = makeGetHigh(); // called function will setHigh - } - } - - void visitCall(Call *curr) { - fixCall(curr); - } - void visitCallImport(CallImport *curr) { - fixCall(curr); - } - void visitCallIndirect(CallIndirect *curr) { - fixCall(curr); - } - void visitGetLocal(GetLocal *curr) { - if (curr->type == i64) { - if (locals.count(curr->name) == 0) { - Name highName = namer->getUnique("high"); - locals[curr->name] = highName; - }; - curr->type = i32; - auto high = allocator->alloc<GetLocal>(); - high->name = locals[curr->name]; - high->type = i32; - fixes[curr] = high; - } - } - void visitSetLocal(SetLocal *curr) { - if (curr->type == i64) { - Name highName; - if (locals.count(curr->name) == 0) { - highName = namer->getUnique("high"); - locals[curr->name] = highName; - } else { - highName = locals[curr->name]; - } - curr->type = i32; - auto high = allocator->alloc<GetLocal>(); - high->name = highName; - high->type = i32; - fixes[curr] = high; - // Set the high bits - auto set = allocator.alloc<SetLocal>(); - set->name = highName; - set->value = fixes[curr->value]; - set->type = i32; - assert(set->value); - auto low = allocator->alloc<GetLocal>(); - low->name = curr->name; - low->type = i32; - auto ret = allocator.alloc<Block>(); - ret->list.push_back(curr); - ret->list.push_back(set); - ret->list.push_back(low); // so the block returns the low bits - ret->finalize(); - fixes[ret] = high; - replaceCurrent(ret); - } - } - - // sets an expression to a local, and returns a block - Block* setToLocalForBlock(Expression *value, Name& local, Block *ret = nullptr) { - if (!ret) ret = allocator->alloc<Block>(); - if (value->is<GetLocal>()) { - local = value->name; - } else if (value->is<SetLocal>()) { - local = value->name; - } else { - auto set = allocator.alloc<SetLocal>(); - set->name = local = namer->getUnique("temp"); - set->value = value; - set->type = value->type; - ret->list.push_back(set); - } - ret->finalize(); - return ret; - } - - GetLocal* getLocal(Name name) { - auto ret = allocator->alloc<GetLocal>(); - ret->name = name; - ret->type = i32; - return ret; - } - - void visitLoad(Load *curr) { - if (curr->type == i64) { - Name local; - auto ret = setToLocalForBlock(curr->ptr, local); - curr->ptr = getLocal(local); - curr->type = i32; - curr->bytes = 4; - auto high = allocator->alloc<Load>(); - *high = *curr; - high->ptr = getLocal(local); - high->offset += 4; - ret->list.push_back(curr); - fixes[ret] = high; - replaceCurrent(ret); - } - } - void visitStore(Store *curr) { - if (curr->type == i64) { - Name localPtr, localValue; - auto ret = setToLocalForBlock(curr->ptr, localPtr); - setToLocalForBlock(curr->value, localValue); - curr->ptr = getLocal(localPtr); - curr->value = getLocal(localValue); - curr->type = i32; - curr->bytes = 4; - auto high = allocator->alloc<Load>(); - *high = *curr; - high->ptr = getLocal(localPtr); - high->value = getLocal(localValue); - high->offset += 4; - ret->list.push_back(high); - ret->list.push_back(curr); - fixes[ret] = high; - replaceCurrent(ret); - } - } - void visitFunction(Function *curr) { - // TODO: new params - for (auto localPair : locals) { // TODO: ignore params - curr->locals.emplace_back(localPair.second, i32); - } - fixes.clear(); - locals.clear(); - } -}; - -Pass *createLowerInt64Pass() { - return new LowerInt64(); -} - -} // namespace wasm diff --git a/src/passes/Metrics.cpp b/src/passes/Metrics.cpp index c5309850e..9181da9bb 100644 --- a/src/passes/Metrics.cpp +++ b/src/passes/Metrics.cpp @@ -34,7 +34,7 @@ struct Metrics : public WalkerPass<PostWalker<Metrics, UnifiedExpressionVisitor< counts[name]++; } - void finalize(PassRunner *runner, Module *module) override { + void visitModule(Module* module) { ostream &o = cout; o << "Counts" << "\n"; diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp index 2a5e7b8c4..669a19b89 100644 --- a/src/passes/OptimizeInstructions.cpp +++ b/src/passes/OptimizeInstructions.cpp @@ -24,6 +24,7 @@ #include <pass.h> #include <wasm-s-parser.h> #include <support/threads.h> +#include <ast_utils.h> namespace wasm { @@ -50,7 +51,6 @@ struct PatternDatabase { std::map<Expression::Id, std::vector<Pattern>> patternMap; // root expression id => list of all patterns for it TODO optimize more PatternDatabase() { - // TODO: do this on first use, with a lock, to avoid startup pause // generate module input = strdup( #include "OptimizeInstructions.wast.processed" @@ -74,14 +74,12 @@ struct PatternDatabase { static PatternDatabase* database = nullptr; -static void ensureDatabase() { - if (!database) { - // we must only ever create one database - static OnlyOnce onlyOnce; - onlyOnce.verify(); +struct DatabaseEnsurer { + DatabaseEnsurer() { + assert(!database); database = new PatternDatabase; } -} +}; // Check for matches and apply them struct Match { @@ -161,13 +159,18 @@ struct OptimizeInstructions : public WalkerPass<PostWalker<OptimizeInstructions, Pass* create() override { return new OptimizeInstructions; } - OptimizeInstructions() { - ensureDatabase(); + void prepareToRun(PassRunner* runner, Module* module) override { + static DatabaseEnsurer ensurer; } void visitExpression(Expression* curr) { // we may be able to apply multiple patterns, one may open opportunities that look deeper NB: patterns must not have cycles while (1) { + auto* handOptimized = handOptimize(curr); + if (handOptimized) { + curr = handOptimized; + replaceCurrent(curr); + } auto iter = database->patternMap.find(curr->_id); if (iter == database->patternMap.end()) return; auto& patterns = iter->second; @@ -184,6 +187,65 @@ struct OptimizeInstructions : public WalkerPass<PostWalker<OptimizeInstructions, if (!more) break; } } + + // Optimizations that don't yet fit in the pattern DSL, but could be eventually maybe + Expression* handOptimize(Expression* curr) { + if (auto* binary = curr->dynCast<Binary>()) { + // pattern match a load of 8 bits and a sign extend using a shl of 24 then shr_s of 24 as well, etc. + if (binary->op == BinaryOp::ShrSInt32 && binary->right->is<Const>()) { + auto shifts = binary->right->cast<Const>()->value.geti32(); + if (shifts == 24 || shifts == 16) { + auto* left = binary->left->dynCast<Binary>(); + if (left && left->op == ShlInt32 && left->right->is<Const>() && left->right->cast<Const>()->value.geti32() == shifts) { + auto* load = left->left->dynCast<Load>(); + if (load && ((load->bytes == 1 && shifts == 24) || (load->bytes == 2 && shifts == 16))) { + load->signed_ = true; + return load; + } + } + } + } + } else if (auto* set = curr->dynCast<SetGlobal>()) { + // optimize out a set of a get + auto* get = set->value->dynCast<GetGlobal>(); + if (get && get->name == set->name) { + ExpressionManipulator::nop(curr); + } + } else if (auto* iff = curr->dynCast<If>()) { + iff->condition = optimizeBoolean(iff->condition); + } else if (auto* select = curr->dynCast<Select>()) { + select->condition = optimizeBoolean(select->condition); + auto* condition = select->condition->dynCast<Unary>(); + if (condition && condition->op == EqZInt32) { + // flip select to remove eqz, if we can reorder + EffectAnalyzer ifTrue(select->ifTrue); + EffectAnalyzer ifFalse(select->ifFalse); + if (!ifTrue.invalidates(ifFalse)) { + select->condition = condition->value; + std::swap(select->ifTrue, select->ifFalse); + } + } + } else if (auto* br = curr->dynCast<Break>()) { + if (br->condition) { + br->condition = optimizeBoolean(br->condition); + } + } + return nullptr; + } + +private: + + Expression* optimizeBoolean(Expression* boolean) { + auto* condition = boolean->dynCast<Unary>(); + if (condition && condition->op == EqZInt32) { + auto* condition2 = condition->value->dynCast<Unary>(); + if (condition2 && condition2->op == EqZInt32) { + // double eqz + return condition2->value; + } + } + return boolean; + } }; Pass *createOptimizeInstructionsPass() { diff --git a/src/passes/OptimizeInstructions.wast b/src/passes/OptimizeInstructions.wast index 7d5c56881..48a4e2c9d 100644 --- a/src/passes/OptimizeInstructions.wast +++ b/src/passes/OptimizeInstructions.wast @@ -19,8 +19,8 @@ ;; main function. each block here is a pattern pair of input => output (func $patterns + ;; flip if-else arms to get rid of an eqz (block - ;; flip if-else arms to get rid of an eqz (if (i32.eqz (call_import $i32.expr (i32.const 0)) @@ -34,6 +34,25 @@ (call_import $any.expr (i32.const 1)) ) ) + ;; equal 0 => eqz + (block + (i32.eq + (call_import $any.expr (i32.const 0)) + (i32.const 0) + ) + (i32.eqz + (call_import $any.expr (i32.const 0)) + ) + ) + (block + (i32.eq + (i32.const 0) + (call_import $any.expr (i32.const 0)) + ) + (i32.eqz + (call_import $any.expr (i32.const 0)) + ) + ) ;; De Morgans Laws (block (i32.eqz (i32.eq (call_import $i32.expr (i32.const 0)) (call_import $i32.expr (i32.const 1)))) diff --git a/src/passes/OptimizeInstructions.wast.processed b/src/passes/OptimizeInstructions.wast.processed index 61fde86c6..13ccc8241 100644 --- a/src/passes/OptimizeInstructions.wast.processed +++ b/src/passes/OptimizeInstructions.wast.processed @@ -19,8 +19,8 @@ "\n" ";; main function. each block here is a pattern pair of input => output\n" "(func $patterns\n" -"(block\n" ";; flip if-else arms to get rid of an eqz\n" +"(block\n" "(if\n" "(i32.eqz\n" "(call_import $i32.expr (i32.const 0))\n" @@ -34,6 +34,25 @@ "(call_import $any.expr (i32.const 1))\n" ")\n" ")\n" +";; equal 0 => eqz\n" +"(block\n" +"(i32.eq\n" +"(call_import $any.expr (i32.const 0))\n" +"(i32.const 0)\n" +")\n" +"(i32.eqz\n" +"(call_import $any.expr (i32.const 0))\n" +")\n" +")\n" +"(block\n" +"(i32.eq\n" +"(i32.const 0)\n" +"(call_import $any.expr (i32.const 0))\n" +")\n" +"(i32.eqz\n" +"(call_import $any.expr (i32.const 0))\n" +")\n" +")\n" ";; De Morgans Laws\n" "(block\n" "(i32.eqz (i32.eq (call_import $i32.expr (i32.const 0)) (call_import $i32.expr (i32.const 1))))\n" diff --git a/src/passes/RelooperJumpThreading.cpp b/src/passes/RelooperJumpThreading.cpp new file mode 100644 index 000000000..7f74220d5 --- /dev/null +++ b/src/passes/RelooperJumpThreading.cpp @@ -0,0 +1,248 @@ +/* + * Copyright 2016 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. + */ + +// Optimize relooper-generated label variable usage: add blocks and turn +// a label-set/break/label-check into a break into the new block. +// This assumes the very specific output the fastcomp relooper emits, +// including the name of the 'label' variable. + +#include "wasm.h" +#include "pass.h" +#include "ast_utils.h" + +namespace wasm { + +static Name LABEL("label"); + +// We need to use new label names, which we cannot create in parallel, so pre-create them + +const Index MAX_NAME_INDEX = 1000; + +std::vector<Name>* innerNames = nullptr; +std::vector<Name>* outerNames = nullptr; + +struct NameEnsurer { + NameEnsurer() { + assert(!innerNames); + assert(!outerNames); + innerNames = new std::vector<Name>; + outerNames = new std::vector<Name>; + for (Index i = 0; i < MAX_NAME_INDEX; i++) { + innerNames->push_back(Name(std::string("jumpthreading$inner$") + std::to_string(i))); + outerNames->push_back(Name(std::string("jumpthreading$outer$") + std::to_string(i))); + } + } +}; + +static If* isLabelCheckingIf(Expression* curr, Index labelIndex) { + if (!curr) return nullptr; + auto* iff = curr->dynCast<If>(); + if (!iff) return nullptr; + auto* condition = iff->condition->dynCast<Binary>(); + if (!(condition && condition->op == EqInt32)) return nullptr; + auto* left = condition->left->dynCast<GetLocal>(); + if (!(left && left->index == labelIndex)) return nullptr; + return iff; +} + +static Index getCheckedLabelValue(If* iff) { + return iff->condition->cast<Binary>()->right->cast<Const>()->value.geti32(); +} + +static SetLocal* isLabelSettingSetLocal(Expression* curr, Index labelIndex) { + if (!curr) return nullptr; + auto* set = curr->dynCast<SetLocal>(); + if (!set) return nullptr; + if (set->index != labelIndex) return nullptr; + return set; +} + +static Index getSetLabelValue(SetLocal* set) { + return set->value->cast<Const>()->value.geti32(); +} + +struct LabelUseFinder : public PostWalker<LabelUseFinder, Visitor<LabelUseFinder>> { + Index labelIndex; + std::map<Index, Index>& checks; // label value => number of checks on it + std::map<Index, Index>& sets; // label value => number of sets to it + + LabelUseFinder(Index labelIndex, std::map<Index, Index>& checks, std::map<Index, Index>& sets) : labelIndex(labelIndex), checks(checks), sets(sets) {} + + void visitIf(If* curr) { + if (isLabelCheckingIf(curr, labelIndex)) { + checks[getCheckedLabelValue(curr)]++; + } + } + + void visitSetLocal(SetLocal* curr) { + if (isLabelSettingSetLocal(curr, labelIndex)) { + sets[getSetLabelValue(curr)]++; + } + } +}; + +struct RelooperJumpThreading : public WalkerPass<ExpressionStackWalker<RelooperJumpThreading, Visitor<RelooperJumpThreading>>> { + bool isFunctionParallel() override { return true; } + + Pass* create() override { return new RelooperJumpThreading; } + + void prepareToRun(PassRunner* runner, Module* module) override { + static NameEnsurer ensurer; + } + + std::map<Index, Index> labelChecks; + std::map<Index, Index> labelSets; + + Index labelIndex; + Index newNameCounter = 0; + + void visitBlock(Block* curr) { + // look for the if label == X pattern + auto& list = curr->list; + if (list.size() == 0) return; + for (Index i = 0; i < list.size() - 1; i++) { + // once we see something that might be irreducible, we must skip that if and the rest of the dependents + bool irreducible = false; + Index origin = i; + for (Index j = i + 1; j < list.size(); j++) { + if (auto* iff = isLabelCheckingIf(list[j], labelIndex)) { + irreducible |= hasIrreducibleControlFlow(iff, list[origin]); + if (!irreducible) { + optimizeJumpsToLabelCheck(list[origin], iff); + ExpressionManipulator::nop(iff); + } + i++; + continue; + } + // if the next element is a block, it may be the holding block of label-checking ifs + if (auto* holder = list[j]->dynCast<Block>()) { + if (holder->list.size() > 0) { + if (If* iff = isLabelCheckingIf(holder->list[0], labelIndex)) { + irreducible |= hasIrreducibleControlFlow(iff, list[origin]); + if (!irreducible) { + // this is indeed a holder. we can process the ifs, and must also move + // the block to enclose the origin, so it is properly reachable + assert(holder->list.size() == 1); // must be size 1, a relooper multiple will have its own label, and is an if-else sequence and nothing more + optimizeJumpsToLabelCheck(list[origin], iff); + holder->list[0] = list[origin]; + list[origin] = holder; + // reuse the if as a nop + list[j] = iff; + ExpressionManipulator::nop(iff); + } + i++; + continue; + } + } + } + break; // we didn't see something we like, so stop here + } + } + } + + void doWalkFunction(Function* func) { + // if there isn't a label variable, nothing for us to do + if (func->localIndices.count(LABEL)) { + labelIndex = func->getLocalIndex(LABEL); + LabelUseFinder finder(labelIndex, labelChecks, labelSets); + finder.walk(func->body); + WalkerPass<ExpressionStackWalker<RelooperJumpThreading, Visitor<RelooperJumpThreading>>>::doWalkFunction(func); + } + } + +private: + + bool hasIrreducibleControlFlow(If* iff, Expression* origin) { + // Gather the checks in this if chain. If all the label values checked are only set in origin, + // then since origin is right before us, this is not irreducible - we can replace all sets + // in origin with jumps forward to us, and since there is nothing else, this is safe and complete. + // We must also have the property that there is just one check for the label value, as otherwise + // node splitting has complicated things. + std::map<Index, Index> labelChecksInOrigin; + std::map<Index, Index> labelSetsInOrigin; + LabelUseFinder finder(labelIndex, labelChecksInOrigin, labelSetsInOrigin); + finder.walk(origin); + while (iff) { + auto num = getCheckedLabelValue(iff); + assert(labelChecks[num] > 0); + if (labelChecks[num] > 1) return true; // checked more than once, somewhere in function + assert(labelChecksInOrigin[num] == 0); + if (labelSetsInOrigin[num] != labelSets[num]) { + assert(labelSetsInOrigin[num] < labelSets[num]); + return true; // label set somewhere outside of origin TODO: if set in the if body here, it might be safe in some cases + } + iff = isLabelCheckingIf(iff->ifFalse, labelIndex); + } + return false; + } + + // optimizes jumps to a label check + // * origin is where the jumps originate, and also where we should write our output + // * iff is the if + void optimizeJumpsToLabelCheck(Expression*& origin, If* iff) { + Index nameCounter = newNameCounter++; + if (nameCounter >= MAX_NAME_INDEX) { + std::cerr << "too many names in RelooperJumpThreading :(\n"; + return; + } + Index num = getCheckedLabelValue(iff); + // create a new block for this jump target + Builder builder(*getModule()); + // origin is where all jumps to this target must come from - the element right before this if + // we break out of inner to reach the target. instead of flowing out of normally, we break out of the outer, so we skip the target. + auto innerName = innerNames->at(nameCounter); + auto outerName = outerNames->at(nameCounter); + auto* ifFalse = iff->ifFalse; + // all assignments of label to the target can be replaced with breaks to the target, via innerName + struct JumpUpdater : public PostWalker<JumpUpdater, Visitor<JumpUpdater>> { + Index labelIndex; + Index targetNum; + Name targetName; + + void visitSetLocal(SetLocal* curr) { + if (curr->index == labelIndex) { + if (Index(curr->value->cast<Const>()->value.geti32()) == targetNum) { + replaceCurrent(Builder(*getModule()).makeBreak(targetName)); + } + } + } + }; + JumpUpdater updater; + updater.labelIndex = labelIndex; + updater.targetNum = num; + updater.targetName = innerName; + updater.setModule(getModule()); + updater.walk(origin); + // restructure code + auto* inner = builder.blockifyWithName(origin, innerName, builder.makeBreak(outerName)); + auto* outer = builder.makeSequence(inner, iff->ifTrue); + outer->name = outerName; + origin = outer; + // if another label value is checked here, handle that too + if (ifFalse) { + optimizeJumpsToLabelCheck(origin, ifFalse->cast<If>()); + } + } +}; + +// declare pass + +Pass *createRelooperJumpThreadingPass() { + return new RelooperJumpThreading(); +} + +} // namespace wasm + diff --git a/src/passes/RemoveImports.cpp b/src/passes/RemoveImports.cpp index 19d6c3eb1..429203a2e 100644 --- a/src/passes/RemoveImports.cpp +++ b/src/passes/RemoveImports.cpp @@ -28,22 +28,14 @@ namespace wasm { struct RemoveImports : public WalkerPass<PostWalker<RemoveImports, Visitor<RemoveImports>>> { - MixedArena* allocator; - Module* module; - - void prepare(PassRunner* runner, Module *module_) override { - allocator = runner->allocator; - module = module_; - } - void visitCallImport(CallImport *curr) { - WasmType type = module->getImport(curr->target)->functionType->result; + WasmType type = getModule()->getImport(curr->target)->functionType->result; if (type == none) { - replaceCurrent(allocator->alloc<Nop>()); + replaceCurrent(getModule()->allocator.alloc<Nop>()); } else { Literal nopLiteral; nopLiteral.type = type; - replaceCurrent(allocator->alloc<Const>()->set(nopLiteral)); + replaceCurrent(getModule()->allocator.alloc<Const>()->set(nopLiteral)); } } diff --git a/src/passes/RemoveUnusedBrs.cpp b/src/passes/RemoveUnusedBrs.cpp index 59d3af6fc..86a46374f 100644 --- a/src/passes/RemoveUnusedBrs.cpp +++ b/src/passes/RemoveUnusedBrs.cpp @@ -21,9 +21,20 @@ #include <wasm.h> #include <pass.h> #include <ast_utils.h> +#include <wasm-builder.h> namespace wasm { +// to turn an if into a br-if, we must be able to reorder the +// condition and possible value, and the possible value must +// not have side effects (as they would run unconditionally) +static bool canTurnIfIntoBrIf(Expression* ifCondition, Expression* brValue) { + if (!brValue) return true; + EffectAnalyzer value(brValue); + if (value.hasSideEffects()) return false; + return !EffectAnalyzer(ifCondition).invalidates(value); +} + struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<RemoveUnusedBrs>>> { bool isFunctionParallel() override { return true; } @@ -44,6 +55,9 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<R // a stack for if-else contents, we merge their outputs std::vector<Flows> ifStack; + // list of all loops, so we can optimize them + std::vector<Loop*> loops; + static void visitAny(RemoveUnusedBrs* self, Expression** currp) { auto* curr = *currp; auto& flows = self->flows; @@ -109,7 +123,7 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<R // ignore (could be result of a previous cycle) self->valueCanFlow = false; } else { - // anything else stops the flow TODO: optimize loops? + // anything else stops the flow flows.clear(); self->valueCanFlow = false; } @@ -123,23 +137,25 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<R self->ifStack.push_back(std::move(self->flows)); } + void visitLoop(Loop* curr) { + loops.push_back(curr); + } + void visitIf(If* curr) { if (!curr->ifFalse) { // if without an else. try to reduce if (condition) br => br_if (condition) Break* br = curr->ifTrue->dynCast<Break>(); if (br && !br->condition) { // TODO: if there is a condition, join them // if the br has a value, then if => br_if means we always execute the value, and also the order is value,condition vs condition,value - if (br->value) { - EffectAnalyzer value(br->value); - if (value.hasSideEffects()) return; - EffectAnalyzer condition(curr->condition); - if (condition.invalidates(value)) return; + if (canTurnIfIntoBrIf(curr->condition, br->value)) { + br->condition = curr->condition; + br->finalize(); + replaceCurrent(br); + anotherCycle = true; } - br->condition = curr->condition; - replaceCurrent(br); - anotherCycle = true; } } + // TODO: if-else can be turned into a br_if as well, if one of the sides is a dead end } // override scan to add a pre and a post check task to all nodes @@ -163,6 +179,99 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<R } } + // optimizes a loop. returns true if we made changes + bool optimizeLoop(Loop* loop) { + // if a loop ends in + // (loop $in + // (block $out + // if (..) br $in; else br $out; + // ) + // ) + // then our normal opts can remove the break out since it flows directly out + // (and later passes make the if one-armed). however, the simple analysis + // fails on patterns like + // if (..) br $out; + // br $in; + // which is a common way to do a while (1) loop (end it with a jump to the + // top), so we handle that here. Specifically we want to conditionalize + // breaks to the loop top, i.e., put them behind a condition, so that other + // code can flow directly out and thus brs out can be removed. (even if + // the change is to let a break somewhere else flow out, that can still be + // helpful, as it shortens the logical loop. it is also good to generate + // an if-else instead of an if, as it might allow an eqz to be removed + // by flipping arms) + if (!loop->name.is()) return false; + auto* block = loop->body->dynCast<Block>(); + if (!block) return false; + // does the last element break to the top of the loop? + auto& list = block->list; + if (list.size() <= 1) return false; + auto* last = list.back()->dynCast<Break>(); + if (!last || !ExpressionAnalyzer::isSimple(last) || last->name != loop->name) return false; + // last is a simple break to the top of the loop. if we can conditionalize it, + // it won't block things from flowing out and not needing breaks to do so. + Index i = list.size() - 2; + Builder builder(*getModule()); + while (1) { + auto* curr = list[i]; + if (auto* iff = curr->dynCast<If>()) { + // let's try to move the code going to the top of the loop into the if-else + if (!iff->ifFalse) { + // we need the ifTrue to break, so it cannot reach the code we want to move + if (ExpressionAnalyzer::getEndingSimpleBreak(iff->ifTrue)) { + iff->ifFalse = builder.stealSlice(block, i + 1, list.size()); + return true; + } + } else { + // this is already an if-else. if one side is a dead end, we can append to the other, if + // there is no returned value to concern us + assert(!isConcreteWasmType(iff->type)); // can't be, since in the middle of a block + if (ExpressionAnalyzer::getEndingSimpleBreak(iff->ifTrue)) { + iff->ifFalse = builder.blockifyMerge(iff->ifFalse, builder.stealSlice(block, i + 1, list.size())); + return true; + } else if (ExpressionAnalyzer::getEndingSimpleBreak(iff->ifFalse)) { + iff->ifTrue = builder.blockifyMerge(iff->ifTrue, builder.stealSlice(block, i + 1, list.size())); + return true; + } + } + return false; + } else if (auto* brIf = curr->dynCast<Break>()) { + // br_if is similar to if. + if (brIf->condition && !brIf->value && brIf->name != loop->name) { + if (i == list.size() - 2) { + // there is the br_if, and then the br to the top, so just flip them and the condition + brIf->condition = builder.makeUnary(EqZInt32, brIf->condition); + last->name = brIf->name; + brIf->name = loop->name; + return true; + } else { + // there are elements in the middle, + // br_if $somewhere (condition) + // (..more..) + // br $in + // we can convert the br_if to an if. this has a cost, though, + // so only do it if it looks useful, which it definitely is if + // (a) $somewhere is straight out (so the br out vanishes), and + // (b) this br_if is the only branch to that block (so the block will vanish) + if (brIf->name == block->name && BreakSeeker::count(block, block->name) == 1) { + // note that we could drop the last element here, it is a br we know for sure is removable, + // but telling stealSlice to steal all to the end is more efficient, it can just truncate. + list[i] = builder.makeIf(brIf->condition, builder.makeBreak(brIf->name), builder.stealSlice(block, i + 1, list.size())); + return true; + } + } + } + return false; + } + // if there is control flow, we must stop looking + if (EffectAnalyzer(curr).branches) { + return false; + } + if (i == 0) return false; + i--; + } + } + void doWalkFunction(Function* func) { // multiple cycles may be needed bool worked = false; @@ -172,7 +281,8 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<R assert(ifStack.empty()); // flows may contain returns, which are flowing out and so can be optimized for (size_t i = 0; i < flows.size(); i++) { - auto* flow = (*flows[i])->cast<Return>(); // cannot be a break + auto* flow = (*flows[i])->dynCast<Return>(); + if (!flow) continue; if (!flow->value) { // return => nop ExpressionManipulator::nop(flow); @@ -184,11 +294,138 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<R } } flows.clear(); + // optimize loops (we don't do it while tracking flows, as they can interfere) + for (auto* loop : loops) { + anotherCycle |= optimizeLoop(loop); + } + loops.clear(); if (anotherCycle) worked = true; } while (anotherCycle); - // finally, we may have simplified ifs enough to turn them into selects - struct Selectifier : public WalkerPass<PostWalker<Selectifier, Visitor<Selectifier>>> { + + if (worked) { + // Our work may alter block and if types, they may now return + struct TypeUpdater : public WalkerPass<PostWalker<TypeUpdater, Visitor<TypeUpdater>>> { + void visitBlock(Block* curr) { + curr->finalize(); + } + void visitLoop(Loop* curr) { + curr->finalize(); + } + void visitIf(If* curr) { + curr->finalize(); + } + }; + TypeUpdater typeUpdater; + typeUpdater.walkFunction(func); + } + + // thread trivial jumps + struct JumpThreader : public ControlFlowWalker<JumpThreader, Visitor<JumpThreader>> { + // map of all value-less breaks going to a block (and not a loop) + std::map<Block*, std::vector<Break*>> breaksToBlock; + + // number of definitions of each name - when a name is defined more than once, it is not trivially safe to do this + std::map<Name, Index> numDefs; + + // the names to update, when we can (just one def) + std::map<Break*, Name> newNames; + + void visitBreak(Break* curr) { + if (!curr->value) { + if (auto* target = findBreakTarget(curr->name)->dynCast<Block>()) { + breaksToBlock[target].push_back(curr); + } + } + } + // TODO: Switch? + void visitBlock(Block* curr) { + if (curr->name.is()) numDefs[curr->name]++; + + auto& list = curr->list; + if (list.size() == 1 && curr->name.is()) { + // if this block has just one child, a sub-block, then jumps to the former are jumps to us, really + if (auto* child = list[0]->dynCast<Block>()) { + if (child->name.is() && child->name != curr->name) { + auto& breaks = breaksToBlock[child]; + for (auto* br : breaks) { + newNames[br] = curr->name; + breaksToBlock[curr].push_back(br); // update the list - we may push it even more later + } + breaksToBlock.erase(child); + } + } + } else if (list.size() == 2) { + // if this block has two children, a child-block and a simple jump, then jumps to child-block can be replaced with jumps to the new target + auto* child = list[0]->dynCast<Block>(); + auto* jump = list[1]->dynCast<Break>(); + if (child && child->name.is() && jump && ExpressionAnalyzer::isSimple(jump)) { + auto& breaks = breaksToBlock[child]; + for (auto* br : breaks) { + newNames[br] = jump->name; + } + // if the jump is to another block then we can update the list, and maybe push it even more later + if (auto* newTarget = findBreakTarget(jump->name)->dynCast<Block>()) { + for (auto* br : breaks) { + breaksToBlock[newTarget].push_back(br); + } + } + breaksToBlock.erase(child); + } + } + } + void visitLoop(Loop* curr) { + if (curr->name.is()) numDefs[curr->name]++; + } + + void finish() { + for (auto& iter : newNames) { + auto* br = iter.first; + auto name = iter.second; + if (numDefs[name] == 1) { + br->name = name; + } + } + } + }; + JumpThreader jumpThreader; + jumpThreader.setModule(getModule()); + jumpThreader.walkFunction(func); + jumpThreader.finish(); + + // perform some final optimizations + struct FinalOptimizer : public PostWalker<FinalOptimizer, Visitor<FinalOptimizer>> { + void visitBlock(Block* curr) { + // if a block has an if br else br, we can un-conditionalize the latter, allowing + // the if to become a br_if. + // * note that if not in a block already, then we need to create a block for this, so not useful otherwise + // * note that this only happens at the end of a block, as code after the if is dead + // * note that we do this at the end, because un-conditionalizing can interfere with optimizeLoop()ing. + auto& list = curr->list; + for (Index i = 0; i < list.size(); i++) { + auto* iff = list[i]->dynCast<If>(); + if (!iff || !iff->ifFalse || isConcreteWasmType(iff->type)) continue; // if it lacked an if-false, it would already be a br_if, as that's the easy case + auto* ifTrueBreak = iff->ifTrue->dynCast<Break>(); + if (ifTrueBreak && !ifTrueBreak->condition && canTurnIfIntoBrIf(iff->condition, ifTrueBreak->value)) { + // we are an if-else where the ifTrue is a break without a condition, so we can do this + list[i] = ifTrueBreak; + ifTrueBreak->condition = iff->condition; + ifTrueBreak->finalize(); + ExpressionManipulator::spliceIntoBlock(curr, i + 1, iff->ifFalse); + continue; + } + // otherwise, perhaps we can flip the if + auto* ifFalseBreak = iff->ifFalse->dynCast<Break>(); + if (ifFalseBreak && !ifFalseBreak->condition && canTurnIfIntoBrIf(iff->condition, ifFalseBreak->value)) { + list[i] = ifFalseBreak; + ifFalseBreak->condition = Builder(*getModule()).makeUnary(EqZInt32, iff->condition); + ifFalseBreak->finalize(); + ExpressionManipulator::spliceIntoBlock(curr, i + 1, iff->ifTrue); + continue; + } + } + } void visitIf(If* curr) { + // we may have simplified ifs enough to turn them into selects if (curr->ifFalse && isConcreteWasmType(curr->ifTrue->type) && isConcreteWasmType(curr->ifFalse->type)) { // if with else, consider turning it into a select if there is no control flow // TODO: estimate cost @@ -210,25 +447,9 @@ struct RemoveUnusedBrs : public WalkerPass<PostWalker<RemoveUnusedBrs, Visitor<R } } }; - Selectifier selectifier; - selectifier.setModule(getModule()); - selectifier.walkFunction(func); - if (worked) { - // Our work may alter block and if types, they may now return - struct TypeUpdater : public WalkerPass<PostWalker<TypeUpdater, Visitor<TypeUpdater>>> { - void visitBlock(Block* curr) { - curr->finalize(); - } - void visitLoop(Loop* curr) { - curr->finalize(); - } - void visitIf(If* curr) { - curr->finalize(); - } - }; - TypeUpdater typeUpdater; - typeUpdater.walkFunction(func); - } + FinalOptimizer finalOptimizer; + finalOptimizer.setModule(getModule()); + finalOptimizer.walkFunction(func); } }; diff --git a/src/passes/SimplifyLocals.cpp b/src/passes/SimplifyLocals.cpp index 5315edac4..e032acc77 100644 --- a/src/passes/SimplifyLocals.cpp +++ b/src/passes/SimplifyLocals.cpp @@ -43,7 +43,7 @@ namespace wasm { // Helper classes struct GetLocalCounter : public PostWalker<GetLocalCounter, Visitor<GetLocalCounter>> { - std::vector<int>* numGetLocals; + std::vector<Index>* numGetLocals; void visitGetLocal(GetLocal *curr) { (*numGetLocals)[curr->index]++; @@ -51,7 +51,7 @@ struct GetLocalCounter : public PostWalker<GetLocalCounter, Visitor<GetLocalCoun }; struct SetLocalRemover : public PostWalker<SetLocalRemover, Visitor<SetLocalRemover>> { - std::vector<int>* numGetLocals; + std::vector<Index>* numGetLocals; void visitSetLocal(SetLocal *curr) { if ((*numGetLocals)[curr->index] == 0) { @@ -102,8 +102,8 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals, // block returns std::map<Name, std::vector<BlockBreak>> blockBreaks; - // blocks that are the targets of a switch; we need to know this - // since we can't produce a block return value for them. + // blocks that we can't produce a block return value for them. + // (switch target, or some other reason) std::set<Name> unoptimizableBlocks; // A stack of sinkables from the current traversal state. When @@ -114,6 +114,12 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals, // whether we need to run an additional cycle bool anotherCycle; + // whether this is the first cycle + bool firstCycle; + + // local => # of get_locals for it + std::vector<Index> numGetLocals; + static void doNoteNonLinear(SimplifyLocals* self, Expression** currp) { auto* curr = *currp; if (curr->is<Break>()) { @@ -187,9 +193,15 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals, if (found != sinkables.end()) { // sink it, and nop the origin auto* set = (*found->second.item)->cast<SetLocal>(); - replaceCurrent(set); - assert(!set->isTee()); - set->setTee(true); + if (firstCycle) { + // just one get_local of this, so just sink the value + assert(numGetLocals[curr->index] == 1); + replaceCurrent(set->value); + } else { + replaceCurrent(set); + assert(!set->isTee()); + set->setTee(true); + } // reuse the getlocal that is dying *found->second.item = curr; ExpressionManipulator::nop(curr); @@ -259,7 +271,7 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals, self->checkInvalidations(effects); } - if (set && !set->isTee()) { + if (set && !set->isTee() && (!self->firstCycle || self->numGetLocals[set->index] == 1)) { Index index = set->index; assert(self->sinkables.count(index) == 0); self->sinkables.emplace(std::make_pair(index, SinkableInfo(currp))); @@ -316,9 +328,18 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals, for (size_t j = 0; j < breaks.size(); j++) { // move break set_local's value to the break auto* breakSetLocalPointer = breaks[j].sinkables.at(sharedIndex).item; - assert(!breaks[j].br->value); - breaks[j].br->value = (*breakSetLocalPointer)->cast<SetLocal>()->value; - ExpressionManipulator::nop(*breakSetLocalPointer); + auto* br = breaks[j].br; + assert(!br->value); + // if the break is conditional, then we must set the value here - if the break is not taken, we must still have the new value in the local + auto* set = (*breakSetLocalPointer)->cast<SetLocal>(); + if (br->condition) { + br->value = set; + set->setTee(true); + *breakSetLocalPointer = getModule()->allocator.alloc<Nop>(); + } else { + br->value = set->value; + ExpressionManipulator::nop(set); + } } // finally, create a set_local on the block itself auto* newSetLocal = Builder(*getModule()).makeSetLocal(sharedIndex, block); @@ -397,11 +418,22 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals, } void doWalkFunction(Function* func) { + // scan get_locals + numGetLocals.resize(func->getNumLocals()); + std::fill(numGetLocals.begin(), numGetLocals.end(), 0); + GetLocalCounter counter; + counter.numGetLocals = &numGetLocals; + counter.walkFunction(func); // multiple passes may be required per function, consider this: // x = load // y = store // c(x, y) - // the load cannot cross the store, but y can be sunk, after which so can x + // the load cannot cross the store, but y can be sunk, after which so can x. + // + // we start with a cycle focusing on single-use locals, which are easy to + // sink (we don't need to put a set), and a good match for common compiler + // output patterns. further cycles do fully general sinking. + firstCycle = true; do { anotherCycle = false; // main operation @@ -435,15 +467,16 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals, sinkables.clear(); blockBreaks.clear(); unoptimizableBlocks.clear(); + if (firstCycle) { + firstCycle = false; + anotherCycle = true; + } } while (anotherCycle); // Finally, after optimizing a function, we can see if we have set_locals // for a local with no remaining gets, in which case, we can // remove the set. - // First, count get_locals - std::vector<int> numGetLocals; // local => # of get_locals for it - numGetLocals.resize(func->getNumLocals()); - GetLocalCounter counter; - counter.numGetLocals = &numGetLocals; + // First, recount get_locals + std::fill(numGetLocals.begin(), numGetLocals.end(), 0); counter.walkFunction(func); // Second, remove unneeded sets SetLocalRemover remover; diff --git a/src/passes/Vacuum.cpp b/src/passes/Vacuum.cpp index db42a994a..0fdd12dec 100644 --- a/src/passes/Vacuum.cpp +++ b/src/passes/Vacuum.cpp @@ -47,26 +47,31 @@ struct Vacuum : public WalkerPass<ExpressionStackWalker<Vacuum, Visitor<Vacuum>> case Expression::Id::CallImportId: case Expression::Id::CallIndirectId: case Expression::Id::SetLocalId: - case Expression::Id::LoadId: case Expression::Id::StoreId: case Expression::Id::ReturnId: - case Expression::Id::GetGlobalId: case Expression::Id::SetGlobalId: case Expression::Id::HostId: case Expression::Id::UnreachableId: return curr; // always needed + case Expression::Id::LoadId: { + if (!resultUsed) { + return curr->cast<Load>()->ptr; + } + return curr; + } case Expression::Id::ConstId: case Expression::Id::GetLocalId: + case Expression::Id::GetGlobalId: { + if (!resultUsed) return nullptr; + return curr; + } + case Expression::Id::UnaryId: case Expression::Id::BinaryId: case Expression::Id::SelectId: { if (resultUsed) { return curr; // used, keep it } - // result is not used, perhaps it is dead - if (curr->is<Const>() || curr->is<GetLocal>()) { - return nullptr; - } // for unary, binary, and select, we need to check their arguments for side effects if (auto* unary = curr->dynCast<Unary>()) { if (EffectAnalyzer(unary->value).hasSideEffects()) { @@ -132,13 +137,12 @@ struct Vacuum : public WalkerPass<ExpressionStackWalker<Vacuum, Visitor<Vacuum>> void visitBlock(Block *curr) { // compress out nops and other dead code - bool resultUsed = ExpressionAnalyzer::isResultUsed(expressionStack, getFunction()); int skip = 0; auto& list = curr->list; size_t size = list.size(); bool needResize = false; for (size_t z = 0; z < size; z++) { - auto* optimized = optimize(list[z], z == size - 1 && resultUsed); + auto* optimized = optimize(list[z], z == size - 1 && isConcreteWasmType(curr->type)); if (!optimized) { skip++; needResize = true; @@ -153,7 +157,12 @@ struct Vacuum : public WalkerPass<ExpressionStackWalker<Vacuum, Visitor<Vacuum>> Break* br = list[z - skip]->dynCast<Break>(); Switch* sw = list[z - skip]->dynCast<Switch>(); if ((br && !br->condition) || sw) { + auto* last = list.back(); list.resize(z - skip + 1); + // if we removed the last one, and it was a return value, it must be returned + if (list.back() != last && isConcreteWasmType(last->type)) { + list.push_back(last); + } needResize = false; break; } @@ -165,7 +174,7 @@ struct Vacuum : public WalkerPass<ExpressionStackWalker<Vacuum, Visitor<Vacuum>> if (!curr->name.is()) { if (list.size() == 1) { // just one element. replace the block, either with it or with a nop if it's not needed - if (resultUsed || EffectAnalyzer(list[0]).hasSideEffects()) { + if (isConcreteWasmType(curr->type) || EffectAnalyzer(list[0]).hasSideEffects()) { replaceCurrent(list[0]); } else { ExpressionManipulator::nop(curr); @@ -200,11 +209,53 @@ struct Vacuum : public WalkerPass<ExpressionStackWalker<Vacuum, Visitor<Vacuum>> } void visitDrop(Drop* curr) { - // if the drop input has no side effects, it can be wiped out - if (!EffectAnalyzer(curr->value).hasSideEffects()) { + // optimize the dropped value, maybe leaving nothing + curr->value = optimize(curr->value, false); + if (curr->value == nullptr) { ExpressionManipulator::nop(curr); return; } + // a drop of a tee is a set + if (auto* set = curr->value->dynCast<SetLocal>()) { + assert(set->isTee()); + set->setTee(false); + replaceCurrent(set); + return; + } + // if we are dropping a block's return value, we might be able to remove it entirely + if (auto* block = curr->value->dynCast<Block>()) { + auto* last = block->list.back(); + if (isConcreteWasmType(last->type)) { + assert(block->type == last->type); + last = optimize(last, false); + if (!last) { + // we may be able to remove this, if there are no brs + bool canPop = true; + if (block->name.is()) { + BreakSeeker breakSeeker(block->name); + Expression* temp = block; + breakSeeker.walk(temp); + if (breakSeeker.found && breakSeeker.valueType != none) { + canPop = false; + } + } + if (canPop) { + block->list.back() = last; + block->list.pop_back(); + block->type = none; + // we don't need the drop anymore, let's see what we have left in the block + if (block->list.size() > 1) { + replaceCurrent(block); + } else if (block->list.size() == 1) { + replaceCurrent(block->list[0]); + } else { + ExpressionManipulator::nop(curr); + } + return; + } + } + } + } // sink a drop into an arm of an if-else if the other arm ends in an unreachable, as it if is a branch, this can make that branch optimizable and more vaccuming possible auto* iff = curr->value->dynCast<If>(); if (iff && iff->ifFalse && isConcreteWasmType(iff->type)) { diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index 437b023bc..f3bc6d4c7 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -18,6 +18,7 @@ #include <passes/passes.h> #include <pass.h> +#include <wasm-validator.h> namespace wasm { @@ -65,6 +66,7 @@ void PassRegistry::registerPasses() { registerPass("coalesce-locals-learning", "reduce # of locals by coalescing and learning", createCoalesceLocalsWithLearningPass); 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); registerPass("merge-blocks", "merges blocks to their parents", createMergeBlocksPass); registerPass("metrics", "reports metrics", createMetricsPass); registerPass("nm", "name list", createNameListPass); @@ -74,6 +76,7 @@ void PassRegistry::registerPasses() { registerPass("print", "print in s-expression format", createPrinterPass); registerPass("print-minified", "print in minified s-expression format", createMinifiedPrinterPass); registerPass("print-full", "print in full s-expression format", createFullPrinterPass); + registerPass("relooper-jump-threading", "thread relooper jumps (fastcomp output only)", createRelooperJumpThreadingPass); registerPass("remove-imports", "removes imports and replaces them with nops", createRemoveImportsPass); registerPass("remove-memory", "removes memory segments", createRemoveMemoryPass); registerPass("remove-unused-brs", "removes breaks from locations that are not needed", createRemoveUnusedBrsPass); @@ -132,10 +135,9 @@ void PassRunner::addDefaultGlobalOptimizationPasses() { void PassRunner::run() { if (debug) { // for debug logging purposes, run each pass in full before running the other - std::chrono::high_resolution_clock::time_point beforeEverything; + auto totalTime = std::chrono::duration<double>(0); size_t padding = 0; std::cerr << "[PassRunner] running passes..." << std::endl; - beforeEverything = std::chrono::high_resolution_clock::now(); for (auto pass : passes) { padding = std::max(padding, pass->name.size()); } @@ -158,10 +160,19 @@ void PassRunner::run() { auto after = std::chrono::high_resolution_clock::now(); std::chrono::duration<double> diff = after - before; std::cerr << diff.count() << " seconds." << std::endl; + totalTime += diff; +#if 0 + // validate, ignoring the time + std::cerr << "[PassRunner] (validating)\n"; + if (!WasmValidator().validate(*wasm)) { + std::cerr << "last pass (" << pass->name << ") broke validation\n"; + abort(); + } +#endif } - auto after = std::chrono::high_resolution_clock::now(); - std::chrono::duration<double> diff = after - beforeEverything; - std::cerr << "[PassRunner] passes took " << diff.count() << " seconds." << std::endl; + std::cerr << "[PassRunner] passes took " << totalTime.count() << " seconds." << std::endl; + // validate + assert(WasmValidator().validate(*wasm)); } else { // non-debug normal mode, run them in an optimal manner - for locality it is better // to run as many passes as possible on a single function before moving to the next @@ -223,6 +234,11 @@ PassRunner::~PassRunner() { } } +void PassRunner::doAdd(Pass* pass) { + passes.push_back(pass); + pass->prepareToRun(this, wasm); +} + void PassRunner::runPassOnFunction(Pass* pass, Function* func) { // function-parallel passes get a new instance per function if (pass->isFunctionParallel()) { diff --git a/src/passes/passes.h b/src/passes/passes.h index 4bb76edad..80fa394e1 100644 --- a/src/passes/passes.h +++ b/src/passes/passes.h @@ -26,6 +26,7 @@ Pass *createCoalesceLocalsPass(); Pass *createCoalesceLocalsWithLearningPass(); Pass *createDeadCodeEliminationPass(); Pass *createDuplicateFunctionEliminationPass(); +Pass *createExtractFunctionPass(); Pass *createLowerIfElsePass(); Pass *createMergeBlocksPass(); Pass *createMetricsPass(); @@ -36,6 +37,7 @@ Pass *createPostEmscriptenPass(); Pass *createPrinterPass(); Pass *createMinifiedPrinterPass(); Pass *createFullPrinterPass(); +Pass *createRelooperJumpThreadingPass(); Pass *createRemoveImportsPass(); Pass *createRemoveMemoryPass(); Pass *createRemoveUnusedBrsPass(); diff --git a/src/wasm-builder.h b/src/wasm-builder.h index 2841585e6..f9b2e73f6 100644 --- a/src/wasm-builder.h +++ b/src/wasm-builder.h @@ -283,6 +283,28 @@ public: return block; } + // ensures the first node is a block, if it isn't already, and merges in the second, + // either as a single element or, if a block, by appending to the first block + Block* blockifyMerge(Expression* any, Expression* append) { + Block* block = nullptr; + if (any) block = any->dynCast<Block>(); + if (!block) { + block = makeBlock(any); + } else { + assert(!isConcreteWasmType(block->type)); + } + auto* other = append->dynCast<Block>(); + if (!other) { + block->list.push_back(append); + } else { + for (auto* item : other->list) { + block->list.push_back(item); + } + } + block->finalize(); // TODO: move out of if + return block; + } + // a helper for the common pattern of a sequence of two expressions. Similar to // blockify, but does *not* reuse a block if the first is one. Block* makeSequence(Expression* left, Expression* right) { @@ -291,6 +313,32 @@ public: block->finalize(); return block; } + + // Grab a slice out of a block, replacing it with nops, and returning + // either another block with the contents (if more than 1) or a single expression + Expression* stealSlice(Block* input, Index from, Index to) { + Expression* ret; + if (to == from + 1) { + // just one + ret = input->list[from]; + } else { + auto* block = allocator.alloc<Block>(); + for (Index i = from; i < to; i++) { + block->list.push_back(input->list[i]); + } + block->finalize(); + ret = block; + } + if (to == input->list.size()) { + input->list.resize(from); + } else { + for (Index i = from; i < to; i++) { + input->list[i] = allocator.alloc<Nop>(); + } + } + input->finalize(); + return ret; + } }; } // namespace wasm diff --git a/src/wasm-module-building.h b/src/wasm-module-building.h index 52a4e7536..92b96d98d 100644 --- a/src/wasm-module-building.h +++ b/src/wasm-module-building.h @@ -97,7 +97,7 @@ public: } // Before parallelism, create all passes on the main thread here, to ensure - // constructors run at least once on the main thread, for one-time init things. + // prepareToRun() is called for each pass before we start to optimize functions. { PassRunner passRunner(wasm); addPrePasses(passRunner); diff --git a/src/wasm-traversal.h b/src/wasm-traversal.h index 4725237dd..47b9d26e8 100644 --- a/src/wasm-traversal.h +++ b/src/wasm-traversal.h @@ -335,8 +335,8 @@ struct PostWalker : public Walker<SubType, VisitorType> { } case Expression::Id::SwitchId: { self->pushTask(SubType::doVisitSwitch, currp); - self->maybePushTask(SubType::scan, &curr->cast<Switch>()->value); self->pushTask(SubType::scan, &curr->cast<Switch>()->condition); + self->maybePushTask(SubType::scan, &curr->cast<Switch>()->value); break; } case Expression::Id::CallId: { diff --git a/src/wasm-validator.h b/src/wasm-validator.h index 58a30f9a3..e23221337 100644 --- a/src/wasm-validator.h +++ b/src/wasm-validator.h @@ -104,6 +104,9 @@ public: void visitIf(If *curr) { shouldBeTrue(curr->condition->type == unreachable || curr->condition->type == i32 || curr->condition->type == i64, curr, "if condition must be valid"); + if (!curr->ifFalse) { + shouldBeFalse(isConcreteWasmType(curr->ifTrue->type), curr, "if without else must not return a value in body"); + } } // override scan to add a pre and a post check task to all nodes diff --git a/src/wasm.h b/src/wasm.h index d6bdfe91f..4d5cf4d70 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -981,7 +981,6 @@ public: Expression *condition, *ifTrue, *ifFalse; void finalize() { - assert(ifTrue); if (ifFalse) { if (ifTrue->type == ifFalse->type) { type = ifTrue->type; @@ -992,6 +991,8 @@ public: } else { type = none; } + } else { + type = none; // if without else } } }; @@ -1027,6 +1028,8 @@ public: void finalize() { if (condition) { type = none; + } else { + type = unreachable; } } }; diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm index c3ebe3d64..4966ce28a 100644 --- a/test/emcc_O2_hello_world.fromasm +++ b/test/emcc_O2_hello_world.fromasm @@ -131,7 +131,6 @@ (local $50 i32) (local $51 i32) (local $52 i32) - (local $53 i32) (block $do-once$0 (if (i32.lt_u @@ -143,14 +142,14 @@ (i32.and (tee_local $2 (i32.shr_u - (tee_local $7 + (tee_local $16 (i32.load (i32.const 176) ) ) (tee_local $5 (i32.shr_u - (tee_local $0 + (tee_local $8 (select (i32.const 16) (i32.and @@ -174,20 +173,20 @@ (i32.const 3) ) (block - (set_local $2 + (set_local $5 (i32.load - (tee_local $8 + (tee_local $17 (i32.add - (tee_local $5 + (tee_local $3 (i32.load - (tee_local $4 + (tee_local $7 (i32.add - (tee_local $1 + (tee_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $0 + (tee_local $2 (i32.add (i32.xor (i32.and @@ -217,13 +216,13 @@ ) (if (i32.ne - (get_local $1) - (get_local $2) + (get_local $0) + (get_local $5) ) (block (if (i32.lt_u - (get_local $2) + (get_local $5) (i32.load (i32.const 192) ) @@ -233,23 +232,23 @@ (if (i32.eq (i32.load - (tee_local $9 + (tee_local $6 (i32.add - (get_local $2) + (get_local $5) (i32.const 12) ) ) ) - (get_local $5) + (get_local $3) ) (block (i32.store - (get_local $9) - (get_local $1) + (get_local $6) + (get_local $0) ) (i32.store - (get_local $4) - (get_local $2) + (get_local $7) + (get_local $5) ) ) (call_import $_abort) @@ -258,11 +257,11 @@ (i32.store (i32.const 176) (i32.and - (get_local $7) + (get_local $16) (i32.xor (i32.shl (i32.const 1) - (get_local $0) + (get_local $2) ) (i32.const -1) ) @@ -270,11 +269,11 @@ ) ) (i32.store offset=4 - (get_local $5) + (get_local $3) (i32.or - (tee_local $2 + (tee_local $5 (i32.shl - (get_local $0) + (get_local $2) (i32.const 3) ) ) @@ -282,31 +281,31 @@ ) ) (i32.store - (tee_local $4 + (tee_local $7 (i32.add (i32.add + (get_local $3) (get_local $5) - (get_local $2) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $4) + (get_local $7) ) (i32.const 1) ) ) (return - (get_local $8) + (get_local $17) ) ) ) (if (i32.gt_u - (get_local $0) - (tee_local $4 + (get_local $8) + (tee_local $7 (i32.load (i32.const 184) ) @@ -316,20 +315,20 @@ (if (get_local $2) (block - (set_local $1 + (set_local $0 (i32.and (i32.shr_u - (tee_local $2 + (tee_local $5 (i32.add (i32.and - (tee_local $1 + (tee_local $0 (i32.and (i32.shl (get_local $2) (get_local $5) ) (i32.or - (tee_local $2 + (tee_local $5 (i32.shl (i32.const 2) (get_local $5) @@ -337,14 +336,14 @@ ) (i32.sub (i32.const 0) - (get_local $2) + (get_local $5) ) ) ) ) (i32.sub (i32.const 0) - (get_local $1) + (get_local $0) ) ) (i32.const -1) @@ -355,32 +354,32 @@ (i32.const 16) ) ) - (set_local $1 + (set_local $0 (i32.load - (tee_local $9 + (tee_local $6 (i32.add - (tee_local $16 + (tee_local $3 (i32.load - (tee_local $18 + (tee_local $19 (i32.add (tee_local $10 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $19 + (tee_local $13 (i32.add (i32.or (i32.or (i32.or (i32.or - (tee_local $2 + (tee_local $5 (i32.and (i32.shr_u - (tee_local $9 + (tee_local $6 (i32.shr_u - (get_local $2) - (get_local $1) + (get_local $5) + (get_local $0) ) ) (i32.const 5) @@ -388,15 +387,15 @@ (i32.const 8) ) ) - (get_local $1) + (get_local $0) ) - (tee_local $9 + (tee_local $6 (i32.and (i32.shr_u - (tee_local $16 + (tee_local $3 (i32.shr_u - (get_local $9) - (get_local $2) + (get_local $6) + (get_local $5) ) ) (i32.const 2) @@ -405,13 +404,13 @@ ) ) ) - (tee_local $16 + (tee_local $3 (i32.and (i32.shr_u (tee_local $10 (i32.shr_u - (get_local $16) - (get_local $9) + (get_local $3) + (get_local $6) ) ) (i32.const 1) @@ -423,10 +422,10 @@ (tee_local $10 (i32.and (i32.shr_u - (tee_local $18 + (tee_local $19 (i32.shr_u (get_local $10) - (get_local $16) + (get_local $3) ) ) (i32.const 1) @@ -436,7 +435,7 @@ ) ) (i32.shr_u - (get_local $18) + (get_local $19) (get_local $10) ) ) @@ -460,12 +459,12 @@ (if (i32.ne (get_local $10) - (get_local $1) + (get_local $0) ) (block (if (i32.lt_u - (get_local $1) + (get_local $0) (i32.load (i32.const 192) ) @@ -475,25 +474,25 @@ (if (i32.eq (i32.load - (tee_local $2 + (tee_local $5 (i32.add - (get_local $1) + (get_local $0) (i32.const 12) ) ) ) - (get_local $16) + (get_local $3) ) (block (i32.store - (get_local $2) + (get_local $5) (get_local $10) ) (i32.store - (get_local $18) - (get_local $1) + (get_local $19) + (get_local $0) ) - (set_local $8 + (set_local $17 (i32.load (i32.const 184) ) @@ -506,43 +505,43 @@ (i32.store (i32.const 176) (i32.and - (get_local $7) + (get_local $16) (i32.xor (i32.shl (i32.const 1) - (get_local $19) + (get_local $13) ) (i32.const -1) ) ) ) - (set_local $8 - (get_local $4) + (set_local $17 + (get_local $7) ) ) ) (i32.store offset=4 - (get_local $16) + (get_local $3) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) (i32.store offset=4 - (tee_local $7 + (tee_local $16 (i32.add - (get_local $16) - (get_local $0) + (get_local $3) + (get_local $8) ) ) (i32.or - (tee_local $4 + (tee_local $7 (i32.sub (i32.shl - (get_local $19) + (get_local $13) (i32.const 3) ) - (get_local $0) + (get_local $8) ) ) (i32.const 1) @@ -550,15 +549,15 @@ ) (i32.store (i32.add + (get_local $16) (get_local $7) - (get_local $4) ) - (get_local $4) + (get_local $7) ) (if - (get_local $8) + (get_local $17) (block - (set_local $1 + (set_local $0 (i32.load (i32.const 196) ) @@ -568,9 +567,9 @@ (i32.const 216) (i32.shl (i32.shl - (tee_local $18 + (tee_local $19 (i32.shr_u - (get_local $8) + (get_local $17) (i32.const 3) ) ) @@ -590,15 +589,15 @@ (tee_local $2 (i32.shl (i32.const 1) - (get_local $18) + (get_local $19) ) ) ) (if (i32.lt_u - (tee_local $8 + (tee_local $17 (i32.load - (tee_local $18 + (tee_local $19 (i32.add (get_local $10) (i32.const 8) @@ -612,11 +611,11 @@ ) (call_import $_abort) (block - (set_local $39 - (get_local $18) + (set_local $38 + (get_local $19) ) (set_local $31 - (get_local $8) + (get_local $17) ) ) ) @@ -628,7 +627,7 @@ (get_local $2) ) ) - (set_local $39 + (set_local $38 (i32.add (get_local $10) (i32.const 8) @@ -640,53 +639,53 @@ ) ) (i32.store - (get_local $39) - (get_local $1) + (get_local $38) + (get_local $0) ) (i32.store offset=12 (get_local $31) - (get_local $1) + (get_local $0) ) (i32.store offset=8 - (get_local $1) + (get_local $0) (get_local $31) ) (i32.store offset=12 - (get_local $1) + (get_local $0) (get_local $10) ) ) ) (i32.store (i32.const 184) - (get_local $4) + (get_local $7) ) (i32.store (i32.const 196) - (get_local $7) + (get_local $16) ) (return - (get_local $9) + (get_local $6) ) ) ) (if - (tee_local $7 + (tee_local $16 (i32.load (i32.const 180) ) ) (block - (set_local $7 + (set_local $16 (i32.and (i32.shr_u - (tee_local $4 + (tee_local $7 (i32.add (i32.and - (get_local $7) + (get_local $16) (i32.sub (i32.const 0) - (get_local $7) + (get_local $16) ) ) (i32.const -1) @@ -701,7 +700,7 @@ (i32.sub (i32.and (i32.load offset=4 - (tee_local $8 + (tee_local $17 (i32.load offset=480 (i32.shl (i32.add @@ -709,13 +708,13 @@ (i32.or (i32.or (i32.or - (tee_local $4 + (tee_local $7 (i32.and (i32.shr_u (tee_local $10 (i32.shr_u - (get_local $4) (get_local $7) + (get_local $16) ) ) (i32.const 5) @@ -723,15 +722,15 @@ (i32.const 8) ) ) - (get_local $7) + (get_local $16) ) (tee_local $10 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u (get_local $10) - (get_local $4) + (get_local $7) ) ) (i32.const 2) @@ -740,12 +739,12 @@ ) ) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u (tee_local $2 (i32.shr_u - (get_local $1) + (get_local $0) (get_local $10) ) ) @@ -761,7 +760,7 @@ (tee_local $5 (i32.shr_u (get_local $2) - (get_local $1) + (get_local $0) ) ) (i32.const 1) @@ -782,25 +781,25 @@ ) (i32.const -8) ) - (get_local $0) + (get_local $8) ) ) (set_local $5 - (get_local $8) + (get_local $17) ) - (set_local $1 - (get_local $8) + (set_local $0 + (get_local $17) ) (loop $while-in$7 (block $while-out$6 (if - (tee_local $8 + (tee_local $17 (i32.load offset=16 (get_local $5) ) ) - (set_local $7 - (get_local $8) + (set_local $3 + (get_local $17) ) (if (tee_local $10 @@ -808,15 +807,15 @@ (get_local $5) ) ) - (set_local $7 + (set_local $3 (get_local $10) ) (block (set_local $7 (get_local $2) ) - (set_local $4 - (get_local $1) + (set_local $1 + (get_local $0) ) (br $while-out$6) ) @@ -824,15 +823,15 @@ ) (set_local $10 (i32.lt_u - (tee_local $8 + (tee_local $17 (i32.sub (i32.and (i32.load offset=4 - (get_local $7) + (get_local $3) ) (i32.const -8) ) - (get_local $0) + (get_local $8) ) ) (get_local $2) @@ -840,18 +839,18 @@ ) (set_local $2 (select - (get_local $8) + (get_local $17) (get_local $2) (get_local $10) ) ) (set_local $5 - (get_local $7) + (get_local $3) ) - (set_local $1 + (set_local $0 (select - (get_local $7) - (get_local $1) + (get_local $3) + (get_local $0) (get_local $10) ) ) @@ -860,8 +859,8 @@ ) (if (i32.lt_u - (get_local $4) - (tee_local $1 + (get_local $1) + (tee_local $0 (i32.load (i32.const 192) ) @@ -871,11 +870,11 @@ ) (if (i32.ge_u - (get_local $4) + (get_local $1) (tee_local $5 (i32.add - (get_local $4) - (get_local $0) + (get_local $1) + (get_local $8) ) ) ) @@ -883,54 +882,55 @@ ) (set_local $2 (i32.load offset=24 - (get_local $4) + (get_local $1) ) ) (block $do-once$8 (if (i32.eq - (tee_local $9 + (tee_local $6 (i32.load offset=12 - (get_local $4) + (get_local $1) ) ) - (get_local $4) + (get_local $1) ) (block (if - (tee_local $19 + (tee_local $13 (i32.load - (tee_local $16 + (tee_local $3 (i32.add - (get_local $4) + (get_local $1) (i32.const 20) ) ) ) ) (block - (set_local $8 - (get_local $19) + (set_local $17 + (get_local $13) ) - (set_local $10 - (get_local $16) + (set_local $9 + (get_local $3) ) ) (if - (i32.eqz - (tee_local $8 - (i32.load - (tee_local $10 - (i32.add - (get_local $4) - (i32.const 16) - ) + (tee_local $17 + (i32.load + (tee_local $10 + (i32.add + (get_local $1) + (i32.const 16) ) ) ) ) + (set_local $9 + (get_local $10) + ) (block - (set_local $18 + (set_local $19 (i32.const 0) ) (br $do-once$8) @@ -938,65 +938,62 @@ ) ) (loop $while-in$11 - (block $while-out$10 - (if - (tee_local $19 - (i32.load - (tee_local $16 - (i32.add - (get_local $8) - (i32.const 20) - ) + (if + (tee_local $13 + (i32.load + (tee_local $3 + (i32.add + (get_local $17) + (i32.const 20) ) ) ) - (block - (set_local $8 - (get_local $19) - ) - (set_local $10 - (get_local $16) - ) - (br $while-in$11) + ) + (block + (set_local $17 + (get_local $13) ) + (set_local $9 + (get_local $3) + ) + (br $while-in$11) ) - (if - (tee_local $19 - (i32.load - (tee_local $16 - (i32.add - (get_local $8) - (i32.const 16) - ) + ) + (if + (tee_local $13 + (i32.load + (tee_local $3 + (i32.add + (get_local $17) + (i32.const 16) ) ) ) - (block - (set_local $8 - (get_local $19) - ) - (set_local $10 - (get_local $16) - ) + ) + (block + (set_local $17 + (get_local $13) ) - (br $while-out$10) + (set_local $9 + (get_local $3) + ) + (br $while-in$11) ) - (br $while-in$11) ) ) (if (i32.lt_u - (get_local $10) - (get_local $1) + (get_local $9) + (get_local $0) ) (call_import $_abort) (block (i32.store - (get_local $10) + (get_local $9) (i32.const 0) ) - (set_local $18 - (get_local $8) + (set_local $19 + (get_local $17) ) ) ) @@ -1004,26 +1001,26 @@ (block (if (i32.lt_u - (tee_local $16 + (tee_local $3 (i32.load offset=8 - (get_local $4) + (get_local $1) ) ) - (get_local $1) + (get_local $0) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $19 + (tee_local $13 (i32.add - (get_local $16) + (get_local $3) (i32.const 12) ) ) ) - (get_local $4) + (get_local $1) ) (call_import $_abort) ) @@ -1032,24 +1029,24 @@ (i32.load (tee_local $10 (i32.add - (get_local $9) + (get_local $6) (i32.const 8) ) ) ) - (get_local $4) + (get_local $1) ) (block (i32.store - (get_local $19) - (get_local $9) + (get_local $13) + (get_local $6) ) (i32.store (get_local $10) - (get_local $16) + (get_local $3) ) - (set_local $18 - (get_local $9) + (set_local $19 + (get_local $6) ) ) (call_import $_abort) @@ -1063,15 +1060,15 @@ (block (if (i32.eq - (get_local $4) + (get_local $1) (i32.load - (tee_local $1 + (tee_local $0 (i32.add (i32.const 480) (i32.shl - (tee_local $9 + (tee_local $6 (i32.load offset=28 - (get_local $4) + (get_local $1) ) ) (i32.const 2) @@ -1082,12 +1079,12 @@ ) (block (i32.store - (get_local $1) - (get_local $18) + (get_local $0) + (get_local $19) ) (if (i32.eqz - (get_local $18) + (get_local $19) ) (block (i32.store @@ -1099,7 +1096,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $9) + (get_local $6) ) (i32.const -1) ) @@ -1122,35 +1119,35 @@ (if (i32.eq (i32.load - (tee_local $9 + (tee_local $6 (i32.add (get_local $2) (i32.const 16) ) ) ) - (get_local $4) + (get_local $1) ) (i32.store - (get_local $9) - (get_local $18) + (get_local $6) + (get_local $19) ) (i32.store offset=20 (get_local $2) - (get_local $18) + (get_local $19) ) ) (br_if $do-once$12 (i32.eqz - (get_local $18) + (get_local $19) ) ) ) ) (if (i32.lt_u - (get_local $18) - (tee_local $9 + (get_local $19) + (tee_local $6 (i32.load (i32.const 192) ) @@ -1159,42 +1156,42 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $18) + (get_local $19) (get_local $2) ) (if - (tee_local $1 + (tee_local $0 (i32.load offset=16 - (get_local $4) + (get_local $1) ) ) (if (i32.lt_u - (get_local $1) - (get_local $9) + (get_local $0) + (get_local $6) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $18) - (get_local $1) + (get_local $19) + (get_local $0) ) (i32.store offset=24 - (get_local $1) - (get_local $18) + (get_local $0) + (get_local $19) ) ) ) ) (if - (tee_local $1 + (tee_local $0 (i32.load offset=20 - (get_local $4) + (get_local $1) ) ) (if (i32.lt_u - (get_local $1) + (get_local $0) (i32.load (i32.const 192) ) @@ -1202,12 +1199,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $18) - (get_local $1) + (get_local $19) + (get_local $0) ) (i32.store offset=24 - (get_local $1) - (get_local $18) + (get_local $0) + (get_local $19) ) ) ) @@ -1222,22 +1219,22 @@ ) (block (i32.store offset=4 - (get_local $4) + (get_local $1) (i32.or (tee_local $2 (i32.add (get_local $7) - (get_local $0) + (get_local $8) ) ) (i32.const 3) ) ) (i32.store - (tee_local $1 + (tee_local $0 (i32.add (i32.add - (get_local $4) + (get_local $1) (get_local $2) ) (i32.const 4) @@ -1245,7 +1242,7 @@ ) (i32.or (i32.load - (get_local $1) + (get_local $0) ) (i32.const 1) ) @@ -1253,9 +1250,9 @@ ) (block (i32.store offset=4 - (get_local $4) + (get_local $1) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) @@ -1274,7 +1271,7 @@ (get_local $7) ) (if - (tee_local $1 + (tee_local $0 (i32.load (i32.const 184) ) @@ -1285,14 +1282,14 @@ (i32.const 196) ) ) - (set_local $1 + (set_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $9 + (tee_local $6 (i32.shr_u - (get_local $1) + (get_local $0) (i32.const 3) ) ) @@ -1304,7 +1301,7 @@ ) (if (i32.and - (tee_local $16 + (tee_local $3 (i32.load (i32.const 176) ) @@ -1312,17 +1309,17 @@ (tee_local $10 (i32.shl (i32.const 1) - (get_local $9) + (get_local $6) ) ) ) (if (i32.lt_u - (tee_local $19 + (tee_local $13 (i32.load - (tee_local $9 + (tee_local $6 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) @@ -1334,11 +1331,11 @@ ) (call_import $_abort) (block - (set_local $40 - (get_local $9) + (set_local $39 + (get_local $6) ) (set_local $32 - (get_local $19) + (get_local $13) ) ) ) @@ -1346,23 +1343,23 @@ (i32.store (i32.const 176) (i32.or - (get_local $16) + (get_local $3) (get_local $10) ) ) - (set_local $40 + (set_local $39 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) (set_local $32 - (get_local $1) + (get_local $0) ) ) ) (i32.store - (get_local $40) + (get_local $39) (get_local $2) ) (i32.store offset=12 @@ -1375,7 +1372,7 @@ ) (i32.store offset=12 (get_local $2) - (get_local $1) + (get_local $0) ) ) ) @@ -1391,7 +1388,7 @@ ) (return (i32.add - (get_local $4) + (get_local $1) (i32.const 8) ) ) @@ -1408,7 +1405,7 @@ (block (set_local $2 (i32.and - (tee_local $1 + (tee_local $0 (i32.add (get_local $0) (i32.const 11) @@ -1424,7 +1421,7 @@ ) ) (block - (set_local $16 + (set_local $3 (i32.sub (i32.const 0) (get_local $2) @@ -1432,14 +1429,14 @@ ) (block $label$break$L123 (if - (tee_local $7 + (tee_local $16 (i32.load offset=480 (i32.shl - (tee_local $0 + (tee_local $8 (if - (tee_local $19 + (tee_local $13 (i32.shr_u - (get_local $1) + (get_local $0) (i32.const 8) ) ) @@ -1454,24 +1451,24 @@ (i32.shr_u (get_local $2) (i32.add - (tee_local $7 + (tee_local $16 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $19 + (tee_local $13 (i32.and (i32.shr_u (i32.add - (tee_local $9 + (tee_local $6 (i32.shl - (get_local $19) - (tee_local $1 + (get_local $13) + (tee_local $0 (i32.and (i32.shr_u (i32.add - (get_local $19) + (get_local $13) (i32.const 1048320) ) (i32.const 16) @@ -1488,16 +1485,16 @@ (i32.const 4) ) ) - (get_local $1) + (get_local $0) ) - (tee_local $9 + (tee_local $6 (i32.and (i32.shr_u (i32.add - (tee_local $8 + (tee_local $17 (i32.shl - (get_local $9) - (get_local $19) + (get_local $6) + (get_local $13) ) ) (i32.const 245760) @@ -1511,8 +1508,8 @@ ) (i32.shr_u (i32.shl - (get_local $8) - (get_local $9) + (get_local $17) + (get_local $6) ) (i32.const 15) ) @@ -1524,7 +1521,7 @@ (i32.const 1) ) (i32.shl - (get_local $7) + (get_local $16) (i32.const 1) ) ) @@ -1537,13 +1534,13 @@ ) ) (block - (set_local $9 - (get_local $16) + (set_local $6 + (get_local $3) ) - (set_local $8 + (set_local $17 (i32.const 0) ) - (set_local $1 + (set_local $0 (i32.shl (get_local $2) (select @@ -1551,101 +1548,98 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $0) + (get_local $8) (i32.const 1) ) ) (i32.eq - (get_local $0) + (get_local $8) (i32.const 31) ) ) ) ) - (set_local $19 - (get_local $7) + (set_local $13 + (get_local $16) ) - (set_local $4 + (set_local $7 (i32.const 0) ) (loop $while-in$18 - (block $while-out$17 - (if - (i32.lt_u - (tee_local $5 - (i32.sub - (tee_local $18 - (i32.and - (i32.load offset=4 - (get_local $19) - ) - (i32.const -8) + (if + (i32.lt_u + (tee_local $3 + (i32.sub + (tee_local $19 + (i32.and + (i32.load offset=4 + (get_local $13) ) + (i32.const -8) ) - (get_local $2) ) + (get_local $2) ) - (get_local $9) ) - (if - (i32.eq - (get_local $18) - (get_local $2) + (get_local $6) + ) + (if + (i32.eq + (get_local $19) + (get_local $2) + ) + (block + (set_local $27 + (get_local $3) ) - (block - (set_local $27 - (get_local $5) - ) - (set_local $25 - (get_local $19) - ) - (set_local $29 - (get_local $19) - ) - (set_local $9 - (i32.const 90) - ) - (br $label$break$L123) + (set_local $25 + (get_local $13) ) - (block - (set_local $9 - (get_local $5) - ) - (set_local $4 - (get_local $19) - ) + (set_local $29 + (get_local $13) + ) + (set_local $6 + (i32.const 90) + ) + (br $label$break$L123) + ) + (block + (set_local $6 + (get_local $3) + ) + (set_local $7 + (get_local $13) ) ) ) - (set_local $18 - (select - (get_local $8) - (tee_local $5 - (i32.load offset=20 - (get_local $19) - ) + ) + (set_local $19 + (select + (get_local $17) + (tee_local $3 + (i32.load offset=20 + (get_local $13) ) - (i32.or - (i32.eq - (get_local $5) - (i32.const 0) - ) - (i32.eq - (get_local $5) - (tee_local $19 - (i32.load + ) + (i32.or + (i32.eqz + (get_local $3) + ) + (i32.eq + (get_local $3) + (tee_local $13 + (i32.load + (i32.add (i32.add - (i32.add - (get_local $19) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) + (get_local $13) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $0) + (i32.const 31) ) + (i32.const 2) ) ) ) @@ -1653,61 +1647,59 @@ ) ) ) - (if - (tee_local $5 - (i32.eq - (get_local $19) - (i32.const 0) - ) + ) + (if + (tee_local $3 + (i32.eqz + (get_local $13) ) - (block - (set_local $33 - (get_local $9) - ) - (set_local $34 - (get_local $18) - ) - (set_local $30 - (get_local $4) - ) - (set_local $9 - (i32.const 86) - ) - (br $while-out$17) + ) + (block + (set_local $33 + (get_local $6) ) - (block - (set_local $8 - (get_local $18) - ) - (set_local $1 - (i32.shl - (get_local $1) - (i32.xor - (i32.and - (get_local $5) - (i32.const 1) - ) + (set_local $5 + (get_local $19) + ) + (set_local $30 + (get_local $7) + ) + (set_local $6 + (i32.const 86) + ) + ) + (block + (set_local $17 + (get_local $19) + ) + (set_local $0 + (i32.shl + (get_local $0) + (i32.xor + (i32.and + (get_local $3) (i32.const 1) ) + (i32.const 1) ) ) ) + (br $while-in$18) ) - (br $while-in$18) ) ) ) (block (set_local $33 - (get_local $16) + (get_local $3) ) - (set_local $34 + (set_local $5 (i32.const 0) ) (set_local $30 (i32.const 0) ) - (set_local $9 + (set_local $6 (i32.const 86) ) ) @@ -1715,60 +1707,58 @@ ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 86) ) (if (tee_local $0 (if (i32.and - (i32.eq - (get_local $34) - (i32.const 0) + (i32.eqz + (get_local $5) ) - (i32.eq + (i32.eqz (get_local $30) - (i32.const 0) ) ) (block (if (i32.eqz - (tee_local $16 + (tee_local $3 (i32.and (get_local $10) (i32.or - (tee_local $7 + (tee_local $16 (i32.shl (i32.const 2) - (get_local $0) + (get_local $8) ) ) (i32.sub (i32.const 0) - (get_local $7) + (get_local $16) ) ) ) ) ) (block - (set_local $0 + (set_local $8 (get_local $2) ) (br $do-once$0) ) ) - (set_local $16 + (set_local $3 (i32.and (i32.shr_u - (tee_local $7 + (tee_local $16 (i32.add (i32.and - (get_local $16) + (get_local $3) (i32.sub (i32.const 0) - (get_local $16) + (get_local $3) ) ) (i32.const -1) @@ -1786,13 +1776,13 @@ (i32.or (i32.or (i32.or - (tee_local $7 + (tee_local $16 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $8 (i32.shr_u - (get_local $7) (get_local $16) + (get_local $3) ) ) (i32.const 5) @@ -1800,15 +1790,15 @@ (i32.const 8) ) ) - (get_local $16) + (get_local $3) ) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u (tee_local $5 (i32.shr_u - (get_local $0) - (get_local $7) + (get_local $8) + (get_local $16) ) ) (i32.const 2) @@ -1820,10 +1810,10 @@ (tee_local $5 (i32.and (i32.shr_u - (tee_local $4 + (tee_local $7 (i32.shr_u (get_local $5) - (get_local $0) + (get_local $8) ) ) (i32.const 1) @@ -1832,12 +1822,12 @@ ) ) ) - (tee_local $4 + (tee_local $7 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u - (get_local $4) + (get_local $7) (get_local $5) ) ) @@ -1848,15 +1838,15 @@ ) ) (i32.shr_u - (get_local $1) - (get_local $4) + (get_local $0) + (get_local $7) ) ) (i32.const 2) ) ) ) - (get_local $34) + (get_local $5) ) ) (block @@ -1869,15 +1859,15 @@ (set_local $29 (get_local $30) ) - (set_local $9 + (set_local $6 (i32.const 90) ) ) (block - (set_local $6 + (set_local $4 (get_local $33) ) - (set_local $12 + (set_local $11 (get_local $30) ) ) @@ -1885,95 +1875,92 @@ ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 90) ) (loop $while-in$20 - (block $while-out$19 - (set_local $9 - (i32.const 0) - ) - (set_local $1 - (i32.lt_u - (tee_local $4 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $25) - ) - (i32.const -8) + (set_local $6 + (i32.const 0) + ) + (set_local $0 + (i32.lt_u + (tee_local $7 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $25) ) - (get_local $2) + (i32.const -8) ) + (get_local $2) ) - (get_local $27) ) + (get_local $27) ) - (set_local $5 - (select - (get_local $4) - (get_local $27) - (get_local $1) - ) + ) + (set_local $5 + (select + (get_local $7) + (get_local $27) + (get_local $0) ) - (set_local $4 - (select + ) + (set_local $7 + (select + (get_local $25) + (get_local $29) + (get_local $0) + ) + ) + (if + (tee_local $0 + (i32.load offset=16 (get_local $25) - (get_local $29) - (get_local $1) ) ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $25) - ) + (block + (set_local $27 + (get_local $5) ) - (block - (set_local $27 - (get_local $5) - ) - (set_local $25 - (get_local $1) - ) - (set_local $29 - (get_local $4) - ) - (br $while-in$20) + (set_local $25 + (get_local $0) ) + (set_local $29 + (get_local $7) + ) + (br $while-in$20) ) - (if - (tee_local $25 - (i32.load offset=20 - (get_local $25) - ) + ) + (if + (tee_local $25 + (i32.load offset=20 + (get_local $25) ) - (block - (set_local $27 - (get_local $5) - ) - (set_local $29 - (get_local $4) - ) + ) + (block + (set_local $27 + (get_local $5) ) - (block - (set_local $6 - (get_local $5) - ) - (set_local $12 - (get_local $4) - ) - (br $while-out$19) + (set_local $29 + (get_local $7) + ) + (br $while-in$20) + ) + (block + (set_local $4 + (get_local $5) + ) + (set_local $11 + (get_local $7) ) ) - (br $while-in$20) ) ) ) (if (select (i32.lt_u - (get_local $6) + (get_local $4) (i32.sub (i32.load (i32.const 184) @@ -1983,14 +1970,14 @@ ) (i32.const 0) (i32.ne - (get_local $12) + (get_local $11) (i32.const 0) ) ) (block (if (i32.lt_u - (get_local $12) + (get_local $11) (tee_local $10 (i32.load (i32.const 192) @@ -2001,10 +1988,10 @@ ) (if (i32.ge_u - (get_local $12) - (tee_local $4 + (get_local $11) + (tee_local $7 (i32.add - (get_local $12) + (get_local $11) (get_local $2) ) ) @@ -2013,54 +2000,55 @@ ) (set_local $5 (i32.load offset=24 - (get_local $12) + (get_local $11) ) ) (block $do-once$21 (if (i32.eq - (tee_local $1 + (tee_local $0 (i32.load offset=12 - (get_local $12) + (get_local $11) ) ) - (get_local $12) + (get_local $11) ) (block (if - (tee_local $16 + (tee_local $3 (i32.load - (tee_local $0 + (tee_local $8 (i32.add - (get_local $12) + (get_local $11) (i32.const 20) ) ) ) ) (block - (set_local $8 - (get_local $16) + (set_local $17 + (get_local $3) ) - (set_local $7 - (get_local $0) + (set_local $0 + (get_local $8) ) ) (if - (i32.eqz - (tee_local $8 - (i32.load - (tee_local $7 - (i32.add - (get_local $12) - (i32.const 16) - ) + (tee_local $17 + (i32.load + (tee_local $16 + (i32.add + (get_local $11) + (i32.const 16) ) ) ) ) + (set_local $0 + (get_local $16) + ) (block - (set_local $11 + (set_local $9 (i32.const 0) ) (br $do-once$21) @@ -2068,65 +2056,62 @@ ) ) (loop $while-in$24 - (block $while-out$23 - (if - (tee_local $16 - (i32.load - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 20) - ) + (if + (tee_local $3 + (i32.load + (tee_local $8 + (i32.add + (get_local $17) + (i32.const 20) ) ) ) - (block - (set_local $8 - (get_local $16) - ) - (set_local $7 - (get_local $0) - ) - (br $while-in$24) + ) + (block + (set_local $17 + (get_local $3) ) + (set_local $0 + (get_local $8) + ) + (br $while-in$24) ) - (if - (tee_local $16 - (i32.load - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 16) - ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $8 + (i32.add + (get_local $17) + (i32.const 16) ) ) ) - (block - (set_local $8 - (get_local $16) - ) - (set_local $7 - (get_local $0) - ) + ) + (block + (set_local $17 + (get_local $3) ) - (br $while-out$23) + (set_local $0 + (get_local $8) + ) + (br $while-in$24) ) - (br $while-in$24) ) ) (if (i32.lt_u - (get_local $7) + (get_local $0) (get_local $10) ) (call_import $_abort) (block (i32.store - (get_local $7) + (get_local $0) (i32.const 0) ) - (set_local $11 - (get_local $8) + (set_local $9 + (get_local $17) ) ) ) @@ -2134,9 +2119,9 @@ (block (if (i32.lt_u - (tee_local $0 + (tee_local $8 (i32.load offset=8 - (get_local $12) + (get_local $11) ) ) (get_local $10) @@ -2146,40 +2131,40 @@ (if (i32.ne (i32.load - (tee_local $16 + (tee_local $3 (i32.add - (get_local $0) + (get_local $8) (i32.const 12) ) ) ) - (get_local $12) + (get_local $11) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $7 + (tee_local $16 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) ) - (get_local $12) + (get_local $11) ) (block (i32.store - (get_local $16) - (get_local $1) + (get_local $3) + (get_local $0) ) (i32.store - (get_local $7) - (get_local $0) + (get_local $16) + (get_local $8) ) - (set_local $11 - (get_local $1) + (set_local $9 + (get_local $0) ) ) (call_import $_abort) @@ -2193,15 +2178,15 @@ (block (if (i32.eq - (get_local $12) + (get_local $11) (i32.load (tee_local $10 (i32.add (i32.const 480) (i32.shl - (tee_local $1 + (tee_local $0 (i32.load offset=28 - (get_local $12) + (get_local $11) ) ) (i32.const 2) @@ -2213,11 +2198,11 @@ (block (i32.store (get_local $10) - (get_local $11) + (get_local $9) ) (if (i32.eqz - (get_local $11) + (get_local $9) ) (block (i32.store @@ -2229,7 +2214,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $1) + (get_local $0) ) (i32.const -1) ) @@ -2252,35 +2237,35 @@ (if (i32.eq (i32.load - (tee_local $1 + (tee_local $0 (i32.add (get_local $5) (i32.const 16) ) ) ) - (get_local $12) + (get_local $11) ) (i32.store - (get_local $1) - (get_local $11) + (get_local $0) + (get_local $9) ) (i32.store offset=20 (get_local $5) - (get_local $11) + (get_local $9) ) ) (br_if $do-once$25 (i32.eqz - (get_local $11) + (get_local $9) ) ) ) ) (if (i32.lt_u - (get_local $11) - (tee_local $1 + (get_local $9) + (tee_local $0 (i32.load (i32.const 192) ) @@ -2289,29 +2274,29 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $11) + (get_local $9) (get_local $5) ) (if (tee_local $10 (i32.load offset=16 - (get_local $12) + (get_local $11) ) ) (if (i32.lt_u (get_local $10) - (get_local $1) + (get_local $0) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $11) + (get_local $9) (get_local $10) ) (i32.store offset=24 (get_local $10) - (get_local $11) + (get_local $9) ) ) ) @@ -2319,7 +2304,7 @@ (if (tee_local $10 (i32.load offset=20 - (get_local $12) + (get_local $11) ) ) (if @@ -2332,12 +2317,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $11) + (get_local $9) (get_local $10) ) (i32.store offset=24 (get_local $10) - (get_local $11) + (get_local $9) ) ) ) @@ -2348,40 +2333,40 @@ (block $do-once$29 (if (i32.ge_u - (get_local $6) + (get_local $4) (i32.const 16) ) (block (i32.store offset=4 - (get_local $12) + (get_local $11) (i32.or (get_local $2) (i32.const 3) ) ) (i32.store offset=4 - (get_local $4) + (get_local $7) (i32.or - (get_local $6) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add + (get_local $7) (get_local $4) - (get_local $6) ) - (get_local $6) + (get_local $4) ) (set_local $5 (i32.shr_u - (get_local $6) + (get_local $4) (i32.const 3) ) ) (if (i32.lt_u - (get_local $6) + (get_local $4) (i32.const 256) ) (block @@ -2399,12 +2384,12 @@ ) (if (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 176) ) ) - (tee_local $0 + (tee_local $8 (i32.shl (i32.const 1) (get_local $5) @@ -2413,7 +2398,7 @@ ) (if (i32.lt_u - (tee_local $7 + (tee_local $16 (i32.load (tee_local $5 (i32.add @@ -2433,7 +2418,7 @@ (get_local $5) ) (set_local $26 - (get_local $7) + (get_local $16) ) ) ) @@ -2441,8 +2426,8 @@ (i32.store (i32.const 176) (i32.or - (get_local $1) (get_local $0) + (get_local $8) ) ) (set_local $14 @@ -2458,18 +2443,18 @@ ) (i32.store (get_local $14) - (get_local $4) + (get_local $7) ) (i32.store offset=12 (get_local $26) - (get_local $4) + (get_local $7) ) (i32.store offset=8 - (get_local $4) + (get_local $7) (get_local $26) ) (i32.store offset=12 - (get_local $4) + (get_local $7) (get_local $10) ) (br $do-once$29) @@ -2479,24 +2464,24 @@ (i32.add (i32.const 480) (i32.shl - (tee_local $8 + (tee_local $3 (if (tee_local $10 (i32.shr_u - (get_local $6) + (get_local $4) (i32.const 8) ) ) (if (i32.gt_u - (get_local $6) + (get_local $4) (i32.const 16777215) ) (i32.const 31) (i32.or (i32.and (i32.shr_u - (get_local $6) + (get_local $4) (i32.add (tee_local $5 (i32.add @@ -2508,10 +2493,10 @@ (i32.and (i32.shr_u (i32.add - (tee_local $1 + (tee_local $0 (i32.shl (get_local $10) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u (i32.add @@ -2532,15 +2517,15 @@ (i32.const 4) ) ) - (get_local $0) + (get_local $8) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u (i32.add - (tee_local $7 + (tee_local $16 (i32.shl - (get_local $1) + (get_local $0) (get_local $10) ) ) @@ -2555,8 +2540,8 @@ ) (i32.shr_u (i32.shl - (get_local $7) - (get_local $1) + (get_local $16) + (get_local $0) ) (i32.const 15) ) @@ -2581,34 +2566,34 @@ ) ) (i32.store offset=28 - (get_local $4) - (get_local $8) + (get_local $7) + (get_local $3) ) (i32.store offset=4 - (tee_local $1 + (tee_local $0 (i32.add - (get_local $4) + (get_local $7) (i32.const 16) ) ) (i32.const 0) ) (i32.store - (get_local $1) + (get_local $0) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 180) ) ) - (tee_local $7 + (tee_local $16 (i32.shl (i32.const 1) - (get_local $8) + (get_local $3) ) ) ) @@ -2617,49 +2602,49 @@ (i32.store (i32.const 180) (i32.or - (get_local $1) - (get_local $7) + (get_local $0) + (get_local $16) ) ) (i32.store (get_local $5) - (get_local $4) + (get_local $7) ) (i32.store offset=24 - (get_local $4) + (get_local $7) (get_local $5) ) (i32.store offset=12 - (get_local $4) - (get_local $4) + (get_local $7) + (get_local $7) ) (i32.store offset=8 - (get_local $4) - (get_local $4) + (get_local $7) + (get_local $7) ) (br $do-once$29) ) ) - (set_local $7 + (set_local $16 (i32.shl - (get_local $6) + (get_local $4) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $8) + (get_local $3) (i32.const 1) ) ) (i32.eq - (get_local $8) + (get_local $3) (i32.const 31) ) ) ) ) - (set_local $1 + (set_local $0 (i32.load (get_local $5) ) @@ -2670,34 +2655,34 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $1) + (get_local $0) ) (i32.const -8) ) - (get_local $6) + (get_local $4) ) (block (set_local $15 - (get_local $1) + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 148) ) (br $while-out$31) ) ) (if - (tee_local $0 + (tee_local $8 (i32.load (tee_local $5 (i32.add (i32.add - (get_local $1) + (get_local $0) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $7) + (get_local $16) (i32.const 31) ) (i32.const 2) @@ -2707,35 +2692,34 @@ ) ) (block - (set_local $7 + (set_local $16 (i32.shl - (get_local $7) + (get_local $16) (i32.const 1) ) ) - (set_local $1 - (get_local $0) + (set_local $0 + (get_local $8) ) + (br $while-in$32) ) (block (set_local $23 (get_local $5) ) (set_local $21 - (get_local $1) + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 145) ) - (br $while-out$31) ) ) - (br $while-in$32) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 145) ) (if @@ -2749,33 +2733,33 @@ (block (i32.store (get_local $23) - (get_local $4) + (get_local $7) ) (i32.store offset=24 - (get_local $4) + (get_local $7) (get_local $21) ) (i32.store offset=12 - (get_local $4) - (get_local $4) + (get_local $7) + (get_local $7) ) (i32.store offset=8 - (get_local $4) - (get_local $4) + (get_local $7) + (get_local $7) ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 148) ) (if (i32.and (i32.ge_u - (tee_local $7 + (tee_local $16 (i32.load - (tee_local $1 + (tee_local $0 (i32.add (get_local $15) (i32.const 8) @@ -2783,7 +2767,7 @@ ) ) ) - (tee_local $0 + (tee_local $8 (i32.load (i32.const 192) ) @@ -2791,28 +2775,28 @@ ) (i32.ge_u (get_local $15) - (get_local $0) + (get_local $8) ) ) (block (i32.store offset=12 + (get_local $16) (get_local $7) - (get_local $4) ) (i32.store - (get_local $1) - (get_local $4) + (get_local $0) + (get_local $7) ) (i32.store offset=8 - (get_local $4) (get_local $7) + (get_local $16) ) (i32.store offset=12 - (get_local $4) + (get_local $7) (get_local $15) ) (i32.store offset=24 - (get_local $4) + (get_local $7) (i32.const 0) ) ) @@ -2823,11 +2807,11 @@ ) (block (i32.store offset=4 - (get_local $12) + (get_local $11) (i32.or - (tee_local $7 + (tee_local $16 (i32.add - (get_local $6) + (get_local $4) (get_local $2) ) ) @@ -2835,18 +2819,18 @@ ) ) (i32.store - (tee_local $1 + (tee_local $0 (i32.add (i32.add - (get_local $12) - (get_local $7) + (get_local $11) + (get_local $16) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $1) + (get_local $0) ) (i32.const 1) ) @@ -2856,22 +2840,22 @@ ) (return (i32.add - (get_local $12) + (get_local $11) (i32.const 8) ) ) ) - (set_local $0 + (set_local $8 (get_local $2) ) ) ) - (set_local $0 + (set_local $8 (get_local $2) ) ) ) - (set_local $0 + (set_local $8 (i32.const -1) ) ) @@ -2879,12 +2863,12 @@ ) (if (i32.ge_u - (tee_local $12 + (tee_local $11 (i32.load (i32.const 184) ) ) - (get_local $0) + (get_local $8) ) (block (set_local $15 @@ -2894,10 +2878,10 @@ ) (if (i32.gt_u - (tee_local $6 + (tee_local $4 (i32.sub - (get_local $12) - (get_local $0) + (get_local $11) + (get_local $8) ) ) (i32.const 15) @@ -2908,32 +2892,32 @@ (tee_local $21 (i32.add (get_local $15) - (get_local $0) + (get_local $8) ) ) ) (i32.store (i32.const 184) - (get_local $6) + (get_local $4) ) (i32.store offset=4 (get_local $21) (i32.or - (get_local $6) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add (get_local $21) - (get_local $6) + (get_local $4) ) - (get_local $6) + (get_local $4) ) (i32.store offset=4 (get_local $15) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) @@ -2950,23 +2934,23 @@ (i32.store offset=4 (get_local $15) (i32.or - (get_local $12) + (get_local $11) (i32.const 3) ) ) (i32.store - (tee_local $6 + (tee_local $4 (i32.add (i32.add (get_local $15) - (get_local $12) + (get_local $11) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $6) + (get_local $4) ) (i32.const 1) ) @@ -2988,42 +2972,42 @@ (i32.const 188) ) ) - (get_local $0) + (get_local $8) ) (block (i32.store (i32.const 188) - (tee_local $6 + (tee_local $4 (i32.sub (get_local $15) - (get_local $0) + (get_local $8) ) ) ) (i32.store (i32.const 200) - (tee_local $12 + (tee_local $11 (i32.add (tee_local $15 (i32.load (i32.const 200) ) ) - (get_local $0) + (get_local $8) ) ) ) (i32.store offset=4 - (get_local $12) + (get_local $11) (i32.or - (get_local $6) + (get_local $4) (i32.const 1) ) ) (i32.store offset=4 (get_local $15) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) @@ -3096,24 +3080,24 @@ ) (set_local $15 (i32.add - (get_local $0) + (get_local $8) (i32.const 48) ) ) (if (i32.le_u - (tee_local $6 + (tee_local $4 (i32.and (tee_local $21 (i32.add - (tee_local $6 + (tee_local $4 (i32.load (i32.const 656) ) ) - (tee_local $12 + (tee_local $11 (i32.add - (get_local $0) + (get_local $8) (i32.const 47) ) ) @@ -3122,12 +3106,12 @@ (tee_local $23 (i32.sub (i32.const 0) - (get_local $6) + (get_local $4) ) ) ) ) - (get_local $0) + (get_local $8) ) (return (i32.const 0) @@ -3136,7 +3120,7 @@ (if (if (i32.ne - (tee_local $8 + (tee_local $3 (i32.load (i32.const 616) ) @@ -3152,14 +3136,14 @@ (i32.const 608) ) ) - (get_local $6) + (get_local $4) ) ) (get_local $26) ) (i32.gt_u (get_local $14) - (get_local $8) + (get_local $3) ) ) (i32.const 0) @@ -3173,12 +3157,12 @@ (if (select (i32.lt_u - (get_local $6) + (get_local $4) (i32.const 2147483647) ) (i32.const 0) (i32.eq - (tee_local $9 + (tee_local $6 (block $label$break$L257 (if (i32.and @@ -3191,7 +3175,7 @@ (block (block $label$break$L259 (if - (tee_local $8 + (tee_local $3 (i32.load (i32.const 200) ) @@ -3210,13 +3194,13 @@ (get_local $14) ) ) - (get_local $8) + (get_local $3) ) (i32.gt_u (i32.add (get_local $26) (i32.load - (tee_local $11 + (tee_local $9 (i32.add (get_local $14) (i32.const 4) @@ -3224,7 +3208,7 @@ ) ) ) - (get_local $8) + (get_local $3) ) (i32.const 0) ) @@ -3232,28 +3216,23 @@ (set_local $5 (get_local $14) ) - (set_local $7 - (get_local $11) + (set_local $13 + (get_local $9) ) (br $while-out$37) ) ) - (if - (i32.eqz - (tee_local $14 - (i32.load offset=8 - (get_local $14) - ) - ) - ) - (block - (set_local $9 - (i32.const 173) + (br_if $while-in$38 + (tee_local $14 + (i32.load offset=8 + (get_local $14) ) - (br $label$break$L259) ) ) - (br $while-in$38) + (set_local $6 + (i32.const 173) + ) + (br $label$break$L259) ) ) (if @@ -3273,7 +3252,7 @@ ) (if (i32.eq - (tee_local $11 + (tee_local $9 (call_import $_sbrk (get_local $14) ) @@ -3283,18 +3262,18 @@ (get_local $5) ) (i32.load - (get_local $7) + (get_local $13) ) ) ) (if (i32.ne - (get_local $11) + (get_local $9) (i32.const -1) ) (block (set_local $20 - (get_local $11) + (get_local $9) ) (set_local $22 (get_local $14) @@ -3305,20 +3284,20 @@ ) ) (block - (set_local $13 - (get_local $11) + (set_local $12 + (get_local $9) ) - (set_local $17 + (set_local $18 (get_local $14) ) - (set_local $9 + (set_local $6 (i32.const 183) ) ) ) ) ) - (set_local $9 + (set_local $6 (i32.const 173) ) ) @@ -3327,11 +3306,11 @@ (if (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 173) ) (i32.ne - (tee_local $8 + (tee_local $3 (call_import $_sbrk (i32.const 0) ) @@ -3341,10 +3320,10 @@ (i32.const 0) ) (block - (set_local $1 + (set_local $0 (if (i32.and - (tee_local $11 + (tee_local $9 (i32.add (tee_local $14 (i32.load @@ -3355,17 +3334,17 @@ ) ) (tee_local $2 - (get_local $8) + (get_local $3) ) ) (i32.add (i32.sub - (get_local $6) + (get_local $4) (get_local $2) ) (i32.and (i32.add - (get_local $11) + (get_local $9) (get_local $2) ) (i32.sub @@ -3374,7 +3353,7 @@ ) ) ) - (get_local $6) + (get_local $4) ) ) (set_local $2 @@ -3384,17 +3363,17 @@ (i32.const 608) ) ) - (get_local $1) + (get_local $0) ) ) (if (i32.and (i32.gt_u - (get_local $1) (get_local $0) + (get_local $8) ) (i32.lt_u - (get_local $1) + (get_local $0) (i32.const 2147483647) ) ) @@ -3408,7 +3387,7 @@ ) (i32.gt_u (get_local $2) - (tee_local $11 + (tee_local $9 (i32.load (i32.const 616) ) @@ -3417,39 +3396,39 @@ ) (i32.const 0) (i32.ne - (get_local $11) + (get_local $9) (i32.const 0) ) ) ) (if (i32.eq - (tee_local $11 + (tee_local $9 (call_import $_sbrk - (get_local $1) + (get_local $0) ) ) - (get_local $8) + (get_local $3) ) (block (set_local $20 - (get_local $8) + (get_local $3) ) (set_local $22 - (get_local $1) + (get_local $0) ) (br $label$break$L257 (i32.const 193) ) ) (block - (set_local $13 - (get_local $11) + (set_local $12 + (get_local $9) ) - (set_local $17 - (get_local $1) + (set_local $18 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 183) ) ) @@ -3462,14 +3441,14 @@ (block $label$break$L279 (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 183) ) (block - (set_local $11 + (set_local $9 (i32.sub (i32.const 0) - (get_local $17) + (get_local $18) ) ) (if @@ -3477,15 +3456,15 @@ (i32.and (i32.gt_u (get_local $15) - (get_local $17) + (get_local $18) ) (i32.and (i32.lt_u - (get_local $17) + (get_local $18) (i32.const 2147483647) ) (i32.ne - (get_local $13) + (get_local $12) (i32.const -1) ) ) @@ -3495,10 +3474,10 @@ (i32.and (i32.add (i32.sub - (get_local $12) - (get_local $17) + (get_local $11) + (get_local $18) ) - (tee_local $8 + (tee_local $3 (i32.load (i32.const 656) ) @@ -3506,7 +3485,7 @@ ) (i32.sub (i32.const 0) - (get_local $8) + (get_local $3) ) ) ) @@ -3524,33 +3503,33 @@ (block (drop (call_import $_sbrk - (get_local $11) + (get_local $9) ) ) (br $label$break$L279) ) - (set_local $3 + (set_local $1 (i32.add (get_local $2) - (get_local $17) + (get_local $18) ) ) ) - (set_local $3 - (get_local $17) + (set_local $1 + (get_local $18) ) ) (if (i32.ne - (get_local $13) + (get_local $12) (i32.const -1) ) (block (set_local $20 - (get_local $13) + (get_local $12) ) (set_local $22 - (get_local $3) + (get_local $1) ) (br $label$break$L257 (i32.const 193) @@ -3579,12 +3558,12 @@ ) (i32.and (i32.lt_u - (tee_local $3 + (tee_local $1 (call_import $_sbrk - (get_local $6) + (get_local $4) ) ) - (tee_local $6 + (tee_local $4 (call_import $_sbrk (i32.const 0) ) @@ -3592,11 +3571,11 @@ ) (i32.and (i32.ne - (get_local $3) + (get_local $1) (i32.const -1) ) (i32.ne - (get_local $6) + (get_local $4) (i32.const -1) ) ) @@ -3604,14 +3583,14 @@ (i32.const 0) ) (i32.gt_u - (tee_local $13 + (tee_local $12 (i32.sub - (get_local $6) - (get_local $3) + (get_local $4) + (get_local $1) ) ) (i32.add - (get_local $0) + (get_local $8) (i32.const 40) ) ) @@ -3619,25 +3598,25 @@ ) (block (set_local $20 - (get_local $3) + (get_local $1) ) (set_local $22 - (get_local $13) + (get_local $12) ) - (set_local $9 + (set_local $6 (i32.const 193) ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 193) ) (block (i32.store (i32.const 608) - (tee_local $13 + (tee_local $12 (i32.add (i32.load (i32.const 608) @@ -3648,25 +3627,25 @@ ) (if (i32.gt_u - (get_local $13) + (get_local $12) (i32.load (i32.const 612) ) ) (i32.store (i32.const 612) - (get_local $13) + (get_local $12) ) ) (block $do-once$44 (if - (tee_local $13 + (tee_local $12 (i32.load (i32.const 200) ) ) (block - (set_local $3 + (set_local $1 (i32.const 624) ) (loop $do-in$47 @@ -3675,16 +3654,16 @@ (i32.eq (get_local $20) (i32.add - (tee_local $6 + (tee_local $4 (i32.load - (get_local $3) + (get_local $1) ) ) - (tee_local $12 + (tee_local $11 (i32.load - (tee_local $17 + (tee_local $18 (i32.add - (get_local $3) + (get_local $1) (i32.const 4) ) ) @@ -3693,19 +3672,19 @@ ) ) (block + (set_local $46 + (get_local $4) + ) (set_local $47 - (get_local $6) + (get_local $18) ) (set_local $48 - (get_local $17) + (get_local $11) ) (set_local $49 - (get_local $12) - ) - (set_local $50 - (get_local $3) + (get_local $1) ) - (set_local $9 + (set_local $6 (i32.const 203) ) (br $do-out$46) @@ -3713,9 +3692,9 @@ ) (br_if $do-in$47 (i32.ne - (tee_local $3 + (tee_local $1 (i32.load offset=8 - (get_local $3) + (get_local $1) ) ) (i32.const 0) @@ -3727,74 +3706,70 @@ (select (i32.and (i32.lt_u - (get_local $13) + (get_local $12) (get_local $20) ) (i32.ge_u - (get_local $13) - (get_local $47) + (get_local $12) + (get_local $46) ) ) (i32.const 0) (select - (i32.eq + (i32.eqz (i32.and (i32.load offset=12 - (get_local $50) + (get_local $49) ) (i32.const 8) ) - (i32.const 0) ) (i32.const 0) (i32.eq - (get_local $9) + (get_local $6) (i32.const 203) ) ) ) (block (i32.store - (get_local $48) + (get_local $47) (i32.add - (get_local $49) + (get_local $48) (get_local $22) ) ) - (set_local $3 + (set_local $1 (i32.add - (get_local $13) - (tee_local $12 + (get_local $12) + (tee_local $11 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (tee_local $3 + (tee_local $1 (i32.add - (get_local $13) + (get_local $12) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $3) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) ) - (set_local $17 + (set_local $18 (i32.add (i32.sub (get_local $22) - (get_local $12) + (get_local $11) ) (i32.load (i32.const 188) @@ -3803,23 +3778,23 @@ ) (i32.store (i32.const 200) - (get_local $3) + (get_local $1) ) (i32.store (i32.const 188) - (get_local $17) + (get_local $18) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.or - (get_local $17) + (get_local $18) (i32.const 1) ) ) (i32.store offset=4 (i32.add - (get_local $3) - (get_local $17) + (get_local $1) + (get_local $18) ) (i32.const 40) ) @@ -3832,11 +3807,11 @@ (br $do-once$44) ) ) - (set_local $4 + (set_local $17 (if (i32.lt_u (get_local $20) - (tee_local $17 + (tee_local $18 (i32.load (i32.const 192) ) @@ -3849,16 +3824,16 @@ ) (get_local $20) ) - (get_local $17) + (get_local $18) ) ) - (set_local $17 + (set_local $18 (i32.add (get_local $20) (get_local $22) ) ) - (set_local $3 + (set_local $1 (i32.const 624) ) (loop $while-in$49 @@ -3866,50 +3841,44 @@ (if (i32.eq (i32.load - (get_local $3) + (get_local $1) ) - (get_local $17) + (get_local $18) ) (block - (set_local $51 - (get_local $3) + (set_local $50 + (get_local $1) ) - (set_local $41 - (get_local $3) + (set_local $40 + (get_local $1) ) - (set_local $9 + (set_local $6 (i32.const 211) ) (br $while-out$48) ) ) - (if - (i32.eqz - (tee_local $3 - (i32.load offset=8 - (get_local $3) - ) + (br_if $while-in$49 + (tee_local $1 + (i32.load offset=8 + (get_local $1) ) ) - (block - (set_local $28 - (i32.const 624) - ) - (br $while-out$48) - ) ) - (br $while-in$49) + (set_local $28 + (i32.const 624) + ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 211) ) (if (i32.and (i32.load offset=12 - (get_local $41) + (get_local $40) ) (i32.const 8) ) @@ -3918,32 +3887,31 @@ ) (block (i32.store - (get_local $51) + (get_local $50) (get_local $20) ) (i32.store - (tee_local $3 + (tee_local $1 (i32.add - (get_local $41) + (get_local $40) (i32.const 4) ) ) (i32.add (i32.load - (get_local $3) + (get_local $1) ) (get_local $22) ) ) - (set_local $12 + (set_local $11 (i32.add (get_local $20) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (tee_local $3 + (tee_local $1 (i32.add (get_local $20) (i32.const 8) @@ -3952,75 +3920,70 @@ ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $3) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) - (set_local $6 + (set_local $4 (i32.add - (get_local $17) + (get_local $18) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (tee_local $3 + (tee_local $1 (i32.add - (get_local $17) + (get_local $18) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $3) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) - (set_local $3 + (set_local $1 (i32.add - (get_local $12) - (get_local $0) + (get_local $11) + (get_local $8) ) ) (set_local $15 (i32.sub (i32.sub - (get_local $6) - (get_local $12) + (get_local $4) + (get_local $11) ) - (get_local $0) + (get_local $8) ) ) (i32.store offset=4 - (get_local $12) + (get_local $11) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) (block $do-once$50 (if (i32.ne - (get_local $6) - (get_local $13) + (get_local $4) + (get_local $12) ) (block (if (i32.eq - (get_local $6) + (get_local $4) (i32.load (i32.const 196) ) @@ -4028,7 +3991,7 @@ (block (i32.store (i32.const 184) - (tee_local $1 + (tee_local $0 (i32.add (i32.load (i32.const 184) @@ -4039,21 +4002,21 @@ ) (i32.store (i32.const 196) - (get_local $3) + (get_local $1) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.or - (get_local $1) + (get_local $0) (i32.const 1) ) ) (i32.store (i32.add - (get_local $3) (get_local $1) + (get_local $0) ) - (get_local $1) + (get_local $0) ) (br $do-once$50) ) @@ -4064,9 +4027,9 @@ (if (i32.eq (i32.and - (tee_local $1 + (tee_local $0 (i32.load offset=4 - (get_local $6) + (get_local $4) ) ) (i32.const 3) @@ -4074,28 +4037,28 @@ (i32.const 1) ) (block - (set_local $7 + (set_local $13 (i32.and - (get_local $1) + (get_local $0) (i32.const -8) ) ) (set_local $5 (i32.shr_u - (get_local $1) + (get_local $0) (i32.const 3) ) ) (block $label$break$L331 (if (i32.ge_u - (get_local $1) + (get_local $0) (i32.const 256) ) (block (set_local $23 (i32.load offset=24 - (get_local $6) + (get_local $4) ) ) (block $do-once$53 @@ -4103,20 +4066,20 @@ (i32.eq (tee_local $21 (i32.load offset=12 - (get_local $6) + (get_local $4) ) ) - (get_local $6) + (get_local $4) ) (block (if - (tee_local $8 + (tee_local $3 (i32.load (tee_local $2 (i32.add - (tee_local $11 + (tee_local $9 (i32.add - (get_local $6) + (get_local $4) (i32.const 16) ) ) @@ -4127,9 +4090,9 @@ ) (block (set_local $14 - (get_local $8) + (get_local $3) ) - (set_local $11 + (set_local $9 (get_local $2) ) ) @@ -4137,7 +4100,7 @@ (i32.eqz (tee_local $14 (i32.load - (get_local $11) + (get_local $9) ) ) ) @@ -4150,61 +4113,58 @@ ) ) (loop $while-in$56 - (block $while-out$55 - (if - (tee_local $8 - (i32.load - (tee_local $2 - (i32.add - (get_local $14) - (i32.const 20) - ) + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $14) + (i32.const 20) ) ) ) - (block - (set_local $14 - (get_local $8) - ) - (set_local $11 - (get_local $2) - ) - (br $while-in$56) + ) + (block + (set_local $14 + (get_local $3) + ) + (set_local $9 + (get_local $2) ) + (br $while-in$56) ) - (if - (tee_local $8 - (i32.load - (tee_local $2 - (i32.add - (get_local $14) - (i32.const 16) - ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $14) + (i32.const 16) ) ) ) - (block - (set_local $14 - (get_local $8) - ) - (set_local $11 - (get_local $2) - ) + ) + (block + (set_local $14 + (get_local $3) + ) + (set_local $9 + (get_local $2) ) - (br $while-out$55) + (br $while-in$56) ) - (br $while-in$56) ) ) (if (i32.lt_u - (get_local $11) - (get_local $4) + (get_local $9) + (get_local $17) ) (call_import $_abort) (block (i32.store - (get_local $11) + (get_local $9) (i32.const 0) ) (set_local $24 @@ -4218,46 +4178,46 @@ (i32.lt_u (tee_local $2 (i32.load offset=8 - (get_local $6) + (get_local $4) ) ) - (get_local $4) + (get_local $17) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $8 + (tee_local $3 (i32.add (get_local $2) (i32.const 12) ) ) ) - (get_local $6) + (get_local $4) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $11 + (tee_local $9 (i32.add (get_local $21) (i32.const 8) ) ) ) - (get_local $6) + (get_local $4) ) (block (i32.store - (get_local $8) + (get_local $3) (get_local $21) ) (i32.store - (get_local $11) + (get_local $9) (get_local $2) ) (set_local $24 @@ -4277,7 +4237,7 @@ (block $do-once$57 (if (i32.ne - (get_local $6) + (get_local $4) (i32.load (tee_local $2 (i32.add @@ -4285,7 +4245,7 @@ (i32.shl (tee_local $21 (i32.load offset=28 - (get_local $6) + (get_local $4) ) ) (i32.const 2) @@ -4307,17 +4267,17 @@ (if (i32.eq (i32.load - (tee_local $11 + (tee_local $9 (i32.add (get_local $23) (i32.const 16) ) ) ) - (get_local $6) + (get_local $4) ) (i32.store - (get_local $11) + (get_local $9) (get_local $24) ) (i32.store offset=20 @@ -4374,11 +4334,11 @@ (get_local $23) ) (if - (tee_local $11 + (tee_local $9 (i32.load (tee_local $2 (i32.add - (get_local $6) + (get_local $4) (i32.const 16) ) ) @@ -4386,17 +4346,17 @@ ) (if (i32.lt_u - (get_local $11) + (get_local $9) (get_local $21) ) (call_import $_abort) (block (i32.store offset=16 (get_local $24) - (get_local $11) + (get_local $9) ) (i32.store offset=24 - (get_local $11) + (get_local $9) (get_local $24) ) ) @@ -4404,7 +4364,7 @@ ) (br_if $label$break$L331 (i32.eqz - (tee_local $11 + (tee_local $9 (i32.load offset=4 (get_local $2) ) @@ -4413,7 +4373,7 @@ ) (if (i32.lt_u - (get_local $11) + (get_local $9) (i32.load (i32.const 192) ) @@ -4422,10 +4382,10 @@ (block (i32.store offset=20 (get_local $24) - (get_local $11) + (get_local $9) ) (i32.store offset=24 - (get_local $11) + (get_local $9) (get_local $24) ) ) @@ -4434,15 +4394,15 @@ (block (set_local $21 (i32.load offset=12 - (get_local $6) + (get_local $4) ) ) (block $do-once$61 (if (i32.ne - (tee_local $11 + (tee_local $9 (i32.load offset=8 - (get_local $6) + (get_local $4) ) ) (tee_local $23 @@ -4461,17 +4421,17 @@ (block (if (i32.lt_u - (get_local $11) - (get_local $4) + (get_local $9) + (get_local $17) ) (call_import $_abort) ) (br_if $do-once$61 (i32.eq (i32.load offset=12 - (get_local $11) + (get_local $9) ) - (get_local $6) + (get_local $4) ) ) (call_import $_abort) @@ -4481,7 +4441,7 @@ (if (i32.eq (get_local $21) - (get_local $11) + (get_local $9) ) (block (i32.store @@ -4508,7 +4468,7 @@ (get_local $21) (get_local $23) ) - (set_local $42 + (set_local $41 (i32.add (get_local $21) (i32.const 8) @@ -4518,7 +4478,7 @@ (if (i32.lt_u (get_local $21) - (get_local $4) + (get_local $17) ) (call_import $_abort) ) @@ -4532,10 +4492,10 @@ ) ) ) - (get_local $6) + (get_local $4) ) (block - (set_local $42 + (set_local $41 (get_local $2) ) (br $do-once$63) @@ -4546,28 +4506,28 @@ ) ) (i32.store offset=12 - (get_local $11) + (get_local $9) (get_local $21) ) (i32.store - (get_local $42) - (get_local $11) + (get_local $41) + (get_local $9) ) ) ) ) (set_local $15 (i32.add - (get_local $7) + (get_local $13) (get_local $15) ) ) (i32.add - (get_local $6) - (get_local $7) + (get_local $4) + (get_local $13) ) ) - (get_local $6) + (get_local $4) ) (i32.const 4) ) @@ -4580,7 +4540,7 @@ ) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.or (get_local $15) (i32.const 1) @@ -4588,7 +4548,7 @@ ) (i32.store (i32.add - (get_local $3) + (get_local $1) (get_local $15) ) (get_local $15) @@ -4605,7 +4565,7 @@ (i32.const 256) ) (block - (set_local $1 + (set_local $0 (i32.add (i32.const 216) (i32.shl @@ -4635,11 +4595,11 @@ (block (if (i32.ge_u - (tee_local $8 + (tee_local $3 (i32.load (tee_local $5 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) @@ -4650,11 +4610,11 @@ ) ) (block - (set_local $43 + (set_local $42 (get_local $5) ) - (set_local $35 - (get_local $8) + (set_local $34 + (get_local $3) ) (br $do-once$65) ) @@ -4669,33 +4629,33 @@ (get_local $2) ) ) - (set_local $43 + (set_local $42 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) - (set_local $35 - (get_local $1) + (set_local $34 + (get_local $0) ) ) ) ) (i32.store - (get_local $43) - (get_local $3) + (get_local $42) + (get_local $1) ) (i32.store offset=12 - (get_local $35) - (get_local $3) + (get_local $34) + (get_local $1) ) (i32.store offset=8 - (get_local $3) - (get_local $35) + (get_local $1) + (get_local $34) ) (i32.store offset=12 - (get_local $3) (get_local $1) + (get_local $0) ) (br $do-once$50) ) @@ -4704,7 +4664,7 @@ (i32.add (i32.const 480) (i32.shl - (tee_local $0 + (tee_local $3 (block $do-once$67 (if (tee_local $2 @@ -4732,11 +4692,11 @@ (i32.const 14) (i32.or (i32.or - (tee_local $8 + (tee_local $3 (i32.and (i32.shr_u (i32.add - (tee_local $7 + (tee_local $13 (i32.shl (get_local $2) (tee_local $23 @@ -4762,14 +4722,14 @@ ) (get_local $23) ) - (tee_local $7 + (tee_local $13 (i32.and (i32.shr_u (i32.add (tee_local $5 (i32.shl - (get_local $7) - (get_local $8) + (get_local $13) + (get_local $3) ) ) (i32.const 245760) @@ -4784,7 +4744,7 @@ (i32.shr_u (i32.shl (get_local $5) - (get_local $7) + (get_local $13) ) (i32.const 15) ) @@ -4810,26 +4770,26 @@ ) ) (i32.store offset=28 + (get_local $1) (get_local $3) - (get_local $0) ) (i32.store offset=4 - (tee_local $1 + (tee_local $0 (i32.add - (get_local $3) + (get_local $1) (i32.const 16) ) ) (i32.const 0) ) (i32.store - (get_local $1) + (get_local $0) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 180) ) @@ -4837,7 +4797,7 @@ (tee_local $14 (i32.shl (i32.const 1) - (get_local $0) + (get_local $3) ) ) ) @@ -4846,25 +4806,25 @@ (i32.store (i32.const 180) (i32.or - (get_local $1) + (get_local $0) (get_local $14) ) ) (i32.store (get_local $2) - (get_local $3) + (get_local $1) ) (i32.store offset=24 - (get_local $3) + (get_local $1) (get_local $2) ) (i32.store offset=12 - (get_local $3) - (get_local $3) + (get_local $1) + (get_local $1) ) (i32.store offset=8 - (get_local $3) - (get_local $3) + (get_local $1) + (get_local $1) ) (br $do-once$50) ) @@ -4877,18 +4837,18 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $0) + (get_local $3) (i32.const 1) ) ) (i32.eq - (get_local $0) + (get_local $3) (i32.const 31) ) ) ) ) - (set_local $1 + (set_local $0 (i32.load (get_local $2) ) @@ -4899,29 +4859,29 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $1) + (get_local $0) ) (i32.const -8) ) (get_local $15) ) (block - (set_local $36 - (get_local $1) + (set_local $35 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 281) ) (br $while-out$69) ) ) (if - (tee_local $7 + (tee_local $13 (i32.load (tee_local $2 (i32.add (i32.add - (get_local $1) + (get_local $0) (i32.const 16) ) (i32.shl @@ -4942,34 +4902,33 @@ (i32.const 1) ) ) - (set_local $1 - (get_local $7) + (set_local $0 + (get_local $13) ) + (br $while-in$70) ) (block - (set_local $44 + (set_local $43 (get_local $2) ) - (set_local $52 - (get_local $1) + (set_local $51 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 278) ) - (br $while-out$69) ) ) - (br $while-in$70) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 278) ) (if (i32.lt_u - (get_local $44) + (get_local $43) (i32.load (i32.const 192) ) @@ -4977,26 +4936,26 @@ (call_import $_abort) (block (i32.store - (get_local $44) - (get_local $3) + (get_local $43) + (get_local $1) ) (i32.store offset=24 - (get_local $3) - (get_local $52) + (get_local $1) + (get_local $51) ) (i32.store offset=12 - (get_local $3) - (get_local $3) + (get_local $1) + (get_local $1) ) (i32.store offset=8 - (get_local $3) - (get_local $3) + (get_local $1) + (get_local $1) ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 281) ) (if @@ -5004,44 +4963,44 @@ (i32.ge_u (tee_local $14 (i32.load - (tee_local $1 + (tee_local $0 (i32.add - (get_local $36) + (get_local $35) (i32.const 8) ) ) ) ) - (tee_local $7 + (tee_local $13 (i32.load (i32.const 192) ) ) ) (i32.ge_u - (get_local $36) - (get_local $7) + (get_local $35) + (get_local $13) ) ) (block (i32.store offset=12 (get_local $14) - (get_local $3) + (get_local $1) ) (i32.store + (get_local $0) (get_local $1) - (get_local $3) ) (i32.store offset=8 - (get_local $3) + (get_local $1) (get_local $14) ) (i32.store offset=12 - (get_local $3) - (get_local $36) + (get_local $1) + (get_local $35) ) (i32.store offset=24 - (get_local $3) + (get_local $1) (i32.const 0) ) ) @@ -5064,10 +5023,10 @@ ) (i32.store (i32.const 200) - (get_local $3) + (get_local $1) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.or (get_local $14) (i32.const 1) @@ -5078,7 +5037,7 @@ ) (return (i32.add - (get_local $12) + (get_local $11) (i32.const 8) ) ) @@ -5086,66 +5045,62 @@ ) ) (loop $while-in$72 - (block $while-out$71 + (if (if - (if - (i32.le_u - (tee_local $3 - (i32.load - (get_local $28) - ) + (i32.le_u + (tee_local $1 + (i32.load + (get_local $28) ) - (get_local $13) ) - (i32.gt_u - (tee_local $15 - (i32.add - (get_local $3) - (i32.load offset=4 - (get_local $28) - ) + (get_local $12) + ) + (i32.gt_u + (tee_local $15 + (i32.add + (get_local $1) + (i32.load offset=4 + (get_local $28) ) ) - (get_local $13) ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $15) - ) - (br $while-out$71) + (get_local $12) ) + (i32.const 0) ) - (set_local $28 - (i32.load offset=8 - (get_local $28) + (set_local $0 + (get_local $15) + ) + (block + (set_local $28 + (i32.load offset=8 + (get_local $28) + ) ) + (br $while-in$72) ) - (br $while-in$72) ) ) (set_local $15 (i32.add - (tee_local $12 + (tee_local $11 (i32.add - (get_local $5) + (get_local $0) (i32.const -47) ) ) (i32.const 8) ) ) - (set_local $3 + (set_local $1 (i32.add - (tee_local $12 + (tee_local $11 (select - (get_local $13) - (tee_local $3 + (get_local $12) + (tee_local $1 (i32.add - (get_local $12) + (get_local $11) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) @@ -5153,21 +5108,19 @@ ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $15) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $15) + (i32.const 7) ) ) ) ) (i32.lt_u - (get_local $3) + (get_local $1) (tee_local $15 (i32.add - (get_local $13) + (get_local $12) (i32.const 16) ) ) @@ -5179,16 +5132,15 @@ ) (i32.store (i32.const 200) - (tee_local $6 + (tee_local $4 (i32.add (get_local $20) - (tee_local $17 + (tee_local $18 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (tee_local $6 + (tee_local $4 (i32.add (get_local $20) (i32.const 8) @@ -5197,12 +5149,10 @@ ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $6) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) ) ) @@ -5217,12 +5167,12 @@ (get_local $22) (i32.const -40) ) - (get_local $17) + (get_local $18) ) ) ) (i32.store offset=4 - (get_local $6) + (get_local $4) (i32.or (get_local $14) (i32.const 1) @@ -5230,7 +5180,7 @@ ) (i32.store offset=4 (i32.add - (get_local $6) + (get_local $4) (get_local $14) ) (i32.const 40) @@ -5244,32 +5194,32 @@ (i32.store (tee_local $14 (i32.add - (get_local $12) + (get_local $11) (i32.const 4) ) ) (i32.const 27) ) (i32.store - (get_local $3) + (get_local $1) (i32.load (i32.const 624) ) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.load (i32.const 628) ) ) (i32.store offset=8 - (get_local $3) + (get_local $1) (i32.load (i32.const 632) ) ) (i32.store offset=12 - (get_local $3) + (get_local $1) (i32.load (i32.const 636) ) @@ -5288,19 +5238,19 @@ ) (i32.store (i32.const 632) - (get_local $3) + (get_local $1) ) - (set_local $3 + (set_local $1 (i32.add - (get_local $12) + (get_local $11) (i32.const 24) ) ) (loop $do-in$74 (i32.store - (tee_local $3 + (tee_local $1 (i32.add - (get_local $3) + (get_local $1) (i32.const 4) ) ) @@ -5309,17 +5259,17 @@ (br_if $do-in$74 (i32.lt_u (i32.add - (get_local $3) + (get_local $1) (i32.const 4) ) - (get_local $5) + (get_local $0) ) ) ) (if (i32.ne + (get_local $11) (get_local $12) - (get_local $13) ) (block (i32.store @@ -5332,39 +5282,39 @@ ) ) (i32.store offset=4 - (get_local $13) + (get_local $12) (i32.or - (tee_local $3 + (tee_local $1 (i32.sub + (get_local $11) (get_local $12) - (get_local $13) ) ) (i32.const 1) ) ) (i32.store - (get_local $12) - (get_local $3) + (get_local $11) + (get_local $1) ) - (set_local $6 + (set_local $4 (i32.shr_u - (get_local $3) + (get_local $1) (i32.const 3) ) ) (if (i32.lt_u - (get_local $3) + (get_local $1) (i32.const 256) ) (block - (set_local $17 + (set_local $18 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $6) + (get_local $4) (i32.const 1) ) (i32.const 2) @@ -5373,15 +5323,15 @@ ) (if (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 176) ) ) - (tee_local $7 + (tee_local $13 (i32.shl (i32.const 1) - (get_local $6) + (get_local $4) ) ) ) @@ -5389,9 +5339,9 @@ (i32.lt_u (tee_local $2 (i32.load - (tee_local $6 + (tee_local $4 (i32.add - (get_local $17) + (get_local $18) (i32.const 8) ) ) @@ -5403,10 +5353,10 @@ ) (call_import $_abort) (block - (set_local $45 - (get_local $6) + (set_local $44 + (get_local $4) ) - (set_local $37 + (set_local $36 (get_local $2) ) ) @@ -5415,81 +5365,81 @@ (i32.store (i32.const 176) (i32.or - (get_local $1) - (get_local $7) + (get_local $0) + (get_local $13) ) ) - (set_local $45 + (set_local $44 (i32.add - (get_local $17) + (get_local $18) (i32.const 8) ) ) - (set_local $37 - (get_local $17) + (set_local $36 + (get_local $18) ) ) ) (i32.store - (get_local $45) - (get_local $13) + (get_local $44) + (get_local $12) ) (i32.store offset=12 - (get_local $37) - (get_local $13) + (get_local $36) + (get_local $12) ) (i32.store offset=8 - (get_local $13) - (get_local $37) + (get_local $12) + (get_local $36) ) (i32.store offset=12 - (get_local $13) - (get_local $17) + (get_local $12) + (get_local $18) ) (br $do-once$44) ) ) - (set_local $6 + (set_local $4 (i32.add (i32.const 480) (i32.shl - (tee_local $5 + (tee_local $3 (if - (tee_local $17 + (tee_local $18 (i32.shr_u - (get_local $3) + (get_local $1) (i32.const 8) ) ) (if (i32.gt_u - (get_local $3) + (get_local $1) (i32.const 16777215) ) (i32.const 31) (i32.or (i32.and (i32.shr_u - (get_local $3) + (get_local $1) (i32.add - (tee_local $6 + (tee_local $4 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $17 + (tee_local $18 (i32.and (i32.shr_u (i32.add - (tee_local $1 + (tee_local $0 (i32.shl - (get_local $17) - (tee_local $7 + (get_local $18) + (tee_local $13 (i32.and (i32.shr_u (i32.add - (get_local $17) + (get_local $18) (i32.const 1048320) ) (i32.const 16) @@ -5506,16 +5456,16 @@ (i32.const 4) ) ) - (get_local $7) + (get_local $13) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u (i32.add (tee_local $2 (i32.shl - (get_local $1) - (get_local $17) + (get_local $0) + (get_local $18) ) ) (i32.const 245760) @@ -5530,7 +5480,7 @@ (i32.shr_u (i32.shl (get_local $2) - (get_local $1) + (get_local $0) ) (i32.const 15) ) @@ -5542,7 +5492,7 @@ (i32.const 1) ) (i32.shl - (get_local $6) + (get_local $4) (i32.const 1) ) ) @@ -5555,11 +5505,11 @@ ) ) (i32.store offset=28 - (get_local $13) - (get_local $5) + (get_local $12) + (get_local $3) ) (i32.store offset=20 - (get_local $13) + (get_local $12) (i32.const 0) ) (i32.store @@ -5569,7 +5519,7 @@ (if (i32.eqz (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 180) ) @@ -5577,7 +5527,7 @@ (tee_local $2 (i32.shl (i32.const 1) - (get_local $5) + (get_local $3) ) ) ) @@ -5586,51 +5536,51 @@ (i32.store (i32.const 180) (i32.or - (get_local $1) + (get_local $0) (get_local $2) ) ) (i32.store - (get_local $6) - (get_local $13) + (get_local $4) + (get_local $12) ) (i32.store offset=24 - (get_local $13) - (get_local $6) + (get_local $12) + (get_local $4) ) (i32.store offset=12 - (get_local $13) - (get_local $13) + (get_local $12) + (get_local $12) ) (i32.store offset=8 - (get_local $13) - (get_local $13) + (get_local $12) + (get_local $12) ) (br $do-once$44) ) ) (set_local $2 (i32.shl - (get_local $3) + (get_local $1) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $5) + (get_local $3) (i32.const 1) ) ) (i32.eq - (get_local $5) + (get_local $3) (i32.const 31) ) ) ) ) - (set_local $1 + (set_local $0 (i32.load - (get_local $6) + (get_local $4) ) ) (loop $while-in$76 @@ -5639,29 +5589,29 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $1) + (get_local $0) ) (i32.const -8) ) - (get_local $3) + (get_local $1) ) (block - (set_local $38 - (get_local $1) + (set_local $37 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 307) ) (br $while-out$75) ) ) (if - (tee_local $7 + (tee_local $13 (i32.load - (tee_local $6 + (tee_local $4 (i32.add (i32.add - (get_local $1) + (get_local $0) (i32.const 16) ) (i32.shl @@ -5682,34 +5632,33 @@ (i32.const 1) ) ) - (set_local $1 - (get_local $7) + (set_local $0 + (get_local $13) ) + (br $while-in$76) ) (block - (set_local $46 - (get_local $6) + (set_local $45 + (get_local $4) ) - (set_local $53 - (get_local $1) + (set_local $52 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 304) ) - (br $while-out$75) ) ) - (br $while-in$76) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 304) ) (if (i32.lt_u - (get_local $46) + (get_local $45) (i32.load (i32.const 192) ) @@ -5717,26 +5666,26 @@ (call_import $_abort) (block (i32.store - (get_local $46) - (get_local $13) + (get_local $45) + (get_local $12) ) (i32.store offset=24 - (get_local $13) - (get_local $53) + (get_local $12) + (get_local $52) ) (i32.store offset=12 - (get_local $13) - (get_local $13) + (get_local $12) + (get_local $12) ) (i32.store offset=8 - (get_local $13) - (get_local $13) + (get_local $12) + (get_local $12) ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 307) ) (if @@ -5744,44 +5693,44 @@ (i32.ge_u (tee_local $2 (i32.load - (tee_local $1 + (tee_local $0 (i32.add - (get_local $38) + (get_local $37) (i32.const 8) ) ) ) ) - (tee_local $3 + (tee_local $1 (i32.load (i32.const 192) ) ) ) (i32.ge_u - (get_local $38) - (get_local $3) + (get_local $37) + (get_local $1) ) ) (block (i32.store offset=12 (get_local $2) - (get_local $13) + (get_local $12) ) (i32.store - (get_local $1) - (get_local $13) + (get_local $0) + (get_local $12) ) (i32.store offset=8 - (get_local $13) + (get_local $12) (get_local $2) ) (i32.store offset=12 - (get_local $13) - (get_local $38) + (get_local $12) + (get_local $37) ) (i32.store offset=24 - (get_local $13) + (get_local $12) (i32.const 0) ) ) @@ -5795,13 +5744,12 @@ (block (if (i32.or - (i32.eq + (i32.eqz (tee_local $2 (i32.load (i32.const 192) ) ) - (i32.const 0) ) (i32.lt_u (get_local $20) @@ -5840,7 +5788,7 @@ ) (loop $do-in$78 (i32.store offset=12 - (tee_local $1 + (tee_local $0 (i32.add (i32.const 216) (i32.shl @@ -5852,11 +5800,11 @@ ) ) ) - (get_local $1) + (get_local $0) ) (i32.store offset=8 - (get_local $1) - (get_local $1) + (get_local $0) + (get_local $0) ) (br_if $do-in$78 (i32.ne @@ -5875,9 +5823,8 @@ (tee_local $2 (i32.add (get_local $20) - (tee_local $1 + (tee_local $0 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) @@ -5890,12 +5837,10 @@ ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $2) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) ) ) @@ -5904,27 +5849,27 @@ ) (i32.store (i32.const 188) - (tee_local $3 + (tee_local $1 (i32.sub (i32.add (get_local $22) (i32.const -40) ) - (get_local $1) + (get_local $0) ) ) ) (i32.store offset=4 (get_local $2) (i32.or - (get_local $3) + (get_local $1) (i32.const 1) ) ) (i32.store offset=4 (i32.add (get_local $2) - (get_local $3) + (get_local $1) ) (i32.const 40) ) @@ -5944,7 +5889,7 @@ (i32.const 188) ) ) - (get_local $0) + (get_local $8) ) (block (i32.store @@ -5952,25 +5897,25 @@ (tee_local $20 (i32.sub (get_local $22) - (get_local $0) + (get_local $8) ) ) ) (i32.store (i32.const 200) - (tee_local $13 + (tee_local $12 (i32.add (tee_local $22 (i32.load (i32.const 200) ) ) - (get_local $0) + (get_local $8) ) ) ) (i32.store offset=4 - (get_local $13) + (get_local $12) (i32.or (get_local $20) (i32.const 1) @@ -5979,7 +5924,7 @@ (i32.store offset=4 (get_local $22) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) @@ -6045,7 +5990,7 @@ (i32.eq (tee_local $0 (i32.and - (tee_local $9 + (tee_local $3 (i32.load (i32.add (get_local $0) @@ -6063,9 +6008,9 @@ (set_local $8 (i32.add (get_local $1) - (tee_local $3 + (tee_local $4 (i32.and - (get_local $9) + (get_local $3) (i32.const -8) ) ) @@ -6074,7 +6019,7 @@ (block $do-once$0 (if (i32.and - (get_local $9) + (get_local $3) (i32.const 1) ) (block @@ -6082,11 +6027,11 @@ (get_local $1) ) (set_local $7 - (get_local $3) + (get_local $4) ) ) (block - (set_local $9 + (set_local $11 (i32.load (get_local $1) ) @@ -6097,10 +6042,10 @@ ) (return) ) - (set_local $3 + (set_local $4 (i32.add - (get_local $9) - (get_local $3) + (get_local $11) + (get_local $4) ) ) (if @@ -6110,7 +6055,7 @@ (get_local $1) (i32.sub (i32.const 0) - (get_local $9) + (get_local $11) ) ) ) @@ -6129,7 +6074,7 @@ (if (i32.ne (i32.and - (tee_local $5 + (tee_local $6 (i32.load (tee_local $1 (i32.add @@ -6148,48 +6093,48 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) ) (i32.store (i32.const 184) - (get_local $3) + (get_local $4) ) (i32.store (get_local $1) (i32.and - (get_local $5) + (get_local $6) (i32.const -2) ) ) (i32.store offset=4 (get_local $0) (i32.or - (get_local $3) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add (get_local $0) - (get_local $3) + (get_local $4) ) - (get_local $3) + (get_local $4) ) (return) ) ) - (set_local $5 + (set_local $6 (i32.shr_u - (get_local $9) + (get_local $11) (i32.const 3) ) ) (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.const 256) ) (block @@ -6200,17 +6145,17 @@ ) (if (i32.ne - (tee_local $9 + (tee_local $11 (i32.load offset=8 (get_local $0) ) ) - (tee_local $6 + (tee_local $3 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $5) + (get_local $6) (i32.const 1) ) (i32.const 2) @@ -6221,7 +6166,7 @@ (block (if (i32.lt_u - (get_local $9) + (get_local $11) (get_local $14) ) (call_import $_abort) @@ -6229,7 +6174,7 @@ (if (i32.ne (i32.load offset=12 - (get_local $9) + (get_local $11) ) (get_local $0) ) @@ -6240,7 +6185,7 @@ (if (i32.eq (get_local $1) - (get_local $9) + (get_local $11) ) (block (i32.store @@ -6252,7 +6197,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $5) + (get_local $6) ) (i32.const -1) ) @@ -6262,7 +6207,7 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) @@ -6270,7 +6215,7 @@ (if (i32.ne (get_local $1) - (get_local $6) + (get_local $3) ) (block (if @@ -6283,7 +6228,7 @@ (if (i32.eq (i32.load - (tee_local $6 + (tee_local $3 (i32.add (get_local $1) (i32.const 8) @@ -6292,13 +6237,13 @@ ) (get_local $0) ) - (set_local $11 - (get_local $6) + (set_local $10 + (get_local $3) ) (call_import $_abort) ) ) - (set_local $11 + (set_local $10 (i32.add (get_local $1) (i32.const 8) @@ -6306,23 +6251,23 @@ ) ) (i32.store offset=12 - (get_local $9) + (get_local $11) (get_local $1) ) (i32.store + (get_local $10) (get_local $11) - (get_local $9) ) (set_local $2 (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) ) - (set_local $9 + (set_local $11 (i32.load offset=24 (get_local $0) ) @@ -6339,11 +6284,11 @@ ) (block (if - (tee_local $11 + (tee_local $10 (i32.load - (tee_local $5 + (tee_local $6 (i32.add - (tee_local $6 + (tee_local $3 (i32.add (get_local $0) (i32.const 16) @@ -6356,22 +6301,22 @@ ) (block (set_local $1 - (get_local $11) + (get_local $10) ) - (set_local $6 - (get_local $5) + (set_local $3 + (get_local $6) ) ) (if (i32.eqz (tee_local $1 (i32.load - (get_local $6) + (get_local $3) ) ) ) (block - (set_local $4 + (set_local $5 (i32.const 0) ) (br $do-once$2) @@ -6379,73 +6324,70 @@ ) ) (loop $while-in$5 - (block $while-out$4 - (if - (tee_local $11 - (i32.load - (tee_local $5 - (i32.add - (get_local $1) - (i32.const 20) - ) + (if + (tee_local $10 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 20) ) ) ) - (block - (set_local $1 - (get_local $11) - ) - (set_local $6 - (get_local $5) - ) - (br $while-in$5) + ) + (block + (set_local $1 + (get_local $10) ) + (set_local $3 + (get_local $6) + ) + (br $while-in$5) ) - (if - (tee_local $11 - (i32.load - (tee_local $5 - (i32.add - (get_local $1) - (i32.const 16) - ) + ) + (if + (tee_local $10 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 16) ) ) ) - (block - (set_local $1 - (get_local $11) - ) - (set_local $6 - (get_local $5) - ) + ) + (block + (set_local $1 + (get_local $10) ) - (block - (set_local $5 - (get_local $1) - ) - (set_local $10 - (get_local $6) - ) - (br $while-out$4) + (set_local $3 + (get_local $6) + ) + (br $while-in$5) + ) + (block + (set_local $6 + (get_local $1) + ) + (set_local $9 + (get_local $3) ) ) - (br $while-in$5) ) ) (if (i32.lt_u - (get_local $10) + (get_local $9) (get_local $14) ) (call_import $_abort) (block (i32.store - (get_local $10) + (get_local $9) (i32.const 0) ) - (set_local $4 - (get_local $5) + (set_local $5 + (get_local $6) ) ) ) @@ -6453,7 +6395,7 @@ (block (if (i32.lt_u - (tee_local $5 + (tee_local $6 (i32.load offset=8 (get_local $0) ) @@ -6465,9 +6407,9 @@ (if (i32.ne (i32.load - (tee_local $11 + (tee_local $10 (i32.add - (get_local $5) + (get_local $6) (i32.const 12) ) ) @@ -6479,7 +6421,7 @@ (if (i32.eq (i32.load - (tee_local $6 + (tee_local $3 (i32.add (get_local $1) (i32.const 8) @@ -6490,14 +6432,14 @@ ) (block (i32.store - (get_local $11) + (get_local $10) (get_local $1) ) (i32.store + (get_local $3) (get_local $6) - (get_local $5) ) - (set_local $4 + (set_local $5 (get_local $1) ) ) @@ -6507,13 +6449,13 @@ ) ) (if - (get_local $9) + (get_local $11) (block (if (i32.eq (get_local $0) (i32.load - (tee_local $5 + (tee_local $6 (i32.add (i32.const 480) (i32.shl @@ -6530,12 +6472,12 @@ ) (block (i32.store + (get_local $6) (get_local $5) - (get_local $4) ) (if (i32.eqz - (get_local $4) + (get_local $5) ) (block (i32.store @@ -6557,7 +6499,7 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) @@ -6566,7 +6508,7 @@ (block (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.load (i32.const 192) ) @@ -6578,7 +6520,7 @@ (i32.load (tee_local $1 (i32.add - (get_local $9) + (get_local $11) (i32.const 16) ) ) @@ -6587,23 +6529,23 @@ ) (i32.store (get_local $1) - (get_local $4) + (get_local $5) ) (i32.store offset=20 - (get_local $9) - (get_local $4) + (get_local $11) + (get_local $5) ) ) (if (i32.eqz - (get_local $4) + (get_local $5) ) (block (set_local $2 (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) @@ -6612,7 +6554,7 @@ ) (if (i32.lt_u - (get_local $4) + (get_local $5) (tee_local $1 (i32.load (i32.const 192) @@ -6622,13 +6564,13 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $4) - (get_local $9) + (get_local $5) + (get_local $11) ) (if - (tee_local $6 + (tee_local $3 (i32.load - (tee_local $5 + (tee_local $6 (i32.add (get_local $0) (i32.const 16) @@ -6638,31 +6580,31 @@ ) (if (i32.lt_u - (get_local $6) + (get_local $3) (get_local $1) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $4) - (get_local $6) + (get_local $5) + (get_local $3) ) (i32.store offset=24 - (get_local $6) - (get_local $4) + (get_local $3) + (get_local $5) ) ) ) ) (if - (tee_local $6 + (tee_local $3 (i32.load offset=4 - (get_local $5) + (get_local $6) ) ) (if (i32.lt_u - (get_local $6) + (get_local $3) (i32.load (i32.const 192) ) @@ -6670,18 +6612,18 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $4) - (get_local $6) + (get_local $5) + (get_local $3) ) (i32.store offset=24 - (get_local $6) - (get_local $4) + (get_local $3) + (get_local $5) ) (set_local $2 (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) ) ) @@ -6690,7 +6632,7 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) ) ) @@ -6700,7 +6642,7 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) ) ) @@ -6719,7 +6661,7 @@ (i32.and (tee_local $1 (i32.load - (tee_local $3 + (tee_local $4 (i32.add (get_local $8) (i32.const 4) @@ -6739,7 +6681,7 @@ ) (block (i32.store - (get_local $3) + (get_local $4) (i32.and (get_local $1) (i32.const -2) @@ -6774,7 +6716,7 @@ (block (i32.store (i32.const 188) - (tee_local $4 + (tee_local $5 (i32.add (i32.load (i32.const 188) @@ -6790,7 +6732,7 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $4) + (get_local $5) (i32.const 1) ) ) @@ -6824,7 +6766,7 @@ (block (i32.store (i32.const 184) - (tee_local $4 + (tee_local $5 (i32.add (i32.load (i32.const 184) @@ -6840,21 +6782,21 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $4) + (get_local $5) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $4) + (get_local $5) ) - (get_local $4) + (get_local $5) ) (return) ) ) - (set_local $4 + (set_local $5 (i32.add (i32.and (get_local $1) @@ -6876,7 +6818,7 @@ (i32.const 256) ) (block - (set_local $5 + (set_local $6 (i32.load offset=24 (get_local $8) ) @@ -6884,7 +6826,7 @@ (block $do-once$10 (if (i32.eq - (tee_local $10 + (tee_local $9 (i32.load offset=12 (get_local $8) ) @@ -6893,11 +6835,11 @@ ) (block (if - (tee_local $11 + (tee_local $10 (i32.load (tee_local $1 (i32.add - (tee_local $6 + (tee_local $3 (i32.add (get_local $8) (i32.const 16) @@ -6910,9 +6852,9 @@ ) (block (set_local $0 - (get_local $11) + (get_local $10) ) - (set_local $6 + (set_local $3 (get_local $1) ) ) @@ -6920,7 +6862,7 @@ (i32.eqz (tee_local $0 (i32.load - (get_local $6) + (get_local $3) ) ) ) @@ -6933,55 +6875,52 @@ ) ) (loop $while-in$13 - (block $while-out$12 - (if - (tee_local $11 - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 20) - ) + (if + (tee_local $10 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 20) ) ) ) - (block - (set_local $0 - (get_local $11) - ) - (set_local $6 - (get_local $1) - ) - (br $while-in$13) + ) + (block + (set_local $0 + (get_local $10) + ) + (set_local $3 + (get_local $1) ) + (br $while-in$13) ) - (if - (tee_local $11 - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 16) - ) + ) + (if + (tee_local $10 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 16) ) ) ) - (block - (set_local $0 - (get_local $11) - ) - (set_local $6 - (get_local $1) - ) + ) + (block + (set_local $0 + (get_local $10) ) - (br $while-out$12) + (set_local $3 + (get_local $1) + ) + (br $while-in$13) ) - (br $while-in$13) ) ) (if (i32.lt_u - (get_local $6) + (get_local $3) (i32.load (i32.const 192) ) @@ -6989,7 +6928,7 @@ (call_import $_abort) (block (i32.store - (get_local $6) + (get_local $3) (i32.const 0) ) (set_local $12 @@ -7015,7 +6954,7 @@ (if (i32.ne (i32.load - (tee_local $11 + (tee_local $10 (i32.add (get_local $1) (i32.const 12) @@ -7029,9 +6968,9 @@ (if (i32.eq (i32.load - (tee_local $6 + (tee_local $3 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) @@ -7040,15 +6979,15 @@ ) (block (i32.store - (get_local $11) (get_local $10) + (get_local $9) ) (i32.store - (get_local $6) + (get_local $3) (get_local $1) ) (set_local $12 - (get_local $10) + (get_local $9) ) ) (call_import $_abort) @@ -7057,17 +6996,17 @@ ) ) (if - (get_local $5) + (get_local $6) (block (if (i32.eq (get_local $8) (i32.load - (tee_local $3 + (tee_local $4 (i32.add (i32.const 480) (i32.shl - (tee_local $10 + (tee_local $9 (i32.load offset=28 (get_local $8) ) @@ -7080,7 +7019,7 @@ ) (block (i32.store - (get_local $3) + (get_local $4) (get_local $12) ) (if @@ -7097,7 +7036,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $10) + (get_local $9) ) (i32.const -1) ) @@ -7110,7 +7049,7 @@ (block (if (i32.lt_u - (get_local $5) + (get_local $6) (i32.load (i32.const 192) ) @@ -7120,9 +7059,9 @@ (if (i32.eq (i32.load - (tee_local $10 + (tee_local $9 (i32.add - (get_local $5) + (get_local $6) (i32.const 16) ) ) @@ -7130,11 +7069,11 @@ (get_local $8) ) (i32.store - (get_local $10) + (get_local $9) (get_local $12) ) (i32.store offset=20 - (get_local $5) + (get_local $6) (get_local $12) ) ) @@ -7148,7 +7087,7 @@ (if (i32.lt_u (get_local $12) - (tee_local $10 + (tee_local $9 (i32.load (i32.const 192) ) @@ -7158,12 +7097,12 @@ ) (i32.store offset=24 (get_local $12) - (get_local $5) + (get_local $6) ) (if (tee_local $0 (i32.load - (tee_local $3 + (tee_local $4 (i32.add (get_local $8) (i32.const 16) @@ -7174,7 +7113,7 @@ (if (i32.lt_u (get_local $0) - (get_local $10) + (get_local $9) ) (call_import $_abort) (block @@ -7192,7 +7131,7 @@ (if (tee_local $0 (i32.load offset=4 - (get_local $3) + (get_local $4) ) ) (if @@ -7219,7 +7158,7 @@ ) ) (block - (set_local $10 + (set_local $9 (i32.load offset=12 (get_local $8) ) @@ -7231,7 +7170,7 @@ (get_local $8) ) ) - (tee_local $5 + (tee_local $6 (i32.add (i32.const 216) (i32.shl @@ -7267,7 +7206,7 @@ ) (if (i32.eq - (get_local $10) + (get_local $9) (get_local $0) ) (block @@ -7291,13 +7230,13 @@ ) (if (i32.ne - (get_local $10) - (get_local $5) + (get_local $9) + (get_local $6) ) (block (if (i32.lt_u - (get_local $10) + (get_local $9) (i32.load (i32.const 192) ) @@ -7307,9 +7246,9 @@ (if (i32.eq (i32.load - (tee_local $5 + (tee_local $6 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) @@ -7317,21 +7256,21 @@ (get_local $8) ) (set_local $16 - (get_local $5) + (get_local $6) ) (call_import $_abort) ) ) (set_local $16 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) ) (i32.store offset=12 (get_local $0) - (get_local $10) + (get_local $9) ) (i32.store (get_local $16) @@ -7343,16 +7282,16 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $4) + (get_local $5) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $4) + (get_local $5) ) - (get_local $4) + (get_local $5) ) (if (i32.eq @@ -7364,12 +7303,12 @@ (block (i32.store (i32.const 184) - (get_local $4) + (get_local $5) ) (return) ) (set_local $0 - (get_local $4) + (get_local $5) ) ) ) @@ -7400,12 +7339,12 @@ ) (if (i32.and - (tee_local $3 + (tee_local $4 (i32.load (i32.const 176) ) ) - (tee_local $4 + (tee_local $5 (i32.shl (i32.const 1) (get_local $7) @@ -7442,8 +7381,8 @@ (i32.store (i32.const 176) (i32.or - (get_local $3) (get_local $4) + (get_local $5) ) ) (set_local $15 @@ -7476,11 +7415,11 @@ (return) ) ) - (set_local $3 + (set_local $4 (i32.add (i32.const 480) (i32.shl - (tee_local $1 + (tee_local $7 (if (tee_local $1 (i32.shr_u @@ -7499,7 +7438,7 @@ (i32.shr_u (get_local $0) (i32.add - (tee_local $3 + (tee_local $4 (i32.add (i32.sub (i32.const 14) @@ -7539,7 +7478,7 @@ (i32.and (i32.shr_u (i32.add - (tee_local $4 + (tee_local $5 (i32.shl (get_local $15) (get_local $1) @@ -7556,7 +7495,7 @@ ) (i32.shr_u (i32.shl - (get_local $4) + (get_local $5) (get_local $15) ) (i32.const 15) @@ -7569,7 +7508,7 @@ (i32.const 1) ) (i32.shl - (get_local $3) + (get_local $4) (i32.const 1) ) ) @@ -7583,7 +7522,7 @@ ) (i32.store offset=28 (get_local $2) - (get_local $1) + (get_local $7) ) (i32.store offset=20 (get_local $2) @@ -7600,10 +7539,10 @@ (i32.const 180) ) ) - (tee_local $4 + (tee_local $5 (i32.shl (i32.const 1) - (get_local $1) + (get_local $7) ) ) ) @@ -7616,12 +7555,12 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $1) + (get_local $7) (i32.const 1) ) ) (i32.eq - (get_local $1) + (get_local $7) (i32.const 31) ) ) @@ -7629,7 +7568,7 @@ ) (set_local $1 (i32.load - (get_local $3) + (get_local $4) ) ) (loop $while-in$19 @@ -7684,6 +7623,7 @@ (set_local $1 (get_local $7) ) + (br $while-in$19) ) (block (set_local $18 @@ -7695,10 +7635,8 @@ (set_local $0 (i32.const 127) ) - (br $while-out$18) ) ) - (br $while-in$19) ) ) (if @@ -7751,7 +7689,7 @@ ) ) ) - (tee_local $3 + (tee_local $4 (i32.load (i32.const 192) ) @@ -7759,7 +7697,7 @@ ) (i32.ge_u (get_local $17) - (get_local $3) + (get_local $4) ) ) (block @@ -7794,16 +7732,16 @@ (i32.const 180) (i32.or (get_local $15) - (get_local $4) + (get_local $5) ) ) (i32.store - (get_local $3) + (get_local $4) (get_local $2) ) (i32.store offset=24 (get_local $2) - (get_local $3) + (get_local $4) ) (i32.store offset=12 (get_local $2) @@ -7834,22 +7772,21 @@ ) ) (loop $while-in$21 - (block $while-out$20 - (if - (tee_local $2 - (i32.load - (get_local $0) - ) + (if + (tee_local $2 + (i32.load + (get_local $0) ) + ) + (block (set_local $0 (i32.add (get_local $2) (i32.const 8) ) ) - (br $while-out$20) + (br $while-in$21) ) - (br $while-in$21) ) ) (i32.store @@ -7873,8 +7810,7 @@ (local $15 i32) (local $16 i32) (local $17 i32) - (local $18 i32) - (set_local $11 + (set_local $10 (get_global $STACKTOP) ) (set_global $STACKTOP @@ -7883,25 +7819,25 @@ (i32.const 48) ) ) - (set_local $12 + (set_local $11 (i32.add - (get_local $11) + (get_local $10) (i32.const 16) ) ) - (set_local $13 - (get_local $11) + (set_local $12 + (get_local $10) ) (i32.store - (tee_local $3 + (tee_local $4 (i32.add - (get_local $11) + (get_local $10) (i32.const 32) ) ) - (tee_local $8 + (tee_local $7 (i32.load - (tee_local $9 + (tee_local $8 (i32.add (get_local $0) (i32.const 28) @@ -7911,27 +7847,27 @@ ) ) (i32.store offset=4 - (get_local $3) - (tee_local $10 + (get_local $4) + (tee_local $9 (i32.sub (i32.load - (tee_local $14 + (tee_local $13 (i32.add (get_local $0) (i32.const 20) ) ) ) - (get_local $8) + (get_local $7) ) ) ) (i32.store offset=8 - (get_local $3) + (get_local $4) (get_local $1) ) (i32.store offset=12 - (get_local $3) + (get_local $4) (get_local $2) ) (set_local $1 @@ -7940,21 +7876,21 @@ (i32.const 60) ) ) - (set_local $8 + (set_local $7 (i32.add (get_local $0) (i32.const 44) ) ) - (set_local $4 - (get_local $3) + (set_local $5 + (get_local $4) ) - (set_local $3 + (set_local $4 (i32.const 2) ) - (set_local $5 + (set_local $3 (i32.add - (get_local $10) + (get_local $9) (get_local $2) ) ) @@ -7962,7 +7898,7 @@ (block $while-out$0 (if (i32.eq - (get_local $5) + (get_local $3) (tee_local $6 (if (i32.load @@ -7974,51 +7910,51 @@ (get_local $0) ) (i32.store - (get_local $13) + (get_local $12) (i32.load (get_local $1) ) ) (i32.store offset=4 - (get_local $13) - (get_local $4) + (get_local $12) + (get_local $5) ) (i32.store offset=8 - (get_local $13) - (get_local $3) + (get_local $12) + (get_local $4) ) - (set_local $10 + (set_local $9 (call $___syscall_ret (call_import $___syscall146 (i32.const 146) - (get_local $13) + (get_local $12) ) ) ) (call_import $_pthread_cleanup_pop (i32.const 0) ) - (get_local $10) + (get_local $9) ) (block (i32.store - (get_local $12) + (get_local $11) (i32.load (get_local $1) ) ) (i32.store offset=4 - (get_local $12) - (get_local $4) + (get_local $11) + (get_local $5) ) (i32.store offset=8 - (get_local $12) - (get_local $3) + (get_local $11) + (get_local $4) ) (call $___syscall_ret (call_import $___syscall146 (i32.const 146) - (get_local $12) + (get_local $11) ) ) ) @@ -8038,130 +7974,125 @@ (i32.const 0) ) (block + (set_local $16 + (get_local $5) + ) (set_local $17 (get_local $4) ) - (set_local $18 - (get_local $3) - ) (set_local $1 (i32.const 8) ) - (br $while-out$0) - ) - ) - (set_local $10 - (i32.sub - (get_local $5) - (get_local $6) ) - ) - (set_local $3 - (if - (i32.le_u - (get_local $6) - (tee_local $5 - (i32.load offset=4 - (get_local $4) - ) - ) - ) - (if - (i32.eq + (block + (set_local $9 + (i32.sub (get_local $3) - (i32.const 2) + (get_local $6) ) - (block - (i32.store - (get_local $9) - (i32.add - (i32.load - (get_local $9) + ) + (set_local $5 + (if + (i32.le_u + (get_local $6) + (tee_local $14 + (i32.load offset=4 + (get_local $5) ) - (get_local $6) ) ) - (set_local $7 - (get_local $4) - ) - (set_local $15 - (i32.const 2) - ) - (get_local $5) - ) - (block - (set_local $7 - (get_local $4) - ) - (set_local $15 - (get_local $3) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $8) + (i32.add + (i32.load + (get_local $8) + ) + (get_local $6) + ) + ) + (set_local $3 + (get_local $5) + ) + (set_local $4 + (i32.const 2) + ) + (get_local $14) + ) + (block + (set_local $3 + (get_local $5) + ) + (get_local $14) + ) ) - (get_local $5) - ) - ) - (block - (i32.store - (get_local $9) - (tee_local $7 - (i32.load + (block + (i32.store (get_local $8) + (tee_local $3 + (i32.load + (get_local $7) + ) + ) + ) + (i32.store + (get_local $13) + (get_local $3) + ) + (set_local $6 + (i32.sub + (get_local $6) + (get_local $14) + ) + ) + (set_local $3 + (i32.add + (get_local $5) + (i32.const 8) + ) + ) + (set_local $4 + (i32.add + (get_local $4) + (i32.const -1) + ) + ) + (i32.load offset=12 + (get_local $5) ) ) ) - (i32.store - (get_local $14) - (get_local $7) - ) - (set_local $6 - (i32.sub - (get_local $6) - (get_local $5) - ) - ) - (set_local $7 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $15 - (i32.add + ) + (i32.store + (get_local $3) + (i32.add + (i32.load (get_local $3) - (i32.const -1) ) + (get_local $6) ) - (i32.load offset=12 - (get_local $4) + ) + (i32.store offset=4 + (get_local $3) + (i32.sub + (get_local $5) + (get_local $6) ) ) - ) - ) - (i32.store - (get_local $7) - (i32.add - (i32.load - (get_local $7) + (set_local $5 + (get_local $3) ) - (get_local $6) - ) - ) - (i32.store offset=4 - (get_local $7) - (i32.sub - (get_local $3) - (get_local $6) + (set_local $3 + (get_local $9) + ) + (br $while-in$1) ) ) - (set_local $4 - (get_local $7) - ) - (set_local $3 - (get_local $15) - ) - (set_local $5 - (get_local $10) - ) - (br $while-in$1) ) ) (if @@ -8173,9 +8104,9 @@ (i32.store offset=16 (get_local $0) (i32.add - (tee_local $5 + (tee_local $3 (i32.load - (get_local $8) + (get_local $7) ) ) (i32.load offset=48 @@ -8184,16 +8115,16 @@ ) ) (i32.store - (get_local $9) - (tee_local $8 - (get_local $5) + (get_local $8) + (tee_local $7 + (get_local $3) ) ) (i32.store - (get_local $14) - (get_local $8) + (get_local $13) + (get_local $7) ) - (set_local $16 + (set_local $15 (get_local $2) ) ) @@ -8208,11 +8139,11 @@ (i32.const 0) ) (i32.store - (get_local $9) + (get_local $8) (i32.const 0) ) (i32.store - (get_local $14) + (get_local $13) (i32.const 0) ) (i32.store @@ -8224,17 +8155,17 @@ (i32.const 32) ) ) - (set_local $16 + (set_local $15 (select (i32.const 0) (i32.sub (get_local $2) (i32.load offset=4 - (get_local $17) + (get_local $16) ) ) (i32.eq - (get_local $18) + (get_local $17) (i32.const 2) ) ) @@ -8243,9 +8174,9 @@ ) ) (set_global $STACKTOP - (get_local $11) + (get_local $10) ) - (get_local $16) + (get_local $15) ) (func $___fwritex (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8265,10 +8196,10 @@ ) ) (block - (set_local $7 + (set_local $6 (get_local $5) ) - (set_local $6 + (set_local $7 (i32.const 5) ) ) @@ -8280,12 +8211,12 @@ (i32.const 0) ) (block - (set_local $7 + (set_local $6 (i32.load (get_local $3) ) ) - (set_local $6 + (set_local $7 (i32.const 5) ) ) @@ -8294,11 +8225,11 @@ (block $label$break$L5 (if (i32.eq - (get_local $6) + (get_local $7) (i32.const 5) ) (block - (set_local $6 + (set_local $4 (tee_local $3 (i32.load (tee_local $5 @@ -8313,7 +8244,7 @@ (if (i32.lt_u (i32.sub - (get_local $7) + (get_local $6) (get_local $3) ) (get_local $1) @@ -8338,7 +8269,7 @@ (br $label$break$L5) ) ) - (set_local $0 + (set_local $1 (block $label$break$L10 (if (i32.gt_s @@ -8352,57 +8283,48 @@ (get_local $1) ) (loop $while-in$3 - (block $while-out$2 - (if - (i32.eqz - (get_local $3) + (if + (i32.eqz + (get_local $3) + ) + (block + (set_local $2 + (i32.const 0) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $3 - (i32.const 0) - ) - (br $label$break$L10 - (get_local $1) - ) + (br $label$break$L10 + (get_local $1) ) ) - (if - (i32.eq - (i32.load8_s - (i32.add - (get_local $0) - (tee_local $7 - (i32.add - (get_local $3) - (i32.const -1) - ) + ) + (if + (i32.ne + (i32.load8_s + (i32.add + (get_local $0) + (tee_local $6 + (i32.add + (get_local $3) + (i32.const -1) ) ) ) - (i32.const 10) - ) - (block - (set_local $4 - (get_local $3) - ) - (br $while-out$2) ) + (i32.const 10) + ) + (block (set_local $3 - (get_local $7) + (get_local $6) ) + (br $while-in$3) ) - (br $while-in$3) ) ) - (br_if $label$break$L5 + (if (i32.lt_u (call_indirect $FUNCSIG$iiii (get_local $2) (get_local $0) - (get_local $4) + (get_local $3) (i32.add (i32.and (i32.load offset=36 @@ -8413,33 +8335,36 @@ (i32.const 2) ) ) - (get_local $4) + (get_local $3) + ) + (block + (set_local $4 + (get_local $3) + ) + (br $label$break$L5) ) ) - (set_local $2 + (set_local $0 (i32.add (get_local $0) - (get_local $4) + (get_local $3) ) ) - (set_local $6 + (set_local $4 (i32.load (get_local $5) ) ) - (set_local $3 - (get_local $4) + (set_local $2 + (get_local $3) ) (i32.sub (get_local $1) - (get_local $4) + (get_local $3) ) ) (block (set_local $2 - (get_local $0) - ) - (set_local $3 (i32.const 0) ) (get_local $1) @@ -8449,9 +8374,9 @@ ) (drop (call $_memcpy - (get_local $6) - (get_local $2) + (get_local $4) (get_local $0) + (get_local $1) ) ) (i32.store @@ -8460,13 +8385,13 @@ (i32.load (get_local $5) ) - (get_local $0) + (get_local $1) ) ) (set_local $4 (i32.add - (get_local $3) - (get_local $0) + (get_local $2) + (get_local $1) ) ) ) @@ -8495,11 +8420,10 @@ ) ) (set_local $1 - (i32.eq + (i32.eqz (call $___lockfile (get_local $0) ) - (i32.const 0) ) ) (set_local $2 @@ -8549,70 +8473,62 @@ (get_local $0) ) (loop $while-in$3 - (block $while-out$2 - (set_local $0 - (if - (i32.gt_s - (i32.load offset=76 - (get_local $1) - ) - (i32.const -1) - ) - (call $___lockfile + (set_local $0 + (if + (i32.gt_s + (i32.load offset=76 (get_local $1) ) - (i32.const 0) - ) - ) - (set_local $2 - (if - (i32.gt_u - (i32.load offset=20 - (get_local $1) - ) - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.or - (call $___fflush_unlocked - (get_local $1) - ) - (get_local $2) - ) - (get_local $2) + (i32.const -1) ) - ) - (if - (get_local $0) - (call $___unlockfile + (call $___lockfile (get_local $1) ) + (i32.const 0) ) + ) + (set_local $2 (if - (i32.eqz - (tee_local $1 - (i32.load offset=56 - (get_local $1) - ) + (i32.gt_u + (i32.load offset=20 + (get_local $1) + ) + (i32.load offset=28 + (get_local $1) ) ) - (block - (set_local $0 - (get_local $2) + (i32.or + (call $___fflush_unlocked + (get_local $1) ) - (br $while-out$2) + (get_local $2) + ) + (get_local $2) + ) + ) + (if + (get_local $0) + (call $___unlockfile + (get_local $1) + ) + ) + (br_if $while-in$3 + (tee_local $1 + (i32.load offset=56 + (get_local $1) ) ) - (br $while-in$3) ) ) ) + (set_local $2 + (get_local $0) + ) ) (call_import $___unlock (i32.const 36) ) - (get_local $0) + (get_local $2) ) ) ) @@ -8636,53 +8552,47 @@ (get_local $3) ) (loop $while-in$2 - (block $while-out$1 - (if - (i32.eqz - (i32.load8_s - (get_local $0) - ) + (if + (i32.eqz + (i32.load8_s + (get_local $0) ) - (block - (set_local $5 - (get_local $4) - ) - (br $label$break$L1) + ) + (block + (set_local $5 + (get_local $4) ) + (br $label$break$L1) ) - (if - (i32.eqz - (i32.and - (tee_local $4 - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) + ) + (br_if $while-in$2 + (i32.and + (tee_local $4 + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) ) - (i32.const 3) ) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $1 - (i32.const 4) - ) - (br $while-out$1) - ) + (i32.const 3) + ) + ) + (block + (set_local $1 + (get_local $0) + ) + (set_local $2 + (i32.const 4) ) - (br $while-in$2) ) ) ) (block - (set_local $2 + (set_local $1 (get_local $0) ) - (set_local $1 + (set_local $2 (i32.const 4) ) ) @@ -8690,49 +8600,51 @@ ) (if (i32.eq - (get_local $1) + (get_local $2) (i32.const 4) ) (block - (set_local $1 - (get_local $2) + (set_local $2 + (get_local $1) ) (loop $while-in$4 - (block $while-out$3 - (if - (i32.and - (i32.xor - (i32.and - (tee_local $2 - (i32.load - (get_local $1) - ) + (if + (i32.and + (i32.xor + (i32.and + (tee_local $1 + (i32.load + (get_local $2) ) - (i32.const -2139062144) ) (i32.const -2139062144) ) - (i32.add - (get_local $2) - (i32.const -16843009) - ) + (i32.const -2139062144) ) - (br $while-out$3) - (set_local $1 + (i32.add + (get_local $1) + (i32.const -16843009) + ) + ) + (set_local $0 + (get_local $2) + ) + (block + (set_local $2 (i32.add - (get_local $1) + (get_local $2) (i32.const 4) ) ) + (br $while-in$4) ) - (br $while-in$4) ) ) (if (i32.shr_s (i32.shl (i32.and - (get_local $2) + (get_local $1) (i32.const 255) ) (i32.const 24) @@ -8740,32 +8652,31 @@ (i32.const 24) ) (block - (set_local $2 - (get_local $1) + (set_local $1 + (get_local $0) ) (loop $while-in$6 - (block $while-out$5 - (if - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $2) - (i32.const 1) - ) + (if + (i32.load8_s + (tee_local $0 + (i32.add + (get_local $1) + (i32.const 1) ) ) - (set_local $2 - (get_local $1) + ) + (block + (set_local $1 + (get_local $0) ) - (br $while-out$5) + (br $while-in$6) ) - (br $while-in$6) ) ) ) ) (set_local $5 - (get_local $1) + (get_local $0) ) ) ) @@ -8972,11 +8883,10 @@ ) ) ) - (i32.eq + (i32.eqz (i32.load (get_local $1) ) - (i32.const 0) ) ) (i32.const 0) @@ -9006,21 +8916,23 @@ ) ) ) - (call_indirect $FUNCSIG$iiii - (get_local $0) - (i32.sub - (get_local $4) - (get_local $6) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load offset=40 - (get_local $0) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $0) + (i32.sub + (get_local $4) + (get_local $6) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load offset=40 + (get_local $0) + ) + (i32.const 7) ) - (i32.const 7) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -9124,75 +9036,75 @@ ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.lt_s - (get_local $2) - (i32.const 4) - ) - ) - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) + (if + (i32.ge_s + (get_local $2) + (i32.const 4) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (i32.load + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 4) + ) ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.le_s - (get_local $2) - (i32.const 0) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_s - (get_local $1) - ) + (if + (i32.gt_s + (get_local $2) + (i32.const 0) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (i32.load8_s + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (get_local $3) @@ -9267,70 +9179,70 @@ ) ) (loop $while-in$1 - (block $while-out$0 - (br_if $while-out$0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $3) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (br $while-in$1) ) - (br $while-in$1) ) ) ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.ge_s - (get_local $0) - (get_local $6) - ) - ) - (i32.store + (if + (i32.lt_s (get_local $0) - (get_local $5) + (get_local $6) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.ge_s - (get_local $0) - (get_local $4) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $4) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $while-in$5) ) - (br $while-in$5) ) ) (i32.sub @@ -9606,11 +9518,10 @@ ) (block (set_local $5 - (i32.eq + (i32.eqz (call $___lockfile (get_local $3) ) - (i32.const 0) ) ) (set_local $0 @@ -9668,15 +9579,13 @@ ) (if (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 64) + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 64) ) + (i32.const 0) (block (i32.store (get_local $3) @@ -9703,7 +9612,6 @@ (i32.const 0) ) ) - (i32.const 0) ) (i32.store8 offset=75 (get_local $0) diff --git a/test/emcc_O2_hello_world.fromasm.imprecise b/test/emcc_O2_hello_world.fromasm.imprecise index fbcc3c46e..e0f340478 100644 --- a/test/emcc_O2_hello_world.fromasm.imprecise +++ b/test/emcc_O2_hello_world.fromasm.imprecise @@ -129,7 +129,6 @@ (local $50 i32) (local $51 i32) (local $52 i32) - (local $53 i32) (block $do-once$0 (if (i32.lt_u @@ -141,14 +140,14 @@ (i32.and (tee_local $2 (i32.shr_u - (tee_local $7 + (tee_local $16 (i32.load (i32.const 176) ) ) (tee_local $5 (i32.shr_u - (tee_local $0 + (tee_local $8 (select (i32.const 16) (i32.and @@ -172,20 +171,20 @@ (i32.const 3) ) (block - (set_local $2 + (set_local $5 (i32.load - (tee_local $8 + (tee_local $17 (i32.add - (tee_local $5 + (tee_local $3 (i32.load - (tee_local $4 + (tee_local $7 (i32.add - (tee_local $1 + (tee_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $0 + (tee_local $2 (i32.add (i32.xor (i32.and @@ -215,13 +214,13 @@ ) (if (i32.ne - (get_local $1) - (get_local $2) + (get_local $0) + (get_local $5) ) (block (if (i32.lt_u - (get_local $2) + (get_local $5) (i32.load (i32.const 192) ) @@ -231,23 +230,23 @@ (if (i32.eq (i32.load - (tee_local $9 + (tee_local $6 (i32.add - (get_local $2) + (get_local $5) (i32.const 12) ) ) ) - (get_local $5) + (get_local $3) ) (block (i32.store - (get_local $9) - (get_local $1) + (get_local $6) + (get_local $0) ) (i32.store - (get_local $4) - (get_local $2) + (get_local $7) + (get_local $5) ) ) (call_import $_abort) @@ -256,11 +255,11 @@ (i32.store (i32.const 176) (i32.and - (get_local $7) + (get_local $16) (i32.xor (i32.shl (i32.const 1) - (get_local $0) + (get_local $2) ) (i32.const -1) ) @@ -268,11 +267,11 @@ ) ) (i32.store offset=4 - (get_local $5) + (get_local $3) (i32.or - (tee_local $2 + (tee_local $5 (i32.shl - (get_local $0) + (get_local $2) (i32.const 3) ) ) @@ -280,31 +279,31 @@ ) ) (i32.store - (tee_local $4 + (tee_local $7 (i32.add (i32.add + (get_local $3) (get_local $5) - (get_local $2) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $4) + (get_local $7) ) (i32.const 1) ) ) (return - (get_local $8) + (get_local $17) ) ) ) (if (i32.gt_u - (get_local $0) - (tee_local $4 + (get_local $8) + (tee_local $7 (i32.load (i32.const 184) ) @@ -314,20 +313,20 @@ (if (get_local $2) (block - (set_local $1 + (set_local $0 (i32.and (i32.shr_u - (tee_local $2 + (tee_local $5 (i32.add (i32.and - (tee_local $1 + (tee_local $0 (i32.and (i32.shl (get_local $2) (get_local $5) ) (i32.or - (tee_local $2 + (tee_local $5 (i32.shl (i32.const 2) (get_local $5) @@ -335,14 +334,14 @@ ) (i32.sub (i32.const 0) - (get_local $2) + (get_local $5) ) ) ) ) (i32.sub (i32.const 0) - (get_local $1) + (get_local $0) ) ) (i32.const -1) @@ -353,32 +352,32 @@ (i32.const 16) ) ) - (set_local $1 + (set_local $0 (i32.load - (tee_local $9 + (tee_local $6 (i32.add - (tee_local $16 + (tee_local $3 (i32.load - (tee_local $18 + (tee_local $19 (i32.add (tee_local $10 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $19 + (tee_local $13 (i32.add (i32.or (i32.or (i32.or (i32.or - (tee_local $2 + (tee_local $5 (i32.and (i32.shr_u - (tee_local $9 + (tee_local $6 (i32.shr_u - (get_local $2) - (get_local $1) + (get_local $5) + (get_local $0) ) ) (i32.const 5) @@ -386,15 +385,15 @@ (i32.const 8) ) ) - (get_local $1) + (get_local $0) ) - (tee_local $9 + (tee_local $6 (i32.and (i32.shr_u - (tee_local $16 + (tee_local $3 (i32.shr_u - (get_local $9) - (get_local $2) + (get_local $6) + (get_local $5) ) ) (i32.const 2) @@ -403,13 +402,13 @@ ) ) ) - (tee_local $16 + (tee_local $3 (i32.and (i32.shr_u (tee_local $10 (i32.shr_u - (get_local $16) - (get_local $9) + (get_local $3) + (get_local $6) ) ) (i32.const 1) @@ -421,10 +420,10 @@ (tee_local $10 (i32.and (i32.shr_u - (tee_local $18 + (tee_local $19 (i32.shr_u (get_local $10) - (get_local $16) + (get_local $3) ) ) (i32.const 1) @@ -434,7 +433,7 @@ ) ) (i32.shr_u - (get_local $18) + (get_local $19) (get_local $10) ) ) @@ -458,12 +457,12 @@ (if (i32.ne (get_local $10) - (get_local $1) + (get_local $0) ) (block (if (i32.lt_u - (get_local $1) + (get_local $0) (i32.load (i32.const 192) ) @@ -473,25 +472,25 @@ (if (i32.eq (i32.load - (tee_local $2 + (tee_local $5 (i32.add - (get_local $1) + (get_local $0) (i32.const 12) ) ) ) - (get_local $16) + (get_local $3) ) (block (i32.store - (get_local $2) + (get_local $5) (get_local $10) ) (i32.store - (get_local $18) - (get_local $1) + (get_local $19) + (get_local $0) ) - (set_local $8 + (set_local $17 (i32.load (i32.const 184) ) @@ -504,43 +503,43 @@ (i32.store (i32.const 176) (i32.and - (get_local $7) + (get_local $16) (i32.xor (i32.shl (i32.const 1) - (get_local $19) + (get_local $13) ) (i32.const -1) ) ) ) - (set_local $8 - (get_local $4) + (set_local $17 + (get_local $7) ) ) ) (i32.store offset=4 - (get_local $16) + (get_local $3) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) (i32.store offset=4 - (tee_local $7 + (tee_local $16 (i32.add - (get_local $16) - (get_local $0) + (get_local $3) + (get_local $8) ) ) (i32.or - (tee_local $4 + (tee_local $7 (i32.sub (i32.shl - (get_local $19) + (get_local $13) (i32.const 3) ) - (get_local $0) + (get_local $8) ) ) (i32.const 1) @@ -548,15 +547,15 @@ ) (i32.store (i32.add + (get_local $16) (get_local $7) - (get_local $4) ) - (get_local $4) + (get_local $7) ) (if - (get_local $8) + (get_local $17) (block - (set_local $1 + (set_local $0 (i32.load (i32.const 196) ) @@ -566,9 +565,9 @@ (i32.const 216) (i32.shl (i32.shl - (tee_local $18 + (tee_local $19 (i32.shr_u - (get_local $8) + (get_local $17) (i32.const 3) ) ) @@ -588,15 +587,15 @@ (tee_local $2 (i32.shl (i32.const 1) - (get_local $18) + (get_local $19) ) ) ) (if (i32.lt_u - (tee_local $8 + (tee_local $17 (i32.load - (tee_local $18 + (tee_local $19 (i32.add (get_local $10) (i32.const 8) @@ -610,11 +609,11 @@ ) (call_import $_abort) (block - (set_local $39 - (get_local $18) + (set_local $38 + (get_local $19) ) (set_local $31 - (get_local $8) + (get_local $17) ) ) ) @@ -626,7 +625,7 @@ (get_local $2) ) ) - (set_local $39 + (set_local $38 (i32.add (get_local $10) (i32.const 8) @@ -638,53 +637,53 @@ ) ) (i32.store - (get_local $39) - (get_local $1) + (get_local $38) + (get_local $0) ) (i32.store offset=12 (get_local $31) - (get_local $1) + (get_local $0) ) (i32.store offset=8 - (get_local $1) + (get_local $0) (get_local $31) ) (i32.store offset=12 - (get_local $1) + (get_local $0) (get_local $10) ) ) ) (i32.store (i32.const 184) - (get_local $4) + (get_local $7) ) (i32.store (i32.const 196) - (get_local $7) + (get_local $16) ) (return - (get_local $9) + (get_local $6) ) ) ) (if - (tee_local $7 + (tee_local $16 (i32.load (i32.const 180) ) ) (block - (set_local $7 + (set_local $16 (i32.and (i32.shr_u - (tee_local $4 + (tee_local $7 (i32.add (i32.and - (get_local $7) + (get_local $16) (i32.sub (i32.const 0) - (get_local $7) + (get_local $16) ) ) (i32.const -1) @@ -699,7 +698,7 @@ (i32.sub (i32.and (i32.load offset=4 - (tee_local $8 + (tee_local $17 (i32.load offset=480 (i32.shl (i32.add @@ -707,13 +706,13 @@ (i32.or (i32.or (i32.or - (tee_local $4 + (tee_local $7 (i32.and (i32.shr_u (tee_local $10 (i32.shr_u - (get_local $4) (get_local $7) + (get_local $16) ) ) (i32.const 5) @@ -721,15 +720,15 @@ (i32.const 8) ) ) - (get_local $7) + (get_local $16) ) (tee_local $10 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u (get_local $10) - (get_local $4) + (get_local $7) ) ) (i32.const 2) @@ -738,12 +737,12 @@ ) ) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u (tee_local $2 (i32.shr_u - (get_local $1) + (get_local $0) (get_local $10) ) ) @@ -759,7 +758,7 @@ (tee_local $5 (i32.shr_u (get_local $2) - (get_local $1) + (get_local $0) ) ) (i32.const 1) @@ -780,25 +779,25 @@ ) (i32.const -8) ) - (get_local $0) + (get_local $8) ) ) (set_local $5 - (get_local $8) + (get_local $17) ) - (set_local $1 - (get_local $8) + (set_local $0 + (get_local $17) ) (loop $while-in$7 (block $while-out$6 (if - (tee_local $8 + (tee_local $17 (i32.load offset=16 (get_local $5) ) ) - (set_local $7 - (get_local $8) + (set_local $3 + (get_local $17) ) (if (tee_local $10 @@ -806,15 +805,15 @@ (get_local $5) ) ) - (set_local $7 + (set_local $3 (get_local $10) ) (block (set_local $7 (get_local $2) ) - (set_local $4 - (get_local $1) + (set_local $1 + (get_local $0) ) (br $while-out$6) ) @@ -822,15 +821,15 @@ ) (set_local $10 (i32.lt_u - (tee_local $8 + (tee_local $17 (i32.sub (i32.and (i32.load offset=4 - (get_local $7) + (get_local $3) ) (i32.const -8) ) - (get_local $0) + (get_local $8) ) ) (get_local $2) @@ -838,18 +837,18 @@ ) (set_local $2 (select - (get_local $8) + (get_local $17) (get_local $2) (get_local $10) ) ) (set_local $5 - (get_local $7) + (get_local $3) ) - (set_local $1 + (set_local $0 (select - (get_local $7) - (get_local $1) + (get_local $3) + (get_local $0) (get_local $10) ) ) @@ -858,8 +857,8 @@ ) (if (i32.lt_u - (get_local $4) - (tee_local $1 + (get_local $1) + (tee_local $0 (i32.load (i32.const 192) ) @@ -869,11 +868,11 @@ ) (if (i32.ge_u - (get_local $4) + (get_local $1) (tee_local $5 (i32.add - (get_local $4) - (get_local $0) + (get_local $1) + (get_local $8) ) ) ) @@ -881,54 +880,55 @@ ) (set_local $2 (i32.load offset=24 - (get_local $4) + (get_local $1) ) ) (block $do-once$8 (if (i32.eq - (tee_local $9 + (tee_local $6 (i32.load offset=12 - (get_local $4) + (get_local $1) ) ) - (get_local $4) + (get_local $1) ) (block (if - (tee_local $19 + (tee_local $13 (i32.load - (tee_local $16 + (tee_local $3 (i32.add - (get_local $4) + (get_local $1) (i32.const 20) ) ) ) ) (block - (set_local $8 - (get_local $19) + (set_local $17 + (get_local $13) ) - (set_local $10 - (get_local $16) + (set_local $9 + (get_local $3) ) ) (if - (i32.eqz - (tee_local $8 - (i32.load - (tee_local $10 - (i32.add - (get_local $4) - (i32.const 16) - ) + (tee_local $17 + (i32.load + (tee_local $10 + (i32.add + (get_local $1) + (i32.const 16) ) ) ) ) + (set_local $9 + (get_local $10) + ) (block - (set_local $18 + (set_local $19 (i32.const 0) ) (br $do-once$8) @@ -936,65 +936,62 @@ ) ) (loop $while-in$11 - (block $while-out$10 - (if - (tee_local $19 - (i32.load - (tee_local $16 - (i32.add - (get_local $8) - (i32.const 20) - ) + (if + (tee_local $13 + (i32.load + (tee_local $3 + (i32.add + (get_local $17) + (i32.const 20) ) ) ) - (block - (set_local $8 - (get_local $19) - ) - (set_local $10 - (get_local $16) - ) - (br $while-in$11) + ) + (block + (set_local $17 + (get_local $13) ) + (set_local $9 + (get_local $3) + ) + (br $while-in$11) ) - (if - (tee_local $19 - (i32.load - (tee_local $16 - (i32.add - (get_local $8) - (i32.const 16) - ) + ) + (if + (tee_local $13 + (i32.load + (tee_local $3 + (i32.add + (get_local $17) + (i32.const 16) ) ) ) - (block - (set_local $8 - (get_local $19) - ) - (set_local $10 - (get_local $16) - ) + ) + (block + (set_local $17 + (get_local $13) ) - (br $while-out$10) + (set_local $9 + (get_local $3) + ) + (br $while-in$11) ) - (br $while-in$11) ) ) (if (i32.lt_u - (get_local $10) - (get_local $1) + (get_local $9) + (get_local $0) ) (call_import $_abort) (block (i32.store - (get_local $10) + (get_local $9) (i32.const 0) ) - (set_local $18 - (get_local $8) + (set_local $19 + (get_local $17) ) ) ) @@ -1002,26 +999,26 @@ (block (if (i32.lt_u - (tee_local $16 + (tee_local $3 (i32.load offset=8 - (get_local $4) + (get_local $1) ) ) - (get_local $1) + (get_local $0) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $19 + (tee_local $13 (i32.add - (get_local $16) + (get_local $3) (i32.const 12) ) ) ) - (get_local $4) + (get_local $1) ) (call_import $_abort) ) @@ -1030,24 +1027,24 @@ (i32.load (tee_local $10 (i32.add - (get_local $9) + (get_local $6) (i32.const 8) ) ) ) - (get_local $4) + (get_local $1) ) (block (i32.store - (get_local $19) - (get_local $9) + (get_local $13) + (get_local $6) ) (i32.store (get_local $10) - (get_local $16) + (get_local $3) ) - (set_local $18 - (get_local $9) + (set_local $19 + (get_local $6) ) ) (call_import $_abort) @@ -1061,15 +1058,15 @@ (block (if (i32.eq - (get_local $4) + (get_local $1) (i32.load - (tee_local $1 + (tee_local $0 (i32.add (i32.const 480) (i32.shl - (tee_local $9 + (tee_local $6 (i32.load offset=28 - (get_local $4) + (get_local $1) ) ) (i32.const 2) @@ -1080,12 +1077,12 @@ ) (block (i32.store - (get_local $1) - (get_local $18) + (get_local $0) + (get_local $19) ) (if (i32.eqz - (get_local $18) + (get_local $19) ) (block (i32.store @@ -1097,7 +1094,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $9) + (get_local $6) ) (i32.const -1) ) @@ -1120,35 +1117,35 @@ (if (i32.eq (i32.load - (tee_local $9 + (tee_local $6 (i32.add (get_local $2) (i32.const 16) ) ) ) - (get_local $4) + (get_local $1) ) (i32.store - (get_local $9) - (get_local $18) + (get_local $6) + (get_local $19) ) (i32.store offset=20 (get_local $2) - (get_local $18) + (get_local $19) ) ) (br_if $do-once$12 (i32.eqz - (get_local $18) + (get_local $19) ) ) ) ) (if (i32.lt_u - (get_local $18) - (tee_local $9 + (get_local $19) + (tee_local $6 (i32.load (i32.const 192) ) @@ -1157,42 +1154,42 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $18) + (get_local $19) (get_local $2) ) (if - (tee_local $1 + (tee_local $0 (i32.load offset=16 - (get_local $4) + (get_local $1) ) ) (if (i32.lt_u - (get_local $1) - (get_local $9) + (get_local $0) + (get_local $6) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $18) - (get_local $1) + (get_local $19) + (get_local $0) ) (i32.store offset=24 - (get_local $1) - (get_local $18) + (get_local $0) + (get_local $19) ) ) ) ) (if - (tee_local $1 + (tee_local $0 (i32.load offset=20 - (get_local $4) + (get_local $1) ) ) (if (i32.lt_u - (get_local $1) + (get_local $0) (i32.load (i32.const 192) ) @@ -1200,12 +1197,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $18) - (get_local $1) + (get_local $19) + (get_local $0) ) (i32.store offset=24 - (get_local $1) - (get_local $18) + (get_local $0) + (get_local $19) ) ) ) @@ -1220,22 +1217,22 @@ ) (block (i32.store offset=4 - (get_local $4) + (get_local $1) (i32.or (tee_local $2 (i32.add (get_local $7) - (get_local $0) + (get_local $8) ) ) (i32.const 3) ) ) (i32.store - (tee_local $1 + (tee_local $0 (i32.add (i32.add - (get_local $4) + (get_local $1) (get_local $2) ) (i32.const 4) @@ -1243,7 +1240,7 @@ ) (i32.or (i32.load - (get_local $1) + (get_local $0) ) (i32.const 1) ) @@ -1251,9 +1248,9 @@ ) (block (i32.store offset=4 - (get_local $4) + (get_local $1) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) @@ -1272,7 +1269,7 @@ (get_local $7) ) (if - (tee_local $1 + (tee_local $0 (i32.load (i32.const 184) ) @@ -1283,14 +1280,14 @@ (i32.const 196) ) ) - (set_local $1 + (set_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $9 + (tee_local $6 (i32.shr_u - (get_local $1) + (get_local $0) (i32.const 3) ) ) @@ -1302,7 +1299,7 @@ ) (if (i32.and - (tee_local $16 + (tee_local $3 (i32.load (i32.const 176) ) @@ -1310,17 +1307,17 @@ (tee_local $10 (i32.shl (i32.const 1) - (get_local $9) + (get_local $6) ) ) ) (if (i32.lt_u - (tee_local $19 + (tee_local $13 (i32.load - (tee_local $9 + (tee_local $6 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) @@ -1332,11 +1329,11 @@ ) (call_import $_abort) (block - (set_local $40 - (get_local $9) + (set_local $39 + (get_local $6) ) (set_local $32 - (get_local $19) + (get_local $13) ) ) ) @@ -1344,23 +1341,23 @@ (i32.store (i32.const 176) (i32.or - (get_local $16) + (get_local $3) (get_local $10) ) ) - (set_local $40 + (set_local $39 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) (set_local $32 - (get_local $1) + (get_local $0) ) ) ) (i32.store - (get_local $40) + (get_local $39) (get_local $2) ) (i32.store offset=12 @@ -1373,7 +1370,7 @@ ) (i32.store offset=12 (get_local $2) - (get_local $1) + (get_local $0) ) ) ) @@ -1389,7 +1386,7 @@ ) (return (i32.add - (get_local $4) + (get_local $1) (i32.const 8) ) ) @@ -1406,7 +1403,7 @@ (block (set_local $2 (i32.and - (tee_local $1 + (tee_local $0 (i32.add (get_local $0) (i32.const 11) @@ -1422,7 +1419,7 @@ ) ) (block - (set_local $16 + (set_local $3 (i32.sub (i32.const 0) (get_local $2) @@ -1430,14 +1427,14 @@ ) (block $label$break$L123 (if - (tee_local $7 + (tee_local $16 (i32.load offset=480 (i32.shl - (tee_local $0 + (tee_local $8 (if - (tee_local $19 + (tee_local $13 (i32.shr_u - (get_local $1) + (get_local $0) (i32.const 8) ) ) @@ -1452,24 +1449,24 @@ (i32.shr_u (get_local $2) (i32.add - (tee_local $7 + (tee_local $16 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $19 + (tee_local $13 (i32.and (i32.shr_u (i32.add - (tee_local $9 + (tee_local $6 (i32.shl - (get_local $19) - (tee_local $1 + (get_local $13) + (tee_local $0 (i32.and (i32.shr_u (i32.add - (get_local $19) + (get_local $13) (i32.const 1048320) ) (i32.const 16) @@ -1486,16 +1483,16 @@ (i32.const 4) ) ) - (get_local $1) + (get_local $0) ) - (tee_local $9 + (tee_local $6 (i32.and (i32.shr_u (i32.add - (tee_local $8 + (tee_local $17 (i32.shl - (get_local $9) - (get_local $19) + (get_local $6) + (get_local $13) ) ) (i32.const 245760) @@ -1509,8 +1506,8 @@ ) (i32.shr_u (i32.shl - (get_local $8) - (get_local $9) + (get_local $17) + (get_local $6) ) (i32.const 15) ) @@ -1522,7 +1519,7 @@ (i32.const 1) ) (i32.shl - (get_local $7) + (get_local $16) (i32.const 1) ) ) @@ -1535,13 +1532,13 @@ ) ) (block - (set_local $9 - (get_local $16) + (set_local $6 + (get_local $3) ) - (set_local $8 + (set_local $17 (i32.const 0) ) - (set_local $1 + (set_local $0 (i32.shl (get_local $2) (select @@ -1549,101 +1546,98 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $0) + (get_local $8) (i32.const 1) ) ) (i32.eq - (get_local $0) + (get_local $8) (i32.const 31) ) ) ) ) - (set_local $19 - (get_local $7) + (set_local $13 + (get_local $16) ) - (set_local $4 + (set_local $7 (i32.const 0) ) (loop $while-in$18 - (block $while-out$17 - (if - (i32.lt_u - (tee_local $5 - (i32.sub - (tee_local $18 - (i32.and - (i32.load offset=4 - (get_local $19) - ) - (i32.const -8) + (if + (i32.lt_u + (tee_local $3 + (i32.sub + (tee_local $19 + (i32.and + (i32.load offset=4 + (get_local $13) ) + (i32.const -8) ) - (get_local $2) ) + (get_local $2) ) - (get_local $9) ) - (if - (i32.eq - (get_local $18) - (get_local $2) + (get_local $6) + ) + (if + (i32.eq + (get_local $19) + (get_local $2) + ) + (block + (set_local $27 + (get_local $3) ) - (block - (set_local $27 - (get_local $5) - ) - (set_local $25 - (get_local $19) - ) - (set_local $29 - (get_local $19) - ) - (set_local $9 - (i32.const 90) - ) - (br $label$break$L123) + (set_local $25 + (get_local $13) ) - (block - (set_local $9 - (get_local $5) - ) - (set_local $4 - (get_local $19) - ) + (set_local $29 + (get_local $13) + ) + (set_local $6 + (i32.const 90) + ) + (br $label$break$L123) + ) + (block + (set_local $6 + (get_local $3) + ) + (set_local $7 + (get_local $13) ) ) ) - (set_local $18 - (select - (get_local $8) - (tee_local $5 - (i32.load offset=20 - (get_local $19) - ) + ) + (set_local $19 + (select + (get_local $17) + (tee_local $3 + (i32.load offset=20 + (get_local $13) ) - (i32.or - (i32.eq - (get_local $5) - (i32.const 0) - ) - (i32.eq - (get_local $5) - (tee_local $19 - (i32.load + ) + (i32.or + (i32.eqz + (get_local $3) + ) + (i32.eq + (get_local $3) + (tee_local $13 + (i32.load + (i32.add (i32.add - (i32.add - (get_local $19) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (i32.const 31) - ) - (i32.const 2) + (get_local $13) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $0) + (i32.const 31) ) + (i32.const 2) ) ) ) @@ -1651,61 +1645,59 @@ ) ) ) - (if - (tee_local $5 - (i32.eq - (get_local $19) - (i32.const 0) - ) + ) + (if + (tee_local $3 + (i32.eqz + (get_local $13) ) - (block - (set_local $33 - (get_local $9) - ) - (set_local $34 - (get_local $18) - ) - (set_local $30 - (get_local $4) - ) - (set_local $9 - (i32.const 86) - ) - (br $while-out$17) + ) + (block + (set_local $33 + (get_local $6) ) - (block - (set_local $8 - (get_local $18) - ) - (set_local $1 - (i32.shl - (get_local $1) - (i32.xor - (i32.and - (get_local $5) - (i32.const 1) - ) + (set_local $5 + (get_local $19) + ) + (set_local $30 + (get_local $7) + ) + (set_local $6 + (i32.const 86) + ) + ) + (block + (set_local $17 + (get_local $19) + ) + (set_local $0 + (i32.shl + (get_local $0) + (i32.xor + (i32.and + (get_local $3) (i32.const 1) ) + (i32.const 1) ) ) ) + (br $while-in$18) ) - (br $while-in$18) ) ) ) (block (set_local $33 - (get_local $16) + (get_local $3) ) - (set_local $34 + (set_local $5 (i32.const 0) ) (set_local $30 (i32.const 0) ) - (set_local $9 + (set_local $6 (i32.const 86) ) ) @@ -1713,60 +1705,58 @@ ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 86) ) (if (tee_local $0 (if (i32.and - (i32.eq - (get_local $34) - (i32.const 0) + (i32.eqz + (get_local $5) ) - (i32.eq + (i32.eqz (get_local $30) - (i32.const 0) ) ) (block (if (i32.eqz - (tee_local $16 + (tee_local $3 (i32.and (get_local $10) (i32.or - (tee_local $7 + (tee_local $16 (i32.shl (i32.const 2) - (get_local $0) + (get_local $8) ) ) (i32.sub (i32.const 0) - (get_local $7) + (get_local $16) ) ) ) ) ) (block - (set_local $0 + (set_local $8 (get_local $2) ) (br $do-once$0) ) ) - (set_local $16 + (set_local $3 (i32.and (i32.shr_u - (tee_local $7 + (tee_local $16 (i32.add (i32.and - (get_local $16) + (get_local $3) (i32.sub (i32.const 0) - (get_local $16) + (get_local $3) ) ) (i32.const -1) @@ -1784,13 +1774,13 @@ (i32.or (i32.or (i32.or - (tee_local $7 + (tee_local $16 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $8 (i32.shr_u - (get_local $7) (get_local $16) + (get_local $3) ) ) (i32.const 5) @@ -1798,15 +1788,15 @@ (i32.const 8) ) ) - (get_local $16) + (get_local $3) ) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u (tee_local $5 (i32.shr_u - (get_local $0) - (get_local $7) + (get_local $8) + (get_local $16) ) ) (i32.const 2) @@ -1818,10 +1808,10 @@ (tee_local $5 (i32.and (i32.shr_u - (tee_local $4 + (tee_local $7 (i32.shr_u (get_local $5) - (get_local $0) + (get_local $8) ) ) (i32.const 1) @@ -1830,12 +1820,12 @@ ) ) ) - (tee_local $4 + (tee_local $7 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u - (get_local $4) + (get_local $7) (get_local $5) ) ) @@ -1846,15 +1836,15 @@ ) ) (i32.shr_u - (get_local $1) - (get_local $4) + (get_local $0) + (get_local $7) ) ) (i32.const 2) ) ) ) - (get_local $34) + (get_local $5) ) ) (block @@ -1867,15 +1857,15 @@ (set_local $29 (get_local $30) ) - (set_local $9 + (set_local $6 (i32.const 90) ) ) (block - (set_local $6 + (set_local $4 (get_local $33) ) - (set_local $12 + (set_local $11 (get_local $30) ) ) @@ -1883,95 +1873,92 @@ ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 90) ) (loop $while-in$20 - (block $while-out$19 - (set_local $9 - (i32.const 0) - ) - (set_local $1 - (i32.lt_u - (tee_local $4 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $25) - ) - (i32.const -8) + (set_local $6 + (i32.const 0) + ) + (set_local $0 + (i32.lt_u + (tee_local $7 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $25) ) - (get_local $2) + (i32.const -8) ) + (get_local $2) ) - (get_local $27) ) + (get_local $27) ) - (set_local $5 - (select - (get_local $4) - (get_local $27) - (get_local $1) - ) + ) + (set_local $5 + (select + (get_local $7) + (get_local $27) + (get_local $0) ) - (set_local $4 - (select + ) + (set_local $7 + (select + (get_local $25) + (get_local $29) + (get_local $0) + ) + ) + (if + (tee_local $0 + (i32.load offset=16 (get_local $25) - (get_local $29) - (get_local $1) ) ) - (if - (tee_local $1 - (i32.load offset=16 - (get_local $25) - ) + (block + (set_local $27 + (get_local $5) ) - (block - (set_local $27 - (get_local $5) - ) - (set_local $25 - (get_local $1) - ) - (set_local $29 - (get_local $4) - ) - (br $while-in$20) + (set_local $25 + (get_local $0) ) + (set_local $29 + (get_local $7) + ) + (br $while-in$20) ) - (if - (tee_local $25 - (i32.load offset=20 - (get_local $25) - ) + ) + (if + (tee_local $25 + (i32.load offset=20 + (get_local $25) ) - (block - (set_local $27 - (get_local $5) - ) - (set_local $29 - (get_local $4) - ) + ) + (block + (set_local $27 + (get_local $5) ) - (block - (set_local $6 - (get_local $5) - ) - (set_local $12 - (get_local $4) - ) - (br $while-out$19) + (set_local $29 + (get_local $7) + ) + (br $while-in$20) + ) + (block + (set_local $4 + (get_local $5) + ) + (set_local $11 + (get_local $7) ) ) - (br $while-in$20) ) ) ) (if (select (i32.lt_u - (get_local $6) + (get_local $4) (i32.sub (i32.load (i32.const 184) @@ -1981,14 +1968,14 @@ ) (i32.const 0) (i32.ne - (get_local $12) + (get_local $11) (i32.const 0) ) ) (block (if (i32.lt_u - (get_local $12) + (get_local $11) (tee_local $10 (i32.load (i32.const 192) @@ -1999,10 +1986,10 @@ ) (if (i32.ge_u - (get_local $12) - (tee_local $4 + (get_local $11) + (tee_local $7 (i32.add - (get_local $12) + (get_local $11) (get_local $2) ) ) @@ -2011,54 +1998,55 @@ ) (set_local $5 (i32.load offset=24 - (get_local $12) + (get_local $11) ) ) (block $do-once$21 (if (i32.eq - (tee_local $1 + (tee_local $0 (i32.load offset=12 - (get_local $12) + (get_local $11) ) ) - (get_local $12) + (get_local $11) ) (block (if - (tee_local $16 + (tee_local $3 (i32.load - (tee_local $0 + (tee_local $8 (i32.add - (get_local $12) + (get_local $11) (i32.const 20) ) ) ) ) (block - (set_local $8 - (get_local $16) + (set_local $17 + (get_local $3) ) - (set_local $7 - (get_local $0) + (set_local $0 + (get_local $8) ) ) (if - (i32.eqz - (tee_local $8 - (i32.load - (tee_local $7 - (i32.add - (get_local $12) - (i32.const 16) - ) + (tee_local $17 + (i32.load + (tee_local $16 + (i32.add + (get_local $11) + (i32.const 16) ) ) ) ) + (set_local $0 + (get_local $16) + ) (block - (set_local $11 + (set_local $9 (i32.const 0) ) (br $do-once$21) @@ -2066,65 +2054,62 @@ ) ) (loop $while-in$24 - (block $while-out$23 - (if - (tee_local $16 - (i32.load - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 20) - ) + (if + (tee_local $3 + (i32.load + (tee_local $8 + (i32.add + (get_local $17) + (i32.const 20) ) ) ) - (block - (set_local $8 - (get_local $16) - ) - (set_local $7 - (get_local $0) - ) - (br $while-in$24) + ) + (block + (set_local $17 + (get_local $3) ) + (set_local $0 + (get_local $8) + ) + (br $while-in$24) ) - (if - (tee_local $16 - (i32.load - (tee_local $0 - (i32.add - (get_local $8) - (i32.const 16) - ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $8 + (i32.add + (get_local $17) + (i32.const 16) ) ) ) - (block - (set_local $8 - (get_local $16) - ) - (set_local $7 - (get_local $0) - ) + ) + (block + (set_local $17 + (get_local $3) ) - (br $while-out$23) + (set_local $0 + (get_local $8) + ) + (br $while-in$24) ) - (br $while-in$24) ) ) (if (i32.lt_u - (get_local $7) + (get_local $0) (get_local $10) ) (call_import $_abort) (block (i32.store - (get_local $7) + (get_local $0) (i32.const 0) ) - (set_local $11 - (get_local $8) + (set_local $9 + (get_local $17) ) ) ) @@ -2132,9 +2117,9 @@ (block (if (i32.lt_u - (tee_local $0 + (tee_local $8 (i32.load offset=8 - (get_local $12) + (get_local $11) ) ) (get_local $10) @@ -2144,40 +2129,40 @@ (if (i32.ne (i32.load - (tee_local $16 + (tee_local $3 (i32.add - (get_local $0) + (get_local $8) (i32.const 12) ) ) ) - (get_local $12) + (get_local $11) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $7 + (tee_local $16 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) ) - (get_local $12) + (get_local $11) ) (block (i32.store - (get_local $16) - (get_local $1) + (get_local $3) + (get_local $0) ) (i32.store - (get_local $7) - (get_local $0) + (get_local $16) + (get_local $8) ) - (set_local $11 - (get_local $1) + (set_local $9 + (get_local $0) ) ) (call_import $_abort) @@ -2191,15 +2176,15 @@ (block (if (i32.eq - (get_local $12) + (get_local $11) (i32.load (tee_local $10 (i32.add (i32.const 480) (i32.shl - (tee_local $1 + (tee_local $0 (i32.load offset=28 - (get_local $12) + (get_local $11) ) ) (i32.const 2) @@ -2211,11 +2196,11 @@ (block (i32.store (get_local $10) - (get_local $11) + (get_local $9) ) (if (i32.eqz - (get_local $11) + (get_local $9) ) (block (i32.store @@ -2227,7 +2212,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $1) + (get_local $0) ) (i32.const -1) ) @@ -2250,35 +2235,35 @@ (if (i32.eq (i32.load - (tee_local $1 + (tee_local $0 (i32.add (get_local $5) (i32.const 16) ) ) ) - (get_local $12) + (get_local $11) ) (i32.store - (get_local $1) - (get_local $11) + (get_local $0) + (get_local $9) ) (i32.store offset=20 (get_local $5) - (get_local $11) + (get_local $9) ) ) (br_if $do-once$25 (i32.eqz - (get_local $11) + (get_local $9) ) ) ) ) (if (i32.lt_u - (get_local $11) - (tee_local $1 + (get_local $9) + (tee_local $0 (i32.load (i32.const 192) ) @@ -2287,29 +2272,29 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $11) + (get_local $9) (get_local $5) ) (if (tee_local $10 (i32.load offset=16 - (get_local $12) + (get_local $11) ) ) (if (i32.lt_u (get_local $10) - (get_local $1) + (get_local $0) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $11) + (get_local $9) (get_local $10) ) (i32.store offset=24 (get_local $10) - (get_local $11) + (get_local $9) ) ) ) @@ -2317,7 +2302,7 @@ (if (tee_local $10 (i32.load offset=20 - (get_local $12) + (get_local $11) ) ) (if @@ -2330,12 +2315,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $11) + (get_local $9) (get_local $10) ) (i32.store offset=24 (get_local $10) - (get_local $11) + (get_local $9) ) ) ) @@ -2346,40 +2331,40 @@ (block $do-once$29 (if (i32.ge_u - (get_local $6) + (get_local $4) (i32.const 16) ) (block (i32.store offset=4 - (get_local $12) + (get_local $11) (i32.or (get_local $2) (i32.const 3) ) ) (i32.store offset=4 - (get_local $4) + (get_local $7) (i32.or - (get_local $6) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add + (get_local $7) (get_local $4) - (get_local $6) ) - (get_local $6) + (get_local $4) ) (set_local $5 (i32.shr_u - (get_local $6) + (get_local $4) (i32.const 3) ) ) (if (i32.lt_u - (get_local $6) + (get_local $4) (i32.const 256) ) (block @@ -2397,12 +2382,12 @@ ) (if (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 176) ) ) - (tee_local $0 + (tee_local $8 (i32.shl (i32.const 1) (get_local $5) @@ -2411,7 +2396,7 @@ ) (if (i32.lt_u - (tee_local $7 + (tee_local $16 (i32.load (tee_local $5 (i32.add @@ -2431,7 +2416,7 @@ (get_local $5) ) (set_local $26 - (get_local $7) + (get_local $16) ) ) ) @@ -2439,8 +2424,8 @@ (i32.store (i32.const 176) (i32.or - (get_local $1) (get_local $0) + (get_local $8) ) ) (set_local $14 @@ -2456,18 +2441,18 @@ ) (i32.store (get_local $14) - (get_local $4) + (get_local $7) ) (i32.store offset=12 (get_local $26) - (get_local $4) + (get_local $7) ) (i32.store offset=8 - (get_local $4) + (get_local $7) (get_local $26) ) (i32.store offset=12 - (get_local $4) + (get_local $7) (get_local $10) ) (br $do-once$29) @@ -2477,24 +2462,24 @@ (i32.add (i32.const 480) (i32.shl - (tee_local $8 + (tee_local $3 (if (tee_local $10 (i32.shr_u - (get_local $6) + (get_local $4) (i32.const 8) ) ) (if (i32.gt_u - (get_local $6) + (get_local $4) (i32.const 16777215) ) (i32.const 31) (i32.or (i32.and (i32.shr_u - (get_local $6) + (get_local $4) (i32.add (tee_local $5 (i32.add @@ -2506,10 +2491,10 @@ (i32.and (i32.shr_u (i32.add - (tee_local $1 + (tee_local $0 (i32.shl (get_local $10) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u (i32.add @@ -2530,15 +2515,15 @@ (i32.const 4) ) ) - (get_local $0) + (get_local $8) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u (i32.add - (tee_local $7 + (tee_local $16 (i32.shl - (get_local $1) + (get_local $0) (get_local $10) ) ) @@ -2553,8 +2538,8 @@ ) (i32.shr_u (i32.shl - (get_local $7) - (get_local $1) + (get_local $16) + (get_local $0) ) (i32.const 15) ) @@ -2579,34 +2564,34 @@ ) ) (i32.store offset=28 - (get_local $4) - (get_local $8) + (get_local $7) + (get_local $3) ) (i32.store offset=4 - (tee_local $1 + (tee_local $0 (i32.add - (get_local $4) + (get_local $7) (i32.const 16) ) ) (i32.const 0) ) (i32.store - (get_local $1) + (get_local $0) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 180) ) ) - (tee_local $7 + (tee_local $16 (i32.shl (i32.const 1) - (get_local $8) + (get_local $3) ) ) ) @@ -2615,49 +2600,49 @@ (i32.store (i32.const 180) (i32.or - (get_local $1) - (get_local $7) + (get_local $0) + (get_local $16) ) ) (i32.store (get_local $5) - (get_local $4) + (get_local $7) ) (i32.store offset=24 - (get_local $4) + (get_local $7) (get_local $5) ) (i32.store offset=12 - (get_local $4) - (get_local $4) + (get_local $7) + (get_local $7) ) (i32.store offset=8 - (get_local $4) - (get_local $4) + (get_local $7) + (get_local $7) ) (br $do-once$29) ) ) - (set_local $7 + (set_local $16 (i32.shl - (get_local $6) + (get_local $4) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $8) + (get_local $3) (i32.const 1) ) ) (i32.eq - (get_local $8) + (get_local $3) (i32.const 31) ) ) ) ) - (set_local $1 + (set_local $0 (i32.load (get_local $5) ) @@ -2668,34 +2653,34 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $1) + (get_local $0) ) (i32.const -8) ) - (get_local $6) + (get_local $4) ) (block (set_local $15 - (get_local $1) + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 148) ) (br $while-out$31) ) ) (if - (tee_local $0 + (tee_local $8 (i32.load (tee_local $5 (i32.add (i32.add - (get_local $1) + (get_local $0) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $7) + (get_local $16) (i32.const 31) ) (i32.const 2) @@ -2705,35 +2690,34 @@ ) ) (block - (set_local $7 + (set_local $16 (i32.shl - (get_local $7) + (get_local $16) (i32.const 1) ) ) - (set_local $1 - (get_local $0) + (set_local $0 + (get_local $8) ) + (br $while-in$32) ) (block (set_local $23 (get_local $5) ) (set_local $21 - (get_local $1) + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 145) ) - (br $while-out$31) ) ) - (br $while-in$32) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 145) ) (if @@ -2747,33 +2731,33 @@ (block (i32.store (get_local $23) - (get_local $4) + (get_local $7) ) (i32.store offset=24 - (get_local $4) + (get_local $7) (get_local $21) ) (i32.store offset=12 - (get_local $4) - (get_local $4) + (get_local $7) + (get_local $7) ) (i32.store offset=8 - (get_local $4) - (get_local $4) + (get_local $7) + (get_local $7) ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 148) ) (if (i32.and (i32.ge_u - (tee_local $7 + (tee_local $16 (i32.load - (tee_local $1 + (tee_local $0 (i32.add (get_local $15) (i32.const 8) @@ -2781,7 +2765,7 @@ ) ) ) - (tee_local $0 + (tee_local $8 (i32.load (i32.const 192) ) @@ -2789,28 +2773,28 @@ ) (i32.ge_u (get_local $15) - (get_local $0) + (get_local $8) ) ) (block (i32.store offset=12 + (get_local $16) (get_local $7) - (get_local $4) ) (i32.store - (get_local $1) - (get_local $4) + (get_local $0) + (get_local $7) ) (i32.store offset=8 - (get_local $4) (get_local $7) + (get_local $16) ) (i32.store offset=12 - (get_local $4) + (get_local $7) (get_local $15) ) (i32.store offset=24 - (get_local $4) + (get_local $7) (i32.const 0) ) ) @@ -2821,11 +2805,11 @@ ) (block (i32.store offset=4 - (get_local $12) + (get_local $11) (i32.or - (tee_local $7 + (tee_local $16 (i32.add - (get_local $6) + (get_local $4) (get_local $2) ) ) @@ -2833,18 +2817,18 @@ ) ) (i32.store - (tee_local $1 + (tee_local $0 (i32.add (i32.add - (get_local $12) - (get_local $7) + (get_local $11) + (get_local $16) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $1) + (get_local $0) ) (i32.const 1) ) @@ -2854,22 +2838,22 @@ ) (return (i32.add - (get_local $12) + (get_local $11) (i32.const 8) ) ) ) - (set_local $0 + (set_local $8 (get_local $2) ) ) ) - (set_local $0 + (set_local $8 (get_local $2) ) ) ) - (set_local $0 + (set_local $8 (i32.const -1) ) ) @@ -2877,12 +2861,12 @@ ) (if (i32.ge_u - (tee_local $12 + (tee_local $11 (i32.load (i32.const 184) ) ) - (get_local $0) + (get_local $8) ) (block (set_local $15 @@ -2892,10 +2876,10 @@ ) (if (i32.gt_u - (tee_local $6 + (tee_local $4 (i32.sub - (get_local $12) - (get_local $0) + (get_local $11) + (get_local $8) ) ) (i32.const 15) @@ -2906,32 +2890,32 @@ (tee_local $21 (i32.add (get_local $15) - (get_local $0) + (get_local $8) ) ) ) (i32.store (i32.const 184) - (get_local $6) + (get_local $4) ) (i32.store offset=4 (get_local $21) (i32.or - (get_local $6) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add (get_local $21) - (get_local $6) + (get_local $4) ) - (get_local $6) + (get_local $4) ) (i32.store offset=4 (get_local $15) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) @@ -2948,23 +2932,23 @@ (i32.store offset=4 (get_local $15) (i32.or - (get_local $12) + (get_local $11) (i32.const 3) ) ) (i32.store - (tee_local $6 + (tee_local $4 (i32.add (i32.add (get_local $15) - (get_local $12) + (get_local $11) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $6) + (get_local $4) ) (i32.const 1) ) @@ -2986,42 +2970,42 @@ (i32.const 188) ) ) - (get_local $0) + (get_local $8) ) (block (i32.store (i32.const 188) - (tee_local $6 + (tee_local $4 (i32.sub (get_local $15) - (get_local $0) + (get_local $8) ) ) ) (i32.store (i32.const 200) - (tee_local $12 + (tee_local $11 (i32.add (tee_local $15 (i32.load (i32.const 200) ) ) - (get_local $0) + (get_local $8) ) ) ) (i32.store offset=4 - (get_local $12) + (get_local $11) (i32.or - (get_local $6) + (get_local $4) (i32.const 1) ) ) (i32.store offset=4 (get_local $15) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) @@ -3094,24 +3078,24 @@ ) (set_local $15 (i32.add - (get_local $0) + (get_local $8) (i32.const 48) ) ) (if (i32.le_u - (tee_local $6 + (tee_local $4 (i32.and (tee_local $21 (i32.add - (tee_local $6 + (tee_local $4 (i32.load (i32.const 656) ) ) - (tee_local $12 + (tee_local $11 (i32.add - (get_local $0) + (get_local $8) (i32.const 47) ) ) @@ -3120,12 +3104,12 @@ (tee_local $23 (i32.sub (i32.const 0) - (get_local $6) + (get_local $4) ) ) ) ) - (get_local $0) + (get_local $8) ) (return (i32.const 0) @@ -3134,7 +3118,7 @@ (if (if (i32.ne - (tee_local $8 + (tee_local $3 (i32.load (i32.const 616) ) @@ -3150,14 +3134,14 @@ (i32.const 608) ) ) - (get_local $6) + (get_local $4) ) ) (get_local $26) ) (i32.gt_u (get_local $14) - (get_local $8) + (get_local $3) ) ) (i32.const 0) @@ -3171,12 +3155,12 @@ (if (select (i32.lt_u - (get_local $6) + (get_local $4) (i32.const 2147483647) ) (i32.const 0) (i32.eq - (tee_local $9 + (tee_local $6 (block $label$break$L257 (if (i32.and @@ -3189,7 +3173,7 @@ (block (block $label$break$L259 (if - (tee_local $8 + (tee_local $3 (i32.load (i32.const 200) ) @@ -3208,13 +3192,13 @@ (get_local $14) ) ) - (get_local $8) + (get_local $3) ) (i32.gt_u (i32.add (get_local $26) (i32.load - (tee_local $11 + (tee_local $9 (i32.add (get_local $14) (i32.const 4) @@ -3222,7 +3206,7 @@ ) ) ) - (get_local $8) + (get_local $3) ) (i32.const 0) ) @@ -3230,28 +3214,23 @@ (set_local $5 (get_local $14) ) - (set_local $7 - (get_local $11) + (set_local $13 + (get_local $9) ) (br $while-out$37) ) ) - (if - (i32.eqz - (tee_local $14 - (i32.load offset=8 - (get_local $14) - ) - ) - ) - (block - (set_local $9 - (i32.const 173) + (br_if $while-in$38 + (tee_local $14 + (i32.load offset=8 + (get_local $14) ) - (br $label$break$L259) ) ) - (br $while-in$38) + (set_local $6 + (i32.const 173) + ) + (br $label$break$L259) ) ) (if @@ -3271,7 +3250,7 @@ ) (if (i32.eq - (tee_local $11 + (tee_local $9 (call_import $_sbrk (get_local $14) ) @@ -3281,18 +3260,18 @@ (get_local $5) ) (i32.load - (get_local $7) + (get_local $13) ) ) ) (if (i32.ne - (get_local $11) + (get_local $9) (i32.const -1) ) (block (set_local $20 - (get_local $11) + (get_local $9) ) (set_local $22 (get_local $14) @@ -3303,20 +3282,20 @@ ) ) (block - (set_local $13 - (get_local $11) + (set_local $12 + (get_local $9) ) - (set_local $17 + (set_local $18 (get_local $14) ) - (set_local $9 + (set_local $6 (i32.const 183) ) ) ) ) ) - (set_local $9 + (set_local $6 (i32.const 173) ) ) @@ -3325,11 +3304,11 @@ (if (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 173) ) (i32.ne - (tee_local $8 + (tee_local $3 (call_import $_sbrk (i32.const 0) ) @@ -3339,10 +3318,10 @@ (i32.const 0) ) (block - (set_local $1 + (set_local $0 (if (i32.and - (tee_local $11 + (tee_local $9 (i32.add (tee_local $14 (i32.load @@ -3353,17 +3332,17 @@ ) ) (tee_local $2 - (get_local $8) + (get_local $3) ) ) (i32.add (i32.sub - (get_local $6) + (get_local $4) (get_local $2) ) (i32.and (i32.add - (get_local $11) + (get_local $9) (get_local $2) ) (i32.sub @@ -3372,7 +3351,7 @@ ) ) ) - (get_local $6) + (get_local $4) ) ) (set_local $2 @@ -3382,17 +3361,17 @@ (i32.const 608) ) ) - (get_local $1) + (get_local $0) ) ) (if (i32.and (i32.gt_u - (get_local $1) (get_local $0) + (get_local $8) ) (i32.lt_u - (get_local $1) + (get_local $0) (i32.const 2147483647) ) ) @@ -3406,7 +3385,7 @@ ) (i32.gt_u (get_local $2) - (tee_local $11 + (tee_local $9 (i32.load (i32.const 616) ) @@ -3415,39 +3394,39 @@ ) (i32.const 0) (i32.ne - (get_local $11) + (get_local $9) (i32.const 0) ) ) ) (if (i32.eq - (tee_local $11 + (tee_local $9 (call_import $_sbrk - (get_local $1) + (get_local $0) ) ) - (get_local $8) + (get_local $3) ) (block (set_local $20 - (get_local $8) + (get_local $3) ) (set_local $22 - (get_local $1) + (get_local $0) ) (br $label$break$L257 (i32.const 193) ) ) (block - (set_local $13 - (get_local $11) + (set_local $12 + (get_local $9) ) - (set_local $17 - (get_local $1) + (set_local $18 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 183) ) ) @@ -3460,14 +3439,14 @@ (block $label$break$L279 (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 183) ) (block - (set_local $11 + (set_local $9 (i32.sub (i32.const 0) - (get_local $17) + (get_local $18) ) ) (if @@ -3475,15 +3454,15 @@ (i32.and (i32.gt_u (get_local $15) - (get_local $17) + (get_local $18) ) (i32.and (i32.lt_u - (get_local $17) + (get_local $18) (i32.const 2147483647) ) (i32.ne - (get_local $13) + (get_local $12) (i32.const -1) ) ) @@ -3493,10 +3472,10 @@ (i32.and (i32.add (i32.sub - (get_local $12) - (get_local $17) + (get_local $11) + (get_local $18) ) - (tee_local $8 + (tee_local $3 (i32.load (i32.const 656) ) @@ -3504,7 +3483,7 @@ ) (i32.sub (i32.const 0) - (get_local $8) + (get_local $3) ) ) ) @@ -3522,33 +3501,33 @@ (block (drop (call_import $_sbrk - (get_local $11) + (get_local $9) ) ) (br $label$break$L279) ) - (set_local $3 + (set_local $1 (i32.add (get_local $2) - (get_local $17) + (get_local $18) ) ) ) - (set_local $3 - (get_local $17) + (set_local $1 + (get_local $18) ) ) (if (i32.ne - (get_local $13) + (get_local $12) (i32.const -1) ) (block (set_local $20 - (get_local $13) + (get_local $12) ) (set_local $22 - (get_local $3) + (get_local $1) ) (br $label$break$L257 (i32.const 193) @@ -3577,12 +3556,12 @@ ) (i32.and (i32.lt_u - (tee_local $3 + (tee_local $1 (call_import $_sbrk - (get_local $6) + (get_local $4) ) ) - (tee_local $6 + (tee_local $4 (call_import $_sbrk (i32.const 0) ) @@ -3590,11 +3569,11 @@ ) (i32.and (i32.ne - (get_local $3) + (get_local $1) (i32.const -1) ) (i32.ne - (get_local $6) + (get_local $4) (i32.const -1) ) ) @@ -3602,14 +3581,14 @@ (i32.const 0) ) (i32.gt_u - (tee_local $13 + (tee_local $12 (i32.sub - (get_local $6) - (get_local $3) + (get_local $4) + (get_local $1) ) ) (i32.add - (get_local $0) + (get_local $8) (i32.const 40) ) ) @@ -3617,25 +3596,25 @@ ) (block (set_local $20 - (get_local $3) + (get_local $1) ) (set_local $22 - (get_local $13) + (get_local $12) ) - (set_local $9 + (set_local $6 (i32.const 193) ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 193) ) (block (i32.store (i32.const 608) - (tee_local $13 + (tee_local $12 (i32.add (i32.load (i32.const 608) @@ -3646,25 +3625,25 @@ ) (if (i32.gt_u - (get_local $13) + (get_local $12) (i32.load (i32.const 612) ) ) (i32.store (i32.const 612) - (get_local $13) + (get_local $12) ) ) (block $do-once$44 (if - (tee_local $13 + (tee_local $12 (i32.load (i32.const 200) ) ) (block - (set_local $3 + (set_local $1 (i32.const 624) ) (loop $do-in$47 @@ -3673,16 +3652,16 @@ (i32.eq (get_local $20) (i32.add - (tee_local $6 + (tee_local $4 (i32.load - (get_local $3) + (get_local $1) ) ) - (tee_local $12 + (tee_local $11 (i32.load - (tee_local $17 + (tee_local $18 (i32.add - (get_local $3) + (get_local $1) (i32.const 4) ) ) @@ -3691,19 +3670,19 @@ ) ) (block + (set_local $46 + (get_local $4) + ) (set_local $47 - (get_local $6) + (get_local $18) ) (set_local $48 - (get_local $17) + (get_local $11) ) (set_local $49 - (get_local $12) - ) - (set_local $50 - (get_local $3) + (get_local $1) ) - (set_local $9 + (set_local $6 (i32.const 203) ) (br $do-out$46) @@ -3711,9 +3690,9 @@ ) (br_if $do-in$47 (i32.ne - (tee_local $3 + (tee_local $1 (i32.load offset=8 - (get_local $3) + (get_local $1) ) ) (i32.const 0) @@ -3725,74 +3704,70 @@ (select (i32.and (i32.lt_u - (get_local $13) + (get_local $12) (get_local $20) ) (i32.ge_u - (get_local $13) - (get_local $47) + (get_local $12) + (get_local $46) ) ) (i32.const 0) (select - (i32.eq + (i32.eqz (i32.and (i32.load offset=12 - (get_local $50) + (get_local $49) ) (i32.const 8) ) - (i32.const 0) ) (i32.const 0) (i32.eq - (get_local $9) + (get_local $6) (i32.const 203) ) ) ) (block (i32.store - (get_local $48) + (get_local $47) (i32.add - (get_local $49) + (get_local $48) (get_local $22) ) ) - (set_local $3 + (set_local $1 (i32.add - (get_local $13) - (tee_local $12 + (get_local $12) + (tee_local $11 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (tee_local $3 + (tee_local $1 (i32.add - (get_local $13) + (get_local $12) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $3) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) ) - (set_local $17 + (set_local $18 (i32.add (i32.sub (get_local $22) - (get_local $12) + (get_local $11) ) (i32.load (i32.const 188) @@ -3801,23 +3776,23 @@ ) (i32.store (i32.const 200) - (get_local $3) + (get_local $1) ) (i32.store (i32.const 188) - (get_local $17) + (get_local $18) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.or - (get_local $17) + (get_local $18) (i32.const 1) ) ) (i32.store offset=4 (i32.add - (get_local $3) - (get_local $17) + (get_local $1) + (get_local $18) ) (i32.const 40) ) @@ -3830,11 +3805,11 @@ (br $do-once$44) ) ) - (set_local $4 + (set_local $17 (if (i32.lt_u (get_local $20) - (tee_local $17 + (tee_local $18 (i32.load (i32.const 192) ) @@ -3847,16 +3822,16 @@ ) (get_local $20) ) - (get_local $17) + (get_local $18) ) ) - (set_local $17 + (set_local $18 (i32.add (get_local $20) (get_local $22) ) ) - (set_local $3 + (set_local $1 (i32.const 624) ) (loop $while-in$49 @@ -3864,50 +3839,44 @@ (if (i32.eq (i32.load - (get_local $3) + (get_local $1) ) - (get_local $17) + (get_local $18) ) (block - (set_local $51 - (get_local $3) + (set_local $50 + (get_local $1) ) - (set_local $41 - (get_local $3) + (set_local $40 + (get_local $1) ) - (set_local $9 + (set_local $6 (i32.const 211) ) (br $while-out$48) ) ) - (if - (i32.eqz - (tee_local $3 - (i32.load offset=8 - (get_local $3) - ) + (br_if $while-in$49 + (tee_local $1 + (i32.load offset=8 + (get_local $1) ) ) - (block - (set_local $28 - (i32.const 624) - ) - (br $while-out$48) - ) ) - (br $while-in$49) + (set_local $28 + (i32.const 624) + ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 211) ) (if (i32.and (i32.load offset=12 - (get_local $41) + (get_local $40) ) (i32.const 8) ) @@ -3916,32 +3885,31 @@ ) (block (i32.store - (get_local $51) + (get_local $50) (get_local $20) ) (i32.store - (tee_local $3 + (tee_local $1 (i32.add - (get_local $41) + (get_local $40) (i32.const 4) ) ) (i32.add (i32.load - (get_local $3) + (get_local $1) ) (get_local $22) ) ) - (set_local $12 + (set_local $11 (i32.add (get_local $20) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (tee_local $3 + (tee_local $1 (i32.add (get_local $20) (i32.const 8) @@ -3950,75 +3918,70 @@ ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $3) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) - (set_local $6 + (set_local $4 (i32.add - (get_local $17) + (get_local $18) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (tee_local $3 + (tee_local $1 (i32.add - (get_local $17) + (get_local $18) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $3) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) - (set_local $3 + (set_local $1 (i32.add - (get_local $12) - (get_local $0) + (get_local $11) + (get_local $8) ) ) (set_local $15 (i32.sub (i32.sub - (get_local $6) - (get_local $12) + (get_local $4) + (get_local $11) ) - (get_local $0) + (get_local $8) ) ) (i32.store offset=4 - (get_local $12) + (get_local $11) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) (block $do-once$50 (if (i32.ne - (get_local $6) - (get_local $13) + (get_local $4) + (get_local $12) ) (block (if (i32.eq - (get_local $6) + (get_local $4) (i32.load (i32.const 196) ) @@ -4026,7 +3989,7 @@ (block (i32.store (i32.const 184) - (tee_local $1 + (tee_local $0 (i32.add (i32.load (i32.const 184) @@ -4037,21 +4000,21 @@ ) (i32.store (i32.const 196) - (get_local $3) + (get_local $1) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.or - (get_local $1) + (get_local $0) (i32.const 1) ) ) (i32.store (i32.add - (get_local $3) (get_local $1) + (get_local $0) ) - (get_local $1) + (get_local $0) ) (br $do-once$50) ) @@ -4062,9 +4025,9 @@ (if (i32.eq (i32.and - (tee_local $1 + (tee_local $0 (i32.load offset=4 - (get_local $6) + (get_local $4) ) ) (i32.const 3) @@ -4072,28 +4035,28 @@ (i32.const 1) ) (block - (set_local $7 + (set_local $13 (i32.and - (get_local $1) + (get_local $0) (i32.const -8) ) ) (set_local $5 (i32.shr_u - (get_local $1) + (get_local $0) (i32.const 3) ) ) (block $label$break$L331 (if (i32.ge_u - (get_local $1) + (get_local $0) (i32.const 256) ) (block (set_local $23 (i32.load offset=24 - (get_local $6) + (get_local $4) ) ) (block $do-once$53 @@ -4101,20 +4064,20 @@ (i32.eq (tee_local $21 (i32.load offset=12 - (get_local $6) + (get_local $4) ) ) - (get_local $6) + (get_local $4) ) (block (if - (tee_local $8 + (tee_local $3 (i32.load (tee_local $2 (i32.add - (tee_local $11 + (tee_local $9 (i32.add - (get_local $6) + (get_local $4) (i32.const 16) ) ) @@ -4125,9 +4088,9 @@ ) (block (set_local $14 - (get_local $8) + (get_local $3) ) - (set_local $11 + (set_local $9 (get_local $2) ) ) @@ -4135,7 +4098,7 @@ (i32.eqz (tee_local $14 (i32.load - (get_local $11) + (get_local $9) ) ) ) @@ -4148,61 +4111,58 @@ ) ) (loop $while-in$56 - (block $while-out$55 - (if - (tee_local $8 - (i32.load - (tee_local $2 - (i32.add - (get_local $14) - (i32.const 20) - ) + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $14) + (i32.const 20) ) ) ) - (block - (set_local $14 - (get_local $8) - ) - (set_local $11 - (get_local $2) - ) - (br $while-in$56) + ) + (block + (set_local $14 + (get_local $3) + ) + (set_local $9 + (get_local $2) ) + (br $while-in$56) ) - (if - (tee_local $8 - (i32.load - (tee_local $2 - (i32.add - (get_local $14) - (i32.const 16) - ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (get_local $14) + (i32.const 16) ) ) ) - (block - (set_local $14 - (get_local $8) - ) - (set_local $11 - (get_local $2) - ) + ) + (block + (set_local $14 + (get_local $3) + ) + (set_local $9 + (get_local $2) ) - (br $while-out$55) + (br $while-in$56) ) - (br $while-in$56) ) ) (if (i32.lt_u - (get_local $11) - (get_local $4) + (get_local $9) + (get_local $17) ) (call_import $_abort) (block (i32.store - (get_local $11) + (get_local $9) (i32.const 0) ) (set_local $24 @@ -4216,46 +4176,46 @@ (i32.lt_u (tee_local $2 (i32.load offset=8 - (get_local $6) + (get_local $4) ) ) - (get_local $4) + (get_local $17) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $8 + (tee_local $3 (i32.add (get_local $2) (i32.const 12) ) ) ) - (get_local $6) + (get_local $4) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $11 + (tee_local $9 (i32.add (get_local $21) (i32.const 8) ) ) ) - (get_local $6) + (get_local $4) ) (block (i32.store - (get_local $8) + (get_local $3) (get_local $21) ) (i32.store - (get_local $11) + (get_local $9) (get_local $2) ) (set_local $24 @@ -4275,7 +4235,7 @@ (block $do-once$57 (if (i32.ne - (get_local $6) + (get_local $4) (i32.load (tee_local $2 (i32.add @@ -4283,7 +4243,7 @@ (i32.shl (tee_local $21 (i32.load offset=28 - (get_local $6) + (get_local $4) ) ) (i32.const 2) @@ -4305,17 +4265,17 @@ (if (i32.eq (i32.load - (tee_local $11 + (tee_local $9 (i32.add (get_local $23) (i32.const 16) ) ) ) - (get_local $6) + (get_local $4) ) (i32.store - (get_local $11) + (get_local $9) (get_local $24) ) (i32.store offset=20 @@ -4372,11 +4332,11 @@ (get_local $23) ) (if - (tee_local $11 + (tee_local $9 (i32.load (tee_local $2 (i32.add - (get_local $6) + (get_local $4) (i32.const 16) ) ) @@ -4384,17 +4344,17 @@ ) (if (i32.lt_u - (get_local $11) + (get_local $9) (get_local $21) ) (call_import $_abort) (block (i32.store offset=16 (get_local $24) - (get_local $11) + (get_local $9) ) (i32.store offset=24 - (get_local $11) + (get_local $9) (get_local $24) ) ) @@ -4402,7 +4362,7 @@ ) (br_if $label$break$L331 (i32.eqz - (tee_local $11 + (tee_local $9 (i32.load offset=4 (get_local $2) ) @@ -4411,7 +4371,7 @@ ) (if (i32.lt_u - (get_local $11) + (get_local $9) (i32.load (i32.const 192) ) @@ -4420,10 +4380,10 @@ (block (i32.store offset=20 (get_local $24) - (get_local $11) + (get_local $9) ) (i32.store offset=24 - (get_local $11) + (get_local $9) (get_local $24) ) ) @@ -4432,15 +4392,15 @@ (block (set_local $21 (i32.load offset=12 - (get_local $6) + (get_local $4) ) ) (block $do-once$61 (if (i32.ne - (tee_local $11 + (tee_local $9 (i32.load offset=8 - (get_local $6) + (get_local $4) ) ) (tee_local $23 @@ -4459,17 +4419,17 @@ (block (if (i32.lt_u - (get_local $11) - (get_local $4) + (get_local $9) + (get_local $17) ) (call_import $_abort) ) (br_if $do-once$61 (i32.eq (i32.load offset=12 - (get_local $11) + (get_local $9) ) - (get_local $6) + (get_local $4) ) ) (call_import $_abort) @@ -4479,7 +4439,7 @@ (if (i32.eq (get_local $21) - (get_local $11) + (get_local $9) ) (block (i32.store @@ -4506,7 +4466,7 @@ (get_local $21) (get_local $23) ) - (set_local $42 + (set_local $41 (i32.add (get_local $21) (i32.const 8) @@ -4516,7 +4476,7 @@ (if (i32.lt_u (get_local $21) - (get_local $4) + (get_local $17) ) (call_import $_abort) ) @@ -4530,10 +4490,10 @@ ) ) ) - (get_local $6) + (get_local $4) ) (block - (set_local $42 + (set_local $41 (get_local $2) ) (br $do-once$63) @@ -4544,28 +4504,28 @@ ) ) (i32.store offset=12 - (get_local $11) + (get_local $9) (get_local $21) ) (i32.store - (get_local $42) - (get_local $11) + (get_local $41) + (get_local $9) ) ) ) ) (set_local $15 (i32.add - (get_local $7) + (get_local $13) (get_local $15) ) ) (i32.add - (get_local $6) - (get_local $7) + (get_local $4) + (get_local $13) ) ) - (get_local $6) + (get_local $4) ) (i32.const 4) ) @@ -4578,7 +4538,7 @@ ) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.or (get_local $15) (i32.const 1) @@ -4586,7 +4546,7 @@ ) (i32.store (i32.add - (get_local $3) + (get_local $1) (get_local $15) ) (get_local $15) @@ -4603,7 +4563,7 @@ (i32.const 256) ) (block - (set_local $1 + (set_local $0 (i32.add (i32.const 216) (i32.shl @@ -4633,11 +4593,11 @@ (block (if (i32.ge_u - (tee_local $8 + (tee_local $3 (i32.load (tee_local $5 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) @@ -4648,11 +4608,11 @@ ) ) (block - (set_local $43 + (set_local $42 (get_local $5) ) - (set_local $35 - (get_local $8) + (set_local $34 + (get_local $3) ) (br $do-once$65) ) @@ -4667,33 +4627,33 @@ (get_local $2) ) ) - (set_local $43 + (set_local $42 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) - (set_local $35 - (get_local $1) + (set_local $34 + (get_local $0) ) ) ) ) (i32.store - (get_local $43) - (get_local $3) + (get_local $42) + (get_local $1) ) (i32.store offset=12 - (get_local $35) - (get_local $3) + (get_local $34) + (get_local $1) ) (i32.store offset=8 - (get_local $3) - (get_local $35) + (get_local $1) + (get_local $34) ) (i32.store offset=12 - (get_local $3) (get_local $1) + (get_local $0) ) (br $do-once$50) ) @@ -4702,7 +4662,7 @@ (i32.add (i32.const 480) (i32.shl - (tee_local $0 + (tee_local $3 (block $do-once$67 (if (tee_local $2 @@ -4730,11 +4690,11 @@ (i32.const 14) (i32.or (i32.or - (tee_local $8 + (tee_local $3 (i32.and (i32.shr_u (i32.add - (tee_local $7 + (tee_local $13 (i32.shl (get_local $2) (tee_local $23 @@ -4760,14 +4720,14 @@ ) (get_local $23) ) - (tee_local $7 + (tee_local $13 (i32.and (i32.shr_u (i32.add (tee_local $5 (i32.shl - (get_local $7) - (get_local $8) + (get_local $13) + (get_local $3) ) ) (i32.const 245760) @@ -4782,7 +4742,7 @@ (i32.shr_u (i32.shl (get_local $5) - (get_local $7) + (get_local $13) ) (i32.const 15) ) @@ -4808,26 +4768,26 @@ ) ) (i32.store offset=28 + (get_local $1) (get_local $3) - (get_local $0) ) (i32.store offset=4 - (tee_local $1 + (tee_local $0 (i32.add - (get_local $3) + (get_local $1) (i32.const 16) ) ) (i32.const 0) ) (i32.store - (get_local $1) + (get_local $0) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 180) ) @@ -4835,7 +4795,7 @@ (tee_local $14 (i32.shl (i32.const 1) - (get_local $0) + (get_local $3) ) ) ) @@ -4844,25 +4804,25 @@ (i32.store (i32.const 180) (i32.or - (get_local $1) + (get_local $0) (get_local $14) ) ) (i32.store (get_local $2) - (get_local $3) + (get_local $1) ) (i32.store offset=24 - (get_local $3) + (get_local $1) (get_local $2) ) (i32.store offset=12 - (get_local $3) - (get_local $3) + (get_local $1) + (get_local $1) ) (i32.store offset=8 - (get_local $3) - (get_local $3) + (get_local $1) + (get_local $1) ) (br $do-once$50) ) @@ -4875,18 +4835,18 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $0) + (get_local $3) (i32.const 1) ) ) (i32.eq - (get_local $0) + (get_local $3) (i32.const 31) ) ) ) ) - (set_local $1 + (set_local $0 (i32.load (get_local $2) ) @@ -4897,29 +4857,29 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $1) + (get_local $0) ) (i32.const -8) ) (get_local $15) ) (block - (set_local $36 - (get_local $1) + (set_local $35 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 281) ) (br $while-out$69) ) ) (if - (tee_local $7 + (tee_local $13 (i32.load (tee_local $2 (i32.add (i32.add - (get_local $1) + (get_local $0) (i32.const 16) ) (i32.shl @@ -4940,34 +4900,33 @@ (i32.const 1) ) ) - (set_local $1 - (get_local $7) + (set_local $0 + (get_local $13) ) + (br $while-in$70) ) (block - (set_local $44 + (set_local $43 (get_local $2) ) - (set_local $52 - (get_local $1) + (set_local $51 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 278) ) - (br $while-out$69) ) ) - (br $while-in$70) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 278) ) (if (i32.lt_u - (get_local $44) + (get_local $43) (i32.load (i32.const 192) ) @@ -4975,26 +4934,26 @@ (call_import $_abort) (block (i32.store - (get_local $44) - (get_local $3) + (get_local $43) + (get_local $1) ) (i32.store offset=24 - (get_local $3) - (get_local $52) + (get_local $1) + (get_local $51) ) (i32.store offset=12 - (get_local $3) - (get_local $3) + (get_local $1) + (get_local $1) ) (i32.store offset=8 - (get_local $3) - (get_local $3) + (get_local $1) + (get_local $1) ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 281) ) (if @@ -5002,44 +4961,44 @@ (i32.ge_u (tee_local $14 (i32.load - (tee_local $1 + (tee_local $0 (i32.add - (get_local $36) + (get_local $35) (i32.const 8) ) ) ) ) - (tee_local $7 + (tee_local $13 (i32.load (i32.const 192) ) ) ) (i32.ge_u - (get_local $36) - (get_local $7) + (get_local $35) + (get_local $13) ) ) (block (i32.store offset=12 (get_local $14) - (get_local $3) + (get_local $1) ) (i32.store + (get_local $0) (get_local $1) - (get_local $3) ) (i32.store offset=8 - (get_local $3) + (get_local $1) (get_local $14) ) (i32.store offset=12 - (get_local $3) - (get_local $36) + (get_local $1) + (get_local $35) ) (i32.store offset=24 - (get_local $3) + (get_local $1) (i32.const 0) ) ) @@ -5062,10 +5021,10 @@ ) (i32.store (i32.const 200) - (get_local $3) + (get_local $1) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.or (get_local $14) (i32.const 1) @@ -5076,7 +5035,7 @@ ) (return (i32.add - (get_local $12) + (get_local $11) (i32.const 8) ) ) @@ -5084,66 +5043,62 @@ ) ) (loop $while-in$72 - (block $while-out$71 + (if (if - (if - (i32.le_u - (tee_local $3 - (i32.load - (get_local $28) - ) + (i32.le_u + (tee_local $1 + (i32.load + (get_local $28) ) - (get_local $13) ) - (i32.gt_u - (tee_local $15 - (i32.add - (get_local $3) - (i32.load offset=4 - (get_local $28) - ) + (get_local $12) + ) + (i32.gt_u + (tee_local $15 + (i32.add + (get_local $1) + (i32.load offset=4 + (get_local $28) ) ) - (get_local $13) ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $15) - ) - (br $while-out$71) + (get_local $12) ) + (i32.const 0) ) - (set_local $28 - (i32.load offset=8 - (get_local $28) + (set_local $0 + (get_local $15) + ) + (block + (set_local $28 + (i32.load offset=8 + (get_local $28) + ) ) + (br $while-in$72) ) - (br $while-in$72) ) ) (set_local $15 (i32.add - (tee_local $12 + (tee_local $11 (i32.add - (get_local $5) + (get_local $0) (i32.const -47) ) ) (i32.const 8) ) ) - (set_local $3 + (set_local $1 (i32.add - (tee_local $12 + (tee_local $11 (select - (get_local $13) - (tee_local $3 + (get_local $12) + (tee_local $1 (i32.add - (get_local $12) + (get_local $11) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) @@ -5151,21 +5106,19 @@ ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $15) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $15) + (i32.const 7) ) ) ) ) (i32.lt_u - (get_local $3) + (get_local $1) (tee_local $15 (i32.add - (get_local $13) + (get_local $12) (i32.const 16) ) ) @@ -5177,16 +5130,15 @@ ) (i32.store (i32.const 200) - (tee_local $6 + (tee_local $4 (i32.add (get_local $20) - (tee_local $17 + (tee_local $18 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (tee_local $6 + (tee_local $4 (i32.add (get_local $20) (i32.const 8) @@ -5195,12 +5147,10 @@ ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $6) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) ) ) @@ -5215,12 +5165,12 @@ (get_local $22) (i32.const -40) ) - (get_local $17) + (get_local $18) ) ) ) (i32.store offset=4 - (get_local $6) + (get_local $4) (i32.or (get_local $14) (i32.const 1) @@ -5228,7 +5178,7 @@ ) (i32.store offset=4 (i32.add - (get_local $6) + (get_local $4) (get_local $14) ) (i32.const 40) @@ -5242,32 +5192,32 @@ (i32.store (tee_local $14 (i32.add - (get_local $12) + (get_local $11) (i32.const 4) ) ) (i32.const 27) ) (i32.store - (get_local $3) + (get_local $1) (i32.load (i32.const 624) ) ) (i32.store offset=4 - (get_local $3) + (get_local $1) (i32.load (i32.const 628) ) ) (i32.store offset=8 - (get_local $3) + (get_local $1) (i32.load (i32.const 632) ) ) (i32.store offset=12 - (get_local $3) + (get_local $1) (i32.load (i32.const 636) ) @@ -5286,19 +5236,19 @@ ) (i32.store (i32.const 632) - (get_local $3) + (get_local $1) ) - (set_local $3 + (set_local $1 (i32.add - (get_local $12) + (get_local $11) (i32.const 24) ) ) (loop $do-in$74 (i32.store - (tee_local $3 + (tee_local $1 (i32.add - (get_local $3) + (get_local $1) (i32.const 4) ) ) @@ -5307,17 +5257,17 @@ (br_if $do-in$74 (i32.lt_u (i32.add - (get_local $3) + (get_local $1) (i32.const 4) ) - (get_local $5) + (get_local $0) ) ) ) (if (i32.ne + (get_local $11) (get_local $12) - (get_local $13) ) (block (i32.store @@ -5330,39 +5280,39 @@ ) ) (i32.store offset=4 - (get_local $13) + (get_local $12) (i32.or - (tee_local $3 + (tee_local $1 (i32.sub + (get_local $11) (get_local $12) - (get_local $13) ) ) (i32.const 1) ) ) (i32.store - (get_local $12) - (get_local $3) + (get_local $11) + (get_local $1) ) - (set_local $6 + (set_local $4 (i32.shr_u - (get_local $3) + (get_local $1) (i32.const 3) ) ) (if (i32.lt_u - (get_local $3) + (get_local $1) (i32.const 256) ) (block - (set_local $17 + (set_local $18 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $6) + (get_local $4) (i32.const 1) ) (i32.const 2) @@ -5371,15 +5321,15 @@ ) (if (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 176) ) ) - (tee_local $7 + (tee_local $13 (i32.shl (i32.const 1) - (get_local $6) + (get_local $4) ) ) ) @@ -5387,9 +5337,9 @@ (i32.lt_u (tee_local $2 (i32.load - (tee_local $6 + (tee_local $4 (i32.add - (get_local $17) + (get_local $18) (i32.const 8) ) ) @@ -5401,10 +5351,10 @@ ) (call_import $_abort) (block - (set_local $45 - (get_local $6) + (set_local $44 + (get_local $4) ) - (set_local $37 + (set_local $36 (get_local $2) ) ) @@ -5413,81 +5363,81 @@ (i32.store (i32.const 176) (i32.or - (get_local $1) - (get_local $7) + (get_local $0) + (get_local $13) ) ) - (set_local $45 + (set_local $44 (i32.add - (get_local $17) + (get_local $18) (i32.const 8) ) ) - (set_local $37 - (get_local $17) + (set_local $36 + (get_local $18) ) ) ) (i32.store - (get_local $45) - (get_local $13) + (get_local $44) + (get_local $12) ) (i32.store offset=12 - (get_local $37) - (get_local $13) + (get_local $36) + (get_local $12) ) (i32.store offset=8 - (get_local $13) - (get_local $37) + (get_local $12) + (get_local $36) ) (i32.store offset=12 - (get_local $13) - (get_local $17) + (get_local $12) + (get_local $18) ) (br $do-once$44) ) ) - (set_local $6 + (set_local $4 (i32.add (i32.const 480) (i32.shl - (tee_local $5 + (tee_local $3 (if - (tee_local $17 + (tee_local $18 (i32.shr_u - (get_local $3) + (get_local $1) (i32.const 8) ) ) (if (i32.gt_u - (get_local $3) + (get_local $1) (i32.const 16777215) ) (i32.const 31) (i32.or (i32.and (i32.shr_u - (get_local $3) + (get_local $1) (i32.add - (tee_local $6 + (tee_local $4 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $17 + (tee_local $18 (i32.and (i32.shr_u (i32.add - (tee_local $1 + (tee_local $0 (i32.shl - (get_local $17) - (tee_local $7 + (get_local $18) + (tee_local $13 (i32.and (i32.shr_u (i32.add - (get_local $17) + (get_local $18) (i32.const 1048320) ) (i32.const 16) @@ -5504,16 +5454,16 @@ (i32.const 4) ) ) - (get_local $7) + (get_local $13) ) - (tee_local $1 + (tee_local $0 (i32.and (i32.shr_u (i32.add (tee_local $2 (i32.shl - (get_local $1) - (get_local $17) + (get_local $0) + (get_local $18) ) ) (i32.const 245760) @@ -5528,7 +5478,7 @@ (i32.shr_u (i32.shl (get_local $2) - (get_local $1) + (get_local $0) ) (i32.const 15) ) @@ -5540,7 +5490,7 @@ (i32.const 1) ) (i32.shl - (get_local $6) + (get_local $4) (i32.const 1) ) ) @@ -5553,11 +5503,11 @@ ) ) (i32.store offset=28 - (get_local $13) - (get_local $5) + (get_local $12) + (get_local $3) ) (i32.store offset=20 - (get_local $13) + (get_local $12) (i32.const 0) ) (i32.store @@ -5567,7 +5517,7 @@ (if (i32.eqz (i32.and - (tee_local $1 + (tee_local $0 (i32.load (i32.const 180) ) @@ -5575,7 +5525,7 @@ (tee_local $2 (i32.shl (i32.const 1) - (get_local $5) + (get_local $3) ) ) ) @@ -5584,51 +5534,51 @@ (i32.store (i32.const 180) (i32.or - (get_local $1) + (get_local $0) (get_local $2) ) ) (i32.store - (get_local $6) - (get_local $13) + (get_local $4) + (get_local $12) ) (i32.store offset=24 - (get_local $13) - (get_local $6) + (get_local $12) + (get_local $4) ) (i32.store offset=12 - (get_local $13) - (get_local $13) + (get_local $12) + (get_local $12) ) (i32.store offset=8 - (get_local $13) - (get_local $13) + (get_local $12) + (get_local $12) ) (br $do-once$44) ) ) (set_local $2 (i32.shl - (get_local $3) + (get_local $1) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $5) + (get_local $3) (i32.const 1) ) ) (i32.eq - (get_local $5) + (get_local $3) (i32.const 31) ) ) ) ) - (set_local $1 + (set_local $0 (i32.load - (get_local $6) + (get_local $4) ) ) (loop $while-in$76 @@ -5637,29 +5587,29 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $1) + (get_local $0) ) (i32.const -8) ) - (get_local $3) + (get_local $1) ) (block - (set_local $38 - (get_local $1) + (set_local $37 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 307) ) (br $while-out$75) ) ) (if - (tee_local $7 + (tee_local $13 (i32.load - (tee_local $6 + (tee_local $4 (i32.add (i32.add - (get_local $1) + (get_local $0) (i32.const 16) ) (i32.shl @@ -5680,34 +5630,33 @@ (i32.const 1) ) ) - (set_local $1 - (get_local $7) + (set_local $0 + (get_local $13) ) + (br $while-in$76) ) (block - (set_local $46 - (get_local $6) + (set_local $45 + (get_local $4) ) - (set_local $53 - (get_local $1) + (set_local $52 + (get_local $0) ) - (set_local $9 + (set_local $6 (i32.const 304) ) - (br $while-out$75) ) ) - (br $while-in$76) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 304) ) (if (i32.lt_u - (get_local $46) + (get_local $45) (i32.load (i32.const 192) ) @@ -5715,26 +5664,26 @@ (call_import $_abort) (block (i32.store - (get_local $46) - (get_local $13) + (get_local $45) + (get_local $12) ) (i32.store offset=24 - (get_local $13) - (get_local $53) + (get_local $12) + (get_local $52) ) (i32.store offset=12 - (get_local $13) - (get_local $13) + (get_local $12) + (get_local $12) ) (i32.store offset=8 - (get_local $13) - (get_local $13) + (get_local $12) + (get_local $12) ) ) ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.const 307) ) (if @@ -5742,44 +5691,44 @@ (i32.ge_u (tee_local $2 (i32.load - (tee_local $1 + (tee_local $0 (i32.add - (get_local $38) + (get_local $37) (i32.const 8) ) ) ) ) - (tee_local $3 + (tee_local $1 (i32.load (i32.const 192) ) ) ) (i32.ge_u - (get_local $38) - (get_local $3) + (get_local $37) + (get_local $1) ) ) (block (i32.store offset=12 (get_local $2) - (get_local $13) + (get_local $12) ) (i32.store - (get_local $1) - (get_local $13) + (get_local $0) + (get_local $12) ) (i32.store offset=8 - (get_local $13) + (get_local $12) (get_local $2) ) (i32.store offset=12 - (get_local $13) - (get_local $38) + (get_local $12) + (get_local $37) ) (i32.store offset=24 - (get_local $13) + (get_local $12) (i32.const 0) ) ) @@ -5793,13 +5742,12 @@ (block (if (i32.or - (i32.eq + (i32.eqz (tee_local $2 (i32.load (i32.const 192) ) ) - (i32.const 0) ) (i32.lt_u (get_local $20) @@ -5838,7 +5786,7 @@ ) (loop $do-in$78 (i32.store offset=12 - (tee_local $1 + (tee_local $0 (i32.add (i32.const 216) (i32.shl @@ -5850,11 +5798,11 @@ ) ) ) - (get_local $1) + (get_local $0) ) (i32.store offset=8 - (get_local $1) - (get_local $1) + (get_local $0) + (get_local $0) ) (br_if $do-in$78 (i32.ne @@ -5873,9 +5821,8 @@ (tee_local $2 (i32.add (get_local $20) - (tee_local $1 + (tee_local $0 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) @@ -5888,12 +5835,10 @@ ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $2) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) ) ) ) @@ -5902,27 +5847,27 @@ ) (i32.store (i32.const 188) - (tee_local $3 + (tee_local $1 (i32.sub (i32.add (get_local $22) (i32.const -40) ) - (get_local $1) + (get_local $0) ) ) ) (i32.store offset=4 (get_local $2) (i32.or - (get_local $3) + (get_local $1) (i32.const 1) ) ) (i32.store offset=4 (i32.add (get_local $2) - (get_local $3) + (get_local $1) ) (i32.const 40) ) @@ -5942,7 +5887,7 @@ (i32.const 188) ) ) - (get_local $0) + (get_local $8) ) (block (i32.store @@ -5950,25 +5895,25 @@ (tee_local $20 (i32.sub (get_local $22) - (get_local $0) + (get_local $8) ) ) ) (i32.store (i32.const 200) - (tee_local $13 + (tee_local $12 (i32.add (tee_local $22 (i32.load (i32.const 200) ) ) - (get_local $0) + (get_local $8) ) ) ) (i32.store offset=4 - (get_local $13) + (get_local $12) (i32.or (get_local $20) (i32.const 1) @@ -5977,7 +5922,7 @@ (i32.store offset=4 (get_local $22) (i32.or - (get_local $0) + (get_local $8) (i32.const 3) ) ) @@ -6043,7 +5988,7 @@ (i32.eq (tee_local $0 (i32.and - (tee_local $9 + (tee_local $3 (i32.load (i32.add (get_local $0) @@ -6061,9 +6006,9 @@ (set_local $8 (i32.add (get_local $1) - (tee_local $3 + (tee_local $4 (i32.and - (get_local $9) + (get_local $3) (i32.const -8) ) ) @@ -6072,7 +6017,7 @@ (block $do-once$0 (if (i32.and - (get_local $9) + (get_local $3) (i32.const 1) ) (block @@ -6080,11 +6025,11 @@ (get_local $1) ) (set_local $7 - (get_local $3) + (get_local $4) ) ) (block - (set_local $9 + (set_local $11 (i32.load (get_local $1) ) @@ -6095,10 +6040,10 @@ ) (return) ) - (set_local $3 + (set_local $4 (i32.add - (get_local $9) - (get_local $3) + (get_local $11) + (get_local $4) ) ) (if @@ -6108,7 +6053,7 @@ (get_local $1) (i32.sub (i32.const 0) - (get_local $9) + (get_local $11) ) ) ) @@ -6127,7 +6072,7 @@ (if (i32.ne (i32.and - (tee_local $5 + (tee_local $6 (i32.load (tee_local $1 (i32.add @@ -6146,48 +6091,48 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) ) (i32.store (i32.const 184) - (get_local $3) + (get_local $4) ) (i32.store (get_local $1) (i32.and - (get_local $5) + (get_local $6) (i32.const -2) ) ) (i32.store offset=4 (get_local $0) (i32.or - (get_local $3) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add (get_local $0) - (get_local $3) + (get_local $4) ) - (get_local $3) + (get_local $4) ) (return) ) ) - (set_local $5 + (set_local $6 (i32.shr_u - (get_local $9) + (get_local $11) (i32.const 3) ) ) (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.const 256) ) (block @@ -6198,17 +6143,17 @@ ) (if (i32.ne - (tee_local $9 + (tee_local $11 (i32.load offset=8 (get_local $0) ) ) - (tee_local $6 + (tee_local $3 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $5) + (get_local $6) (i32.const 1) ) (i32.const 2) @@ -6219,7 +6164,7 @@ (block (if (i32.lt_u - (get_local $9) + (get_local $11) (get_local $14) ) (call_import $_abort) @@ -6227,7 +6172,7 @@ (if (i32.ne (i32.load offset=12 - (get_local $9) + (get_local $11) ) (get_local $0) ) @@ -6238,7 +6183,7 @@ (if (i32.eq (get_local $1) - (get_local $9) + (get_local $11) ) (block (i32.store @@ -6250,7 +6195,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $5) + (get_local $6) ) (i32.const -1) ) @@ -6260,7 +6205,7 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) @@ -6268,7 +6213,7 @@ (if (i32.ne (get_local $1) - (get_local $6) + (get_local $3) ) (block (if @@ -6281,7 +6226,7 @@ (if (i32.eq (i32.load - (tee_local $6 + (tee_local $3 (i32.add (get_local $1) (i32.const 8) @@ -6290,13 +6235,13 @@ ) (get_local $0) ) - (set_local $11 - (get_local $6) + (set_local $10 + (get_local $3) ) (call_import $_abort) ) ) - (set_local $11 + (set_local $10 (i32.add (get_local $1) (i32.const 8) @@ -6304,23 +6249,23 @@ ) ) (i32.store offset=12 - (get_local $9) + (get_local $11) (get_local $1) ) (i32.store + (get_local $10) (get_local $11) - (get_local $9) ) (set_local $2 (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) ) - (set_local $9 + (set_local $11 (i32.load offset=24 (get_local $0) ) @@ -6337,11 +6282,11 @@ ) (block (if - (tee_local $11 + (tee_local $10 (i32.load - (tee_local $5 + (tee_local $6 (i32.add - (tee_local $6 + (tee_local $3 (i32.add (get_local $0) (i32.const 16) @@ -6354,22 +6299,22 @@ ) (block (set_local $1 - (get_local $11) + (get_local $10) ) - (set_local $6 - (get_local $5) + (set_local $3 + (get_local $6) ) ) (if (i32.eqz (tee_local $1 (i32.load - (get_local $6) + (get_local $3) ) ) ) (block - (set_local $4 + (set_local $5 (i32.const 0) ) (br $do-once$2) @@ -6377,73 +6322,70 @@ ) ) (loop $while-in$5 - (block $while-out$4 - (if - (tee_local $11 - (i32.load - (tee_local $5 - (i32.add - (get_local $1) - (i32.const 20) - ) + (if + (tee_local $10 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 20) ) ) ) - (block - (set_local $1 - (get_local $11) - ) - (set_local $6 - (get_local $5) - ) - (br $while-in$5) + ) + (block + (set_local $1 + (get_local $10) ) + (set_local $3 + (get_local $6) + ) + (br $while-in$5) ) - (if - (tee_local $11 - (i32.load - (tee_local $5 - (i32.add - (get_local $1) - (i32.const 16) - ) + ) + (if + (tee_local $10 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 16) ) ) ) - (block - (set_local $1 - (get_local $11) - ) - (set_local $6 - (get_local $5) - ) + ) + (block + (set_local $1 + (get_local $10) ) - (block - (set_local $5 - (get_local $1) - ) - (set_local $10 - (get_local $6) - ) - (br $while-out$4) + (set_local $3 + (get_local $6) + ) + (br $while-in$5) + ) + (block + (set_local $6 + (get_local $1) + ) + (set_local $9 + (get_local $3) ) ) - (br $while-in$5) ) ) (if (i32.lt_u - (get_local $10) + (get_local $9) (get_local $14) ) (call_import $_abort) (block (i32.store - (get_local $10) + (get_local $9) (i32.const 0) ) - (set_local $4 - (get_local $5) + (set_local $5 + (get_local $6) ) ) ) @@ -6451,7 +6393,7 @@ (block (if (i32.lt_u - (tee_local $5 + (tee_local $6 (i32.load offset=8 (get_local $0) ) @@ -6463,9 +6405,9 @@ (if (i32.ne (i32.load - (tee_local $11 + (tee_local $10 (i32.add - (get_local $5) + (get_local $6) (i32.const 12) ) ) @@ -6477,7 +6419,7 @@ (if (i32.eq (i32.load - (tee_local $6 + (tee_local $3 (i32.add (get_local $1) (i32.const 8) @@ -6488,14 +6430,14 @@ ) (block (i32.store - (get_local $11) + (get_local $10) (get_local $1) ) (i32.store + (get_local $3) (get_local $6) - (get_local $5) ) - (set_local $4 + (set_local $5 (get_local $1) ) ) @@ -6505,13 +6447,13 @@ ) ) (if - (get_local $9) + (get_local $11) (block (if (i32.eq (get_local $0) (i32.load - (tee_local $5 + (tee_local $6 (i32.add (i32.const 480) (i32.shl @@ -6528,12 +6470,12 @@ ) (block (i32.store + (get_local $6) (get_local $5) - (get_local $4) ) (if (i32.eqz - (get_local $4) + (get_local $5) ) (block (i32.store @@ -6555,7 +6497,7 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) @@ -6564,7 +6506,7 @@ (block (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.load (i32.const 192) ) @@ -6576,7 +6518,7 @@ (i32.load (tee_local $1 (i32.add - (get_local $9) + (get_local $11) (i32.const 16) ) ) @@ -6585,23 +6527,23 @@ ) (i32.store (get_local $1) - (get_local $4) + (get_local $5) ) (i32.store offset=20 - (get_local $9) - (get_local $4) + (get_local $11) + (get_local $5) ) ) (if (i32.eqz - (get_local $4) + (get_local $5) ) (block (set_local $2 (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) (br $do-once$0) ) @@ -6610,7 +6552,7 @@ ) (if (i32.lt_u - (get_local $4) + (get_local $5) (tee_local $1 (i32.load (i32.const 192) @@ -6620,13 +6562,13 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $4) - (get_local $9) + (get_local $5) + (get_local $11) ) (if - (tee_local $6 + (tee_local $3 (i32.load - (tee_local $5 + (tee_local $6 (i32.add (get_local $0) (i32.const 16) @@ -6636,31 +6578,31 @@ ) (if (i32.lt_u - (get_local $6) + (get_local $3) (get_local $1) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $4) - (get_local $6) + (get_local $5) + (get_local $3) ) (i32.store offset=24 - (get_local $6) - (get_local $4) + (get_local $3) + (get_local $5) ) ) ) ) (if - (tee_local $6 + (tee_local $3 (i32.load offset=4 - (get_local $5) + (get_local $6) ) ) (if (i32.lt_u - (get_local $6) + (get_local $3) (i32.load (i32.const 192) ) @@ -6668,18 +6610,18 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $4) - (get_local $6) + (get_local $5) + (get_local $3) ) (i32.store offset=24 - (get_local $6) - (get_local $4) + (get_local $3) + (get_local $5) ) (set_local $2 (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) ) ) @@ -6688,7 +6630,7 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) ) ) @@ -6698,7 +6640,7 @@ (get_local $0) ) (set_local $7 - (get_local $3) + (get_local $4) ) ) ) @@ -6717,7 +6659,7 @@ (i32.and (tee_local $1 (i32.load - (tee_local $3 + (tee_local $4 (i32.add (get_local $8) (i32.const 4) @@ -6737,7 +6679,7 @@ ) (block (i32.store - (get_local $3) + (get_local $4) (i32.and (get_local $1) (i32.const -2) @@ -6772,7 +6714,7 @@ (block (i32.store (i32.const 188) - (tee_local $4 + (tee_local $5 (i32.add (i32.load (i32.const 188) @@ -6788,7 +6730,7 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $4) + (get_local $5) (i32.const 1) ) ) @@ -6822,7 +6764,7 @@ (block (i32.store (i32.const 184) - (tee_local $4 + (tee_local $5 (i32.add (i32.load (i32.const 184) @@ -6838,21 +6780,21 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $4) + (get_local $5) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $4) + (get_local $5) ) - (get_local $4) + (get_local $5) ) (return) ) ) - (set_local $4 + (set_local $5 (i32.add (i32.and (get_local $1) @@ -6874,7 +6816,7 @@ (i32.const 256) ) (block - (set_local $5 + (set_local $6 (i32.load offset=24 (get_local $8) ) @@ -6882,7 +6824,7 @@ (block $do-once$10 (if (i32.eq - (tee_local $10 + (tee_local $9 (i32.load offset=12 (get_local $8) ) @@ -6891,11 +6833,11 @@ ) (block (if - (tee_local $11 + (tee_local $10 (i32.load (tee_local $1 (i32.add - (tee_local $6 + (tee_local $3 (i32.add (get_local $8) (i32.const 16) @@ -6908,9 +6850,9 @@ ) (block (set_local $0 - (get_local $11) + (get_local $10) ) - (set_local $6 + (set_local $3 (get_local $1) ) ) @@ -6918,7 +6860,7 @@ (i32.eqz (tee_local $0 (i32.load - (get_local $6) + (get_local $3) ) ) ) @@ -6931,55 +6873,52 @@ ) ) (loop $while-in$13 - (block $while-out$12 - (if - (tee_local $11 - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 20) - ) + (if + (tee_local $10 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 20) ) ) ) - (block - (set_local $0 - (get_local $11) - ) - (set_local $6 - (get_local $1) - ) - (br $while-in$13) + ) + (block + (set_local $0 + (get_local $10) + ) + (set_local $3 + (get_local $1) ) + (br $while-in$13) ) - (if - (tee_local $11 - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 16) - ) + ) + (if + (tee_local $10 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 16) ) ) ) - (block - (set_local $0 - (get_local $11) - ) - (set_local $6 - (get_local $1) - ) + ) + (block + (set_local $0 + (get_local $10) ) - (br $while-out$12) + (set_local $3 + (get_local $1) + ) + (br $while-in$13) ) - (br $while-in$13) ) ) (if (i32.lt_u - (get_local $6) + (get_local $3) (i32.load (i32.const 192) ) @@ -6987,7 +6926,7 @@ (call_import $_abort) (block (i32.store - (get_local $6) + (get_local $3) (i32.const 0) ) (set_local $12 @@ -7013,7 +6952,7 @@ (if (i32.ne (i32.load - (tee_local $11 + (tee_local $10 (i32.add (get_local $1) (i32.const 12) @@ -7027,9 +6966,9 @@ (if (i32.eq (i32.load - (tee_local $6 + (tee_local $3 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) @@ -7038,15 +6977,15 @@ ) (block (i32.store - (get_local $11) (get_local $10) + (get_local $9) ) (i32.store - (get_local $6) + (get_local $3) (get_local $1) ) (set_local $12 - (get_local $10) + (get_local $9) ) ) (call_import $_abort) @@ -7055,17 +6994,17 @@ ) ) (if - (get_local $5) + (get_local $6) (block (if (i32.eq (get_local $8) (i32.load - (tee_local $3 + (tee_local $4 (i32.add (i32.const 480) (i32.shl - (tee_local $10 + (tee_local $9 (i32.load offset=28 (get_local $8) ) @@ -7078,7 +7017,7 @@ ) (block (i32.store - (get_local $3) + (get_local $4) (get_local $12) ) (if @@ -7095,7 +7034,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $10) + (get_local $9) ) (i32.const -1) ) @@ -7108,7 +7047,7 @@ (block (if (i32.lt_u - (get_local $5) + (get_local $6) (i32.load (i32.const 192) ) @@ -7118,9 +7057,9 @@ (if (i32.eq (i32.load - (tee_local $10 + (tee_local $9 (i32.add - (get_local $5) + (get_local $6) (i32.const 16) ) ) @@ -7128,11 +7067,11 @@ (get_local $8) ) (i32.store - (get_local $10) + (get_local $9) (get_local $12) ) (i32.store offset=20 - (get_local $5) + (get_local $6) (get_local $12) ) ) @@ -7146,7 +7085,7 @@ (if (i32.lt_u (get_local $12) - (tee_local $10 + (tee_local $9 (i32.load (i32.const 192) ) @@ -7156,12 +7095,12 @@ ) (i32.store offset=24 (get_local $12) - (get_local $5) + (get_local $6) ) (if (tee_local $0 (i32.load - (tee_local $3 + (tee_local $4 (i32.add (get_local $8) (i32.const 16) @@ -7172,7 +7111,7 @@ (if (i32.lt_u (get_local $0) - (get_local $10) + (get_local $9) ) (call_import $_abort) (block @@ -7190,7 +7129,7 @@ (if (tee_local $0 (i32.load offset=4 - (get_local $3) + (get_local $4) ) ) (if @@ -7217,7 +7156,7 @@ ) ) (block - (set_local $10 + (set_local $9 (i32.load offset=12 (get_local $8) ) @@ -7229,7 +7168,7 @@ (get_local $8) ) ) - (tee_local $5 + (tee_local $6 (i32.add (i32.const 216) (i32.shl @@ -7265,7 +7204,7 @@ ) (if (i32.eq - (get_local $10) + (get_local $9) (get_local $0) ) (block @@ -7289,13 +7228,13 @@ ) (if (i32.ne - (get_local $10) - (get_local $5) + (get_local $9) + (get_local $6) ) (block (if (i32.lt_u - (get_local $10) + (get_local $9) (i32.load (i32.const 192) ) @@ -7305,9 +7244,9 @@ (if (i32.eq (i32.load - (tee_local $5 + (tee_local $6 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) @@ -7315,21 +7254,21 @@ (get_local $8) ) (set_local $16 - (get_local $5) + (get_local $6) ) (call_import $_abort) ) ) (set_local $16 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) ) (i32.store offset=12 (get_local $0) - (get_local $10) + (get_local $9) ) (i32.store (get_local $16) @@ -7341,16 +7280,16 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $4) + (get_local $5) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $4) + (get_local $5) ) - (get_local $4) + (get_local $5) ) (if (i32.eq @@ -7362,12 +7301,12 @@ (block (i32.store (i32.const 184) - (get_local $4) + (get_local $5) ) (return) ) (set_local $0 - (get_local $4) + (get_local $5) ) ) ) @@ -7398,12 +7337,12 @@ ) (if (i32.and - (tee_local $3 + (tee_local $4 (i32.load (i32.const 176) ) ) - (tee_local $4 + (tee_local $5 (i32.shl (i32.const 1) (get_local $7) @@ -7440,8 +7379,8 @@ (i32.store (i32.const 176) (i32.or - (get_local $3) (get_local $4) + (get_local $5) ) ) (set_local $15 @@ -7474,11 +7413,11 @@ (return) ) ) - (set_local $3 + (set_local $4 (i32.add (i32.const 480) (i32.shl - (tee_local $1 + (tee_local $7 (if (tee_local $1 (i32.shr_u @@ -7497,7 +7436,7 @@ (i32.shr_u (get_local $0) (i32.add - (tee_local $3 + (tee_local $4 (i32.add (i32.sub (i32.const 14) @@ -7537,7 +7476,7 @@ (i32.and (i32.shr_u (i32.add - (tee_local $4 + (tee_local $5 (i32.shl (get_local $15) (get_local $1) @@ -7554,7 +7493,7 @@ ) (i32.shr_u (i32.shl - (get_local $4) + (get_local $5) (get_local $15) ) (i32.const 15) @@ -7567,7 +7506,7 @@ (i32.const 1) ) (i32.shl - (get_local $3) + (get_local $4) (i32.const 1) ) ) @@ -7581,7 +7520,7 @@ ) (i32.store offset=28 (get_local $2) - (get_local $1) + (get_local $7) ) (i32.store offset=20 (get_local $2) @@ -7598,10 +7537,10 @@ (i32.const 180) ) ) - (tee_local $4 + (tee_local $5 (i32.shl (i32.const 1) - (get_local $1) + (get_local $7) ) ) ) @@ -7614,12 +7553,12 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $1) + (get_local $7) (i32.const 1) ) ) (i32.eq - (get_local $1) + (get_local $7) (i32.const 31) ) ) @@ -7627,7 +7566,7 @@ ) (set_local $1 (i32.load - (get_local $3) + (get_local $4) ) ) (loop $while-in$19 @@ -7682,6 +7621,7 @@ (set_local $1 (get_local $7) ) + (br $while-in$19) ) (block (set_local $18 @@ -7693,10 +7633,8 @@ (set_local $0 (i32.const 127) ) - (br $while-out$18) ) ) - (br $while-in$19) ) ) (if @@ -7749,7 +7687,7 @@ ) ) ) - (tee_local $3 + (tee_local $4 (i32.load (i32.const 192) ) @@ -7757,7 +7695,7 @@ ) (i32.ge_u (get_local $17) - (get_local $3) + (get_local $4) ) ) (block @@ -7792,16 +7730,16 @@ (i32.const 180) (i32.or (get_local $15) - (get_local $4) + (get_local $5) ) ) (i32.store - (get_local $3) + (get_local $4) (get_local $2) ) (i32.store offset=24 (get_local $2) - (get_local $3) + (get_local $4) ) (i32.store offset=12 (get_local $2) @@ -7832,22 +7770,21 @@ ) ) (loop $while-in$21 - (block $while-out$20 - (if - (tee_local $2 - (i32.load - (get_local $0) - ) + (if + (tee_local $2 + (i32.load + (get_local $0) ) + ) + (block (set_local $0 (i32.add (get_local $2) (i32.const 8) ) ) - (br $while-out$20) + (br $while-in$21) ) - (br $while-in$21) ) ) (i32.store @@ -7871,8 +7808,7 @@ (local $15 i32) (local $16 i32) (local $17 i32) - (local $18 i32) - (set_local $11 + (set_local $10 (get_global $STACKTOP) ) (set_global $STACKTOP @@ -7881,25 +7817,25 @@ (i32.const 48) ) ) - (set_local $12 + (set_local $11 (i32.add - (get_local $11) + (get_local $10) (i32.const 16) ) ) - (set_local $13 - (get_local $11) + (set_local $12 + (get_local $10) ) (i32.store - (tee_local $3 + (tee_local $4 (i32.add - (get_local $11) + (get_local $10) (i32.const 32) ) ) - (tee_local $8 + (tee_local $7 (i32.load - (tee_local $9 + (tee_local $8 (i32.add (get_local $0) (i32.const 28) @@ -7909,27 +7845,27 @@ ) ) (i32.store offset=4 - (get_local $3) - (tee_local $10 + (get_local $4) + (tee_local $9 (i32.sub (i32.load - (tee_local $14 + (tee_local $13 (i32.add (get_local $0) (i32.const 20) ) ) ) - (get_local $8) + (get_local $7) ) ) ) (i32.store offset=8 - (get_local $3) + (get_local $4) (get_local $1) ) (i32.store offset=12 - (get_local $3) + (get_local $4) (get_local $2) ) (set_local $1 @@ -7938,21 +7874,21 @@ (i32.const 60) ) ) - (set_local $8 + (set_local $7 (i32.add (get_local $0) (i32.const 44) ) ) - (set_local $4 - (get_local $3) + (set_local $5 + (get_local $4) ) - (set_local $3 + (set_local $4 (i32.const 2) ) - (set_local $5 + (set_local $3 (i32.add - (get_local $10) + (get_local $9) (get_local $2) ) ) @@ -7960,7 +7896,7 @@ (block $while-out$0 (if (i32.eq - (get_local $5) + (get_local $3) (tee_local $6 (if (i32.load @@ -7972,51 +7908,51 @@ (get_local $0) ) (i32.store - (get_local $13) + (get_local $12) (i32.load (get_local $1) ) ) (i32.store offset=4 - (get_local $13) - (get_local $4) + (get_local $12) + (get_local $5) ) (i32.store offset=8 - (get_local $13) - (get_local $3) + (get_local $12) + (get_local $4) ) - (set_local $10 + (set_local $9 (call $___syscall_ret (call_import $___syscall146 (i32.const 146) - (get_local $13) + (get_local $12) ) ) ) (call_import $_pthread_cleanup_pop (i32.const 0) ) - (get_local $10) + (get_local $9) ) (block (i32.store - (get_local $12) + (get_local $11) (i32.load (get_local $1) ) ) (i32.store offset=4 - (get_local $12) - (get_local $4) + (get_local $11) + (get_local $5) ) (i32.store offset=8 - (get_local $12) - (get_local $3) + (get_local $11) + (get_local $4) ) (call $___syscall_ret (call_import $___syscall146 (i32.const 146) - (get_local $12) + (get_local $11) ) ) ) @@ -8036,130 +7972,125 @@ (i32.const 0) ) (block + (set_local $16 + (get_local $5) + ) (set_local $17 (get_local $4) ) - (set_local $18 - (get_local $3) - ) (set_local $1 (i32.const 8) ) - (br $while-out$0) - ) - ) - (set_local $10 - (i32.sub - (get_local $5) - (get_local $6) ) - ) - (set_local $3 - (if - (i32.le_u - (get_local $6) - (tee_local $5 - (i32.load offset=4 - (get_local $4) - ) - ) - ) - (if - (i32.eq + (block + (set_local $9 + (i32.sub (get_local $3) - (i32.const 2) + (get_local $6) ) - (block - (i32.store - (get_local $9) - (i32.add - (i32.load - (get_local $9) + ) + (set_local $5 + (if + (i32.le_u + (get_local $6) + (tee_local $14 + (i32.load offset=4 + (get_local $5) ) - (get_local $6) ) ) - (set_local $7 - (get_local $4) - ) - (set_local $15 - (i32.const 2) - ) - (get_local $5) - ) - (block - (set_local $7 - (get_local $4) - ) - (set_local $15 - (get_local $3) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $8) + (i32.add + (i32.load + (get_local $8) + ) + (get_local $6) + ) + ) + (set_local $3 + (get_local $5) + ) + (set_local $4 + (i32.const 2) + ) + (get_local $14) + ) + (block + (set_local $3 + (get_local $5) + ) + (get_local $14) + ) ) - (get_local $5) - ) - ) - (block - (i32.store - (get_local $9) - (tee_local $7 - (i32.load + (block + (i32.store (get_local $8) + (tee_local $3 + (i32.load + (get_local $7) + ) + ) + ) + (i32.store + (get_local $13) + (get_local $3) + ) + (set_local $6 + (i32.sub + (get_local $6) + (get_local $14) + ) + ) + (set_local $3 + (i32.add + (get_local $5) + (i32.const 8) + ) + ) + (set_local $4 + (i32.add + (get_local $4) + (i32.const -1) + ) + ) + (i32.load offset=12 + (get_local $5) ) ) ) - (i32.store - (get_local $14) - (get_local $7) - ) - (set_local $6 - (i32.sub - (get_local $6) - (get_local $5) - ) - ) - (set_local $7 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $15 - (i32.add + ) + (i32.store + (get_local $3) + (i32.add + (i32.load (get_local $3) - (i32.const -1) ) + (get_local $6) ) - (i32.load offset=12 - (get_local $4) + ) + (i32.store offset=4 + (get_local $3) + (i32.sub + (get_local $5) + (get_local $6) ) ) - ) - ) - (i32.store - (get_local $7) - (i32.add - (i32.load - (get_local $7) + (set_local $5 + (get_local $3) ) - (get_local $6) - ) - ) - (i32.store offset=4 - (get_local $7) - (i32.sub - (get_local $3) - (get_local $6) + (set_local $3 + (get_local $9) + ) + (br $while-in$1) ) ) - (set_local $4 - (get_local $7) - ) - (set_local $3 - (get_local $15) - ) - (set_local $5 - (get_local $10) - ) - (br $while-in$1) ) ) (if @@ -8171,9 +8102,9 @@ (i32.store offset=16 (get_local $0) (i32.add - (tee_local $5 + (tee_local $3 (i32.load - (get_local $8) + (get_local $7) ) ) (i32.load offset=48 @@ -8182,16 +8113,16 @@ ) ) (i32.store - (get_local $9) - (tee_local $8 - (get_local $5) + (get_local $8) + (tee_local $7 + (get_local $3) ) ) (i32.store - (get_local $14) - (get_local $8) + (get_local $13) + (get_local $7) ) - (set_local $16 + (set_local $15 (get_local $2) ) ) @@ -8206,11 +8137,11 @@ (i32.const 0) ) (i32.store - (get_local $9) + (get_local $8) (i32.const 0) ) (i32.store - (get_local $14) + (get_local $13) (i32.const 0) ) (i32.store @@ -8222,17 +8153,17 @@ (i32.const 32) ) ) - (set_local $16 + (set_local $15 (select (i32.const 0) (i32.sub (get_local $2) (i32.load offset=4 - (get_local $17) + (get_local $16) ) ) (i32.eq - (get_local $18) + (get_local $17) (i32.const 2) ) ) @@ -8241,9 +8172,9 @@ ) ) (set_global $STACKTOP - (get_local $11) + (get_local $10) ) - (get_local $16) + (get_local $15) ) (func $___fwritex (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8263,10 +8194,10 @@ ) ) (block - (set_local $7 + (set_local $6 (get_local $5) ) - (set_local $6 + (set_local $7 (i32.const 5) ) ) @@ -8278,12 +8209,12 @@ (i32.const 0) ) (block - (set_local $7 + (set_local $6 (i32.load (get_local $3) ) ) - (set_local $6 + (set_local $7 (i32.const 5) ) ) @@ -8292,11 +8223,11 @@ (block $label$break$L5 (if (i32.eq - (get_local $6) + (get_local $7) (i32.const 5) ) (block - (set_local $6 + (set_local $4 (tee_local $3 (i32.load (tee_local $5 @@ -8311,7 +8242,7 @@ (if (i32.lt_u (i32.sub - (get_local $7) + (get_local $6) (get_local $3) ) (get_local $1) @@ -8336,7 +8267,7 @@ (br $label$break$L5) ) ) - (set_local $0 + (set_local $1 (block $label$break$L10 (if (i32.gt_s @@ -8350,57 +8281,48 @@ (get_local $1) ) (loop $while-in$3 - (block $while-out$2 - (if - (i32.eqz - (get_local $3) + (if + (i32.eqz + (get_local $3) + ) + (block + (set_local $2 + (i32.const 0) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $3 - (i32.const 0) - ) - (br $label$break$L10 - (get_local $1) - ) + (br $label$break$L10 + (get_local $1) ) ) - (if - (i32.eq - (i32.load8_s - (i32.add - (get_local $0) - (tee_local $7 - (i32.add - (get_local $3) - (i32.const -1) - ) + ) + (if + (i32.ne + (i32.load8_s + (i32.add + (get_local $0) + (tee_local $6 + (i32.add + (get_local $3) + (i32.const -1) ) ) ) - (i32.const 10) - ) - (block - (set_local $4 - (get_local $3) - ) - (br $while-out$2) ) + (i32.const 10) + ) + (block (set_local $3 - (get_local $7) + (get_local $6) ) + (br $while-in$3) ) - (br $while-in$3) ) ) - (br_if $label$break$L5 + (if (i32.lt_u (call_indirect $FUNCSIG$iiii (get_local $2) (get_local $0) - (get_local $4) + (get_local $3) (i32.add (i32.and (i32.load offset=36 @@ -8411,33 +8333,36 @@ (i32.const 2) ) ) - (get_local $4) + (get_local $3) + ) + (block + (set_local $4 + (get_local $3) + ) + (br $label$break$L5) ) ) - (set_local $2 + (set_local $0 (i32.add (get_local $0) - (get_local $4) + (get_local $3) ) ) - (set_local $6 + (set_local $4 (i32.load (get_local $5) ) ) - (set_local $3 - (get_local $4) + (set_local $2 + (get_local $3) ) (i32.sub (get_local $1) - (get_local $4) + (get_local $3) ) ) (block (set_local $2 - (get_local $0) - ) - (set_local $3 (i32.const 0) ) (get_local $1) @@ -8447,9 +8372,9 @@ ) (drop (call $_memcpy - (get_local $6) - (get_local $2) + (get_local $4) (get_local $0) + (get_local $1) ) ) (i32.store @@ -8458,13 +8383,13 @@ (i32.load (get_local $5) ) - (get_local $0) + (get_local $1) ) ) (set_local $4 (i32.add - (get_local $3) - (get_local $0) + (get_local $2) + (get_local $1) ) ) ) @@ -8493,11 +8418,10 @@ ) ) (set_local $1 - (i32.eq + (i32.eqz (call $___lockfile (get_local $0) ) - (i32.const 0) ) ) (set_local $2 @@ -8547,70 +8471,62 @@ (get_local $0) ) (loop $while-in$3 - (block $while-out$2 - (set_local $0 - (if - (i32.gt_s - (i32.load offset=76 - (get_local $1) - ) - (i32.const -1) - ) - (call $___lockfile + (set_local $0 + (if + (i32.gt_s + (i32.load offset=76 (get_local $1) ) - (i32.const 0) - ) - ) - (set_local $2 - (if - (i32.gt_u - (i32.load offset=20 - (get_local $1) - ) - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.or - (call $___fflush_unlocked - (get_local $1) - ) - (get_local $2) - ) - (get_local $2) + (i32.const -1) ) - ) - (if - (get_local $0) - (call $___unlockfile + (call $___lockfile (get_local $1) ) + (i32.const 0) ) + ) + (set_local $2 (if - (i32.eqz - (tee_local $1 - (i32.load offset=56 - (get_local $1) - ) + (i32.gt_u + (i32.load offset=20 + (get_local $1) + ) + (i32.load offset=28 + (get_local $1) ) ) - (block - (set_local $0 - (get_local $2) + (i32.or + (call $___fflush_unlocked + (get_local $1) ) - (br $while-out$2) + (get_local $2) + ) + (get_local $2) + ) + ) + (if + (get_local $0) + (call $___unlockfile + (get_local $1) + ) + ) + (br_if $while-in$3 + (tee_local $1 + (i32.load offset=56 + (get_local $1) ) ) - (br $while-in$3) ) ) ) + (set_local $2 + (get_local $0) + ) ) (call_import $___unlock (i32.const 36) ) - (get_local $0) + (get_local $2) ) ) ) @@ -8634,53 +8550,47 @@ (get_local $3) ) (loop $while-in$2 - (block $while-out$1 - (if - (i32.eqz - (i32.load8_s - (get_local $0) - ) + (if + (i32.eqz + (i32.load8_s + (get_local $0) ) - (block - (set_local $5 - (get_local $4) - ) - (br $label$break$L1) + ) + (block + (set_local $5 + (get_local $4) ) + (br $label$break$L1) ) - (if - (i32.eqz - (i32.and - (tee_local $4 - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) + ) + (br_if $while-in$2 + (i32.and + (tee_local $4 + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) ) - (i32.const 3) ) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $1 - (i32.const 4) - ) - (br $while-out$1) - ) + (i32.const 3) + ) + ) + (block + (set_local $1 + (get_local $0) + ) + (set_local $2 + (i32.const 4) ) - (br $while-in$2) ) ) ) (block - (set_local $2 + (set_local $1 (get_local $0) ) - (set_local $1 + (set_local $2 (i32.const 4) ) ) @@ -8688,49 +8598,51 @@ ) (if (i32.eq - (get_local $1) + (get_local $2) (i32.const 4) ) (block - (set_local $1 - (get_local $2) + (set_local $2 + (get_local $1) ) (loop $while-in$4 - (block $while-out$3 - (if - (i32.and - (i32.xor - (i32.and - (tee_local $2 - (i32.load - (get_local $1) - ) + (if + (i32.and + (i32.xor + (i32.and + (tee_local $1 + (i32.load + (get_local $2) ) - (i32.const -2139062144) ) (i32.const -2139062144) ) - (i32.add - (get_local $2) - (i32.const -16843009) - ) + (i32.const -2139062144) ) - (br $while-out$3) - (set_local $1 + (i32.add + (get_local $1) + (i32.const -16843009) + ) + ) + (set_local $0 + (get_local $2) + ) + (block + (set_local $2 (i32.add - (get_local $1) + (get_local $2) (i32.const 4) ) ) + (br $while-in$4) ) - (br $while-in$4) ) ) (if (i32.shr_s (i32.shl (i32.and - (get_local $2) + (get_local $1) (i32.const 255) ) (i32.const 24) @@ -8738,32 +8650,31 @@ (i32.const 24) ) (block - (set_local $2 - (get_local $1) + (set_local $1 + (get_local $0) ) (loop $while-in$6 - (block $while-out$5 - (if - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $2) - (i32.const 1) - ) + (if + (i32.load8_s + (tee_local $0 + (i32.add + (get_local $1) + (i32.const 1) ) ) - (set_local $2 - (get_local $1) + ) + (block + (set_local $1 + (get_local $0) ) - (br $while-out$5) + (br $while-in$6) ) - (br $while-in$6) ) ) ) ) (set_local $5 - (get_local $1) + (get_local $0) ) ) ) @@ -8970,11 +8881,10 @@ ) ) ) - (i32.eq + (i32.eqz (i32.load (get_local $1) ) - (i32.const 0) ) ) (i32.const 0) @@ -9004,21 +8914,23 @@ ) ) ) - (call_indirect $FUNCSIG$iiii - (get_local $0) - (i32.sub - (get_local $4) - (get_local $6) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load offset=40 - (get_local $0) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $0) + (i32.sub + (get_local $4) + (get_local $6) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load offset=40 + (get_local $0) + ) + (i32.const 7) ) - (i32.const 7) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -9122,75 +9034,75 @@ ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.lt_s - (get_local $2) - (i32.const 4) - ) - ) - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) + (if + (i32.ge_s + (get_local $2) + (i32.const 4) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (i32.load + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 4) + ) ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.le_s - (get_local $2) - (i32.const 0) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_s - (get_local $1) - ) + (if + (i32.gt_s + (get_local $2) + (i32.const 0) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (i32.load8_s + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (get_local $3) @@ -9265,70 +9177,70 @@ ) ) (loop $while-in$1 - (block $while-out$0 - (br_if $while-out$0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $3) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (br $while-in$1) ) - (br $while-in$1) ) ) ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.ge_s - (get_local $0) - (get_local $6) - ) - ) - (i32.store + (if + (i32.lt_s (get_local $0) - (get_local $5) + (get_local $6) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.ge_s - (get_local $0) - (get_local $4) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $4) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $while-in$5) ) - (br $while-in$5) ) ) (i32.sub @@ -9604,11 +9516,10 @@ ) (block (set_local $5 - (i32.eq + (i32.eqz (call $___lockfile (get_local $3) ) - (i32.const 0) ) ) (set_local $0 @@ -9666,15 +9577,13 @@ ) (if (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 64) + (i32.and + (i32.load + (get_local $0) ) - (i32.const 0) + (i32.const 64) ) + (i32.const 0) (block (i32.store (get_local $3) @@ -9701,7 +9610,6 @@ (i32.const 0) ) ) - (i32.const 0) ) (i32.store8 offset=75 (get_local $0) diff --git a/test/emcc_O2_hello_world.fromasm.imprecise.no-opts b/test/emcc_O2_hello_world.fromasm.imprecise.no-opts index b125481a7..d158d27bf 100644 --- a/test/emcc_O2_hello_world.fromasm.imprecise.no-opts +++ b/test/emcc_O2_hello_world.fromasm.imprecise.no-opts @@ -10632,24 +10632,26 @@ (get_local $i6) (get_local $i8) ) - (call_indirect $FUNCSIG$iiii - (get_local $i1) - (i32.sub - (get_local $i6) - (get_local $i8) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load - (i32.add - (get_local $i1) - (i32.const 40) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $i1) + (i32.sub + (get_local $i6) + (get_local $i8) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load + (i32.add + (get_local $i1) + (i32.const 40) + ) ) + (i32.const 7) ) - (i32.const 7) + (i32.const 2) ) - (i32.const 2) ) ) ) diff --git a/test/emcc_O2_hello_world.fromasm.no-opts b/test/emcc_O2_hello_world.fromasm.no-opts index 4acb5bc87..618b0f593 100644 --- a/test/emcc_O2_hello_world.fromasm.no-opts +++ b/test/emcc_O2_hello_world.fromasm.no-opts @@ -10633,24 +10633,26 @@ (get_local $i6) (get_local $i8) ) - (call_indirect $FUNCSIG$iiii - (get_local $i1) - (i32.sub - (get_local $i6) - (get_local $i8) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load - (i32.add - (get_local $i1) - (i32.const 40) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $i1) + (i32.sub + (get_local $i6) + (get_local $i8) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load + (i32.add + (get_local $i1) + (i32.const 40) + ) ) + (i32.const 7) ) - (i32.const 7) + (i32.const 2) ) - (i32.const 2) ) ) ) diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm index 7cb00db19..a4bf51c56 100644 --- a/test/emcc_hello_world.fromasm +++ b/test/emcc_hello_world.fromasm @@ -139,9 +139,8 @@ ) (func $setThrew (param $0 i32) (param $1 i32) (if - (i32.eq + (i32.eqz (get_global $__THREW__) - (i32.const 0) ) (block (set_global $__THREW__ @@ -381,37 +380,30 @@ (set_local $1 (i32.const 0) ) - (loop $while-in$1 - (block $while-out$0 - (if - (i32.eq - (i32.and - (i32.load8_s offset=687 - (get_local $1) + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 + (loop $while-in$1 + (br_if $jumpthreading$inner$0 + (i32.eq + (i32.and + (i32.load8_s offset=687 + (get_local $1) + ) + (i32.const 255) ) - (i32.const 255) - ) - (get_local $0) - ) - (block - (set_local $4 - (get_local $1) - ) - (set_local $0 - (i32.const 2) + (get_local $0) ) - (br $while-out$0) ) - ) - (if - (i32.eq - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (br_if $while-in$1 + (i32.ne + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) ) + (i32.const 87) ) - (i32.const 87) ) (block (set_local $3 @@ -420,108 +412,72 @@ (set_local $2 (i32.const 775) ) - (set_local $0 + (set_local $4 (i32.const 5) ) - (br $while-out$0) ) ) - (br $while-in$1) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 2) + (br $jumpthreading$outer$0) ) (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (set_local $5 - (i32.const 775) - ) + (get_local $1) (block (set_local $3 - (get_local $4) + (get_local $1) ) (set_local $2 (i32.const 775) ) - (set_local $0 + (set_local $4 (i32.const 5) ) ) + (set_local $5 + (i32.const 775) + ) ) ) (if (i32.eq - (get_local $0) + (get_local $4) (i32.const 5) ) (loop $while-in$3 - (block $while-out$2 - (loop $while-in$5 - (block $while-out$4 - (set_local $0 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - (block - (set_local $1 - (get_local $0) - ) - (br $while-out$4) - ) - (set_local $2 - (get_local $0) - ) - ) - (br $while-in$5) + (loop $while-in$5 + (set_local $0 + (i32.add + (get_local $2) + (i32.const 1) ) ) (if - (i32.eq - (tee_local $0 - (i32.add - (get_local $3) - (i32.const -1) - ) - ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $1) - ) - (br $while-out$2) + (i32.load8_s + (get_local $2) ) (block - (set_local $3 - (get_local $0) - ) (set_local $2 - (get_local $1) + (get_local $0) ) + (br $while-in$5) ) ) - (br $while-in$3) + ) + (if + (tee_local $3 + (i32.add + (get_local $3) + (i32.const -1) + ) + ) + (block + (set_local $2 + (get_local $0) + ) + (br $while-in$3) + ) + (set_local $5 + (get_local $0) + ) ) ) ) @@ -529,16 +485,13 @@ ) (func $___errno_location (result i32) (if - (i32.eq - (i32.load - (i32.const 16) - ) - (i32.const 0) + (i32.load + (i32.const 16) ) - (i32.const 60) (i32.load offset=60 (call_import $_pthread_self) ) + (i32.const 60) ) ) (func $___stdio_close (param $0 i32) (result i32) @@ -615,14 +568,13 @@ (i32.const 4) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 64) ) - (i32.const 0) ) (block (i32.store @@ -640,12 +592,9 @@ (get_local $5) ) (if - (i32.ne - (call_import $___syscall54 - (i32.const 54) - (get_local $3) - ) - (i32.const 0) + (call_import $___syscall54 + (i32.const 54) + (get_local $3) ) (i32.store8 offset=75 (get_local $0) @@ -747,107 +696,112 @@ (local $2 i32) (block $do-once$0 (if - (i32.eq - (get_local $0) - (i32.const 0) + (get_local $0) + (block + (if + (i32.le_s + (i32.load offset=76 + (get_local $0) + ) + (i32.const -1) + ) + (br $do-once$0 + (call $___fflush_unlocked + (get_local $0) + ) + ) + ) + (set_local $2 + (i32.eqz + (call $___lockfile + (get_local $0) + ) + ) + ) + (set_local $1 + (call $___fflush_unlocked + (get_local $0) + ) + ) + (if + (get_local $2) + (get_local $1) + (block + (call $___unlockfile + (get_local $0) + ) + (get_local $1) + ) + ) ) (block (set_local $0 (if - (i32.eq - (i32.load - (i32.const 12) - ) - (i32.const 0) + (i32.load + (i32.const 12) ) - (i32.const 0) (call $_fflush (i32.load (i32.const 12) ) ) + (i32.const 0) ) ) (call_import $___lock (i32.const 44) ) (if - (i32.ne - (tee_local $1 - (i32.load - (i32.const 40) - ) + (tee_local $1 + (i32.load + (i32.const 40) ) - (i32.const 0) ) - (block + (loop $while-in$3 (set_local $2 - (get_local $0) - ) - (loop $while-in$3 - (block $while-out$2 - (set_local $0 - (if - (i32.gt_s - (i32.load offset=76 - (get_local $1) - ) - (i32.const -1) - ) - (call $___lockfile - (get_local $1) - ) - (i32.const 0) + (if + (i32.gt_s + (i32.load offset=76 + (get_local $1) ) + (i32.const -1) ) - (set_local $2 - (if - (i32.gt_u - (i32.load offset=20 - (get_local $1) - ) - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.or - (call $___fflush_unlocked - (get_local $1) - ) - (get_local $2) - ) - (get_local $2) - ) + (call $___lockfile + (get_local $1) ) - (if - (i32.ne - (get_local $0) - (i32.const 0) + (i32.const 0) + ) + ) + (set_local $0 + (if + (i32.gt_u + (i32.load offset=20 + (get_local $1) ) - (call $___unlockfile + (i32.load offset=28 (get_local $1) ) ) - (if - (i32.eq - (tee_local $0 - (i32.load offset=56 - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (set_local $0 - (get_local $2) - ) - (br $while-out$2) - ) - (set_local $1 - (get_local $0) + (i32.or + (call $___fflush_unlocked + (get_local $1) ) + (get_local $0) + ) + (get_local $0) + ) + ) + (if + (get_local $2) + (call $___unlockfile + (get_local $1) + ) + ) + (br_if $while-in$3 + (tee_local $1 + (i32.load offset=56 + (get_local $1) ) - (br $while-in$3) ) ) ) @@ -857,44 +811,6 @@ ) (get_local $0) ) - (block - (if - (i32.le_s - (i32.load offset=76 - (get_local $0) - ) - (i32.const -1) - ) - (br $do-once$0 - (call $___fflush_unlocked - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eq - (call $___lockfile - (get_local $0) - ) - (i32.const 0) - ) - ) - (set_local $1 - (call $___fflush_unlocked - (get_local $0) - ) - ) - (if - (get_local $2) - (get_local $1) - (block - (call $___unlockfile - (get_local $0) - ) - (get_local $1) - ) - ) - ) ) ) ) @@ -956,10 +872,7 @@ (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (set_local $8 + (set_local $7 (get_global $STACKTOP) ) (set_global $STACKTOP @@ -975,25 +888,25 @@ ) (call_import $abort) ) - (set_local $9 + (set_local $8 (i32.add - (get_local $8) + (get_local $7) (i32.const 16) ) ) - (set_local $10 - (get_local $8) + (set_local $9 + (get_local $7) ) (i32.store (tee_local $4 (i32.add - (get_local $8) + (get_local $7) (i32.const 32) ) ) (tee_local $3 (i32.load - (tee_local $7 + (tee_local $6 (i32.add (get_local $0) (i32.const 28) @@ -1007,7 +920,7 @@ (tee_local $3 (i32.sub (i32.load - (tee_local $11 + (tee_local $10 (i32.add (get_local $0) (i32.const 20) @@ -1026,310 +939,281 @@ (get_local $4) (get_local $2) ) - (set_local $12 + (set_local $13 (i32.add (get_local $0) (i32.const 60) ) ) - (set_local $13 + (set_local $14 (i32.add (get_local $0) (i32.const 44) ) ) - (set_local $6 + (set_local $1 + (get_local $4) + ) + (set_local $4 (i32.const 2) ) - (set_local $3 + (set_local $11 (i32.add (get_local $3) (get_local $2) ) ) - (loop $while-in$1 - (block $while-out$0 - (if - (i32.eq - (get_local $3) - (tee_local $5 - (if + (set_local $0 + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (block $jumpthreading$inner$0 + (loop $while-in$1 + (br_if $jumpthreading$inner$0 (i32.eq - (i32.load - (i32.const 16) + (get_local $11) + (tee_local $5 + (if + (i32.load + (i32.const 16) + ) + (block + (call_import $_pthread_cleanup_push + (i32.const 5) + (get_local $0) + ) + (i32.store + (get_local $9) + (i32.load + (get_local $13) + ) + ) + (i32.store offset=4 + (get_local $9) + (get_local $1) + ) + (i32.store offset=8 + (get_local $9) + (get_local $4) + ) + (set_local $3 + (call $___syscall_ret + (call_import $___syscall146 + (i32.const 146) + (get_local $9) + ) + ) + ) + (call_import $_pthread_cleanup_pop + (i32.const 0) + ) + (get_local $3) + ) + (block + (i32.store + (get_local $8) + (i32.load + (get_local $13) + ) + ) + (i32.store offset=4 + (get_local $8) + (get_local $1) + ) + (i32.store offset=8 + (get_local $8) + (get_local $4) + ) + (call $___syscall_ret + (call_import $___syscall146 + (i32.const 146) + (get_local $8) + ) + ) + ) + ) ) + ) + ) + (br_if $jumpthreading$inner$1 + (i32.lt_s + (get_local $5) (i32.const 0) ) - (block - (i32.store - (get_local $9) - (i32.load - (get_local $12) - ) - ) - (i32.store offset=4 - (get_local $9) - (get_local $4) - ) - (i32.store offset=8 - (get_local $9) - (get_local $6) - ) - (call $___syscall_ret - (call_import $___syscall146 - (i32.const 146) - (get_local $9) - ) + ) + (block + (set_local $11 + (i32.sub + (get_local $11) + (get_local $5) ) ) - (block - (call_import $_pthread_cleanup_push - (i32.const 5) - (get_local $0) - ) - (i32.store - (get_local $10) - (i32.load - (get_local $12) + (set_local $1 + (if + (i32.gt_u + (get_local $5) + (tee_local $12 + (i32.load offset=4 + (get_local $1) + ) + ) ) - ) - (i32.store offset=4 - (get_local $10) - (get_local $4) - ) - (i32.store offset=8 - (get_local $10) - (get_local $6) - ) - (set_local $1 - (call $___syscall_ret - (call_import $___syscall146 - (i32.const 146) + (block + (i32.store + (get_local $6) + (tee_local $3 + (i32.load + (get_local $14) + ) + ) + ) + (i32.store (get_local $10) + (get_local $3) + ) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $12) + ) + ) + (set_local $3 + (i32.add + (get_local $1) + (i32.const 8) + ) + ) + (set_local $4 + (i32.add + (get_local $4) + (i32.const -1) + ) + ) + (i32.load offset=12 + (get_local $1) + ) + ) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $6) + (i32.add + (i32.load + (get_local $6) + ) + (get_local $5) + ) + ) + (set_local $3 + (get_local $1) + ) + (set_local $4 + (i32.const 2) + ) + (get_local $12) + ) + (block + (set_local $3 + (get_local $1) + ) + (get_local $12) ) ) ) - (call_import $_pthread_cleanup_pop - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - (block - (set_local $1 - (i32.const 6) - ) - (br $while-out$0) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $15 - (get_local $4) - ) - (set_local $16 - (get_local $6) - ) - (set_local $1 - (i32.const 8) - ) - (br $while-out$0) - ) - ) - (set_local $17 - (i32.sub - (get_local $3) - (get_local $5) - ) - ) - (set_local $1 - (if - (i32.gt_u - (get_local $5) - (tee_local $1 - (i32.load offset=4 - (get_local $4) - ) - ) - ) - (block - (i32.store - (get_local $7) - (tee_local $3 - (i32.load - (get_local $13) - ) - ) - ) - (i32.store - (get_local $11) - (get_local $3) - ) - (set_local $5 - (i32.sub - (get_local $5) - (get_local $1) - ) - ) - (set_local $3 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const -1) ) - ) - (i32.load offset=12 - (get_local $4) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 2) - ) - (block (i32.store - (get_local $7) + (get_local $3) (i32.add (i32.load - (get_local $7) + (get_local $3) ) (get_local $5) ) ) - (set_local $3 - (get_local $4) + (i32.store offset=4 + (get_local $3) + (i32.sub + (get_local $1) + (get_local $5) + ) ) - (set_local $6 - (i32.const 2) + (set_local $1 + (get_local $3) ) - (get_local $1) + (br $while-in$1) ) - (block - (set_local $3 - (get_local $4) + ) + ) + (i32.store offset=16 + (get_local $0) + (i32.add + (tee_local $1 + (i32.load + (get_local $14) ) - (get_local $1) + ) + (i32.load offset=48 + (get_local $0) ) ) ) - ) - (i32.store - (get_local $3) - (i32.add - (i32.load - (get_local $3) + (i32.store + (get_local $6) + (tee_local $0 + (get_local $1) ) - (get_local $5) ) - ) - (i32.store offset=4 - (get_local $3) - (i32.sub - (get_local $1) - (get_local $5) + (i32.store + (get_local $10) + (get_local $0) + ) + (br $jumpthreading$outer$1 + (get_local $2) ) ) - (set_local $4 - (get_local $3) - ) - (set_local $3 - (get_local $17) - ) - (br $while-in$1) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 6) - ) - (block (i32.store offset=16 (get_local $0) - (i32.add - (tee_local $1 - (i32.load - (get_local $13) - ) - ) - (i32.load offset=48 - (get_local $0) - ) - ) + (i32.const 0) ) (i32.store - (get_local $7) - (get_local $1) + (get_local $6) + (i32.const 0) ) (i32.store - (get_local $11) - (get_local $1) - ) - (set_local $14 - (get_local $2) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 8) + (get_local $10) + (i32.const 0) ) - (block - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $7) - (i32.const 0) - ) - (i32.store - (get_local $11) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.or - (i32.load - (get_local $0) - ) - (i32.const 32) + (i32.store + (get_local $0) + (i32.or + (i32.load + (get_local $0) ) + (i32.const 32) ) - (set_local $14 - (select - (i32.const 0) - (i32.sub - (get_local $2) - (i32.load offset=4 - (get_local $15) - ) - ) - (i32.eq - (get_local $16) - (i32.const 2) - ) + ) + (select + (i32.const 0) + (i32.sub + (get_local $2) + (i32.load offset=4 + (get_local $1) ) ) + (i32.eq + (get_local $4) + (i32.const 2) + ) ) ) ) (set_global $STACKTOP - (get_local $8) + (get_local $7) ) - (get_local $14) + (get_local $0) ) (func $_vfprintf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -1451,14 +1335,8 @@ ) (if (i32.lt_s - (i32.shr_s - (i32.shl - (i32.load8_s offset=74 - (get_local $0) - ) - (i32.const 24) - ) - (i32.const 24) + (i32.load8_s offset=74 + (get_local $0) ) (i32.const 1) ) @@ -1472,17 +1350,22 @@ ) (set_local $2 (select + (i32.const -1) (if - (i32.eq - (i32.load - (tee_local $10 - (i32.add - (get_local $0) - (i32.const 48) - ) + (i32.load + (tee_local $10 + (i32.add + (get_local $0) + (i32.const 48) ) ) - (i32.const 0) + ) + (call $_printf_core + (get_local $0) + (get_local $1) + (get_local $5) + (get_local $8) + (get_local $9) ) (block (set_local $2 @@ -1543,11 +1426,7 @@ ) ) (if - (i32.eq - (get_local $2) - (i32.const 0) - ) - (get_local $1) + (get_local $2) (block (drop (call_indirect $FUNCSIG$iiii @@ -1567,13 +1446,10 @@ ) (set_local $1 (select - (i32.const -1) (get_local $1) - (i32.eq - (i32.load - (get_local $11) - ) - (i32.const 0) + (i32.const -1) + (i32.load + (get_local $11) ) ) ) @@ -1599,27 +1475,17 @@ ) (get_local $1) ) + (get_local $1) ) ) - (call $_printf_core - (get_local $0) - (get_local $1) - (get_local $5) - (get_local $8) - (get_local $9) - ) ) - (i32.const -1) - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) + (i32.and + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 32) ) - (i32.const 0) + (i32.const 32) ) ) ) @@ -1631,10 +1497,7 @@ ) ) (if - (i32.ne - (get_local $12) - (i32.const 0) - ) + (get_local $12) (call $___unlockfile (get_local $0) ) @@ -1653,262 +1516,216 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (if - (i32.eq - (tee_local $6 - (i32.load - (tee_local $5 - (i32.add - (get_local $2) - (i32.const 16) + (block $label$break$L5 + (block $jumpthreading$inner$0 + (br_if $jumpthreading$inner$0 + (tee_local $3 + (i32.load + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 16) + ) ) ) ) ) - (i32.const 0) - ) - (if - (i32.eq + (if (call $___towrite (get_local $2) ) - (i32.const 0) - ) - (block (set_local $3 - (i32.load - (get_local $5) - ) + (i32.const 0) ) - (set_local $7 - (i32.const 5) + (block + (set_local $3 + (i32.load + (get_local $4) + ) + ) + (br $jumpthreading$inner$0) ) ) - (set_local $4 - (i32.const 0) - ) + (br $label$break$L5) ) - (block - (set_local $3 - (get_local $6) - ) - (set_local $7 - (i32.const 5) + (set_local $6 + (tee_local $4 + (i32.load + (tee_local $5 + (i32.add + (get_local $2) + (i32.const 20) + ) + ) + ) ) ) - ) - (block $label$break$L5 (if - (i32.eq - (get_local $7) - (i32.const 5) + (i32.lt_u + (i32.sub + (get_local $3) + (get_local $4) + ) + (get_local $1) ) (block (set_local $3 - (i32.lt_u - (i32.sub - (get_local $3) - (tee_local $6 - (i32.load - (tee_local $5 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) + (call_indirect $FUNCSIG$iiii + (get_local $2) + (get_local $0) + (get_local $1) + (i32.add + (i32.and + (i32.load offset=36 + (get_local $2) ) + (i32.const 7) ) + (i32.const 2) ) - (get_local $1) ) ) - (if - (get_local $3) - (block - (set_local $4 - (call_indirect $FUNCSIG$iiii + (br $label$break$L5) + ) + ) + (drop + (call $_memcpy + (block $label$break$L10 + (if + (i32.gt_s + (i32.load8_s offset=75 (get_local $2) - (get_local $0) - (get_local $1) - (i32.add - (i32.and - (i32.load offset=36 - (get_local $2) - ) - (i32.const 7) - ) - (i32.const 2) - ) ) + (i32.const -1) ) - (br $label$break$L5) - ) - ) - (drop - (call $_memcpy - (block $label$break$L10 - (if - (i32.gt_s - (i32.shr_s - (i32.shl - (i32.load8_s offset=75 - (get_local $2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -1) - ) - (block - (set_local $3 - (get_local $1) + (block + (set_local $3 + (get_local $1) + ) + (loop $while-in$3 + (if + (i32.eqz + (get_local $3) ) - (loop $while-in$3 - (block $while-out$2 - (if - (i32.eq - (get_local $3) - (i32.const 0) - ) - (block - (set_local $2 - (i32.const 0) - ) - (br $label$break$L10 - (get_local $6) - ) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (i32.add - (get_local $0) - (tee_local $4 - (i32.add - (get_local $3) - (i32.const -1) - ) - ) - ) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 10) - ) - (br $while-out$2) - (set_local $3 - (get_local $4) - ) - ) - (br $while-in$3) + (block + (set_local $2 + (i32.const 0) + ) + (br $label$break$L10 + (get_local $6) ) ) - (if - (i32.lt_u - (call_indirect $FUNCSIG$iiii - (get_local $2) + ) + (if + (i32.ne + (i32.load8_s + (i32.add (get_local $0) - (get_local $3) - (i32.add - (i32.and - (i32.load offset=36 - (get_local $2) - ) - (i32.const 7) + (tee_local $4 + (i32.add + (get_local $3) + (i32.const -1) ) - (i32.const 2) ) ) - (get_local $3) - ) - (block - (set_local $4 - (get_local $3) - ) - (br $label$break$L5) ) + (i32.const 10) ) - (set_local $2 - (get_local $3) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $3) + (block + (set_local $3 + (get_local $4) ) + (br $while-in$3) ) - (set_local $0 + ) + ) + (br_if $label$break$L5 + (i32.lt_u + (call_indirect $FUNCSIG$iiii + (get_local $2) + (get_local $0) + (get_local $3) (i32.add - (get_local $0) - (get_local $3) + (i32.and + (i32.load offset=36 + (get_local $2) + ) + (i32.const 7) + ) + (i32.const 2) ) ) - (i32.load - (get_local $5) - ) + (get_local $3) ) - (block - (set_local $2 - (i32.const 0) - ) - (get_local $6) + ) + (set_local $2 + (get_local $3) + ) + (set_local $1 + (i32.sub + (get_local $1) + (get_local $3) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $3) ) ) + (i32.load + (get_local $5) + ) ) - (get_local $0) - (get_local $1) - ) - ) - (i32.store - (get_local $5) - (i32.add - (i32.load - (get_local $5) + (block + (set_local $2 + (i32.const 0) + ) + (get_local $6) ) - (get_local $1) ) ) - (set_local $4 - (i32.add - (get_local $2) - (get_local $1) - ) + (get_local $0) + (get_local $1) + ) + ) + (i32.store + (get_local $5) + (i32.add + (i32.load + (get_local $5) ) + (get_local $1) + ) + ) + (set_local $3 + (i32.add + (get_local $2) + (get_local $1) ) ) ) - (get_local $4) + (get_local $3) ) (func $___towrite (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (set_local $1 + (i32.load8_s + (tee_local $2 + (i32.add + (get_local $0) + (i32.const 74) + ) + ) + ) + ) + (i32.store8 + (get_local $2) (i32.and (i32.or (i32.add - (tee_local $1 - (i32.shr_s - (i32.shl - (i32.load8_s - (tee_local $2 - (i32.add - (get_local $0) - (i32.const 74) - ) - ) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) + (get_local $1) (i32.const 255) ) (get_local $1) @@ -1916,21 +1733,24 @@ (i32.const 255) ) ) - (i32.store8 - (get_local $2) - (get_local $1) - ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) + (i32.and + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 8) ) - (i32.const 0) + (i32.const 8) + ) + (block + (i32.store + (get_local $0) + (i32.or + (get_local $1) + (i32.const 32) + ) + ) + (i32.const -1) ) (block (i32.store offset=8 @@ -1964,26 +1784,12 @@ ) (i32.const 0) ) - (block - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.const 32) - ) - ) - (i32.const -1) - ) ) ) (func $_wcrtomb (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (block $do-once$0 (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (i32.const 1) + (get_local $0) (block (if (i32.lt_u @@ -2180,444 +1986,264 @@ ) ) ) + (i32.const 1) ) ) ) (func $_wctomb (param $0 i32) (param $1 i32) (result i32) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (i32.const 0) + (get_local $0) (call $_wcrtomb (get_local $0) (get_local $1) (i32.const 0) ) + (i32.const 0) ) ) (func $_memchr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (set_local $16 + (set_local $5 (i32.and (get_local $1) (i32.const 255) ) ) - (block $label$break$L1 - (if - (i32.and - (tee_local $6 - (i32.ne - (get_local $2) - (i32.const 0) - ) - ) - (i32.ne - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - ) - (block - (set_local $6 + (block $label$break$L8 + (block $jumpthreading$inner$2 + (block $jumpthreading$inner$1 + (if (i32.and - (get_local $1) - (i32.const 255) + (tee_local $3 + (i32.ne + (get_local $2) + (i32.const 0) + ) + ) + (i32.ne + (i32.and + (get_local $0) + (i32.const 3) + ) + (i32.const 0) + ) ) - ) - (set_local $3 - (get_local $2) - ) - (set_local $2 - (get_local $0) - ) - (loop $while-in$2 - (block $while-out$1 - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $2) - ) - (i32.const 24) + (block + (set_local $4 + (i32.and + (get_local $1) + (i32.const 255) + ) + ) + (loop $while-in$2 + (br_if $jumpthreading$inner$2 + (i32.eq + (i32.load8_s + (get_local $0) ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (get_local $6) + (i32.shr_s + (i32.shl + (get_local $4) + (i32.const 24) + ) (i32.const 24) ) - (i32.const 24) - ) - ) - (block - (set_local $4 - (get_local $3) - ) - (set_local $5 - (get_local $2) - ) - (set_local $3 - (i32.const 6) ) - (br $label$break$L1) ) - ) - (if - (i32.and - (tee_local $3 - (i32.ne - (tee_local $0 - (i32.add - (get_local $3) - (i32.const -1) + (br_if $while-in$2 + (i32.and + (tee_local $3 + (i32.ne + (tee_local $2 + (i32.add + (get_local $2) + (i32.const -1) + ) ) + (i32.const 0) ) - (i32.const 0) ) - ) - (i32.ne - (i32.and - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 1) + (i32.ne + (i32.and + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 0) ) - (i32.const 0) ) ) - (set_local $3 - (get_local $0) - ) - (block - (set_local $14 - (get_local $0) - ) - (set_local $11 - (get_local $2) - ) - (set_local $15 - (get_local $3) - ) - (set_local $3 - (i32.const 5) - ) - (br $while-out$1) - ) + (br $jumpthreading$inner$1) ) - (br $while-in$2) ) ) ) - (block - (set_local $14 - (get_local $2) - ) - (set_local $11 - (get_local $0) - ) - (set_local $15 - (get_local $6) - ) - (set_local $3 - (i32.const 5) - ) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 5) - ) - (if - (get_local $15) - (block - (set_local $4 - (get_local $14) - ) - (set_local $5 - (get_local $11) - ) - (set_local $3 - (i32.const 6) - ) + (br_if $jumpthreading$inner$2 + (get_local $3) ) - (block - (set_local $7 - (i32.const 0) - ) - (set_local $8 - (get_local $11) - ) + (set_local $1 + (i32.const 0) ) + (br $label$break$L8) ) - ) - (block $label$break$L8 (if (i32.eq - (get_local $3) - (i32.const 6) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $5) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (tee_local $0 - (i32.and - (get_local $1) - (i32.const 255) - ) + (i32.load8_s + (get_local $0) + ) + (i32.shr_s + (i32.shl + (tee_local $4 + (i32.and + (get_local $1) + (i32.const 255) ) - (i32.const 24) ) (i32.const 24) ) + (i32.const 24) ) - (block - (set_local $7 - (get_local $4) - ) - (set_local $8 + ) + (set_local $1 + (get_local $2) + ) + (block + (set_local $3 + (i32.mul (get_local $5) + (i32.const 16843009) ) ) - (block - (set_local $2 - (i32.mul - (get_local $16) - (i32.const 16843009) - ) - ) - (block $label$break$L11 + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 (if (i32.gt_u - (get_local $4) + (get_local $2) (i32.const 3) ) - (block - (loop $while-in$6 - (block $while-out$5 - (set_local $1 - (i32.add - (tee_local $6 - (i32.xor - (i32.load - (get_local $5) - ) - (get_local $2) - ) - ) - (i32.const -16843009) - ) - ) - (br_if $while-out$5 - (i32.ne + (loop $while-in$6 + (block $while-out$5 + (if + (i32.and + (i32.xor (i32.and - (i32.xor - (i32.and - (get_local $6) - (i32.const -2139062144) + (tee_local $1 + (i32.xor + (i32.load + (get_local $0) + ) + (get_local $3) ) - (i32.const -2139062144) ) - (get_local $1) + (i32.const -2139062144) ) - (i32.const 0) + (i32.const -2139062144) ) - ) - (set_local $1 (i32.add - (get_local $5) - (i32.const 4) + (get_local $1) + (i32.const -16843009) ) ) - (if - (i32.gt_u - (tee_local $4 - (i32.add - (get_local $4) - (i32.const -4) - ) - ) - (i32.const 3) - ) - (set_local $5 - (get_local $1) + (block + (set_local $1 + (get_local $2) ) - (block - (set_local $12 - (get_local $4) - ) - (set_local $13 - (get_local $1) - ) - (set_local $3 - (i32.const 11) + (br $while-out$5) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) + ) + (br_if $jumpthreading$inner$0 + (i32.le_u + (tee_local $1 + (i32.add + (get_local $2) + (i32.const -4) ) - (br $label$break$L11) ) + (i32.const 3) + ) + ) + (block + (set_local $2 + (get_local $1) ) (br $while-in$6) ) ) - (set_local $10 - (get_local $4) - ) - (set_local $9 - (get_local $5) - ) ) (block - (set_local $12 - (get_local $4) - ) - (set_local $13 - (get_local $5) - ) - (set_local $3 - (i32.const 11) + (set_local $1 + (get_local $2) ) + (br $jumpthreading$inner$0) ) ) + (br $jumpthreading$outer$0) ) (if - (i32.eq - (get_local $3) - (i32.const 11) + (i32.eqz + (get_local $1) ) - (if - (i32.eq - (get_local $12) + (block + (set_local $1 (i32.const 0) ) - (block - (set_local $7 - (i32.const 0) - ) - (set_local $8 - (get_local $13) - ) - (br $label$break$L8) - ) - (block - (set_local $10 - (get_local $12) - ) - (set_local $9 - (get_local $13) - ) - ) + (br $label$break$L8) ) ) - (loop $while-in$8 - (block $while-out$7 - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $9) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (block - (set_local $7 - (get_local $10) - ) - (set_local $8 - (get_local $9) - ) - (br $label$break$L8) - ) + ) + (loop $while-in$8 + (br_if $label$break$L8 + (i32.eq + (i32.load8_s + (get_local $0) ) - (set_local $2 - (i32.add - (get_local $9) - (i32.const 1) + (i32.shr_s + (i32.shl + (get_local $4) + (i32.const 24) ) + (i32.const 24) ) - (if - (i32.eq - (tee_local $1 - (i32.add - (get_local $10) - (i32.const -1) - ) - ) - (i32.const 0) - ) - (block - (set_local $7 - (i32.const 0) - ) - (set_local $8 - (get_local $2) - ) - (br $while-out$7) - ) - (block - (set_local $10 - (get_local $1) - ) - (set_local $9 - (get_local $2) - ) - ) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br_if $while-in$8 + (tee_local $1 + (i32.add + (get_local $1) + (i32.const -1) ) - (br $while-in$8) ) ) + (set_local $1 + (i32.const 0) + ) ) ) ) ) (select - (get_local $8) + (get_local $0) (i32.const 0) (i32.ne - (get_local $7) + (get_local $1) (i32.const 0) ) ) @@ -2648,26 +2274,28 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (i32.load - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 20) + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 + (br_if $jumpthreading$inner$0 + (i32.le_u + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 20) + ) + ) ) - ) - ) - (i32.load - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 28) + (i32.load + (tee_local $2 + (i32.add + (get_local $0) + (i32.const 28) + ) + ) ) ) ) - ) - (block (drop (call_indirect $FUNCSIG$iiii (get_local $0) @@ -2684,108 +2312,87 @@ ) ) ) - (if - (i32.eq - (i32.load - (get_local $3) - ) - (i32.const 0) - ) - (set_local $1 - (i32.const -1) - ) - (set_local $2 - (i32.const 3) + (br_if $jumpthreading$inner$0 + (i32.load + (get_local $1) ) ) + (br $jumpthreading$outer$0 + (i32.const -1) + ) ) - (set_local $2 - (i32.const 3) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 3) - ) - (block - (if - (i32.lt_u - (tee_local $1 - (i32.load - (tee_local $5 - (i32.add - (get_local $0) - (i32.const 4) - ) + (if + (i32.lt_u + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $0) + (i32.const 4) ) ) ) - (tee_local $2 - (i32.load - (tee_local $6 - (i32.add - (get_local $0) - (i32.const 8) - ) + ) + (tee_local $6 + (i32.load + (tee_local $5 + (i32.add + (get_local $0) + (i32.const 8) ) ) ) ) - (drop - (call_indirect $FUNCSIG$iiii - (get_local $0) - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load offset=40 - (get_local $0) - ) - (i32.const 7) + ) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $0) + (i32.sub + (get_local $4) + (get_local $6) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load offset=40 + (get_local $0) ) - (i32.const 2) + (i32.const 7) ) + (i32.const 2) ) ) ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store - (get_local $3) - (i32.const 0) - ) - (i32.store - (get_local $6) - (i32.const 0) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (set_local $1 - (i32.const 0) - ) ) + (i32.store offset=16 + (get_local $0) + (i32.const 0) + ) + (i32.store + (get_local $2) + (i32.const 0) + ) + (i32.store + (get_local $1) + (i32.const 0) + ) + (i32.store + (get_local $5) + (i32.const 0) + ) + (i32.store + (get_local $3) + (i32.const 0) + ) + (i32.const 0) ) - (get_local $1) ) (func $_cleanup (param $0 i32) (if - (i32.eq + (i32.eqz (i32.load offset=68 (get_local $0) ) - (i32.const 0) ) (call $___unlockfile (get_local $0) @@ -2810,7 +2417,7 @@ (local $19 i32) (local $20 i32) (local $21 i32) - (local $22 i32) + (local $22 f64) (local $23 i32) (local $24 i32) (local $25 i32) @@ -2818,7 +2425,7 @@ (local $27 i32) (local $28 i32) (local $29 i32) - (local $30 f64) + (local $30 i32) (local $31 i32) (local $32 i32) (local $33 i32) @@ -2844,35 +2451,7 @@ (local $53 i32) (local $54 i32) (local $55 i32) - (local $56 i32) - (local $57 i32) - (local $58 i32) - (local $59 i32) - (local $60 i32) - (local $61 i32) - (local $62 i32) - (local $63 i32) - (local $64 i32) - (local $65 i32) - (local $66 i32) - (local $67 i32) - (local $68 i32) - (local $69 i32) - (local $70 i32) - (local $71 i32) - (local $72 i32) - (local $73 i32) - (local $74 i32) - (local $75 i32) - (local $76 i32) - (local $77 i32) - (local $78 i32) - (local $79 i32) - (local $80 i32) - (local $81 i32) - (local $82 i32) - (local $83 i32) - (set_local $31 + (set_local $27 (get_global $STACKTOP) ) (set_global $STACKTOP @@ -2888,33 +2467,33 @@ ) (call_import $abort) ) - (set_local $25 + (set_local $20 (i32.add - (get_local $31) + (get_local $27) (i32.const 16) ) ) - (set_local $19 - (get_local $31) + (set_local $18 + (get_local $27) ) - (set_local $63 + (set_local $41 (i32.add - (get_local $31) + (get_local $27) (i32.const 528) ) ) - (set_local $44 + (set_local $33 (i32.ne (get_local $0) (i32.const 0) ) ) - (set_local $71 - (tee_local $28 + (set_local $45 + (tee_local $23 (i32.add - (tee_local $5 + (tee_local $13 (i32.add - (get_local $31) + (get_local $27) (i32.const 536) ) ) @@ -2922,542 +2501,320 @@ ) ) ) - (set_local $72 + (set_local $46 (i32.add - (get_local $5) + (get_local $13) (i32.const 39) ) ) - (set_local $76 + (set_local $50 (i32.add - (tee_local $73 + (tee_local $47 (i32.add - (get_local $31) + (get_local $27) (i32.const 8) ) ) (i32.const 4) ) ) - (set_local $52 + (set_local $37 (i32.add - (tee_local $5 + (tee_local $13 (i32.add - (get_local $31) + (get_local $27) (i32.const 576) ) ) (i32.const 12) ) ) - (set_local $74 + (set_local $48 (i32.add - (get_local $5) + (get_local $13) (i32.const 11) ) ) - (set_local $77 + (set_local $51 (i32.sub - (tee_local $40 - (get_local $52) + (tee_local $32 + (get_local $37) ) - (tee_local $64 - (tee_local $29 + (tee_local $42 + (tee_local $24 (i32.add - (get_local $31) + (get_local $27) (i32.const 588) ) ) ) ) ) - (set_local $78 + (set_local $52 (i32.sub (i32.const -2) - (get_local $64) + (get_local $42) ) ) - (set_local $79 + (set_local $53 (i32.add - (get_local $40) + (get_local $32) (i32.const 2) ) ) - (set_local $81 + (set_local $55 (i32.add - (tee_local $80 + (tee_local $54 (i32.add - (get_local $31) + (get_local $27) (i32.const 24) ) ) (i32.const 288) ) ) - (set_local $75 - (tee_local $45 + (set_local $49 + (tee_local $34 (i32.add - (get_local $29) + (get_local $24) (i32.const 9) ) ) ) - (set_local $53 + (set_local $38 (i32.add - (get_local $29) + (get_local $24) (i32.const 8) ) ) - (set_local $22 + (set_local $15 (i32.const 0) ) - (set_local $20 - (get_local $1) - ) - (set_local $1 + (set_local $5 (i32.const 0) ) - (set_local $8 + (set_local $13 (i32.const 0) ) - (loop $label$continue$L1 - (block $label$break$L1 - (set_local $22 - (if - (i32.gt_s - (get_local $22) - (i32.const -1) - ) - (if - (i32.gt_s - (get_local $1) - (i32.sub - (i32.const 2147483647) - (get_local $22) - ) - ) - (block - (i32.store - (call $___errno_location) - (i32.const 75) - ) - (i32.const -1) - ) - (i32.add - (get_local $1) - (get_local $22) - ) - ) - (get_local $22) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (get_local $20) - ) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - (block - (set_local $82 - (get_local $22) - ) - (set_local $83 - (get_local $8) - ) - (set_local $12 - (i32.const 242) - ) - (br $label$break$L1) - ) - (set_local $5 - (get_local $20) - ) - ) - (loop $label$continue$L9 - (block $label$break$L9 - (block $switch-default$5 - (block $switch-case$4 - (block $switch-case$3 - (br_table $switch-case$4 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-case$3 $switch-default$5 - (i32.sub - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - ) - ) - (set_local $54 - (get_local $5) - ) - (set_local $65 - (get_local $5) - ) - (set_local $12 - (i32.const 9) - ) - (br $label$break$L9) - ) - (set_local $41 - (get_local $5) - ) - (set_local $55 - (get_local $5) - ) - (br $label$break$L9) - ) - (set_local $1 - (i32.load8_s - (tee_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - ) - (br $label$continue$L9) - ) - ) - (block $label$break$L12 - (if - (i32.eq - (get_local $12) - (i32.const 9) - ) - (loop $while-in$8 - (block $while-out$7 - (set_local $12 - (i32.const 0) + (block $label$break$L343 + (block $jumpthreading$inner$8 + (loop $label$continue$L1 + (block $label$break$L1 + (set_local $15 + (if + (i32.gt_s + (get_local $15) + (i32.const -1) ) (if - (i32.ne - (i32.shr_s - (i32.shl - (i32.load8_s offset=1 - (get_local $54) - ) - (i32.const 24) - ) - (i32.const 24) + (i32.gt_s + (get_local $5) + (i32.sub + (i32.const 2147483647) + (get_local $15) ) - (i32.const 37) ) (block - (set_local $41 - (get_local $54) - ) - (set_local $55 - (get_local $65) + (i32.store + (call $___errno_location) + (i32.const 75) ) - (br $label$break$L12) + (i32.const -1) ) - ) - (set_local $5 (i32.add - (get_local $65) - (i32.const 1) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $54) - (i32.const 2) - ) - ) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 37) - ) - (block - (set_local $54 - (get_local $1) - ) - (set_local $65 - (get_local $5) - ) - ) - (block - (set_local $41 - (get_local $1) - ) - (set_local $55 - (get_local $5) - ) - (br $while-out$7) + (get_local $5) + (get_local $15) ) ) - (br $while-in$8) - ) - ) - ) - ) - (set_local $17 - (i32.sub - (get_local $55) - (get_local $20) - ) - ) - (if - (get_local $44) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (get_local $15) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $20) - (get_local $17) - (get_local $0) - ) - ) - ) - (if - (i32.ne - (get_local $55) - (get_local $20) - ) - (block - (set_local $20 - (get_local $41) - ) - (set_local $1 - (get_local $17) ) - (br $label$continue$L1) - ) - ) - (set_local $7 - (if - (i32.lt_u - (tee_local $6 - (i32.add - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (tee_local $5 - (i32.add - (get_local $41) - (i32.const 1) - ) - ) - ) + (br_if $jumpthreading$inner$8 + (i32.eqz + (i32.shr_s + (i32.shl + (tee_local $5 + (i32.load8_s + (get_local $1) ) - (i32.const 24) ) (i32.const 24) ) - (i32.const -48) + (i32.const 24) ) ) - (i32.const 10) ) (block - (set_local $1 - (i32.load8_s - (tee_local $5 - (select - (i32.add - (get_local $41) - (i32.const 3) - ) - (get_local $5) - (tee_local $7 - (i32.eq + (set_local $6 + (get_local $5) + ) + (set_local $5 + (get_local $1) + ) + ) + (loop $label$continue$L9 + (block $label$break$L9 + (block $switch-default$5 + (block $switch-case$4 + (block $switch-case$3 + (br_table $switch-case$4 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-case$3 $switch-default$5 + (i32.sub (i32.shr_s (i32.shl - (i32.load8_s offset=2 - (get_local $41) - ) + (get_local $6) (i32.const 24) ) (i32.const 24) ) - (i32.const 36) + (i32.const 0) ) ) ) + (set_local $39 + (get_local $5) + ) + (set_local $43 + (get_local $5) + ) + (set_local $28 + (i32.const 9) + ) + (br $label$break$L9) ) + (set_local $29 + (get_local $5) + ) + (set_local $35 + (get_local $5) + ) + (br $label$break$L9) ) - ) - (set_local $11 - (select - (i32.const 1) - (get_local $8) - (get_local $7) - ) - ) - (set_local $9 - (get_local $5) - ) - (select - (get_local $6) - (i32.const -1) - (get_local $7) - ) - ) - (block - (set_local $11 - (get_local $8) - ) - (set_local $9 - (get_local $5) - ) - (i32.const -1) - ) - ) - ) - (block $label$break$L25 - (if - (i32.eq - (i32.and - (tee_local $5 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) + (set_local $6 + (i32.load8_s + (tee_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) ) - (i32.const 24) ) ) - (i32.const -32) + (br $label$continue$L9) ) - (i32.const 32) ) - (block - (set_local $8 - (i32.const 0) - ) - (loop $while-in$11 - (block $while-out$10 - (br_if $label$break$L25 - (i32.eq - (i32.and - (i32.shl - (i32.const 1) - (i32.add - (get_local $5) - (i32.const -32) - ) - ) - (i32.const 75913) + (block $label$break$L12 + (if + (i32.eq + (get_local $28) + (i32.const 9) + ) + (loop $while-in$8 + (set_local $28 + (i32.const 0) + ) + (if + (i32.ne + (i32.load8_s offset=1 + (get_local $39) ) - (i32.const 0) + (i32.const 37) ) - ) - (set_local $8 - (i32.or - (i32.shl - (i32.const 1) - (i32.add - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -32) - ) + (block + (set_local $29 + (get_local $39) ) - (get_local $8) + (set_local $35 + (get_local $43) + ) + (br $label$break$L12) + ) + ) + (set_local $35 + (i32.add + (get_local $43) + (i32.const 1) ) ) (if (i32.eq - (i32.and - (tee_local $5 - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (tee_local $6 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - ) - ) - (i32.const 24) - ) - (i32.const 24) + (i32.load8_s + (tee_local $29 + (i32.add + (get_local $39) + (i32.const 2) ) ) - (i32.const -32) ) - (i32.const 32) - ) - (set_local $9 - (get_local $6) + (i32.const 37) ) (block - (set_local $9 - (get_local $6) + (set_local $39 + (get_local $29) + ) + (set_local $43 + (get_local $35) ) - (br $while-out$10) + (br $while-in$8) ) ) - (br $while-in$11) ) ) ) - (set_local $8 - (i32.const 0) + (set_local $6 + (i32.sub + (get_local $35) + (get_local $1) + ) ) - ) - ) - (block $do-once$12 - (if - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) + (if + (get_local $33) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $1) + (get_local $6) + (get_local $0) + ) ) - (i32.const 24) ) - (i32.const 42) ) - (block + (if + (i32.ne + (get_local $35) + (get_local $1) + ) + (block + (set_local $1 + (get_local $29) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + ) + (set_local $21 (if (i32.lt_u - (tee_local $1 + (tee_local $9 (i32.add (i32.shr_s (i32.shl - (i32.load8_s - (tee_local $6 - (i32.add - (get_local $9) - (i32.const 1) + (tee_local $5 + (i32.load8_s + (tee_local $10 + (i32.add + (get_local $29) + (i32.const 1) + ) ) ) ) @@ -3470,228 +2827,128 @@ ) (i32.const 10) ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s offset=2 - (get_local $9) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 36) - ) - (block - (i32.store - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (i32.const 10) - ) - (set_local $1 - (i32.load - (i32.add - (get_local $3) - (i32.shl - (i32.add - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $6) - ) - (i32.const 24) - ) - (i32.const 24) + (block + (set_local $5 + (i32.load8_s + (tee_local $10 + (select + (i32.add + (get_local $29) + (i32.const 3) + ) + (get_local $10) + (tee_local $8 + (i32.eq + (i32.load8_s offset=2 + (get_local $29) ) - (i32.const -48) + (i32.const 36) ) - (i32.const 3) ) ) ) ) - (set_local $66 + ) + (set_local $7 + (select (i32.const 1) - ) - (set_local $67 - (i32.add - (get_local $9) - (i32.const 3) - ) - ) - (set_local $56 - (get_local $1) + (get_local $13) + (get_local $8) ) ) - (set_local $12 - (i32.const 24) + (select + (get_local $9) + (i32.const -1) + (get_local $8) ) ) - (set_local $12 - (i32.const 24) + (block + (set_local $7 + (get_local $13) + ) + (i32.const -1) ) ) + ) + (block $label$break$L25 (if (i32.eq - (get_local $12) - (i32.const 24) - ) - (block - (set_local $12 - (i32.const 0) - ) - (if - (i32.ne - (get_local $11) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) + (i32.and + (tee_local $8 + (i32.shr_s + (i32.shl + (get_local $5) + (i32.const 24) + ) + (i32.const 24) ) - (br $label$break$L1) ) + (i32.const -32) ) - (if - (i32.eqz - (get_local $44) - ) - (block - (set_local $9 - (get_local $6) - ) - (set_local $21 - (i32.const 0) - ) - (set_local $16 - (i32.const 0) - ) - (br $do-once$12) - ) + (i32.const 32) + ) + (block + (set_local $13 + (get_local $5) ) (set_local $5 - (i32.load - (tee_local $1 + (get_local $8) + ) + (set_local $8 + (i32.const 0) + ) + (loop $while-in$11 + (if + (i32.eqz (i32.and - (i32.add - (i32.load - (get_local $2) + (i32.shl + (i32.const 1) + (i32.add + (get_local $5) + (i32.const -32) ) - (i32.const 3) ) - (i32.const -4) + (i32.const 75913) ) ) - ) - ) - (i32.store - (get_local $2) - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - (set_local $66 - (i32.const 0) - ) - (set_local $67 - (get_local $6) - ) - (set_local $56 - (get_local $5) - ) - ) - ) - (set_local $8 - (if - (i32.lt_s - (get_local $56) - (i32.const 0) - ) - (block - (set_local $9 - (get_local $67) - ) - (set_local $21 - (get_local $66) - ) - (set_local $16 - (i32.sub - (i32.const 0) - (get_local $56) - ) - ) - (i32.or - (get_local $8) - (i32.const 8192) - ) - ) - (block - (set_local $9 - (get_local $67) - ) - (set_local $21 - (get_local $66) - ) - (set_local $16 - (get_local $56) - ) - (get_local $8) - ) - ) - ) - ) - (if - (i32.lt_u - (tee_local $6 - (i32.add - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) + (block + (set_local $5 + (get_local $8) + ) + (br $label$break$L25) ) - (i32.const 24) ) - (i32.const -48) - ) - ) - (i32.const 10) - ) - (block - (set_local $1 - (get_local $9) - ) - (set_local $5 - (i32.const 0) - ) - (loop $while-in$15 - (block $while-out$14 - (set_local $5 - (i32.add - (i32.mul - (get_local $5) - (i32.const 10) + (set_local $8 + (i32.or + (i32.shl + (i32.const 1) + (i32.add + (i32.shr_s + (i32.shl + (get_local $13) + (i32.const 24) + ) + (i32.const 24) + ) + (i32.const -32) + ) ) - (get_local $6) + (get_local $8) ) ) - (br_if $while-out$14 - (i32.ge_u - (tee_local $6 - (i32.add + (br_if $while-in$11 + (i32.eq + (i32.and + (tee_local $5 (i32.shr_s (i32.shl - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (tee_local $13 + (i32.load8_s + (tee_local $10 + (i32.add + (get_local $10) + (i32.const 1) + ) ) ) ) @@ -3699,147 +2956,236 @@ ) (i32.const 24) ) - (i32.const -48) ) + (i32.const -32) ) - (i32.const 10) + (i32.const 32) ) ) - (br $while-in$15) + (set_local $5 + (get_local $8) + ) ) ) - (if - (i32.lt_s + (block + (set_local $13 (get_local $5) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L1) ) - (block - (set_local $9 - (get_local $1) - ) - (set_local $21 - (get_local $11) - ) - (set_local $16 - (get_local $5) - ) + (set_local $5 + (i32.const 0) ) ) ) - (block - (set_local $21 - (get_local $11) - ) - (set_local $16 - (i32.const 0) - ) - ) ) - ) - ) - (set_local $11 - (block $label$break$L46 - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $9) + (block $do-once$12 + (if + (i32.eq + (i32.shr_s + (i32.shl + (get_local $13) + (i32.const 24) ) (i32.const 24) ) - (i32.const 24) + (i32.const 42) ) - (i32.const 46) - ) - (block - (if - (i32.ne - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (tee_local $5 + (block + (set_local $13 + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 + (br_if $jumpthreading$inner$0 + (i32.ge_u + (tee_local $8 (i32.add - (get_local $9) - (i32.const 1) + (i32.load8_s + (tee_local $13 + (i32.add + (get_local $10) + (i32.const 1) + ) + ) + ) + (i32.const -48) ) ) + (i32.const 10) ) ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 42) - ) - (block - (if - (i32.lt_u - (tee_local $6 + (br_if $jumpthreading$inner$0 + (i32.ne + (i32.load8_s offset=2 + (get_local $10) + ) + (i32.const 36) + ) + ) + (i32.store (i32.add - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) + (get_local $4) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + (i32.const 10) + ) + (set_local $13 + (i32.add + (get_local $3) + (i32.shl + (i32.add + (i32.load8_s + (get_local $13) + ) + (i32.const -48) ) - (i32.const 24) + (i32.const 3) ) - (i32.const -48) ) ) - (i32.const 10) + (set_local $10 + (i32.add + (get_local $10) + (i32.const 3) + ) + ) + (set_local $7 + (i32.load + (get_local $13) + ) + ) + (br $jumpthreading$outer$0 + (i32.const 1) + ) ) - (block - (set_local $1 - (get_local $5) + (set_local $28 + (i32.const 0) + ) + (if + (get_local $7) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) ) - (set_local $5 - (i32.const 0) + ) + (if + (i32.eqz + (get_local $33) + ) + (block + (set_local $8 + (get_local $5) + ) + (set_local $10 + (get_local $13) + ) + (set_local $13 + (i32.const 0) + ) + (set_local $17 + (i32.const 0) + ) + (br $do-once$12) + ) + ) + (set_local $7 + (i32.load + (tee_local $10 + (i32.and + (i32.add + (i32.load + (get_local $2) + ) + (i32.const 3) + ) + (i32.const -4) + ) + ) + ) + ) + (i32.store + (get_local $2) + (i32.add + (get_local $10) + (i32.const 4) ) ) + (set_local $10 + (get_local $13) + ) + (i32.const 0) + ) + ) + (set_local $8 + (if + (i32.lt_s + (get_local $7) + (i32.const 0) + ) (block - (set_local $10 - (i32.const 0) + (set_local $17 + (i32.sub + (i32.const 0) + (get_local $7) + ) ) - (br $label$break$L46 + (i32.or (get_local $5) + (i32.const 8192) ) ) + (block + (set_local $17 + (get_local $7) + ) + (get_local $5) + ) ) - (loop $while-in$18 - (set_local $5 + ) + ) + (if + (i32.lt_u + (tee_local $13 + (i32.add + (i32.shr_s + (i32.shl + (get_local $13) + (i32.const 24) + ) + (i32.const 24) + ) + (i32.const -48) + ) + ) + (i32.const 10) + ) + (block + (set_local $8 + (i32.const 0) + ) + (loop $while-in$15 + (set_local $13 (i32.add (i32.mul - (get_local $5) + (get_local $8) (i32.const 10) ) - (get_local $6) + (get_local $13) ) ) (if - (i32.ge_u - (tee_local $6 + (i32.lt_u + (tee_local $9 (i32.add - (i32.shr_s - (i32.shl - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) + (i32.load8_s + (tee_local $10 + (i32.add + (get_local $10) + (i32.const 1) ) - (i32.const 24) ) - (i32.const 24) ) (i32.const -48) ) @@ -3847,29 +3193,78 @@ (i32.const 10) ) (block - (set_local $10 - (get_local $5) + (set_local $8 + (get_local $13) ) - (br $label$break$L46 - (get_local $1) + (set_local $13 + (get_local $9) ) + (br $while-in$15) + ) + (set_local $9 + (get_local $13) ) ) - (br $while-in$18) + ) + (if + (i32.lt_s + (get_local $9) + (i32.const 0) + ) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) + ) + (block + (set_local $8 + (get_local $5) + ) + (set_local $13 + (get_local $7) + ) + (set_local $17 + (get_local $9) + ) + ) + ) + ) + (block + (set_local $8 + (get_local $5) + ) + (set_local $13 + (get_local $7) + ) + (set_local $17 + (i32.const 0) ) ) ) + ) + ) + (set_local $9 + (block $label$break$L46 (if - (i32.lt_u - (tee_local $1 - (i32.add + (i32.eq + (i32.load8_s + (get_local $10) + ) + (i32.const 46) + ) + (block + (if + (i32.ne (i32.shr_s (i32.shl - (i32.load8_s - (tee_local $6 - (i32.add - (get_local $9) - (i32.const 2) + (tee_local $7 + (i32.load8_s + (tee_local $5 + (i32.add + (get_local $10) + (i32.const 1) + ) ) ) ) @@ -3877,4698 +3272,4251 @@ ) (i32.const 24) ) - (i32.const -48) + (i32.const 42) ) - ) - (i32.const 10) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s offset=3 - (get_local $9) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 36) - ) - (block - (i32.store - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (i32.const 10) - ) - (set_local $1 - (i32.load - (i32.add - (get_local $3) - (i32.shl + (block + (if + (i32.lt_u + (tee_local $7 (i32.add (i32.shr_s (i32.shl - (i32.load8_s - (get_local $6) - ) + (get_local $7) (i32.const 24) ) (i32.const 24) ) (i32.const -48) ) - (i32.const 3) + ) + (i32.const 10) + ) + (set_local $10 + (i32.const 0) + ) + (block + (set_local $7 + (i32.const 0) + ) + (br $label$break$L46 + (get_local $5) ) ) ) - ) - (set_local $10 - (get_local $1) - ) - (br $label$break$L46 - (i32.add - (get_local $9) - (i32.const 4) + (loop $while-in$18 + (set_local $7 + (i32.add + (i32.mul + (get_local $10) + (i32.const 10) + ) + (get_local $7) + ) + ) + (if + (i32.lt_u + (tee_local $9 + (i32.add + (i32.load8_s + (tee_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + ) + (i32.const -48) + ) + ) + (i32.const 10) + ) + (block + (set_local $10 + (get_local $7) + ) + (set_local $7 + (get_local $9) + ) + (br $while-in$18) + ) + (br $label$break$L46 + (get_local $5) + ) + ) ) ) ) - ) - ) - (if - (i32.ne - (get_local $21) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L1) - ) - ) - (if - (get_local $44) - (block - (set_local $5 - (i32.load - (tee_local $1 - (i32.and + (if + (i32.lt_u + (tee_local $5 + (i32.add + (i32.load8_s + (tee_local $9 + (i32.add + (get_local $10) + (i32.const 2) + ) + ) + ) + (i32.const -48) + ) + ) + (i32.const 10) + ) + (if + (i32.eq + (i32.load8_s offset=3 + (get_local $10) + ) + (i32.const 36) + ) + (block + (i32.store (i32.add - (i32.load - (get_local $2) + (get_local $4) + (i32.shl + (get_local $5) + (i32.const 2) + ) + ) + (i32.const 10) + ) + (set_local $5 + (i32.add + (get_local $3) + (i32.shl + (i32.add + (i32.load8_s + (get_local $9) + ) + (i32.const -48) + ) + (i32.const 3) ) - (i32.const 3) ) - (i32.const -4) + ) + (set_local $7 + (i32.load + (get_local $5) + ) + ) + (br $label$break$L46 + (i32.add + (get_local $10) + (i32.const 4) + ) ) ) ) ) - (i32.store - (get_local $2) - (i32.add - (get_local $1) - (i32.const 4) + (if + (get_local $13) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) ) ) - (set_local $10 - (get_local $5) + (if + (get_local $33) + (block + (set_local $7 + (i32.load + (tee_local $5 + (i32.and + (i32.add + (i32.load + (get_local $2) + ) + (i32.const 3) + ) + (i32.const -4) + ) + ) + ) + ) + (i32.store + (get_local $2) + (i32.add + (get_local $5) + (i32.const 4) + ) + ) + (get_local $9) + ) + (block + (set_local $7 + (i32.const 0) + ) + (get_local $9) + ) ) - (get_local $6) ) (block - (set_local $10 - (i32.const 0) + (set_local $7 + (i32.const -1) ) - (get_local $6) + (get_local $10) ) ) ) - (block - (set_local $10 - (i32.const -1) - ) - (get_local $9) - ) ) - ) - ) - (set_local $13 - (i32.const 0) - ) - (loop $while-in$20 - (block $while-out$19 - (if - (i32.gt_u - (tee_local $1 - (i32.add - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $11) - ) - (i32.const 24) + (set_local $11 + (i32.const 0) + ) + (loop $while-in$20 + (if + (i32.gt_u + (tee_local $5 + (i32.add + (i32.load8_s + (get_local $9) ) - (i32.const 24) + (i32.const -65) ) - (i32.const -65) ) + (i32.const 57) ) - (i32.const 57) - ) - (block - (set_local $24 - (i32.const -1) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) ) - (br $label$break$L1) - ) - ) - (set_local $9 - (i32.add - (get_local $11) - (i32.const 1) ) - ) - (if - (i32.lt_u + (set_local $10 (i32.add - (tee_local $5 - (i32.and - (tee_local $1 - (i32.load8_s - (i32.add + (get_local $9) + (i32.const 1) + ) + ) + (if + (i32.lt_u + (i32.add + (tee_local $5 + (i32.and + (tee_local $12 + (i32.load8_s (i32.add - (i32.const 3611) - (i32.mul - (get_local $13) - (i32.const 58) + (i32.add + (i32.const 3611) + (i32.mul + (get_local $11) + (i32.const 58) + ) ) + (get_local $5) ) - (get_local $1) ) ) + (i32.const 255) ) - (i32.const 255) ) + (i32.const -1) ) - (i32.const -1) - ) - (i32.const 8) - ) - (block - (set_local $11 - (get_local $9) + (i32.const 8) ) - (set_local $13 - (get_local $5) + (block + (set_local $9 + (get_local $10) + ) + (set_local $11 + (get_local $5) + ) + (br $while-in$20) ) - ) - (block - (set_local $6 - (get_local $5) + (block + (set_local $16 + (get_local $5) + ) + (set_local $5 + (get_local $10) + ) + (set_local $19 + (get_local $9) + ) ) - (br $while-out$19) - ) - ) - (br $while-in$20) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) ) - (i32.const 24) - ) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) ) - (br $label$break$L1) - ) - ) - (set_local $5 - (i32.gt_s - (get_local $7) - (i32.const -1) - ) - ) - (block $do-once$21 - (if - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) + (if + (i32.eqz + (i32.shr_s + (i32.shl + (get_local $12) + (i32.const 24) + ) (i32.const 24) ) - (i32.const 24) ) - (i32.const 19) - ) - (if - (get_local $5) (block - (set_local $24 + (set_local $15 (i32.const -1) ) (br $label$break$L1) ) - (set_local $12 - (i32.const 52) + ) + (set_local $10 + (i32.gt_s + (get_local $21) + (i32.const -1) ) ) - (block - (if - (get_local $5) - (block - (i32.store - (i32.add - (get_local $4) + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (if + (i32.eq + (i32.shr_s (i32.shl - (get_local $7) - (i32.const 2) + (get_local $12) + (i32.const 24) ) + (i32.const 24) ) - (get_local $6) + (i32.const 19) ) - (set_local $5 - (i32.load - (tee_local $1 - (i32.add - (get_local $3) - (i32.shl - (get_local $7) - (i32.const 3) + (if + (get_local $10) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) + ) + (br $jumpthreading$inner$1) + ) + (block + (if + (get_local $10) + (block + (i32.store + (i32.add + (get_local $4) + (i32.shl + (get_local $21) + (i32.const 2) + ) ) + (get_local $16) ) + (set_local $12 + (i32.load offset=4 + (tee_local $9 + (i32.add + (get_local $3) + (i32.shl + (get_local $21) + (i32.const 3) + ) + ) + ) + ) + ) + (i32.store + (tee_local $10 + (get_local $18) + ) + (i32.load + (get_local $9) + ) + ) + (i32.store offset=4 + (get_local $10) + (get_local $12) + ) + (br $jumpthreading$inner$1) ) ) - ) - (set_local $1 - (i32.load offset=4 - (get_local $1) + (if + (i32.eqz + (get_local $33) + ) + (block + (set_local $15 + (i32.const 0) + ) + (br $label$break$L1) + ) ) - ) - (i32.store - (tee_local $7 - (get_local $19) + (call $_pop_arg_336 + (get_local $18) + (get_local $16) + (get_local $2) ) - (get_local $5) - ) - (i32.store offset=4 - (get_local $7) - (get_local $1) - ) - (set_local $12 - (i32.const 52) ) - (br $do-once$21) ) + (br $jumpthreading$outer$1) + ) + (set_local $28 + (i32.const 0) ) (if (i32.eqz - (get_local $44) + (get_local $33) ) (block - (set_local $24 - (i32.const 0) + (set_local $1 + (get_local $5) ) - (br $label$break$L1) - ) - ) - (call $_pop_arg_336 - (get_local $19) - (get_local $6) - (get_local $2) - ) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 52) - ) - (block - (set_local $12 - (i32.const 0) - ) - (if - (i32.eqz - (get_local $44) - ) - (block - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) ) - (br $label$continue$L1) ) ) - ) - ) - (set_local $5 - (i32.and - (i32.ne - (get_local $13) - (i32.const 0) - ) - (i32.eq - (i32.and - (tee_local $1 - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $11) - ) - (i32.const 24) - ) - (i32.const 24) + (set_local $10 + (select + (tee_local $9 + (i32.and + (get_local $8) + (i32.const -65537) ) ) - (i32.const 15) - ) - (i32.const 3) - ) - ) - ) - (set_local $18 - (select - (get_local $8) - (tee_local $7 - (i32.and - (get_local $8) - (i32.const -65537) - ) - ) - (i32.eq - (i32.and (get_local $8) - (i32.const 8192) - ) - (i32.const 0) - ) - ) - ) - (block $switch$24 - (block $switch-default$127 - (block $switch-case$49 - (block $switch-case$48 - (block $switch-case$47 - (block $switch-case$46 - (block $switch-case$45 - (block $switch-case$44 - (block $switch-case$43 - (block $switch-case$41 - (block $switch-case$40 - (block $switch-case$36 - (block $switch-case$35 - (block $switch-case$34 - (br_table $switch-case$49 $switch-default$127 $switch-case$47 $switch-default$127 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$48 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$49 $switch-default$127 $switch-case$44 $switch-case$41 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-case$41 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$45 $switch-case$34 $switch-case$40 $switch-case$35 $switch-default$127 $switch-default$127 $switch-case$46 $switch-default$127 $switch-case$43 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 - (i32.sub - (tee_local $26 - (select - (i32.and - (get_local $1) - (i32.const -33) - ) - (get_local $1) - (get_local $5) - ) - ) - (i32.const 65) - ) - ) - ) - (block $switch-default$33 - (block $switch-case$32 - (block $switch-case$31 - (block $switch-case$30 - (block $switch-case$29 - (block $switch-case$28 - (block $switch-case$27 - (block $switch-case$26 - (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33 - (i32.sub - (get_local $13) - (i32.const 0) + (i32.and + (get_local $8) + (i32.const 8192) + ) + ) + ) + (block $jumpthreading$outer$7 + (block $jumpthreading$inner$7 + (block $jumpthreading$inner$6 + (block $jumpthreading$inner$5 + (block $jumpthreading$inner$4 + (block $jumpthreading$inner$3 + (block $jumpthreading$inner$2 + (block $switch-default$127 + (block $switch-case$49 + (block $switch-case$48 + (block $switch-case$47 + (block $switch-case$46 + (block $switch-case$45 + (block $switch-case$44 + (block $switch-case$43 + (block $switch-case$41 + (block $switch-case$40 + (block $switch-case$36 + (block $switch-case$35 + (block $switch-case$34 + (br_table $switch-case$49 $switch-default$127 $switch-case$47 $switch-default$127 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$48 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$49 $switch-default$127 $switch-case$44 $switch-case$41 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-case$41 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$45 $switch-case$34 $switch-case$40 $switch-case$35 $switch-default$127 $switch-default$127 $switch-case$46 $switch-default$127 $switch-case$43 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 + (i32.sub + (tee_local $16 + (select + (i32.and + (tee_local $8 + (i32.load8_s + (get_local $19) + ) + ) + (i32.const -33) + ) + (get_local $8) + (i32.and + (i32.ne + (get_local $11) + (i32.const 0) + ) + (i32.eq + (i32.and + (get_local $8) + (i32.const 15) + ) + (i32.const 3) + ) + ) + ) + ) + (i32.const 65) + ) + ) + ) + (block $switch-default$33 + (block $switch-case$32 + (block $switch-case$31 + (block $switch-case$30 + (block $switch-case$29 + (block $switch-case$28 + (block $switch-case$27 + (block $switch-case$26 + (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33 + (i32.sub + (get_local $11) + (i32.const 0) + ) + ) + ) + (i32.store + (i32.load + (get_local $18) + ) + (get_local $15) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store + (i32.load + (get_local $18) + ) + (get_local $15) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store + (tee_local $1 + (i32.load + (get_local $18) + ) + ) + (get_local $15) + ) + (i32.store offset=4 + (get_local $1) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $15) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store16 + (i32.load + (get_local $18) + ) + (i32.and + (get_local $15) + (i32.const 65535) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store8 + (i32.load + (get_local $18) + ) + (i32.and + (get_local $15) + (i32.const 255) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store + (i32.load + (get_local $18) + ) + (get_local $15) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store + (tee_local $1 + (i32.load + (get_local $18) + ) + ) + (get_local $15) + ) + (i32.store offset=4 + (get_local $1) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $15) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) + (set_local $1 + (get_local $5) ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (set_local $1 + (get_local $5) ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) ) - (i32.store - (i32.load - (get_local $19) + (set_local $1 + (i32.or + (get_local $10) + (i32.const 8) ) - (get_local $22) ) - (set_local $20 - (get_local $9) + (set_local $7 + (select + (get_local $7) + (i32.const 8) + (i32.gt_u + (get_local $7) + (i32.const 8) + ) + ) + ) + (set_local $16 + (i32.const 120) + ) + (br $jumpthreading$inner$2) + ) + (set_local $1 + (get_local $10) + ) + (br $jumpthreading$inner$2) + ) + (if + (i32.and + (i32.eqz + (tee_local $6 + (i32.load + (tee_local $1 + (get_local $18) + ) + ) + ) + ) + (i32.eqz + (tee_local $8 + (i32.load offset=4 + (get_local $1) + ) + ) ) + ) + (set_local $8 + (get_local $23) + ) + (block (set_local $1 - (get_local $17) + (get_local $6) + ) + (set_local $6 + (get_local $8) ) (set_local $8 - (get_local $21) + (get_local $23) ) - (br $label$continue$L1) - ) - (i32.store - (i32.load - (get_local $19) + (loop $while-in$39 + (i32.store8 + (tee_local $8 + (i32.add + (get_local $8) + (i32.const -1) + ) + ) + (i32.and + (i32.or + (i32.and + (get_local $1) + (i32.const 7) + ) + (i32.const 48) + ) + (i32.const 255) + ) + ) + (br_if $while-in$39 + (i32.eqz + (i32.and + (i32.eqz + (tee_local $1 + (call $_bitshift64Lshr + (get_local $1) + (get_local $6) + (i32.const 3) + ) + ) + ) + (i32.eqz + (tee_local $6 + (get_global $tempRet0) + ) + ) + ) + ) + ) ) - (get_local $22) ) - (set_local $20 - (get_local $9) + ) + (if + (i32.and + (get_local $10) + (i32.const 8) ) - (set_local $1 - (get_local $17) + (block + (set_local $6 + (get_local $8) + ) + (set_local $1 + (get_local $10) + ) + (set_local $7 + (select + (tee_local $10 + (i32.add + (i32.sub + (get_local $45) + (get_local $8) + ) + (i32.const 1) + ) + ) + (get_local $7) + (i32.lt_s + (get_local $7) + (get_local $10) + ) + ) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$7) ) - (set_local $8 - (get_local $21) + (block + (set_local $6 + (get_local $8) + ) + (set_local $1 + (get_local $10) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$7) ) - (br $label$continue$L1) ) - (i32.store - (tee_local $1 - (i32.load - (get_local $19) + ) + (set_local $1 + (i32.load + (tee_local $6 + (get_local $18) + ) + ) + ) + (if + (i32.lt_s + (tee_local $6 + (i32.load offset=4 + (get_local $6) ) ) - (get_local $22) + (i32.const 0) ) - (i32.store offset=4 - (get_local $1) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $22) + (block + (i32.store + (tee_local $8 + (get_local $18) + ) + (tee_local $1 + (call $_i64Subtract (i32.const 0) + (i32.const 0) + (get_local $1) + (get_local $6) ) - (i32.const 31) ) - (i32.const 31) ) + (i32.store offset=4 + (get_local $8) + (tee_local $6 + (get_global $tempRet0) + ) + ) + (set_local $8 + (i32.const 1) + ) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$3) ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) ) - (i32.store16 - (i32.load - (get_local $19) - ) + (if (i32.and - (get_local $22) - (i32.const 65535) + (get_local $10) + (i32.const 2048) + ) + (block + (set_local $8 + (i32.const 1) + ) + (set_local $9 + (i32.const 4092) + ) + (br $jumpthreading$inner$3) + ) + (block + (set_local $8 + (tee_local $9 + (i32.and + (get_local $10) + (i32.const 1) + ) + ) + ) + (set_local $9 + (select + (i32.const 4093) + (i32.const 4091) + (get_local $9) + ) + ) + (br $jumpthreading$inner$3) ) ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) ) - (i32.store8 + (set_local $1 (i32.load - (get_local $19) - ) - (i32.and - (get_local $22) - (i32.const 255) + (tee_local $6 + (get_local $18) + ) ) ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $17) + (set_local $6 + (i32.load offset=4 + (get_local $6) + ) ) (set_local $8 - (get_local $21) + (i32.const 0) ) - (br $label$continue$L1) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$3) ) - (i32.store - (i32.load - (get_local $19) + (set_local $1 + (get_local $18) + ) + (i32.store8 + (get_local $46) + (i32.and + (i32.load + (get_local $1) + ) + (i32.const 255) ) - (get_local $22) ) - (set_local $20 + (set_local $6 + (get_local $46) + ) + (set_local $10 (get_local $9) ) - (set_local $1 - (get_local $17) + (set_local $11 + (i32.const 1) ) (set_local $8 - (get_local $21) + (i32.const 0) ) - (br $label$continue$L1) - ) - (i32.store - (tee_local $1 - (i32.load - (get_local $19) - ) + (set_local $9 + (i32.const 4091) ) - (get_local $22) - ) - (i32.store offset=4 - (get_local $1) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $22) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) + (set_local $1 + (get_local $23) ) - ) - (set_local $20 - (get_local $9) + (br $jumpthreading$outer$7) ) (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) + (call $_strerror + (i32.load + (call $___errno_location) + ) + ) ) - (br $label$continue$L1) - ) - (set_local $20 - (get_local $9) + (br $jumpthreading$inner$4) ) (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) - ) - (set_local $46 - (i32.or - (get_local $18) - (i32.const 8) - ) - ) - (set_local $57 - (select - (get_local $10) - (i32.const 8) - (i32.gt_u - (get_local $10) - (i32.const 8) - ) - ) - ) - (set_local $68 - (i32.const 120) - ) - (set_local $12 - (i32.const 64) - ) - (br $switch$24) - ) - (set_local $46 - (get_local $18) - ) - (set_local $57 - (get_local $10) - ) - (set_local $68 - (get_local $26) - ) - (set_local $12 - (i32.const 64) - ) - (br $switch$24) - ) - (if - (i32.and - (i32.eq - (tee_local $5 - (i32.load + (select (tee_local $1 - (get_local $19) + (i32.load + (get_local $18) + ) + ) + (i32.const 4101) + (i32.ne + (get_local $1) + (i32.const 0) ) ) ) - (i32.const 0) + (br $jumpthreading$inner$4) ) - (i32.eq - (tee_local $1 - (i32.load offset=4 - (get_local $1) - ) + (set_local $1 + (get_local $18) + ) + (i32.store + (get_local $47) + (i32.load + (get_local $1) ) + ) + (i32.store + (get_local $50) (i32.const 0) ) - ) - (set_local $6 - (get_local $28) - ) - (block - (set_local $6 - (get_local $28) + (i32.store + (get_local $18) + (get_local $47) ) - (loop $while-in$39 - (block $while-out$38 - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) - ) - ) - (i32.and - (i32.or - (i32.and - (get_local $5) - (i32.const 7) - ) - (i32.const 48) - ) - (i32.const 255) - ) - ) - (br_if $while-out$38 - (i32.and - (i32.eq - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $1) - (i32.const 3) - ) - ) - (i32.const 0) - ) - (i32.eq - (tee_local $1 - (get_global $tempRet0) - ) - (i32.const 0) - ) - ) - ) - (br $while-in$39) - ) + (set_local $8 + (i32.const -1) ) + (br $jumpthreading$inner$5) ) - ) - (set_local $58 (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 8) - ) - (i32.const 0) - ) + (get_local $7) (block - (set_local $34 - (get_local $18) - ) - (set_local $32 - (get_local $10) - ) - (set_local $35 - (i32.const 0) - ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) + (set_local $8 + (get_local $7) ) - (get_local $6) + (br $jumpthreading$inner$5) ) (block - (set_local $5 - (i32.lt_s - (get_local $10) - (tee_local $1 - (i32.add - (i32.sub - (get_local $71) - (get_local $6) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $34 - (get_local $18) - ) - (set_local $32 - (select - (get_local $1) - (get_local $10) - (get_local $5) - ) - ) - (set_local $35 + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) (i32.const 0) + (get_local $10) ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) + (set_local $6 + (i32.const 0) ) - (get_local $6) + (br $jumpthreading$inner$6) ) ) ) - (br $switch$24) - ) - (set_local $5 - (i32.load - (tee_local $1 - (get_local $19) + (set_local $14 + (f64.load + (get_local $18) ) ) - ) - (if - (i32.lt_s - (tee_local $33 - (i32.load offset=4 - (get_local $1) - ) - ) + (i32.store + (get_local $20) (i32.const 0) ) - (block - (set_local $1 - (call $_i64Subtract - (i32.const 0) - (i32.const 0) - (get_local $5) - (get_local $33) - ) - ) - (set_local $5 - (get_global $tempRet0) - ) - (i32.store - (tee_local $33 - (get_local $19) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $33) - (get_local $5) - ) - (set_local $33 - (get_local $1) - ) - (set_local $59 - (get_local $5) - ) - (set_local $60 - (i32.const 1) - ) - (set_local $61 - (i32.const 4091) - ) - (set_local $12 - (i32.const 76) - ) - (br $switch$24) + (f64.store + (get_global $tempDoublePtr) + (get_local $14) ) - ) - (set_local $33 - (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) + (set_local $36 + (if + (i32.lt_s + (i32.load offset=4 + (get_global $tempDoublePtr) + ) + (i32.const 0) ) - (i32.const 0) - ) - (block - (set_local $1 - (select - (i32.const 4091) - (i32.const 4093) - (i32.eq - (tee_local $6 - (i32.and - (get_local $18) - (i32.const 1) - ) - ) - (i32.const 0) + (block + (set_local $30 + (i32.const 1) + ) + (set_local $14 + (f64.neg + (get_local $14) ) ) + (i32.const 4108) ) - (set_local $59 - (get_local $33) - ) - (set_local $60 - (get_local $6) - ) - (set_local $61 - (get_local $1) - ) - (set_local $12 - (i32.const 76) - ) - (get_local $5) - ) - (block - (set_local $59 - (get_local $33) - ) - (set_local $60 - (i32.const 1) - ) - (set_local $61 - (i32.const 4092) - ) - (set_local $12 - (i32.const 76) - ) - (get_local $5) - ) - ) - ) - (br $switch$24) - ) - (set_local $33 - (i32.load - (tee_local $1 - (get_local $19) - ) - ) - ) - (set_local $59 - (i32.load offset=4 - (get_local $1) - ) - ) - (set_local $60 - (i32.const 0) - ) - (set_local $61 - (i32.const 4091) - ) - (set_local $12 - (i32.const 76) - ) - (br $switch$24) - ) - (set_local $1 - (i32.load - (get_local $19) - ) - ) - (i32.store8 - (get_local $72) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - (set_local $47 - (get_local $72) - ) - (set_local $37 - (get_local $7) - ) - (set_local $42 - (i32.const 1) - ) - (set_local $43 - (i32.const 0) - ) - (set_local $48 - (i32.const 4091) - ) - (set_local $49 - (get_local $28) - ) - (br $switch$24) - ) - (set_local $50 - (call $_strerror - (i32.load - (call $___errno_location) - ) - ) - ) - (set_local $12 - (i32.const 82) - ) - (br $switch$24) - ) - (set_local $5 - (i32.ne - (tee_local $1 - (i32.load - (get_local $19) - ) - ) - (i32.const 0) - ) - ) - (set_local $50 - (select - (get_local $1) - (i32.const 4101) - (get_local $5) - ) - ) - (set_local $12 - (i32.const 82) - ) - (br $switch$24) - ) - (set_local $1 - (i32.load - (get_local $19) - ) - ) - (i32.store - (get_local $73) - (get_local $1) - ) - (i32.store - (get_local $76) - (i32.const 0) - ) - (i32.store - (get_local $19) - (get_local $73) - ) - (set_local $69 - (i32.const -1) - ) - (set_local $12 - (i32.const 86) - ) - (br $switch$24) - ) - (set_local $12 - (if - (i32.eq - (get_local $10) - (i32.const 0) - ) - (block - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (i32.const 0) - (get_local $18) - ) - (set_local $38 - (i32.const 0) - ) - (i32.const 98) - ) - (block - (set_local $69 - (get_local $10) - ) - (i32.const 86) - ) - ) - ) - (br $switch$24) - ) - (set_local $14 - (f64.load - (get_local $19) - ) - ) - (i32.store - (get_local $25) - (i32.const 0) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $14) - ) - (set_local $51 - (if - (i32.lt_s - (i32.load offset=4 - (get_global $tempDoublePtr) - ) - (i32.const 0) - ) - (block - (set_local $39 - (i32.const 4108) - ) - (set_local $14 - (f64.neg - (get_local $14) - ) - ) - (i32.const 1) - ) - (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) - ) - (i32.const 0) - ) - (block - (set_local $39 - (select - (i32.const 4109) - (i32.const 4114) - (i32.eq - (tee_local $1 - (i32.and - (get_local $18) - (i32.const 1) - ) - ) - (i32.const 0) - ) - ) - ) - (get_local $1) - ) - (block - (set_local $39 - (i32.const 4111) - ) - (i32.const 1) - ) - ) - ) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $14) - ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (block $do-once$56 - (if - (i32.or - (i32.lt_u - (tee_local $1 - (i32.and - (i32.load offset=4 - (get_global $tempDoublePtr) - ) - (i32.const 2146435072) - ) - ) - (i32.const 2146435072) - ) - (i32.and - (i32.eq - (get_local $1) - (i32.const 2146435072) - ) - (i32.const 0) - ) - ) - (block - (if - (tee_local $5 - (f64.ne - (tee_local $14 - (f64.mul - (call $_frexpl - (get_local $14) - (get_local $25) - ) - (f64.const 2) - ) - ) - (f64.const 0) - ) - ) - (i32.store - (get_local $25) - (i32.add - (i32.load - (get_local $25) - ) - (i32.const -1) - ) - ) - ) - (if - (i32.eq - (tee_local $15 - (i32.or - (get_local $26) - (i32.const 32) - ) - ) - (i32.const 97) - ) - (block - (set_local $9 - (select - (get_local $39) - (i32.add - (get_local $39) - (i32.const 9) - ) - (i32.eq - (tee_local $6 - (i32.and - (get_local $26) - (i32.const 32) - ) - ) - (i32.const 0) - ) - ) - ) - (set_local $7 - (i32.or - (get_local $51) - (i32.const 2) - ) - ) - (set_local $14 - (if - (i32.or - (i32.gt_u - (get_local $10) - (i32.const 11) - ) - (i32.eq - (tee_local $1 - (i32.sub - (i32.const 12) + (if + (i32.and (get_local $10) + (i32.const 2048) ) - ) - (i32.const 0) - ) - ) - (get_local $14) - (block - (set_local $30 - (f64.const 8) - ) - (loop $while-in$61 - (block $while-out$60 - (set_local $30 - (f64.mul - (get_local $30) - (f64.const 16) + (block + (set_local $30 + (i32.const 1) ) + (i32.const 4111) ) - (br_if $while-out$60 - (i32.eq + (block + (set_local $30 (tee_local $1 - (i32.add - (get_local $1) - (i32.const -1) + (i32.and + (get_local $10) + (i32.const 1) ) ) - (i32.const 0) - ) - ) - (br $while-in$61) - ) - ) - (select - (f64.neg - (f64.add - (get_local $30) - (f64.sub - (f64.neg - (get_local $14) - ) - (get_local $30) - ) - ) - ) - (f64.sub - (f64.add - (get_local $14) - (get_local $30) - ) - (get_local $30) - ) - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $9) - ) - (i32.const 24) ) - (i32.const 24) - ) - (i32.const 45) - ) - ) - ) - ) - ) - (set_local $5 - (i32.lt_s - (tee_local $1 - (i32.load - (get_local $25) - ) - ) - (i32.const 0) - ) - ) - (set_local $5 - (i32.shr_s - (i32.shl - (i32.lt_s - (tee_local $8 - (select - (i32.sub - (i32.const 0) + (select + (i32.const 4114) + (i32.const 4109) (get_local $1) ) - (get_local $1) - (get_local $5) - ) - ) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) - (i32.store8 - (i32.add - (tee_local $5 - (if - (i32.eq - (tee_local $5 - (call $_fmt_u - (get_local $8) - (get_local $5) - (get_local $52) - ) - ) - (get_local $52) - ) - (block - (i32.store8 - (get_local $74) - (i32.const 48) ) - (get_local $74) ) - (get_local $5) ) ) - (i32.const -1) - ) - (i32.and - (i32.add - (i32.and - (i32.shr_s - (get_local $1) - (i32.const 31) - ) - (i32.const 2) - ) - (i32.const 43) + (f64.store + (get_global $tempDoublePtr) + (get_local $14) ) - (i32.const 255) - ) - ) - (i32.store8 - (tee_local $8 - (i32.add + (set_local $1 (get_local $5) - (i32.const -2) - ) - ) - (i32.and - (i32.add - (get_local $26) - (i32.const 15) - ) - (i32.const 255) - ) - ) - (set_local $5 - (i32.lt_s - (get_local $10) - (i32.const 1) - ) - ) - (set_local $13 - (i32.eq - (i32.and - (get_local $18) - (i32.const 8) ) - (i32.const 0) - ) - ) - (set_local $11 - (get_local $29) - ) - (loop $while-in$63 - (block $while-out$62 - (i32.store8 - (get_local $11) - (i32.and - (i32.or - (i32.and - (i32.load8_s - (i32.add - (tee_local $1 - (call_import $f64-to-int - (get_local $14) + (set_local $5 + (block $do-once$56 + (if + (i32.or + (i32.lt_u + (tee_local $5 + (i32.and + (i32.load offset=4 + (get_global $tempDoublePtr) ) + (i32.const 2146435072) ) - (i32.const 4075) ) + (i32.const 2146435072) ) - (i32.const 255) - ) - (get_local $6) - ) - (i32.const 255) - ) - ) - (set_local $14 - (f64.mul - (f64.sub - (get_local $14) - (f64.convert_s/i32 - (get_local $1) - ) - ) - (f64.const 16) - ) - ) - (set_local $11 - (block $do-once$64 - (if - (i32.eq - (i32.sub - (tee_local $1 - (i32.add - (get_local $11) - (i32.const 1) - ) + (i32.and + (i32.eq + (get_local $5) + (i32.const 2146435072) ) - (get_local $64) + (i32.const 0) ) - (i32.const 1) ) (block - (br_if $do-once$64 - (get_local $1) - (i32.and - (get_local $13) - (i32.and - (get_local $5) - (f64.eq - (get_local $14) - (f64.const 0) + (if + (tee_local $5 + (f64.ne + (tee_local $22 + (f64.mul + (call $_frexpl + (get_local $14) + (get_local $20) + ) + (f64.const 2) + ) ) + (f64.const 0) ) ) - ) - (i32.store8 - (get_local $1) - (i32.const 46) - ) - (i32.add - (get_local $11) - (i32.const 2) - ) - ) - (get_local $1) - ) - ) - ) - (if - (f64.eq - (get_local $14) - (f64.const 0) - ) - (block - (set_local $1 - (get_local $11) - ) - (br $while-out$62) - ) - ) - (br $while-in$63) - ) - ) - (set_local $5 - (i32.and - (i32.ne - (get_local $10) - (i32.const 0) - ) - (i32.lt_s - (i32.add - (get_local $78) - (get_local $1) - ) - (get_local $10) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (tee_local $5 - (i32.add - (tee_local $6 - (select - (i32.sub - (i32.add - (get_local $79) - (get_local $10) - ) - (get_local $8) - ) - (i32.add - (i32.sub - (get_local $77) - (get_local $8) - ) - (get_local $1) - ) - (get_local $5) - ) - ) - (get_local $7) - ) - ) - (get_local $18) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $9) - (get_local $7) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $16) - (get_local $5) - (i32.xor - (get_local $18) - (i32.const 65536) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $64) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $29) - (get_local $1) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.sub - (get_local $6) - (i32.add - (get_local $1) - (tee_local $1 - (i32.sub - (get_local $40) - (get_local $8) - ) - ) - ) - ) - (i32.const 0) - (i32.const 0) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (get_local $1) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (get_local $5) - (i32.xor - (get_local $18) - (i32.const 8192) - ) - ) - (br $do-once$56 - (select - (get_local $16) - (get_local $5) - (i32.lt_s - (get_local $5) - (get_local $16) - ) - ) - ) - ) - ) - (set_local $1 - (select - (i32.const 6) - (get_local $10) - (i32.lt_s - (get_local $10) - (i32.const 0) - ) - ) - ) - (set_local $62 - (tee_local $9 - (select - (get_local $80) - (get_local $81) - (i32.lt_s - (if - (get_local $5) - (block - (i32.store - (get_local $25) - (tee_local $5 - (i32.add - (i32.load - (get_local $25) + (i32.store + (get_local $20) + (i32.add + (i32.load + (get_local $20) + ) + (i32.const -1) + ) ) - (i32.const -28) ) - ) - ) - (set_local $14 - (f64.mul - (get_local $14) - (f64.const 268435456) - ) - ) - (get_local $5) - ) - (i32.load - (get_local $25) - ) - ) - (i32.const 0) - ) - ) - ) - ) - (set_local $7 - (get_local $9) - ) - (loop $while-in$67 - (block $while-out$66 - (i32.store - (get_local $7) - (tee_local $5 - (call_import $f64-to-int - (get_local $14) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) - ) - (if - (f64.eq - (tee_local $14 - (f64.mul - (f64.sub - (get_local $14) - (f64.convert_u/i32 - (get_local $5) - ) - ) - (f64.const 1e9) - ) - ) - (f64.const 0) - ) - (block - (set_local $6 - (get_local $7) - ) - (br $while-out$66) - ) - ) - (br $while-in$67) - ) - ) - (if - (i32.gt_s - (tee_local $5 - (i32.load - (get_local $25) - ) - ) - (i32.const 0) - ) - (block - (set_local $8 - (get_local $9) - ) - (set_local $13 - (get_local $6) - ) - (loop $while-in$69 - (block $while-out$68 - (set_local $11 - (select - (i32.const 29) - (get_local $5) - (i32.gt_s - (get_local $5) - (i32.const 29) - ) - ) - ) - (set_local $7 - (block $do-once$70 - (if - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $13) - (i32.const -4) + (if + (i32.eq + (tee_local $25 + (i32.or + (get_local $16) + (i32.const 32) + ) + ) + (i32.const 97) ) - ) - (get_local $8) - ) - (get_local $8) - (block - (set_local $5 - (i32.const 0) - ) - (set_local $10 - (get_local $7) - ) - (loop $while-in$73 - (block $while-out$72 - (set_local $6 - (call $___uremdi3 - (tee_local $5 - (call $_i64Add - (call $_bitshift64Shl - (i32.load - (get_local $10) + (block + (set_local $19 + (select + (i32.add + (get_local $36) + (i32.const 9) + ) + (get_local $36) + (tee_local $9 + (i32.and + (get_local $16) + (i32.const 32) + ) + ) + ) + ) + (set_local $8 + (i32.or + (get_local $30) + (i32.const 2) + ) + ) + (set_local $14 + (if + (i32.or + (i32.gt_u + (get_local $7) + (i32.const 11) + ) + (i32.eqz + (tee_local $5 + (i32.sub + (i32.const 12) + (get_local $7) ) - (i32.const 0) - (get_local $11) ) - (get_global $tempRet0) - (get_local $5) - (i32.const 0) ) ) - (tee_local $7 - (get_global $tempRet0) + (get_local $22) + (block + (set_local $14 + (f64.const 8) + ) + (loop $while-in$61 + (set_local $14 + (f64.mul + (get_local $14) + (f64.const 16) + ) + ) + (br_if $while-in$61 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + ) + ) + (select + (f64.neg + (f64.add + (get_local $14) + (f64.sub + (f64.neg + (get_local $22) + ) + (get_local $14) + ) + ) + ) + (f64.sub + (f64.add + (get_local $22) + (get_local $14) + ) + (get_local $14) + ) + (i32.eq + (i32.load8_s + (get_local $19) + ) + (i32.const 45) + ) + ) ) - (i32.const 1000000000) - (i32.const 0) ) ) - (i32.store - (get_local $10) - (get_local $6) + (i32.store8 + (i32.add + (tee_local $6 + (if + (i32.eq + (tee_local $6 + (call $_fmt_u + (tee_local $6 + (select + (i32.sub + (i32.const 0) + (tee_local $5 + (i32.load + (get_local $20) + ) + ) + ) + (get_local $5) + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + ) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $6) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + (get_local $37) + ) + ) + (get_local $37) + ) + (block + (i32.store8 + (get_local $48) + (i32.const 48) + ) + (get_local $48) + ) + (get_local $6) + ) + ) + (i32.const -1) + ) + (i32.and + (i32.add + (i32.and + (i32.shr_s + (get_local $5) + (i32.const 31) + ) + (i32.const 2) + ) + (i32.const 43) + ) + (i32.const 255) + ) + ) + (i32.store8 + (tee_local $11 + (i32.add + (get_local $6) + (i32.const -2) + ) + ) + (i32.and + (i32.add + (get_local $16) + (i32.const 15) + ) + (i32.const 255) + ) + ) + (set_local $12 + (i32.lt_s + (get_local $7) + (i32.const 1) + ) + ) + (set_local $16 + (i32.eqz + (i32.and + (get_local $10) + (i32.const 8) + ) + ) ) (set_local $5 - (call $___udivdi3 + (get_local $24) + ) + (loop $while-in$63 + (i32.store8 (get_local $5) - (get_local $7) - (i32.const 1000000000) - (i32.const 0) + (i32.and + (i32.or + (i32.and + (i32.load8_s + (i32.add + (tee_local $6 + (call_import $f64-to-int + (get_local $14) + ) + ) + (i32.const 4075) + ) + ) + (i32.const 255) + ) + (get_local $9) + ) + (i32.const 255) + ) + ) + (set_local $14 + (f64.mul + (f64.sub + (get_local $14) + (f64.convert_s/i32 + (get_local $6) + ) + ) + (f64.const 16) + ) + ) + (set_local $5 + (block $do-once$64 + (if + (i32.eq + (i32.sub + (tee_local $6 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (get_local $42) + ) + (i32.const 1) + ) + (block + (br_if $do-once$64 + (get_local $6) + (i32.and + (get_local $16) + (i32.and + (get_local $12) + (f64.eq + (get_local $14) + (f64.const 0) + ) + ) + ) + ) + (i32.store8 + (get_local $6) + (i32.const 46) + ) + (i32.add + (get_local $5) + (i32.const 2) + ) + ) + (get_local $6) + ) + ) + ) + (br_if $while-in$63 + (f64.ne + (get_local $14) + (f64.const 0) + ) + ) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (tee_local $6 + (i32.add + (tee_local $7 + (select + (i32.sub + (i32.add + (get_local $53) + (get_local $7) + ) + (get_local $11) + ) + (i32.add + (i32.sub + (get_local $51) + (get_local $11) + ) + (get_local $5) + ) + (i32.and + (i32.ne + (get_local $7) + (i32.const 0) + ) + (i32.lt_s + (i32.add + (get_local $52) + (get_local $5) + ) + (get_local $7) + ) + ) + ) + ) + (get_local $8) + ) ) + (get_local $10) ) (if - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $10) - (i32.const -4) + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) ) - (get_local $8) ) - (br $while-out$72) - (set_local $10 - (get_local $7) + (drop + (call $___fwritex + (get_local $19) + (get_local $8) + (get_local $0) + ) ) ) - (br $while-in$73) - ) - ) - (br_if $do-once$70 - (get_local $8) - (i32.eq - (get_local $5) - (i32.const 0) - ) - ) - (i32.store - (tee_local $7 - (i32.add - (get_local $8) - (i32.const -4) - ) - ) - (get_local $5) - ) - (get_local $7) - ) - ) - ) - ) - (loop $while-in$75 - (block $while-out$74 - (br_if $while-out$74 - (i32.le_u - (get_local $13) - (get_local $7) - ) - ) - (if - (i32.eq - (i32.load - (tee_local $5 - (i32.add - (get_local $13) - (i32.const -4) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $17) + (get_local $6) + (i32.xor + (get_local $10) + (i32.const 65536) + ) ) - ) - ) - (i32.const 0) - ) - (set_local $13 - (get_local $5) - ) - (br $while-out$74) - ) - (br $while-in$75) - ) - ) - (i32.store - (get_local $25) - (tee_local $5 - (i32.sub - (i32.load - (get_local $25) - ) - (get_local $11) - ) - ) - ) - (if - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (set_local $8 - (get_local $7) - ) - (block - (set_local $6 - (get_local $13) - ) - (br $while-out$68) - ) - ) - (br $while-in$69) - ) - ) - ) - (set_local $7 - (get_local $9) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $8 - (i32.add - (i32.and - (call_import $i32s-div - (i32.add - (get_local $1) - (i32.const 25) - ) - (i32.const 9) - ) - (i32.const -1) - ) - (i32.const 1) - ) - ) - (set_local $10 - (i32.eq - (get_local $15) - (i32.const 102) - ) - ) - (set_local $23 - (get_local $6) - ) - (loop $while-in$77 - (block $while-out$76 - (set_local $5 - (i32.gt_s - (tee_local $6 - (i32.sub - (i32.const 0) - (get_local $5) - ) - ) - (i32.const 9) - ) - ) - (set_local $13 - (select - (i32.const 9) - (get_local $6) - (get_local $5) - ) - ) - (set_local $11 - (block $do-once$78 - (if - (i32.lt_u - (get_local $7) - (get_local $23) - ) - (block - (set_local $70 - (i32.add - (i32.shl - (i32.const 1) - (get_local $13) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $42) + ) ) - (i32.const -1) - ) - ) - (set_local $27 - (i32.shr_u - (i32.const 1000000000) - (get_local $13) - ) - ) - (set_local $11 - (i32.const 0) - ) - (set_local $17 - (get_local $7) - ) - (loop $while-in$81 - (block $while-out$80 - (set_local $6 - (i32.and - (tee_local $5 + (if + (i32.eqz + (i32.and (i32.load - (get_local $17) + (get_local $0) ) + (i32.const 32) ) - (get_local $70) ) - ) - (i32.store - (get_local $17) - (i32.add - (i32.shr_u + (drop + (call $___fwritex + (get_local $24) (get_local $5) - (get_local $13) + (get_local $0) ) - (get_local $11) ) ) - (set_local $11 - (i32.mul - (get_local $6) - (get_local $27) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.sub + (get_local $7) + (i32.add + (get_local $5) + (tee_local $5 + (i32.sub + (get_local $32) + (get_local $11) + ) + ) + ) ) + (i32.const 0) + (i32.const 0) ) - (br_if $while-out$80 - (i32.ge_u - (tee_local $17 - (i32.add - (get_local $17) - (i32.const 4) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $11) + (get_local $5) + (get_local $0) ) - (get_local $23) ) ) - (br $while-in$81) - ) - ) - (set_local $5 - (select - (i32.add - (get_local $7) - (i32.const 4) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $6) + (i32.xor + (get_local $10) + (i32.const 8192) + ) ) - (get_local $7) - (i32.eq - (i32.load - (get_local $7) + (br $do-once$56 + (select + (get_local $17) + (get_local $6) + (i32.lt_s + (get_local $6) + (get_local $17) + ) ) - (i32.const 0) ) ) ) - (br_if $do-once$78 - (get_local $5) - (i32.eq - (get_local $11) - (i32.const 0) - ) - ) - (i32.store - (get_local $23) - (get_local $11) - ) - (set_local $23 - (i32.add - (get_local $23) - (i32.const 4) - ) - ) - (get_local $5) - ) - (select - (i32.add - (get_local $7) - (i32.const 4) - ) - (get_local $7) - (i32.eq - (i32.load + (set_local $19 + (select + (i32.const 6) (get_local $7) + (i32.lt_s + (get_local $7) + (i32.const 0) + ) ) - (i32.const 0) ) - ) - ) - ) - ) - (set_local $5 - (i32.gt_s - (i32.shr_s - (i32.sub - (get_local $23) - (tee_local $7 - (select - (get_local $9) - (get_local $11) - (get_local $10) + (set_local $40 + (tee_local $8 + (select + (get_local $54) + (get_local $55) + (i32.lt_s + (if + (get_local $5) + (block + (i32.store + (get_local $20) + (tee_local $5 + (i32.add + (i32.load + (get_local $20) + ) + (i32.const -28) + ) + ) + ) + (set_local $14 + (f64.mul + (get_local $22) + (f64.const 268435456) + ) + ) + (get_local $5) + ) + (block + (set_local $14 + (get_local $22) + ) + (i32.load + (get_local $20) + ) + ) + ) + (i32.const 0) + ) + ) ) ) - ) - (i32.const 2) - ) - (get_local $8) - ) - ) - (set_local $6 - (select - (i32.add - (get_local $7) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $23) - (get_local $5) - ) - ) - (i32.store - (get_local $25) - (tee_local $5 - (i32.add - (i32.load - (get_local $25) - ) - (get_local $13) - ) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $7 - (get_local $11) - ) - (set_local $23 - (get_local $6) - ) - ) - (block - (set_local $7 - (get_local $11) - ) - (set_local $27 - (get_local $6) - ) - (br $while-out$76) - ) - ) - (br $while-in$77) - ) - ) - ) - (set_local $27 - (get_local $6) - ) - ) - (block $do-once$82 - (if - (i32.lt_u - (get_local $7) - (get_local $27) - ) - (block - (set_local $6 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $62) - (get_local $7) - ) - (i32.const 2) - ) - (i32.const 9) - ) - ) - (if - (i32.lt_u - (tee_local $5 - (i32.load - (get_local $7) - ) - ) - (i32.const 10) - ) - (block - (set_local $13 - (get_local $6) - ) - (br $do-once$82) - ) - (set_local $8 - (i32.const 10) - ) - ) - (loop $while-in$85 - (block $while-out$84 - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (if - (i32.lt_u - (get_local $5) - (tee_local $8 - (i32.mul + (set_local $6 (get_local $8) - (i32.const 10) - ) - ) - ) - (block - (set_local $13 - (get_local $6) - ) - (br $while-out$84) - ) - ) - (br $while-in$85) - ) - ) - ) - (set_local $13 - (i32.const 0) - ) - ) - ) - (set_local $7 - (if - (i32.lt_s - (tee_local $5 - (i32.add - (i32.sub - (get_local $1) - (select - (get_local $13) - (i32.const 0) - (i32.ne - (get_local $15) - (i32.const 102) - ) - ) - ) - (i32.shr_s - (i32.shl - (i32.and - (tee_local $70 - (i32.ne - (get_local $1) - (i32.const 0) - ) - ) - (tee_local $8 - (i32.eq - (get_local $15) - (i32.const 103) - ) ) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) - ) - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $27) - (get_local $62) - ) - (i32.const 2) - ) - (i32.const 9) - ) - (i32.const -9) - ) - ) - (block - (set_local $6 - (i32.add - (i32.add - (get_local $9) - (i32.const 4) - ) - (i32.shl - (i32.add - (i32.and - (call_import $i32s-div - (tee_local $5 - (i32.add - (get_local $5) - (i32.const 9216) + (loop $while-in$67 + (i32.store + (get_local $6) + (tee_local $5 + (call_import $f64-to-int + (get_local $14) + ) ) ) - (i32.const 9) - ) - (i32.const -1) - ) - (i32.const -1024) - ) - (i32.const 2) - ) - ) - ) - (if - (i32.lt_s - (tee_local $11 - (i32.add - (i32.and - (call_import $i32s-rem - (get_local $5) - (i32.const 9) - ) - (i32.const -1) - ) - (i32.const 1) - ) - ) - (i32.const 9) - ) - (block - (set_local $5 - (i32.const 10) - ) - (loop $while-in$87 - (block $while-out$86 - (set_local $5 - (i32.mul - (get_local $5) - (i32.const 10) - ) - ) - (if - (i32.eq - (tee_local $11 + (set_local $6 (i32.add - (get_local $11) - (i32.const 1) + (get_local $6) + (i32.const 4) ) ) - (i32.const 9) - ) - (block - (set_local $17 - (get_local $5) - ) - (br $while-out$86) - ) - ) - (br $while-in$87) - ) - ) - ) - (set_local $17 - (i32.const 10) - ) - ) - (block $do-once$88 - (if - (i32.eqz - (i32.and - (tee_local $11 - (i32.eq - (i32.add - (get_local $6) - (i32.const 4) - ) - (get_local $27) - ) - ) - (i32.eq - (tee_local $15 - (i32.and - (call_import $i32u-rem - (tee_local $5 - (i32.load - (get_local $6) + (br_if $while-in$67 + (f64.ne + (tee_local $14 + (f64.mul + (f64.sub + (get_local $14) + (f64.convert_u/i32 + (get_local $5) + ) + ) + (f64.const 1e9) ) ) - (get_local $17) + (f64.const 0) ) - (i32.const -1) ) ) - (i32.const 0) - ) - ) - ) - (block - (set_local $14 - (select - (f64.const 9007199254740992) - (f64.const 9007199254740994) - (i32.eq - (i32.and - (i32.and - (call_import $i32u-div - (get_local $5) - (get_local $17) + (if + (i32.gt_s + (tee_local $7 + (i32.load + (get_local $20) ) - (i32.const -1) ) - (i32.const 1) + (i32.const 0) ) - (i32.const 0) - ) - ) - ) - (set_local $30 - (if - (i32.lt_u - (get_local $15) - (tee_local $10 - (i32.and - (call_import $i32s-div - (get_local $17) - (i32.const 2) + (block + (set_local $9 + (get_local $8) + ) + (loop $while-in$69 + (set_local $21 + (select + (i32.const 29) + (get_local $7) + (i32.gt_s + (get_local $7) + (i32.const 29) + ) + ) + ) + (set_local $9 + (block $do-once$70 + (if + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $6) + (i32.const -4) + ) + ) + (get_local $9) + ) + (get_local $9) + (block + (set_local $5 + (i32.const 0) + ) + (loop $while-in$73 + (set_local $12 + (call $___uremdi3 + (tee_local $5 + (call $_i64Add + (call $_bitshift64Shl + (i32.load + (get_local $7) + ) + (i32.const 0) + (get_local $21) + ) + (get_global $tempRet0) + (get_local $5) + (i32.const 0) + ) + ) + (tee_local $11 + (get_global $tempRet0) + ) + (i32.const 1000000000) + (i32.const 0) + ) + ) + (i32.store + (get_local $7) + (get_local $12) + ) + (set_local $5 + (call $___udivdi3 + (get_local $5) + (get_local $11) + (i32.const 1000000000) + (i32.const 0) + ) + ) + (br_if $while-in$73 + (i32.ge_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -4) + ) + ) + (get_local $9) + ) + ) + ) + (br_if $do-once$70 + (get_local $9) + (i32.eqz + (get_local $5) + ) + ) + (i32.store + (tee_local $7 + (i32.add + (get_local $9) + (i32.const -4) + ) + ) + (get_local $5) + ) + (get_local $7) + ) + ) + ) + ) + (set_local $5 + (get_local $6) + ) + (loop $while-in$75 + (block $while-out$74 + (if + (i32.le_u + (get_local $5) + (get_local $9) + ) + (block + (set_local $6 + (get_local $5) + ) + (br $while-out$74) + ) + ) + (if + (i32.load + (tee_local $6 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + ) + (set_local $6 + (get_local $5) + ) + (block + (set_local $5 + (get_local $6) + ) + (br $while-in$75) + ) + ) + ) + ) + (i32.store + (get_local $20) + (tee_local $7 + (i32.sub + (i32.load + (get_local $20) + ) + (get_local $21) + ) + ) + ) + (br_if $while-in$69 + (i32.gt_s + (get_local $7) + (i32.const 0) + ) + ) + (set_local $5 + (get_local $9) ) - (i32.const -1) ) ) - ) - (f64.const 0.5) - (select - (f64.const 1) - (f64.const 1.5) - (i32.and - (get_local $11) - (i32.eq - (get_local $15) - (get_local $10) - ) + (set_local $5 + (get_local $8) ) ) - ) - ) - (set_local $14 - (block $do-once$90 (if - (i32.eq - (get_local $51) + (i32.lt_s + (get_local $7) (i32.const 0) ) - (get_local $14) (block - (br_if $do-once$90 - (get_local $14) - (i32.ne - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $39) + (set_local $12 + (i32.add + (i32.and + (call_import $i32s-div + (i32.add + (get_local $19) + (i32.const 25) ) - (i32.const 24) + (i32.const 9) ) - (i32.const 24) + (i32.const -1) ) - (i32.const 45) + (i32.const 1) ) ) - (set_local $30 - (f64.neg - (get_local $30) + (set_local $21 + (i32.eq + (get_local $25) + (i32.const 102) ) ) - (f64.neg - (get_local $14) + (loop $while-in$77 + (set_local $26 + (select + (i32.const 9) + (tee_local $7 + (i32.sub + (i32.const 0) + (get_local $7) + ) + ) + (i32.gt_s + (get_local $7) + (i32.const 9) + ) + ) + ) + (set_local $6 + (select + (i32.add + (tee_local $7 + (select + (get_local $8) + (tee_local $5 + (block $do-once$78 + (if + (i32.lt_u + (get_local $5) + (get_local $6) + ) + (block + (set_local $44 + (i32.add + (i32.shl + (i32.const 1) + (get_local $26) + ) + (i32.const -1) + ) + ) + (set_local $31 + (i32.shr_u + (i32.const 1000000000) + (get_local $26) + ) + ) + (set_local $9 + (i32.const 0) + ) + (set_local $7 + (get_local $5) + ) + (loop $while-in$81 + (i32.store + (get_local $7) + (i32.add + (i32.shr_u + (tee_local $11 + (i32.load + (get_local $7) + ) + ) + (get_local $26) + ) + (get_local $9) + ) + ) + (set_local $9 + (i32.mul + (i32.and + (get_local $11) + (get_local $44) + ) + (get_local $31) + ) + ) + (br_if $while-in$81 + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $6) + ) + ) + ) + (set_local $5 + (select + (get_local $5) + (i32.add + (get_local $5) + (i32.const 4) + ) + (i32.load + (get_local $5) + ) + ) + ) + (br_if $do-once$78 + (get_local $5) + (i32.eqz + (get_local $9) + ) + ) + (i32.store + (get_local $6) + (get_local $9) + ) + (set_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $5) + ) + (select + (get_local $5) + (i32.add + (get_local $5) + (i32.const 4) + ) + (i32.load + (get_local $5) + ) + ) + ) + ) + ) + (get_local $21) + ) + ) + (i32.shl + (get_local $12) + (i32.const 2) + ) + ) + (get_local $6) + (i32.gt_s + (i32.shr_s + (i32.sub + (get_local $6) + (get_local $7) + ) + (i32.const 2) + ) + (get_local $12) + ) + ) + ) + (i32.store + (get_local $20) + (tee_local $7 + (i32.add + (i32.load + (get_local $20) + ) + (get_local $26) + ) + ) + ) + (br_if $while-in$77 + (i32.lt_s + (get_local $7) + (i32.const 0) + ) + ) + (set_local $9 + (get_local $6) + ) ) ) - ) - ) - ) - (i32.store - (get_local $6) - (tee_local $5 - (i32.sub - (get_local $5) - (get_local $15) - ) - ) - ) - (br_if $do-once$88 - (f64.eq - (f64.add - (get_local $14) - (get_local $30) - ) - (get_local $14) - ) - ) - (i32.store - (get_local $6) - (tee_local $5 - (i32.add - (get_local $5) - (get_local $17) - ) - ) - ) - (if - (i32.gt_u - (get_local $5) - (i32.const 999999999) - ) - (loop $while-in$93 - (block $while-out$92 - (i32.store + (set_local $9 (get_local $6) - (i32.const 0) ) - (set_local $7 - (if - (i32.lt_u - (tee_local $6 + ) + (block $do-once$82 + (if + (i32.lt_u + (get_local $5) + (get_local $9) + ) + (block + (set_local $6 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $40) + (get_local $5) + ) + (i32.const 2) + ) + (i32.const 9) + ) + ) + (br_if $do-once$82 + (i32.lt_u + (tee_local $11 + (i32.load + (get_local $5) + ) + ) + (i32.const 10) + ) + ) + (set_local $7 + (i32.const 10) + ) + (loop $while-in$85 + (set_local $6 (i32.add (get_local $6) - (i32.const -4) + (i32.const 1) ) ) - (get_local $7) - ) - (block - (i32.store - (tee_local $5 - (i32.add - (get_local $7) - (i32.const -4) + (br_if $while-in$85 + (i32.ge_u + (get_local $11) + (tee_local $7 + (i32.mul + (get_local $7) + (i32.const 10) + ) ) ) - (i32.const 0) ) - (get_local $5) ) - (get_local $7) + ) + (set_local $6 + (i32.const 0) ) ) - (i32.store - (get_local $6) - (tee_local $5 + ) + (set_local $12 + (if + (i32.lt_s + (tee_local $7 + (i32.add + (i32.sub + (get_local $19) + (select + (get_local $6) + (i32.const 0) + (i32.ne + (get_local $25) + (i32.const 102) + ) + ) + ) + (i32.shr_s + (i32.shl + (i32.and + (tee_local $44 + (i32.ne + (get_local $19) + (i32.const 0) + ) + ) + (tee_local $21 + (i32.eq + (get_local $25) + (i32.const 103) + ) + ) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) + ) (i32.add - (i32.load - (get_local $6) + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $40) + ) + (i32.const 2) + ) + (i32.const 9) ) - (i32.const 1) + (i32.const -9) ) ) - ) - (br_if $while-out$92 - (i32.le_u + (block + (set_local $7 + (i32.add + (i32.add + (get_local $8) + (i32.const 4) + ) + (i32.shl + (i32.add + (i32.and + (call_import $i32s-div + (tee_local $11 + (i32.add + (get_local $7) + (i32.const 9216) + ) + ) + (i32.const 9) + ) + (i32.const -1) + ) + (i32.const -1024) + ) + (i32.const 2) + ) + ) + ) + (if + (i32.lt_s + (tee_local $11 + (i32.add + (i32.and + (call_import $i32s-rem + (get_local $11) + (i32.const 9) + ) + (i32.const -1) + ) + (i32.const 1) + ) + ) + (i32.const 9) + ) + (block + (set_local $12 + (i32.const 10) + ) + (loop $while-in$87 + (set_local $12 + (i32.mul + (get_local $12) + (i32.const 10) + ) + ) + (br_if $while-in$87 + (i32.ne + (tee_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (i32.const 9) + ) + ) + ) + ) + (set_local $12 + (i32.const 10) + ) + ) + (block $do-once$88 + (if + (i32.eqz + (i32.and + (tee_local $26 + (i32.eq + (i32.add + (get_local $7) + (i32.const 4) + ) + (get_local $9) + ) + ) + (i32.eqz + (tee_local $31 + (i32.and + (call_import $i32u-rem + (tee_local $11 + (i32.load + (get_local $7) + ) + ) + (get_local $12) + ) + (i32.const -1) + ) + ) + ) + ) + ) + (block + (set_local $22 + (select + (f64.const 9007199254740994) + (f64.const 9007199254740992) + (i32.and + (i32.and + (call_import $i32u-div + (get_local $11) + (get_local $12) + ) + (i32.const -1) + ) + (i32.const 1) + ) + ) + ) + (set_local $14 + (if + (i32.lt_u + (get_local $31) + (tee_local $25 + (i32.and + (call_import $i32s-div + (get_local $12) + (i32.const 2) + ) + (i32.const -1) + ) + ) + ) + (f64.const 0.5) + (select + (f64.const 1) + (f64.const 1.5) + (i32.and + (get_local $26) + (i32.eq + (get_local $31) + (get_local $25) + ) + ) + ) + ) + ) + (set_local $22 + (block $do-once$90 + (if + (get_local $30) + (block + (br_if $do-once$90 + (get_local $22) + (i32.ne + (i32.load8_s + (get_local $36) + ) + (i32.const 45) + ) + ) + (set_local $14 + (f64.neg + (get_local $14) + ) + ) + (f64.neg + (get_local $22) + ) + ) + (get_local $22) + ) + ) + ) + (i32.store + (get_local $7) + (tee_local $11 + (i32.sub + (get_local $11) + (get_local $31) + ) + ) + ) + (br_if $do-once$88 + (f64.eq + (f64.add + (get_local $22) + (get_local $14) + ) + (get_local $22) + ) + ) + (i32.store + (get_local $7) + (tee_local $6 + (i32.add + (get_local $11) + (get_local $12) + ) + ) + ) + (if + (i32.gt_u + (get_local $6) + (i32.const 999999999) + ) + (loop $while-in$93 + (i32.store + (get_local $7) + (i32.const 0) + ) + (set_local $5 + (if + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -4) + ) + ) + (get_local $5) + ) + (block + (i32.store + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + (i32.const 0) + ) + (get_local $5) + ) + (get_local $5) + ) + ) + (i32.store + (get_local $7) + (tee_local $6 + (i32.add + (i32.load + (get_local $7) + ) + (i32.const 1) + ) + ) + ) + (br_if $while-in$93 + (i32.gt_u + (get_local $6) + (i32.const 999999999) + ) + ) + ) + ) + (set_local $6 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $40) + (get_local $5) + ) + (i32.const 2) + ) + (i32.const 9) + ) + ) + (br_if $do-once$88 + (i32.lt_u + (tee_local $12 + (i32.load + (get_local $5) + ) + ) + (i32.const 10) + ) + ) + (set_local $11 + (i32.const 10) + ) + (loop $while-in$95 + (set_local $6 + (i32.add + (get_local $6) + (i32.const 1) + ) + ) + (br_if $while-in$95 + (i32.ge_u + (get_local $12) + (tee_local $11 + (i32.mul + (get_local $11) + (i32.const 10) + ) + ) + ) + ) + ) + ) + ) + ) + (set_local $11 + (get_local $6) + ) + (set_local $9 + (select + (tee_local $6 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $9) + (i32.gt_u + (get_local $9) + (get_local $6) + ) + ) + ) + (get_local $5) + ) + (block + (set_local $11 + (get_local $6) + ) (get_local $5) - (i32.const 999999999) ) ) - (br $while-in$93) ) - ) - ) - (set_local $11 - (i32.mul - (i32.shr_s + (set_local $25 (i32.sub - (get_local $62) - (get_local $7) - ) - (i32.const 2) - ) - (i32.const 9) - ) - ) - (if - (i32.lt_u - (tee_local $5 - (i32.load - (get_local $7) - ) - ) - (i32.const 10) - ) - (block - (set_local $13 - (get_local $11) - ) - (br $do-once$88) - ) - (set_local $10 - (i32.const 10) - ) - ) - (loop $while-in$95 - (block $while-out$94 - (set_local $11 - (i32.add + (i32.const 0) (get_local $11) - (i32.const 1) ) ) - (if - (i32.lt_u - (get_local $5) - (tee_local $10 - (i32.mul - (get_local $10) - (i32.const 10) + (set_local $5 + (get_local $9) + ) + (loop $while-in$97 + (block $while-out$96 + (if + (i32.le_u + (get_local $5) + (get_local $12) + ) + (block + (set_local $26 + (i32.const 0) + ) + (set_local $9 + (get_local $5) + ) + (br $while-out$96) ) ) - ) - (block - (set_local $13 - (get_local $11) + (if + (i32.load + (tee_local $6 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + ) + (block + (set_local $26 + (i32.const 1) + ) + (set_local $9 + (get_local $5) + ) + ) + (block + (set_local $5 + (get_local $6) + ) + (br $while-in$97) + ) ) - (br $while-out$94) ) ) - (br $while-in$95) - ) - ) - ) - ) - ) - (set_local $6 - (i32.gt_u - (get_local $27) - (tee_local $5 - (i32.add - (get_local $6) - (i32.const 4) - ) - ) - ) - ) - (set_local $6 - (select - (get_local $5) - (get_local $27) - (get_local $6) - ) - ) - (get_local $7) - ) - (block - (set_local $6 - (get_local $27) - ) - (get_local $7) - ) - ) - ) - (set_local $27 - (i32.sub - (i32.const 0) - (get_local $13) - ) - ) - (loop $while-in$97 - (block $while-out$96 - (if - (i32.le_u - (get_local $6) - (get_local $7) - ) - (block - (set_local $11 - (i32.const 0) - ) - (set_local $23 - (get_local $6) - ) - (br $while-out$96) - ) - ) - (if - (i32.eq - (i32.load - (tee_local $5 - (i32.add - (get_local $6) - (i32.const -4) - ) - ) - ) - (i32.const 0) - ) - (set_local $6 - (get_local $5) - ) - (block - (set_local $11 - (i32.const 1) - ) - (set_local $23 - (get_local $6) - ) - (br $while-out$96) - ) - ) - (br $while-in$97) - ) - ) - (set_local $8 - (block $do-once$98 - (if - (get_local $8) - (block - (set_local $8 - (if - (i32.and - (i32.gt_s - (tee_local $1 - (i32.add - (i32.xor - (i32.and - (get_local $70) - (i32.const 1) + (set_local $19 + (block $do-once$98 + (if + (get_local $21) + (block + (set_local $16 + (if + (i32.and + (i32.gt_s + (tee_local $5 + (i32.add + (i32.xor + (i32.and + (get_local $44) + (i32.const 1) + ) + (i32.const 1) + ) + (get_local $19) + ) + ) + (get_local $11) + ) + (i32.gt_s + (get_local $11) + (i32.const -5) + ) + ) + (block + (set_local $6 + (i32.add + (get_local $16) + (i32.const -1) + ) + ) + (i32.sub + (i32.add + (get_local $5) + (i32.const -1) + ) + (get_local $11) + ) + ) + (block + (set_local $6 + (i32.add + (get_local $16) + (i32.const -2) + ) + ) + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + ) + ) + (if + (tee_local $7 + (i32.and + (get_local $10) + (i32.const 8) + ) + ) + (block + (set_local $5 + (get_local $16) + ) + (br $do-once$98 + (get_local $7) + ) + ) + ) + (block $do-once$100 + (if + (get_local $26) + (block + (if + (i32.eqz + (tee_local $19 + (i32.load + (i32.add + (get_local $9) + (i32.const -4) + ) + ) + ) + ) + (block + (set_local $5 + (i32.const 9) + ) + (br $do-once$100) + ) + ) + (if + (i32.and + (call_import $i32u-rem + (get_local $19) + (i32.const 10) + ) + (i32.const -1) + ) + (block + (set_local $5 + (i32.const 0) + ) + (br $do-once$100) + ) + (block + (set_local $7 + (i32.const 10) + ) + (set_local $5 + (i32.const 0) + ) + ) + ) + (loop $while-in$103 + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br_if $while-in$103 + (i32.eqz + (i32.and + (call_import $i32u-rem + (get_local $19) + (tee_local $7 + (i32.mul + (get_local $7) + (i32.const 10) + ) + ) + ) + (i32.const -1) + ) + ) + ) + ) + ) + (set_local $5 + (i32.const 9) + ) + ) + ) + (set_local $7 + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $40) + ) + (i32.const 2) + ) + (i32.const 9) + ) + (i32.const -9) + ) + ) + (if + (i32.eq + (i32.or + (get_local $6) + (i32.const 32) + ) + (i32.const 102) + ) + (block + (set_local $5 + (select + (get_local $16) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (get_local $7) + (get_local $5) + ) + ) + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + ) + (i32.lt_s + (get_local $16) + (get_local $5) + ) + ) + ) + (i32.const 0) + ) + (block + (set_local $5 + (select + (get_local $16) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (i32.add + (get_local $7) + (get_local $11) + ) + (get_local $5) + ) + ) + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + ) + (i32.lt_s + (get_local $16) + (get_local $5) + ) + ) + ) + (i32.const 0) + ) + ) + ) + (block + (set_local $5 + (get_local $19) + ) + (set_local $6 + (get_local $16) + ) + (i32.and + (get_local $10) + (i32.const 8) + ) ) - (i32.const 1) ) - (get_local $1) ) ) - (get_local $13) - ) - (i32.gt_s - (get_local $13) - (i32.const -5) - ) - ) - (block - (set_local $10 - (i32.add - (get_local $26) - (i32.const -1) - ) - ) - (i32.sub - (i32.add - (get_local $1) - (i32.const -1) - ) - (get_local $13) - ) - ) - (block - (set_local $10 - (i32.add - (get_local $26) - (i32.const -2) - ) - ) - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - ) - ) - (if - (i32.ne - (tee_local $1 - (i32.and - (get_local $18) - (i32.const 8) - ) - ) - (i32.const 0) - ) - (block - (set_local $15 - (get_local $8) - ) - (set_local $26 - (get_local $10) - ) - (br $do-once$98 - (get_local $1) - ) - ) - ) - (block $do-once$100 - (if - (get_local $11) - (block - (if - (i32.eq - (tee_local $1 - (i32.load - (i32.add - (get_local $23) - (i32.const -4) + (set_local $31 + (i32.and + (i32.ne + (tee_local $16 + (i32.or + (get_local $5) + (get_local $19) + ) ) + (i32.const 0) ) + (i32.const 1) ) - (i32.const 0) ) - (block - (set_local $6 - (i32.const 9) + (set_local $25 + (if + (tee_local $21 + (i32.eq + (i32.or + (get_local $6) + (i32.const 32) + ) + (i32.const 102) + ) + ) + (block + (set_local $6 + (select + (get_local $11) + (i32.const 0) + (i32.gt_s + (get_local $11) + (i32.const 0) + ) + ) + ) + (i32.const 0) + ) + (block + (if + (i32.lt_s + (i32.sub + (get_local $32) + (tee_local $7 + (call $_fmt_u + (tee_local $7 + (select + (get_local $25) + (get_local $11) + (i32.lt_s + (get_local $11) + (i32.const 0) + ) + ) + ) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $7) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + (get_local $37) + ) + ) + ) + (i32.const 2) + ) + (loop $while-in$105 + (i32.store8 + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in$105 + (i32.lt_s + (i32.sub + (get_local $32) + (get_local $7) + ) + (i32.const 2) + ) + ) + ) + ) + (i32.store8 + (i32.add + (get_local $7) + (i32.const -1) + ) + (i32.and + (i32.add + (i32.and + (i32.shr_s + (get_local $11) + (i32.const 31) + ) + (i32.const 2) + ) + (i32.const 43) + ) + (i32.const 255) + ) + ) + (i32.store8 + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -2) + ) + ) + (i32.and + (get_local $6) + (i32.const 255) + ) + ) + (set_local $6 + (i32.sub + (get_local $32) + (get_local $7) + ) + ) + (get_local $7) + ) ) - (br $do-once$100) ) - ) - (if - (i32.eq - (i32.and - (call_import $i32u-rem - (get_local $1) - (i32.const 10) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (tee_local $11 + (i32.add + (i32.add + (i32.add + (i32.add + (get_local $30) + (i32.const 1) + ) + (get_local $5) + ) + (get_local $31) + ) + (get_local $6) ) - (i32.const -1) ) - (i32.const 0) + (get_local $10) ) - (block - (set_local $5 - (i32.const 10) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) ) - (set_local $6 - (i32.const 0) + (drop + (call $___fwritex + (get_local $36) + (get_local $30) + (get_local $0) + ) ) ) - (block - (set_local $6 - (i32.const 0) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $17) + (get_local $11) + (i32.xor + (get_local $10) + (i32.const 65536) ) - (br $do-once$100) ) - ) - (loop $while-in$103 - (block $while-out$102 - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) + (block $do-once$106 + (if + (get_local $21) + (block + (set_local $7 + (tee_local $12 + (select + (get_local $8) + (get_local $12) + (i32.gt_u + (get_local $12) + (get_local $8) + ) + ) + ) + ) + (loop $while-in$109 + (set_local $6 + (call $_fmt_u + (i32.load + (get_local $7) + ) + (i32.const 0) + (get_local $34) + ) + ) + (block $do-once$110 + (if + (i32.eq + (get_local $7) + (get_local $12) + ) + (block + (br_if $do-once$110 + (i32.ne + (get_local $6) + (get_local $34) + ) + ) + (i32.store8 + (get_local $38) + (i32.const 48) + ) + (set_local $6 + (get_local $38) + ) + ) + (block + (br_if $do-once$110 + (i32.le_u + (get_local $6) + (get_local $24) + ) + ) + (loop $while-in$113 + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in$113 + (i32.gt_u + (get_local $6) + (get_local $24) + ) + ) + ) + ) + ) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $6) + (i32.sub + (get_local $49) + (get_local $6) + ) + (get_local $0) + ) + ) + ) + (if + (i32.le_u + (tee_local $6 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $8) + ) + (block + (set_local $7 + (get_local $6) + ) + (br $while-in$109) + ) + ) + ) + (block $do-once$114 + (if + (get_local $16) + (block + (br_if $do-once$114 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) + ) + ) + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $5) + (i32.const 0) + ) + (i32.lt_u + (get_local $6) + (get_local $9) + ) + ) + (block + (set_local $7 + (get_local $5) + ) + (loop $while-in$117 + (if + (i32.gt_u + (tee_local $5 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $34) + ) + ) + (get_local $24) + ) + (loop $while-in$119 + (i32.store8 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in$119 + (i32.gt_u + (get_local $5) + (get_local $24) + ) + ) + ) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $5) + (select + (i32.const 9) + (get_local $7) + (i32.gt_s + (get_local $7) + (i32.const 9) + ) + ) + (get_local $0) + ) + ) + ) + (set_local $5 + (i32.add + (get_local $7) + (i32.const -9) + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $7) + (i32.const 9) + ) + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $9) + ) + ) + (block + (set_local $7 + (get_local $5) + ) + (br $while-in$117) + ) + ) + ) + ) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $5) + (i32.const 9) + ) + (i32.const 9) + (i32.const 0) + ) ) - ) - (br_if $while-out$102 - (i32.ne - (i32.and - (call_import $i32u-rem - (get_local $1) - (tee_local $5 - (i32.mul - (get_local $5) - (i32.const 10) + (block + (set_local $16 + (select + (get_local $9) + (i32.add + (get_local $12) + (i32.const 4) + ) + (get_local $26) + ) + ) + (if + (i32.gt_s + (get_local $5) + (i32.const -1) + ) + (block + (set_local $9 + (i32.eqz + (get_local $19) + ) + ) + (set_local $6 + (get_local $12) + ) + (set_local $7 + (get_local $5) + ) + (loop $while-in$121 + (set_local $8 + (if + (i32.eq + (tee_local $5 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $34) + ) + ) + (get_local $34) + ) + (block + (i32.store8 + (get_local $38) + (i32.const 48) + ) + (get_local $38) + ) + (get_local $5) + ) + ) + (block $do-once$122 + (if + (i32.eq + (get_local $6) + (get_local $12) + ) + (block + (set_local $5 + (i32.add + (get_local $8) + (i32.const 1) + ) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $8) + (i32.const 1) + (get_local $0) + ) + ) + ) + (br_if $do-once$122 + (i32.and + (get_local $9) + (i32.lt_s + (get_local $7) + (i32.const 1) + ) + ) + ) + (br_if $do-once$122 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) + ) + ) + (block + (if + (i32.gt_u + (get_local $8) + (get_local $24) + ) + (set_local $5 + (get_local $8) + ) + (block + (set_local $5 + (get_local $8) + ) + (br $do-once$122) + ) + ) + (loop $while-in$125 + (i32.store8 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in$125 + (i32.gt_u + (get_local $5) + (get_local $24) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.sub + (get_local $49) + (get_local $5) + ) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $5) + (select + (get_local $8) + (get_local $7) + (i32.gt_s + (get_local $7) + (get_local $8) + ) + ) + (get_local $0) + ) + ) + ) + (if + (i32.and + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $16) + ) + (i32.gt_s + (tee_local $5 + (i32.sub + (get_local $7) + (get_local $8) + ) + ) + (i32.const -1) + ) + ) + (block + (set_local $7 + (get_local $5) + ) + (br $while-in$121) + ) ) ) ) - (i32.const -1) ) - (i32.const 0) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $5) + (i32.const 18) + ) + (i32.const 18) + (i32.const 0) + ) + (br_if $do-once$106 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $25) + (i32.sub + (get_local $32) + (get_local $25) + ) + (get_local $0) + ) + ) ) ) - (br $while-in$103) ) - ) - ) - (set_local $6 - (i32.const 9) - ) - ) - ) - (set_local $1 - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $23) - (get_local $62) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $11) + (i32.xor + (get_local $10) + (i32.const 8192) + ) ) - (i32.const 2) - ) - (i32.const 9) - ) - (i32.const -9) - ) - ) - (if - (i32.eq - (i32.or - (get_local $10) - (i32.const 32) - ) - (i32.const 102) - ) - (block - (set_local $1 - (i32.lt_s - (tee_local $5 - (i32.sub - (get_local $1) - (get_local $6) + (select + (get_local $17) + (get_local $11) + (i32.lt_s + (get_local $11) + (get_local $17) ) ) - (i32.const 0) ) - ) - (set_local $5 - (i32.lt_s - (get_local $8) - (tee_local $1 + (block + (set_local $7 (select (i32.const 0) + (get_local $30) + (tee_local $5 + (i32.or + (f64.ne + (get_local $14) + (get_local $14) + ) + (i32.const 0) + ) + ) + ) + ) + (set_local $8 + (select + (select + (i32.const 4135) + (i32.const 4139) + (tee_local $6 + (i32.ne + (i32.and + (get_local $16) + (i32.const 32) + ) + (i32.const 0) + ) + ) + ) + (select + (i32.const 4127) + (i32.const 4131) + (get_local $6) + ) (get_local $5) - (get_local $1) ) ) - ) - ) - (set_local $15 - (select - (get_local $8) - (get_local $1) - (get_local $5) - ) - ) - (set_local $26 - (get_local $10) - ) - (i32.const 0) - ) - (block - (set_local $1 - (i32.lt_s - (tee_local $5 - (i32.sub + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (tee_local $6 (i32.add - (get_local $1) - (get_local $13) + (get_local $7) + (i32.const 3) ) - (get_local $6) ) + (get_local $9) ) - (i32.const 0) - ) - ) - (set_local $5 - (i32.lt_s - (get_local $8) - (tee_local $1 - (select - (i32.const 0) - (get_local $5) - (get_local $1) + (if + (i32.eqz + (i32.and + (if + (i32.and + (tee_local $5 + (i32.load + (get_local $0) + ) + ) + (i32.const 32) + ) + (get_local $5) + (block + (drop + (call $___fwritex + (get_local $36) + (get_local $7) + (get_local $0) + ) + ) + (i32.load + (get_local $0) + ) + ) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $8) + (i32.const 3) + (get_local $0) + ) + ) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $6) + (i32.xor + (get_local $10) + (i32.const 8192) + ) + ) + (select + (get_local $17) + (get_local $6) + (i32.lt_s + (get_local $6) + (get_local $17) ) ) ) ) - (set_local $15 - (select - (get_local $8) - (get_local $1) - (get_local $5) - ) - ) - (set_local $26 - (get_local $10) - ) - (i32.const 0) ) ) + (br $label$continue$L1) ) - (block - (set_local $15 - (get_local $1) - ) - (i32.and - (get_local $18) - (i32.const 8) - ) + (set_local $6 + (get_local $1) ) - ) - ) - ) - (set_local $17 - (i32.and - (i32.ne - (tee_local $1 - (i32.or - (get_local $15) - (get_local $8) - ) + (set_local $11 + (get_local $7) ) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (set_local $13 - (if - (tee_local $10 - (i32.eq - (i32.or - (get_local $26) - (i32.const 32) - ) - (i32.const 102) + (set_local $8 + (i32.const 0) ) + (set_local $9 + (i32.const 4091) + ) + (set_local $1 + (get_local $23) + ) + (br $jumpthreading$outer$7) ) - (block - (set_local $6 - (select - (get_local $13) - (i32.const 0) - (i32.gt_s - (get_local $13) - (i32.const 0) - ) - ) + (set_local $9 + (i32.and + (get_local $16) + (i32.const 32) ) - (i32.const 0) ) - (block - (set_local $5 - (i32.shr_s - (i32.shl - (i32.lt_s + (if + (i32.and + (i32.eqz + (tee_local $10 + (i32.load (tee_local $6 - (select - (get_local $27) - (get_local $13) - (i32.lt_s - (get_local $13) - (i32.const 0) - ) - ) - ) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) - (if - (i32.lt_s - (i32.sub - (get_local $40) - (tee_local $5 - (call $_fmt_u - (get_local $6) - (get_local $5) - (get_local $52) - ) - ) - ) - (i32.const 2) - ) - (loop $while-in$105 - (block $while-out$104 - (i32.store8 - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (br_if $while-out$104 - (i32.ge_s - (i32.sub - (get_local $40) - (get_local $5) - ) - (i32.const 2) + (get_local $18) ) ) - (br $while-in$105) ) ) - ) - (i32.store8 - (i32.add - (get_local $5) - (i32.const -1) - ) - (i32.and - (i32.add - (i32.and - (i32.shr_s - (get_local $13) - (i32.const 31) - ) - (i32.const 2) + (i32.eqz + (tee_local $6 + (i32.load offset=4 + (get_local $6) ) - (i32.const 43) ) - (i32.const 255) ) ) - (i32.store8 - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -2) - ) - ) - (i32.and - (get_local $26) - (i32.const 255) + (block + (set_local $6 + (get_local $23) ) - ) - (set_local $6 - (i32.sub - (get_local $40) - (get_local $5) + (set_local $8 + (i32.const 0) ) - ) - (get_local $5) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (tee_local $6 - (i32.add - (i32.add - (i32.add - (i32.add - (get_local $51) - (i32.const 1) - ) - (get_local $15) + (set_local $9 + (i32.const 4091) ) - (get_local $17) - ) - (get_local $6) - ) - ) - (get_local $18) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) + (br $jumpthreading$inner$7) ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $39) - (get_local $51) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $16) - (get_local $6) - (i32.xor - (get_local $18) - (i32.const 65536) - ) - ) - (block $do-once$106 - (if - (get_local $10) - (block - (set_local $7 - (tee_local $8 - (select - (get_local $9) - (get_local $7) - (i32.gt_u - (get_local $7) - (get_local $9) - ) - ) + (block + (set_local $8 + (get_local $23) ) - ) - (loop $while-in$109 - (block $while-out$108 - (set_local $5 - (call $_fmt_u - (i32.load - (get_local $7) - ) - (i32.const 0) - (get_local $45) - ) - ) - (block $do-once$110 - (if - (i32.eq - (get_local $7) + (loop $while-in$130 + (i32.store8 + (tee_local $8 + (i32.add (get_local $8) + (i32.const -1) ) - (block - (br_if $do-once$110 - (i32.ne - (get_local $5) - (get_local $45) - ) - ) - (i32.store8 - (get_local $53) - (i32.const 48) - ) - (set_local $5 - (get_local $53) - ) - ) - (block - (br_if $do-once$110 - (i32.le_u - (get_local $5) - (get_local $29) - ) - ) - (loop $while-in$113 - (block $while-out$112 - (i32.store8 - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (br_if $while-out$112 - (i32.le_u - (get_local $5) - (get_local $29) + ) + (i32.and + (i32.or + (i32.and + (i32.load8_s + (i32.add + (i32.and + (get_local $10) + (i32.const 15) ) + (i32.const 4075) ) - (br $while-in$113) ) + (i32.const 255) ) + (get_local $9) ) + (i32.const 255) ) ) - (if - (i32.eq + (br_if $while-in$130 + (i32.eqz (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (drop - (call $___fwritex - (get_local $5) - (i32.sub - (get_local $75) - (get_local $5) - ) - (get_local $0) - ) - ) - ) - (if - (i32.gt_u - (tee_local $7 - (i32.add - (get_local $7) - (i32.const 4) + (i32.eqz + (tee_local $10 + (call $_bitshift64Lshr + (get_local $10) + (get_local $6) + (i32.const 4) + ) + ) ) - ) - (get_local $9) - ) - (block - (set_local $5 - (get_local $7) - ) - (br $while-out$108) - ) - ) - (br $while-in$109) - ) - ) - (block $do-once$114 - (if - (i32.ne - (get_local $1) - (i32.const 0) - ) - (block - (br_if $do-once$114 - (i32.ne - (i32.and - (i32.load - (get_local $0) + (i32.eqz + (tee_local $6 + (get_global $tempRet0) ) - (i32.const 32) ) - (i32.const 0) - ) - ) - (drop - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) ) ) ) - ) - ) - (if - (i32.and - (i32.gt_s - (get_local $15) - (i32.const 0) - ) - (i32.lt_u - (get_local $5) - (get_local $23) + (set_local $6 + (get_local $8) ) ) - (loop $while-in$117 - (block $while-out$116 - (if - (i32.gt_u - (tee_local $1 - (call $_fmt_u - (i32.load - (get_local $5) - ) - (i32.const 0) - (get_local $45) - ) - ) - (get_local $29) - ) - (loop $while-in$119 - (block $while-out$118 - (i32.store8 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (br_if $while-out$118 - (i32.le_u - (get_local $1) - (get_local $29) - ) - ) - (br $while-in$119) - ) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (drop - (call $___fwritex - (get_local $1) - (select - (i32.const 9) - (get_local $15) - (i32.gt_s - (get_local $15) - (i32.const 9) - ) - ) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $15) - (i32.const -9) + (if + (i32.or + (i32.eqz + (i32.and + (get_local $1) + (i32.const 8) ) ) - (if - (i32.and - (i32.gt_s - (get_local $15) - (i32.const 9) - ) - (i32.lt_u - (tee_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) + (i32.and + (i32.eqz + (i32.load + (tee_local $10 + (get_local $18) ) - (get_local $23) ) ) - (set_local $15 - (get_local $1) - ) - (block - (set_local $15 - (get_local $1) + (i32.eqz + (i32.load offset=4 + (get_local $10) ) - (br $while-out$116) ) ) - (br $while-in$117) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $15) - (i32.const 9) - ) - (i32.const 9) - (i32.const 0) - ) - ) - (block - (set_local $11 - (select - (get_local $23) - (i32.add - (get_local $7) - (i32.const 4) ) - (get_local $11) - ) - ) - (if - (i32.gt_s - (get_local $15) - (i32.const -1) - ) - (block - (set_local $9 - (i32.eq - (get_local $8) + (block + (set_local $8 (i32.const 0) ) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$7) ) - (set_local $5 - (get_local $7) - ) - (loop $while-in$121 - (block $while-out$120 - (set_local $8 - (if - (i32.eq - (tee_local $1 - (call $_fmt_u - (i32.load - (get_local $5) - ) - (i32.const 0) - (get_local $45) - ) - ) - (get_local $45) - ) - (block - (i32.store8 - (get_local $53) - (i32.const 48) - ) - (get_local $53) - ) - (get_local $1) - ) - ) - (block $do-once$122 - (if - (i32.eq - (get_local $5) - (get_local $7) - ) - (block - (set_local $1 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (i32.const 1) - (get_local $0) - ) - ) - (br_if $do-once$122 - (i32.and - (get_local $9) - (i32.lt_s - (get_local $15) - (i32.const 1) - ) - ) - ) - (br_if $do-once$122 - (i32.ne - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - ) - (drop - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) - ) - ) - ) - (block - (if - (i32.gt_u - (get_local $8) - (get_local $29) - ) - (set_local $1 - (get_local $8) - ) - (block - (set_local $1 - (get_local $8) - ) - (br $do-once$122) - ) - ) - (loop $while-in$125 - (block $while-out$124 - (i32.store8 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (br_if $while-out$124 - (i32.le_u - (get_local $1) - (get_local $29) - ) - ) - (br $while-in$125) - ) - ) - ) - ) - ) - (set_local $8 - (i32.sub - (get_local $75) - (get_local $1) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (drop - (call $___fwritex - (get_local $1) - (select - (get_local $8) - (get_local $15) - (i32.gt_s - (get_local $15) - (get_local $8) - ) - ) - (get_local $0) - ) - ) - ) - (br_if $while-out$120 - (i32.eqz - (i32.and - (i32.lt_u - (tee_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) - ) - (get_local $11) - ) - (i32.gt_s - (tee_local $15 - (i32.sub - (get_local $15) - (get_local $8) - ) - ) - (i32.const -1) - ) - ) + (block + (set_local $8 + (i32.const 2) + ) + (set_local $9 + (i32.add + (i32.const 4091) + (i32.shr_s + (get_local $16) + (i32.const 4) ) ) - (br $while-in$121) - ) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $15) - (i32.const 18) - ) - (i32.const 18) - (i32.const 0) - ) - (br_if $do-once$106 - (i32.ne - (i32.and - (i32.load - (get_local $0) ) - (i32.const 32) - ) - (i32.const 0) - ) - ) - (drop - (call $___fwritex - (get_local $13) - (i32.sub - (get_local $40) - (get_local $13) + (br $jumpthreading$inner$7) ) - (get_local $0) ) ) ) + (br $jumpthreading$outer$7) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (get_local $6) - (i32.xor - (get_local $18) - (i32.const 8192) + (set_local $6 + (call $_fmt_u + (get_local $1) + (get_local $6) + (get_local $23) + ) ) - ) - (select - (get_local $16) - (get_local $6) - (i32.lt_s - (get_local $6) - (get_local $16) + (set_local $1 + (get_local $10) ) + (br $jumpthreading$inner$7) ) - ) - (block - (set_local $5 - (select - (i32.const 4127) - (i32.const 4131) - (tee_local $8 - (i32.ne - (i32.and - (get_local $26) - (i32.const 32) - ) - (i32.const 0) - ) - ) - ) + (set_local $28 + (i32.const 0) ) - (set_local $6 - (select - (i32.const 0) - (get_local $51) - (tee_local $1 - (i32.or - (f64.ne - (get_local $14) - (get_local $14) - ) + (set_local $16 + (i32.eqz + (tee_local $12 + (call $_memchr + (get_local $1) (i32.const 0) + (get_local $7) ) ) ) ) - (set_local $8 - (select - (select - (i32.const 4135) - (i32.const 4139) - (get_local $8) - ) - (get_local $5) - (get_local $1) - ) + (set_local $6 + (get_local $1) ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (tee_local $5 - (i32.add - (get_local $6) - (i32.const 3) - ) - ) - (get_local $7) + (set_local $10 + (get_local $9) ) - (if - (i32.eq - (i32.and - (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (block - (drop - (call $___fwritex - (get_local $39) - (get_local $6) - (get_local $0) - ) - ) - (i32.load - (get_local $0) - ) - ) - (get_local $1) - ) - (i32.const 32) + (set_local $11 + (select + (get_local $7) + (i32.sub + (get_local $12) + (get_local $1) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (i32.const 3) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (get_local $5) - (i32.xor - (get_local $18) - (i32.const 8192) - ) - ) - (select - (get_local $16) - (get_local $5) - (i32.lt_s - (get_local $5) (get_local $16) ) ) - ) - ) - ) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) - ) - (set_local $47 - (get_local $20) - ) - (set_local $37 - (get_local $18) - ) - (set_local $42 - (get_local $10) - ) - (set_local $43 - (i32.const 0) - ) - (set_local $48 - (i32.const 4091) - ) - (set_local $49 - (get_local $28) - ) - ) - (block $label$break$L308 - (if - (i32.eq - (get_local $12) - (i32.const 64) - ) - (block - (set_local $7 - (i32.and - (get_local $68) - (i32.const 32) - ) - ) - (set_local $58 - (if - (i32.and - (i32.eq - (tee_local $5 - (i32.load - (tee_local $1 - (get_local $19) - ) - ) - ) + (set_local $8 (i32.const 0) ) - (i32.eq - (tee_local $1 - (i32.load offset=4 + (set_local $9 + (i32.const 4091) + ) + (set_local $1 + (select + (i32.add (get_local $1) + (get_local $7) ) + (get_local $12) + (get_local $16) ) - (i32.const 0) ) + (br $jumpthreading$outer$7) ) - (block - (set_local $34 - (get_local $46) - ) - (set_local $32 - (get_local $57) - ) - (set_local $35 - (i32.const 0) - ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) - ) - (get_local $28) + (set_local $1 + (i32.const 0) ) - (block - (set_local $6 - (get_local $28) + (set_local $6 + (i32.const 0) + ) + (set_local $7 + (i32.load + (get_local $18) ) - (loop $while-in$130 - (block $while-out$129 - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) - ) - ) - (i32.and - (i32.or - (i32.and - (i32.load8_s - (i32.add - (i32.and - (get_local $5) - (i32.const 15) - ) - (i32.const 4075) - ) - ) - (i32.const 255) - ) + ) + (loop $while-in$132 + (block $while-out$131 + (br_if $while-out$131 + (i32.eqz + (tee_local $9 + (i32.load (get_local $7) ) - (i32.const 255) ) ) - (br_if $while-out$129 - (i32.and - (i32.eq - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $1) - (i32.const 4) - ) - ) - (i32.const 0) - ) - (i32.eq - (tee_local $1 - (get_global $tempRet0) - ) - (i32.const 0) - ) - ) - ) - (br $while-in$130) ) - ) - (if - (i32.or - (i32.eq - (i32.and - (get_local $46) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.and - (i32.eq - (i32.load - (tee_local $1 - (get_local $19) + (br_if $while-out$131 + (i32.or + (i32.lt_s + (tee_local $6 + (call $_wctomb + (get_local $41) + (get_local $9) ) ) (i32.const 0) ) - (i32.eq - (i32.load offset=4 + (i32.gt_u + (get_local $6) + (i32.sub + (get_local $8) (get_local $1) ) - (i32.const 0) ) ) ) - (block - (set_local $34 - (get_local $46) - ) - (set_local $32 - (get_local $57) - ) - (set_local $35 - (i32.const 0) - ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) - (get_local $6) ) - (block - (set_local $34 - (get_local $46) - ) - (set_local $32 - (get_local $57) - ) - (set_local $35 - (i32.const 2) - ) - (set_local $36 - (i32.add - (i32.const 4091) - (i32.shr_s - (get_local $68) - (i32.const 4) + (br_if $while-in$132 + (i32.gt_u + (get_local $8) + (tee_local $1 + (i32.add + (get_local $6) + (get_local $1) ) ) ) - (set_local $12 - (i32.const 77) - ) - (get_local $6) ) ) ) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 76) - ) - (block - (set_local $58 - (call $_fmt_u - (get_local $33) - (get_local $59) - (get_local $28) - ) - ) - (set_local $34 - (get_local $18) - ) - (set_local $32 - (get_local $10) - ) - (set_local $35 - (get_local $60) - ) - (set_local $36 - (get_local $61) - ) - (set_local $12 - (i32.const 77) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 82) - ) - (block - (set_local $12 - (i32.const 0) - ) - (set_local $5 - (i32.eq - (tee_local $1 - (call $_memchr - (get_local $50) - (i32.const 0) - (get_local $10) - ) - ) + (if + (i32.lt_s + (get_local $6) (i32.const 0) ) - ) - (set_local $47 - (get_local $50) - ) - (set_local $37 - (get_local $7) - ) - (set_local $42 - (select - (get_local $10) - (i32.sub - (get_local $1) - (get_local $50) + (block + (set_local $15 + (i32.const -1) ) - (get_local $5) + (br $label$break$L1) ) ) - (set_local $43 - (i32.const 0) - ) - (set_local $48 - (i32.const 4091) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $1) + (get_local $10) ) - (set_local $49 - (select - (i32.add - (get_local $50) - (get_local $10) + (if + (get_local $1) + (block + (set_local $6 + (i32.const 0) ) - (get_local $1) - (get_local $5) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 86) - ) - (block - (set_local $12 - (i32.const 0) - ) - (set_local $7 - (i32.const 0) - ) - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.load - (get_local $19) + (set_local $7 + (i32.load + (get_local $18) + ) ) - ) - (loop $while-in$132 - (block $while-out$131 - (br_if $while-out$131 - (i32.eq - (tee_local $1 + (loop $while-in$134 + (if + (i32.eqz + (tee_local $8 (i32.load - (get_local $6) + (get_local $7) ) ) - (i32.const 0) ) - ) - (br_if $while-out$131 - (i32.or - (i32.lt_s - (tee_local $5 - (call $_wctomb - (get_local $63) - (get_local $1) - ) - ) - (i32.const 0) - ) - (i32.gt_u - (get_local $5) - (i32.sub - (get_local $69) - (get_local $7) - ) + (block + (set_local $6 + (get_local $1) ) + (br $jumpthreading$inner$6) ) ) - (set_local $6 + (set_local $7 (i32.add - (get_local $6) + (get_local $7) (i32.const 4) ) ) (if - (i32.gt_u - (get_local $69) - (tee_local $1 + (i32.gt_s + (tee_local $6 (i32.add - (get_local $5) - (get_local $7) + (tee_local $8 + (call $_wctomb + (get_local $41) + (get_local $8) + ) + ) + (get_local $6) ) ) - ) - (set_local $7 (get_local $1) ) (block - (set_local $7 + (set_local $6 (get_local $1) ) - (br $while-out$131) + (br $jumpthreading$inner$6) ) ) - (br $while-in$132) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $41) + (get_local $8) + (get_local $0) + ) + ) + ) + (br_if $while-in$134 + (i32.lt_u + (get_local $6) + (get_local $1) + ) + ) + (block + (set_local $6 + (get_local $1) + ) + (br $jumpthreading$inner$6) + ) ) ) - (if - (i32.lt_s - (get_local $5) + (block + (set_local $6 (i32.const 0) ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L1) - ) + (br $jumpthreading$inner$6) ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) + ) + (br $jumpthreading$outer$7) + ) + (set_local $28 + (i32.const 0) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $6) + (i32.xor + (get_local $10) + (i32.const 8192) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (select + (get_local $17) + (get_local $6) + (i32.gt_s + (get_local $17) + (get_local $6) + ) + ) + ) + (br $label$continue$L1) + ) + (set_local $28 + (i32.const 0) + ) + (set_local $10 + (select + (i32.and + (get_local $1) + (i32.const -65537) + ) + (get_local $1) + (i32.gt_s + (get_local $7) + (i32.const -1) + ) + ) + ) + (set_local $6 + (if + (i32.or + (i32.ne (get_local $7) - (get_local $18) + (i32.const 0) ) - (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (block - (set_local $38 - (i32.const 0) - ) - (set_local $12 - (i32.const 98) - ) - ) - (block - (set_local $6 + (tee_local $1 + (i32.or + (i32.ne + (i32.load + (tee_local $1 + (get_local $18) + ) + ) (i32.const 0) ) - (set_local $8 - (i32.load - (get_local $19) + (i32.ne + (i32.load offset=4 + (get_local $1) ) + (i32.const 0) ) - (loop $while-in$134 - (block $while-out$133 - (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $8) - ) - ) - (i32.const 0) - ) - (block - (set_local $38 - (get_local $7) - ) - (set_local $12 - (i32.const 98) - ) - (br $label$break$L308) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.const 4) - ) - ) - (if - (i32.gt_s - (tee_local $1 - (i32.add - (tee_local $5 - (call $_wctomb - (get_local $63) - (get_local $1) - ) - ) - (get_local $6) - ) - ) - (get_local $7) - ) - (block - (set_local $38 - (get_local $7) - ) - (set_local $12 - (i32.const 98) - ) - (br $label$break$L308) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $63) - (get_local $5) - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $1) - (get_local $7) - ) - (set_local $6 + ) + ) + ) + (block + (set_local $11 + (select + (get_local $7) + (tee_local $1 + (i32.add + (i32.xor + (i32.and (get_local $1) + (i32.const 1) ) - (block - (set_local $38 - (get_local $7) - ) - (set_local $12 - (i32.const 98) - ) - (br $while-out$133) - ) + (i32.const 1) + ) + (i32.sub + (get_local $45) + (get_local $6) ) - (br $while-in$134) ) ) + (i32.gt_s + (get_local $7) + (get_local $1) + ) ) ) + (set_local $1 + (get_local $23) + ) + (get_local $6) + ) + (block + (set_local $11 + (i32.const 0) + ) + (set_local $1 + (get_local $23) + ) + (get_local $23) ) ) ) ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 98) - ) - (block - (set_local $12 - (i32.const 0) - ) (call $_pad (get_local $0) (i32.const 32) - (get_local $16) - (get_local $38) - (i32.xor - (get_local $18) - (i32.const 8192) - ) - ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (select - (get_local $16) - (get_local $38) - (i32.gt_s - (get_local $16) - (get_local $38) - ) - ) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 77) - ) - (block - (set_local $12 - (i32.const 0) - ) - (set_local $5 - (select - (i32.and - (get_local $34) - (i32.const -65537) - ) - (get_local $34) - (i32.gt_s - (get_local $32) - (i32.const -1) - ) - ) - ) - (set_local $47 - (if - (i32.or - (i32.ne - (get_local $32) - (i32.const 0) - ) + (tee_local $7 + (select (tee_local $1 - (i32.or - (i32.ne - (i32.load - (tee_local $1 - (get_local $19) - ) - ) - (i32.const 0) - ) - (i32.ne - (i32.load offset=4 - (get_local $1) - ) - (i32.const 0) - ) - ) - ) - ) - (block - (set_local $7 - (i32.gt_s - (get_local $32) - (tee_local $1 - (i32.add - (i32.xor - (i32.and + (i32.add + (get_local $8) + (tee_local $11 + (select + (tee_local $12 + (i32.sub (get_local $1) - (i32.const 1) + (get_local $6) ) - (i32.const 1) ) - (i32.sub - (get_local $71) - (get_local $58) + (get_local $11) + (i32.lt_s + (get_local $11) + (get_local $12) ) ) ) ) ) - (set_local $37 - (get_local $5) - ) - (set_local $42 - (select - (get_local $32) - (get_local $1) - (get_local $7) - ) - ) - (set_local $43 - (get_local $35) - ) - (set_local $48 - (get_local $36) - ) - (set_local $49 - (get_local $28) + (get_local $17) + (i32.lt_s + (get_local $17) + (get_local $1) ) - (get_local $58) ) - (block - (set_local $37 - (get_local $5) - ) - (set_local $42 - (i32.const 0) - ) - (set_local $43 - (get_local $35) - ) - (set_local $48 - (get_local $36) - ) - (set_local $49 - (get_local $28) + ) + (get_local $1) + (get_local $10) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) - (get_local $28) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $9) + (get_local $8) + (get_local $0) ) ) ) - ) - ) - (set_local $1 - (i32.lt_s - (get_local $42) - (tee_local $7 - (i32.sub - (get_local $49) - (get_local $47) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $7) + (get_local $1) + (i32.xor + (get_local $10) + (i32.const 65536) ) ) - ) - ) - (set_local $5 - (i32.lt_s - (get_local $16) - (tee_local $1 - (i32.add - (get_local $43) - (tee_local $6 - (select - (get_local $7) - (get_local $42) - (get_local $1) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $11) + (get_local $12) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $6) + (get_local $12) + (get_local $0) ) ) ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (tee_local $5 - (select + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $7) (get_local $1) - (get_local $16) - (get_local $5) - ) - ) - (get_local $1) - (get_local $37) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) + (i32.xor + (get_local $10) + (i32.const 8192) ) - (i32.const 32) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $48) - (get_local $43) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $5) - (get_local $1) - (i32.xor - (get_local $37) - (i32.const 65536) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $6) - (get_local $7) - (i32.const 0) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (set_local $1 + (get_local $5) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $47) - (get_local $7) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $5) - (get_local $1) - (i32.xor - (get_local $37) - (i32.const 8192) + (set_local $5 + (get_local $7) + ) + (br $label$continue$L1) ) ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $5) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) + (br $label$break$L343) ) - ) - (block $label$break$L343 (if - (i32.eq - (get_local $12) - (i32.const 242) + (i32.eqz + (get_local $0) ) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (if - (i32.eq - (get_local $83) - (i32.const 0) - ) - (set_local $24 - (i32.const 0) + (get_local $13) + (block + (set_local $0 + (i32.const 1) ) - (block - (set_local $1 - (i32.const 1) - ) - (loop $while-in$137 - (block $while-out$136 - (br_if $while-out$136 - (i32.eq - (tee_local $0 - (i32.load - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) + (loop $while-in$137 + (block $while-out$136 + (br_if $while-out$136 + (i32.eqz + (tee_local $1 + (i32.load + (i32.add + (get_local $4) + (i32.shl + (get_local $0) + (i32.const 2) ) ) ) - (i32.const 0) ) ) - (call $_pop_arg_336 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 3) - ) + ) + (call $_pop_arg_336 + (i32.add + (get_local $3) + (i32.shl + (get_local $0) + (i32.const 3) ) - (get_local $0) - (get_local $2) ) - (if - (i32.ge_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 10) - ) - (block - (set_local $24 + (get_local $1) + (get_local $2) + ) + (br_if $while-in$137 + (i32.lt_s + (tee_local $0 + (i32.add + (get_local $0) (i32.const 1) ) - (br $label$break$L343) ) + (i32.const 10) + ) + ) + (block + (set_local $15 + (i32.const 1) ) - (br $while-in$137) + (br $label$break$L343) ) ) - (if - (i32.lt_s - (get_local $1) - (i32.const 10) + ) + (if + (i32.lt_s + (get_local $0) + (i32.const 10) + ) + (loop $while-in$139 + (set_local $1 + (i32.add + (get_local $0) + (i32.const 1) + ) ) - (loop $while-in$139 - (block $while-out$138 - (set_local $0 - (i32.add - (get_local $1) - (i32.const 1) + (if + (i32.load + (i32.add + (get_local $4) + (i32.shl + (get_local $0) + (i32.const 2) ) ) - (if - (i32.ne - (i32.load - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L343) - ) + ) + (block + (set_local $15 + (i32.const -1) ) - (if - (i32.lt_s - (get_local $0) - (i32.const 10) - ) - (set_local $1 - (get_local $0) - ) - (block - (set_local $24 - (i32.const 1) - ) - (br $while-out$138) - ) + (br $label$break$L343) + ) + ) + (if + (i32.lt_s + (get_local $1) + (i32.const 10) + ) + (block + (set_local $0 + (get_local $1) ) (br $while-in$139) ) + (set_local $15 + (i32.const 1) + ) ) - (set_local $24 - (i32.const 1) - ) + ) + (set_local $15 + (i32.const 1) ) ) ) - (set_local $24 - (get_local $82) + (set_local $15 + (i32.const 0) ) ) ) ) (set_global $STACKTOP - (get_local $31) + (get_local $27) ) - (get_local $24) + (get_local $15) ) (func $_pop_arg_336 (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -8760,22 +7708,27 @@ (i32.const 4) ) ) - (set_local $2 + (i32.store + (get_local $0) + (tee_local $1 + (i32.shr_s + (i32.shl + (i32.and + (get_local $3) + (i32.const 65535) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + ) + (i32.store offset=4 + (get_local $0) (i32.shr_s (i32.shl (i32.lt_s - (tee_local $1 - (i32.shr_s - (i32.shl - (i32.and - (get_local $3) - (i32.const 65535) - ) - (i32.const 16) - ) - (i32.const 16) - ) - ) + (get_local $1) (i32.const 0) ) (i32.const 31) @@ -8783,14 +7736,6 @@ (i32.const 31) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $2) - ) (br $label$break$L1) ) (set_local $3 @@ -8850,22 +7795,27 @@ (i32.const 4) ) ) - (set_local $2 + (i32.store + (get_local $0) + (tee_local $1 + (i32.shr_s + (i32.shl + (i32.and + (get_local $3) + (i32.const 255) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + ) + (i32.store offset=4 + (get_local $0) (i32.shr_s (i32.shl (i32.lt_s - (tee_local $1 - (i32.shr_s - (i32.shl - (i32.and - (get_local $3) - (i32.const 255) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) + (get_local $1) (i32.const 0) ) (i32.const 31) @@ -8873,14 +7823,6 @@ (i32.const 31) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $2) - ) (br $label$break$L1) ) (set_local $3 @@ -8979,7 +7921,7 @@ (func $_fmt_u (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $0 + (set_local $1 (if (i32.or (i32.gt_u @@ -8987,9 +7929,8 @@ (i32.const 0) ) (i32.and - (i32.eq + (i32.eqz (get_local $1) - (i32.const 0) ) (i32.gt_u (get_local $0) @@ -8998,151 +7939,129 @@ ) ) (block - (set_local $3 - (get_local $0) - ) - (set_local $4 - (get_local $1) - ) (loop $while-in$1 - (block $while-out$0 - (set_local $0 - (call $___uremdi3 + (set_local $3 + (call $___uremdi3 + (get_local $0) + (get_local $1) + (i32.const 10) + (i32.const 0) + ) + ) + (i32.store8 + (tee_local $2 + (i32.add + (get_local $2) + (i32.const -1) + ) + ) + (i32.and + (i32.or (get_local $3) - (get_local $4) - (i32.const 10) - (i32.const 0) + (i32.const 48) ) + (i32.const 255) ) - (i32.store8 - (tee_local $2 - (i32.add - (get_local $2) - (i32.const -1) - ) + ) + (set_local $3 + (call $___udivdi3 + (get_local $0) + (get_local $1) + (i32.const 10) + (i32.const 0) + ) + ) + (set_local $4 + (get_global $tempRet0) + ) + (if + (i32.or + (i32.gt_u + (get_local $1) + (i32.const 9) ) (i32.and - (i32.or + (i32.eq + (get_local $1) + (i32.const 9) + ) + (i32.gt_u (get_local $0) - (i32.const 48) + (i32.const -1) ) - (i32.const 255) ) ) - (set_local $0 - (call $___udivdi3 + (block + (set_local $0 (get_local $3) + ) + (set_local $1 (get_local $4) - (i32.const 10) - (i32.const 0) ) + (br $while-in$1) ) - (set_local $1 - (get_global $tempRet0) - ) - (if - (i32.or - (i32.gt_u - (get_local $4) - (i32.const 9) - ) - (i32.and - (i32.eq - (get_local $4) - (i32.const 9) - ) - (i32.gt_u - (get_local $3) - (i32.const -1) - ) - ) - ) - (block - (set_local $3 - (get_local $0) - ) - (set_local $4 - (get_local $1) - ) - ) - (br $while-out$0) + (set_local $0 + (get_local $3) ) - (br $while-in$1) ) ) - (set_local $3 - (get_local $0) - ) - (get_local $2) - ) - (block - (set_local $3 - (get_local $0) - ) (get_local $2) ) + (get_local $2) ) ) (if - (i32.ne - (get_local $3) - (i32.const 0) - ) - (block - (set_local $1 - (get_local $0) - ) - (loop $while-in$3 - (block $while-out$2 - (i32.store8 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.and - (i32.or - (i32.and - (call_import $i32u-rem - (get_local $3) - (i32.const 10) - ) - (i32.const -1) - ) - (i32.const 48) - ) - (i32.const 255) - ) + (get_local $0) + (loop $while-in$3 + (i32.store8 + (tee_local $1 + (i32.add + (get_local $1) + (i32.const -1) ) - (set_local $0 + ) + (i32.and + (i32.or (i32.and - (call_import $i32u-div - (get_local $3) + (call_import $i32u-rem + (get_local $0) (i32.const 10) ) (i32.const -1) ) + (i32.const 48) ) - (if - (i32.lt_u - (get_local $3) - (i32.const 10) - ) - (block - (set_local $0 - (get_local $1) - ) - (br $while-out$2) - ) - (set_local $3 - (get_local $0) - ) + (i32.const 255) + ) + ) + (set_local $2 + (i32.and + (call_import $i32u-div + (get_local $0) + (i32.const 10) + ) + (i32.const -1) + ) + ) + (if + (i32.lt_u + (get_local $0) + (i32.const 10) + ) + (set_local $0 + (get_local $1) + ) + (block + (set_local $0 + (get_local $2) ) (br $while-in$3) ) ) ) + (set_local $0 + (get_local $1) + ) ) (get_local $0) ) @@ -9150,7 +8069,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $7 + (local $8 i32) + (set_local $6 (get_global $STACKTOP) ) (set_global $STACKTOP @@ -9166,8 +8086,8 @@ ) (call_import $abort) ) - (set_local $6 - (get_local $7) + (set_local $5 + (get_local $6) ) (block $do-once$0 (if @@ -9176,39 +8096,35 @@ (get_local $2) (get_local $3) ) - (i32.eq + (i32.eqz (i32.and (get_local $4) (i32.const 73728) ) - (i32.const 0) ) ) (block - (set_local $4 - (i32.gt_u - (tee_local $5 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (i32.const 256) - ) - ) (drop (call $_memset - (get_local $6) + (get_local $5) (get_local $1) (select (i32.const 256) - (get_local $5) - (get_local $4) + (tee_local $4 + (i32.sub + (get_local $2) + (get_local $3) + ) + ) + (i32.gt_u + (get_local $4) + (i32.const 256) + ) ) ) ) - (set_local $4 - (i32.eq + (set_local $7 + (i32.eqz (i32.and (tee_local $1 (i32.load @@ -9217,89 +8133,87 @@ ) (i32.const 32) ) - (i32.const 0) ) ) (if (i32.gt_u - (get_local $5) + (get_local $4) (i32.const 255) ) (block - (set_local $2 + (set_local $8 (i32.sub (get_local $2) (get_local $3) ) ) + (set_local $2 + (get_local $4) + ) (set_local $3 - (get_local $5) + (get_local $7) ) (loop $while-in$3 - (block $while-out$2 - (set_local $4 - (i32.eq - (i32.and - (tee_local $1 - (if - (get_local $4) - (block - (drop - (call $___fwritex - (get_local $6) - (i32.const 256) - (get_local $0) - ) - ) - (i32.load + (set_local $3 + (i32.eqz + (i32.and + (tee_local $1 + (if + (get_local $3) + (block + (drop + (call $___fwritex + (get_local $5) + (i32.const 256) (get_local $0) ) ) - (get_local $1) + (i32.load + (get_local $0) + ) ) + (get_local $1) ) - (i32.const 32) ) - (i32.const 0) + (i32.const 32) ) ) - (br_if $while-out$2 - (i32.le_u - (tee_local $3 - (i32.add - (get_local $3) - (i32.const -256) - ) + ) + (br_if $while-in$3 + (i32.gt_u + (tee_local $2 + (i32.add + (get_local $2) + (i32.const -256) ) - (i32.const 255) ) + (i32.const 255) ) - (br $while-in$3) ) ) (set_local $1 (i32.and - (get_local $2) + (get_local $8) (i32.const 255) ) ) (br_if $do-once$0 (i32.eqz - (get_local $4) + (get_local $3) ) ) ) (if - (get_local $4) + (get_local $7) (set_local $1 - (get_local $5) + (get_local $4) ) (br $do-once$0) ) ) (drop (call $___fwritex - (get_local $6) + (get_local $5) (get_local $1) (get_local $0) ) @@ -9308,7 +8222,7 @@ ) ) (set_global $STACKTOP - (get_local $7) + (get_local $6) ) ) (func $_malloc (param $0 i32) (result i32) @@ -9336,28 +8250,6 @@ (local $22 i32) (local $23 i32) (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) - (local $30 i32) - (local $31 i32) - (local $32 i32) - (local $33 i32) - (local $34 i32) - (local $35 i32) - (local $36 i32) - (local $37 i32) - (local $38 i32) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i32) - (local $44 i32) - (local $45 i32) - (local $46 i32) (block $do-once$0 (if (i32.lt_u @@ -9366,66 +8258,63 @@ ) (block (if - (i32.ne - (i32.and - (tee_local $25 - (i32.shr_u - (tee_local $4 - (i32.load - (i32.const 176) - ) + (i32.and + (tee_local $1 + (i32.shr_u + (tee_local $10 + (i32.load + (i32.const 176) ) - (tee_local $22 - (i32.shr_u - (tee_local $6 - (select - (i32.const 16) - (i32.and - (i32.add - (get_local $0) - (i32.const 11) - ) - (i32.const -8) - ) - (i32.lt_u + ) + (tee_local $4 + (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 3) ) + (i32.const 3) ) ) ) - (i32.const 3) ) - (i32.const 0) + (i32.const 3) ) (block - (set_local $2 + (set_local $4 (i32.load - (tee_local $3 + (tee_local $1 (i32.add - (tee_local $1 + (tee_local $5 (i32.load - (tee_local $0 + (tee_local $9 (i32.add - (tee_local $9 + (tee_local $2 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $8 + (tee_local $3 (i32.add (i32.xor (i32.and - (get_local $25) + (get_local $1) (i32.const 1) ) (i32.const 1) ) - (get_local $22) + (get_local $4) ) ) (i32.const 1) @@ -9446,17 +8335,17 @@ ) (if (i32.eq - (get_local $9) (get_local $2) + (get_local $4) ) (i32.store (i32.const 176) (i32.and - (get_local $4) + (get_local $10) (i32.xor (i32.shl (i32.const 1) - (get_local $8) + (get_local $3) ) (i32.const -1) ) @@ -9465,7 +8354,7 @@ (block (if (i32.lt_u - (get_local $2) + (get_local $4) (i32.load (i32.const 192) ) @@ -9475,70 +8364,67 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $0 (i32.add - (get_local $2) + (get_local $4) (i32.const 12) ) ) ) - (get_local $1) + (get_local $5) ) (block (i32.store - (get_local $4) - (get_local $9) - ) - (i32.store (get_local $0) (get_local $2) ) + (i32.store + (get_local $9) + (get_local $4) + ) ) (call_import $_abort) ) ) ) (i32.store offset=4 - (get_local $1) + (get_local $5) (i32.or (tee_local $0 (i32.shl - (get_local $8) + (get_local $3) (i32.const 3) ) ) (i32.const 3) ) ) - (set_local $1 + (i32.store + (tee_local $0 + (i32.add + (i32.add + (get_local $5) + (get_local $0) + ) + (i32.const 4) + ) + ) (i32.or (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $1) - (get_local $0) - ) - (i32.const 4) - ) - ) + (get_local $0) ) (i32.const 1) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) (return - (get_local $3) + (get_local $1) ) ) ) (if (i32.gt_u - (get_local $6) - (tee_local $10 + (get_local $3) + (tee_local $0 (i32.load (i32.const 184) ) @@ -9546,47 +8432,38 @@ ) (block (if - (i32.ne - (get_local $25) - (i32.const 0) - ) + (get_local $1) (block - (set_local $1 - (i32.sub - (i32.const 0) - (tee_local $0 - (i32.shl - (i32.const 2) - (get_local $22) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (i32.const 0) - (tee_local $0 - (i32.and - (i32.shl - (get_local $25) - (get_local $22) - ) - (i32.or - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (set_local $0 + (set_local $5 (i32.and (i32.shr_u (tee_local $1 (i32.add (i32.and - (get_local $0) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shl + (get_local $1) + (get_local $4) + ) + (i32.or + (tee_local $1 + (i32.shl + (i32.const 2) + (get_local $4) + ) + ) + (i32.sub + (i32.const 0) + (get_local $1) + ) + ) + ) + ) + (i32.sub + (i32.const 0) + (get_local $1) + ) ) (i32.const -1) ) @@ -9596,32 +8473,32 @@ (i32.const 16) ) ) - (set_local $0 + (set_local $7 (i32.load - (tee_local $3 + (tee_local $5 (i32.add - (tee_local $2 + (tee_local $9 (i32.load - (tee_local $1 + (tee_local $6 (i32.add - (tee_local $9 + (tee_local $1 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $8 + (tee_local $4 (i32.add (i32.or (i32.or (i32.or (i32.or - (tee_local $1 + (tee_local $4 (i32.and (i32.shr_u - (tee_local $2 + (tee_local $1 (i32.shr_u (get_local $1) - (get_local $0) + (get_local $5) ) ) (i32.const 5) @@ -9629,15 +8506,15 @@ (i32.const 8) ) ) - (get_local $0) + (get_local $5) ) - (tee_local $0 + (tee_local $4 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u - (get_local $2) (get_local $1) + (get_local $4) ) ) (i32.const 2) @@ -9646,13 +8523,13 @@ ) ) ) - (tee_local $0 + (tee_local $4 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u (get_local $1) - (get_local $0) + (get_local $4) ) ) (i32.const 1) @@ -9661,13 +8538,13 @@ ) ) ) - (tee_local $0 + (tee_local $4 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u (get_local $1) - (get_local $0) + (get_local $4) ) ) (i32.const 1) @@ -9678,7 +8555,7 @@ ) (i32.shr_u (get_local $1) - (get_local $0) + (get_local $4) ) ) ) @@ -9700,31 +8577,31 @@ ) (if (i32.eq - (get_local $9) - (get_local $0) + (get_local $1) + (get_local $7) ) (block (i32.store (i32.const 176) (i32.and - (get_local $4) + (get_local $10) (i32.xor (i32.shl (i32.const 1) - (get_local $8) + (get_local $4) ) (i32.const -1) ) ) ) - (set_local $7 - (get_local $10) + (set_local $8 + (get_local $0) ) ) (block (if (i32.lt_u - (get_local $0) + (get_local $7) (i32.load (i32.const 192) ) @@ -9734,25 +8611,25 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $0 (i32.add - (get_local $0) + (get_local $7) (i32.const 12) ) ) ) - (get_local $2) + (get_local $9) ) (block (i32.store - (get_local $4) - (get_local $9) + (get_local $0) + (get_local $1) ) (i32.store - (get_local $1) - (get_local $0) + (get_local $6) + (get_local $7) ) - (set_local $7 + (set_local $8 (i32.load (i32.const 184) ) @@ -9763,27 +8640,27 @@ ) ) (i32.store offset=4 - (get_local $2) + (get_local $9) (i32.or - (get_local $6) + (get_local $3) (i32.const 3) ) ) (i32.store offset=4 - (tee_local $4 + (tee_local $9 (i32.add - (get_local $2) - (get_local $6) + (get_local $9) + (get_local $3) ) ) (i32.or - (tee_local $9 + (tee_local $4 (i32.sub (i32.shl - (get_local $8) + (get_local $4) (i32.const 3) ) - (get_local $6) + (get_local $3) ) ) (i32.const 1) @@ -9791,30 +8668,27 @@ ) (i32.store (i32.add - (get_local $4) (get_local $9) + (get_local $4) ) - (get_local $9) + (get_local $4) ) (if - (i32.ne - (get_local $7) - (i32.const 0) - ) + (get_local $8) (block - (set_local $0 + (set_local $6 (i32.load (i32.const 196) ) ) - (set_local $8 + (set_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $2 + (tee_local $1 (i32.shr_u - (get_local $7) + (get_local $8) (i32.const 3) ) ) @@ -9825,47 +8699,26 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) + (i32.and + (tee_local $3 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) - (get_local $2) - ) - ) - (set_local $5 - (i32.add - (get_local $8) - (i32.const 8) ) ) - (set_local $12 - (get_local $8) - ) ) (if (i32.lt_u - (tee_local $2 + (tee_local $1 (i32.load - (tee_local $1 + (tee_local $3 (i32.add - (get_local $8) + (get_local $0) (i32.const 8) ) ) @@ -9877,60 +8730,75 @@ ) (call_import $_abort) (block - (set_local $5 + (set_local $12 + (get_local $3) + ) + (set_local $2 (get_local $1) ) - (set_local $12 - (get_local $2) + ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $1) + ) + ) + (set_local $12 + (i32.add + (get_local $0) + (i32.const 8) ) ) + (set_local $2 + (get_local $0) + ) ) ) (i32.store - (get_local $5) - (get_local $0) + (get_local $12) + (get_local $6) ) (i32.store offset=12 - (get_local $12) - (get_local $0) + (get_local $2) + (get_local $6) ) (i32.store offset=8 - (get_local $0) - (get_local $12) + (get_local $6) + (get_local $2) ) (i32.store offset=12 + (get_local $6) (get_local $0) - (get_local $8) ) ) ) (i32.store (i32.const 184) - (get_local $9) + (get_local $4) ) (i32.store (i32.const 196) - (get_local $4) + (get_local $9) ) (return - (get_local $3) + (get_local $5) ) ) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 180) - ) + (tee_local $0 + (i32.load + (i32.const 180) ) - (i32.const 0) ) (block - (set_local $0 + (set_local $2 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.add (i32.and (get_local $0) @@ -9947,11 +8815,11 @@ (i32.const 16) ) ) - (set_local $2 + (set_local $4 (i32.sub (i32.and (i32.load offset=4 - (tee_local $0 + (tee_local $1 (i32.load offset=480 (i32.shl (i32.add @@ -9962,10 +8830,10 @@ (tee_local $1 (i32.and (i32.shr_u - (tee_local $2 + (tee_local $0 (i32.shr_u - (get_local $1) (get_local $0) + (get_local $2) ) ) (i32.const 5) @@ -9973,14 +8841,14 @@ (i32.const 8) ) ) - (get_local $0) + (get_local $2) ) - (tee_local $0 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u - (get_local $2) + (get_local $0) (get_local $1) ) ) @@ -9990,13 +8858,13 @@ ) ) ) - (tee_local $0 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u - (get_local $1) (get_local $0) + (get_local $1) ) ) (i32.const 1) @@ -10005,13 +8873,13 @@ ) ) ) - (tee_local $0 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u - (get_local $1) (get_local $0) + (get_local $1) ) ) (i32.const 1) @@ -10021,8 +8889,8 @@ ) ) (i32.shr_u - (get_local $1) (get_local $0) + (get_local $1) ) ) (i32.const 2) @@ -10032,83 +8900,69 @@ ) (i32.const -8) ) - (get_local $6) + (get_local $3) ) ) - (set_local $4 - (get_local $0) - ) - (set_local $8 - (get_local $0) + (set_local $2 + (get_local $1) ) (loop $while-in$7 (block $while-out$6 (if - (i32.eq + (i32.eqz (tee_local $0 (i32.load offset=16 - (get_local $4) + (get_local $2) ) ) - (i32.const 0) ) (if - (i32.eq + (i32.eqz (tee_local $0 (i32.load offset=20 - (get_local $4) + (get_local $2) ) ) - (i32.const 0) ) (block - (set_local $7 - (get_local $2) - ) - (set_local $10 - (get_local $8) + (set_local $2 + (get_local $1) ) (br $while-out$6) ) - (set_local $1 - (get_local $0) - ) - ) - (set_local $1 - (get_local $0) ) ) - (set_local $0 + (set_local $6 (i32.lt_u - (tee_local $4 + (tee_local $2 (i32.sub (i32.and (i32.load offset=4 - (get_local $1) + (get_local $0) ) (i32.const -8) ) - (get_local $6) + (get_local $3) ) ) - (get_local $2) + (get_local $4) ) ) - (set_local $2 + (set_local $4 (select - (get_local $4) (get_local $2) - (get_local $0) + (get_local $4) + (get_local $6) ) ) - (set_local $4 - (get_local $1) + (set_local $2 + (get_local $0) ) - (set_local $8 + (set_local $1 (select - (get_local $1) - (get_local $8) (get_local $0) + (get_local $1) + (get_local $6) ) ) (br $while-in$7) @@ -10116,8 +8970,8 @@ ) (if (i32.lt_u - (get_local $10) - (tee_local $0 + (get_local $2) + (tee_local $10 (i32.load (i32.const 192) ) @@ -10127,140 +8981,123 @@ ) (if (i32.ge_u - (get_local $10) - (tee_local $9 + (get_local $2) + (tee_local $7 (i32.add - (get_local $10) - (get_local $6) + (get_local $2) + (get_local $3) ) ) ) (call_import $_abort) ) - (set_local $1 + (set_local $11 (i32.load offset=24 - (get_local $10) + (get_local $2) ) ) (block $do-once$8 (if (i32.eq - (tee_local $2 + (tee_local $0 (i32.load offset=12 - (get_local $10) + (get_local $2) ) ) - (get_local $10) + (get_local $2) ) (block (if - (i32.eq - (tee_local $2 + (i32.eqz + (tee_local $1 (i32.load - (tee_local $8 + (tee_local $0 (i32.add - (get_local $10) + (get_local $2) (i32.const 20) ) ) ) ) - (i32.const 0) ) (if - (i32.eq - (tee_local $2 + (i32.eqz + (tee_local $1 (i32.load - (tee_local $8 + (tee_local $0 (i32.add - (get_local $10) + (get_local $2) (i32.const 16) ) ) ) ) - (i32.const 0) ) (block - (set_local $15 + (set_local $5 (i32.const 0) ) (br $do-once$8) ) - (set_local $4 - (get_local $2) - ) - ) - (set_local $4 - (get_local $2) ) ) (loop $while-in$11 - (block $while-out$10 - (if - (i32.ne - (tee_local $2 - (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 20) - ) - ) + (if + (tee_local $8 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 20) ) ) - (i32.const 0) ) - (block - (set_local $4 - (get_local $2) - ) - (set_local $8 - (get_local $5) - ) - (br $while-in$11) + ) + (block + (set_local $1 + (get_local $8) + ) + (set_local $0 + (get_local $6) ) + (br $while-in$11) ) - (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 16) - ) - ) + ) + (if + (tee_local $8 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 16) ) ) - (i32.const 0) ) - (br $while-out$10) - (block - (set_local $4 - (get_local $2) - ) - (set_local $8 - (get_local $5) - ) + ) + (block + (set_local $1 + (get_local $8) + ) + (set_local $0 + (get_local $6) ) + (br $while-in$11) ) - (br $while-in$11) ) ) (if (i32.lt_u - (get_local $8) (get_local $0) + (get_local $10) ) (call_import $_abort) (block (i32.store - (get_local $8) + (get_local $0) (i32.const 0) ) - (set_local $15 - (get_local $4) + (set_local $5 + (get_local $1) ) ) ) @@ -10268,52 +9105,52 @@ (block (if (i32.lt_u - (tee_local $4 + (tee_local $8 (i32.load offset=8 - (get_local $10) + (get_local $2) ) ) - (get_local $0) + (get_local $10) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $0 + (tee_local $6 (i32.add - (get_local $4) + (get_local $8) (i32.const 12) ) ) ) - (get_local $10) + (get_local $2) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $8 + (tee_local $1 (i32.add - (get_local $2) + (get_local $0) (i32.const 8) ) ) ) - (get_local $10) + (get_local $2) ) (block (i32.store + (get_local $6) (get_local $0) - (get_local $2) ) (i32.store + (get_local $1) (get_local $8) - (get_local $4) ) - (set_local $15 - (get_local $2) + (set_local $5 + (get_local $0) ) ) (call_import $_abort) @@ -10323,22 +9160,19 @@ ) (block $do-once$12 (if - (i32.ne - (get_local $1) - (i32.const 0) - ) + (get_local $11) (block (if (i32.eq - (get_local $10) + (get_local $2) (i32.load - (tee_local $2 + (tee_local $0 (i32.add (i32.const 480) (i32.shl - (tee_local $0 + (tee_local $1 (i32.load offset=28 - (get_local $10) + (get_local $2) ) ) (i32.const 2) @@ -10349,13 +9183,12 @@ ) (block (i32.store - (get_local $2) - (get_local $15) + (get_local $0) + (get_local $5) ) (if - (i32.eq - (get_local $15) - (i32.const 0) + (i32.eqz + (get_local $5) ) (block (i32.store @@ -10367,7 +9200,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $0) + (get_local $1) ) (i32.const -1) ) @@ -10380,7 +9213,7 @@ (block (if (i32.lt_u - (get_local $1) + (get_local $11) (i32.load (i32.const 192) ) @@ -10392,34 +9225,33 @@ (i32.load (tee_local $0 (i32.add - (get_local $1) + (get_local $11) (i32.const 16) ) ) ) - (get_local $10) + (get_local $2) ) (i32.store (get_local $0) - (get_local $15) + (get_local $5) ) (i32.store offset=20 - (get_local $1) - (get_local $15) + (get_local $11) + (get_local $5) ) ) (br_if $do-once$12 - (i32.eq - (get_local $15) - (i32.const 0) + (i32.eqz + (get_local $5) ) ) ) ) (if (i32.lt_u - (get_local $15) - (tee_local $0 + (get_local $5) + (tee_local $1 (i32.load (i32.const 192) ) @@ -10428,44 +9260,38 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $15) - (get_local $1) + (get_local $5) + (get_local $11) ) (if - (i32.ne - (tee_local $1 - (i32.load offset=16 - (get_local $10) - ) + (tee_local $0 + (i32.load offset=16 + (get_local $2) ) - (i32.const 0) ) (if (i32.lt_u - (get_local $1) (get_local $0) + (get_local $1) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $15) - (get_local $1) + (get_local $5) + (get_local $0) ) (i32.store offset=24 - (get_local $1) - (get_local $15) + (get_local $0) + (get_local $5) ) ) ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=20 - (get_local $10) - ) + (tee_local $0 + (i32.load offset=20 + (get_local $2) ) - (i32.const 0) ) (if (i32.lt_u @@ -10477,12 +9303,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $15) + (get_local $5) (get_local $0) ) (i32.store offset=24 (get_local $0) - (get_local $15) + (get_local $5) ) ) ) @@ -10492,86 +9318,80 @@ ) (if (i32.lt_u - (get_local $7) + (get_local $4) (i32.const 16) ) (block (i32.store offset=4 - (get_local $10) + (get_local $2) (i32.or (tee_local $0 (i32.add - (get_local $7) - (get_local $6) + (get_local $4) + (get_local $3) ) ) (i32.const 3) ) ) - (set_local $1 + (i32.store + (tee_local $0 + (i32.add + (i32.add + (get_local $2) + (get_local $0) + ) + (i32.const 4) + ) + ) (i32.or (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $10) - (get_local $0) - ) - (i32.const 4) - ) - ) + (get_local $0) ) (i32.const 1) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) ) (block (i32.store offset=4 - (get_local $10) + (get_local $2) (i32.or - (get_local $6) + (get_local $3) (i32.const 3) ) ) (i32.store offset=4 - (get_local $9) + (get_local $7) (i32.or - (get_local $7) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add - (get_local $9) (get_local $7) + (get_local $4) ) - (get_local $7) + (get_local $4) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 184) - ) + (tee_local $0 + (i32.load + (i32.const 184) ) - (i32.const 0) ) (block - (set_local $1 + (set_local $5 (i32.load (i32.const 196) ) ) - (set_local $4 + (set_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $2 + (tee_local $1 (i32.shr_u (get_local $0) (i32.const 3) @@ -10584,47 +9404,26 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) - (get_local $2) + (i32.and + (tee_local $3 + (i32.load + (i32.const 176) ) ) - (set_local $3 - (i32.add - (get_local $4) - (i32.const 8) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $1) ) ) - (set_local $16 - (get_local $4) - ) ) (if (i32.lt_u - (tee_local $2 + (tee_local $1 (i32.load - (tee_local $0 + (tee_local $3 (i32.add - (get_local $4) + (get_local $0) (i32.const 8) ) ) @@ -10636,52 +9435,76 @@ ) (call_import $_abort) (block - (set_local $3 - (get_local $0) + (set_local $13 + (get_local $3) ) - (set_local $16 - (get_local $2) + (set_local $9 + (get_local $1) + ) + ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $1) + ) + ) + (set_local $13 + (i32.add + (get_local $0) + (i32.const 8) ) ) + (set_local $9 + (get_local $0) + ) ) ) (i32.store - (get_local $3) - (get_local $1) + (get_local $13) + (get_local $5) ) (i32.store offset=12 - (get_local $16) - (get_local $1) + (get_local $9) + (get_local $5) ) (i32.store offset=8 - (get_local $1) - (get_local $16) + (get_local $5) + (get_local $9) ) (i32.store offset=12 - (get_local $1) - (get_local $4) + (get_local $5) + (get_local $0) ) ) ) (i32.store (i32.const 184) - (get_local $7) + (get_local $4) ) (i32.store (i32.const 196) - (get_local $9) + (get_local $7) ) ) ) (return (i32.add - (get_local $10) + (get_local $2) (i32.const 8) ) ) ) + (set_local $0 + (get_local $3) + ) ) ) + (set_local $0 + (get_local $3) + ) ) ) (if @@ -10689,13 +9512,13 @@ (get_local $0) (i32.const -65) ) - (set_local $6 + (set_local $0 (i32.const -1) ) (block - (set_local $5 + (set_local $9 (i32.and - (tee_local $3 + (tee_local $2 (i32.add (get_local $0) (i32.const 11) @@ -10705,262 +9528,229 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 180) - ) + (tee_local $24 + (i32.load + (i32.const 180) ) - (i32.const 0) - ) - (set_local $6 - (get_local $5) ) (block - (set_local $16 + (set_local $0 (i32.sub (i32.const 0) - (get_local $5) + (get_local $9) ) ) - (block $label$break$L123 - (if - (i32.eq - (tee_local $3 + (block $jumpthreading$outer$2 + (block $jumpthreading$inner$2 + (if + (tee_local $2 (i32.load offset=480 (i32.shl - (tee_local $12 + (tee_local $15 (if - (i32.eq - (tee_local $3 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) + (tee_local $2 + (i32.shr_u + (get_local $2) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u - (get_local $5) + (get_local $9) (i32.const 16777215) ) (i32.const 31) - (block - (set_local $7 - (i32.shl - (tee_local $3 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $9) + (i32.add + (tee_local $2 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $7 - (i32.and - (i32.shr_u - (i32.add - (tee_local $12 - (i32.shl - (get_local $3) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $3) - (i32.const 1048320) + (i32.or + (tee_local $5 + (i32.and + (i32.shr_u + (i32.add + (tee_local $2 + (i32.shl + (get_local $2) + (tee_local $8 + (i32.and + (i32.shr_u + (i32.add + (get_local $2) + (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 $8) ) - (get_local $3) - ) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (tee_local $7 - (i32.shl - (get_local $12) - (get_local $7) + (tee_local $5 + (i32.and + (i32.shr_u + (i32.add + (tee_local $2 + (i32.shl + (get_local $2) + (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 $7) - (get_local $3) + (i32.shr_u + (i32.shl + (get_local $2) + (get_local $5) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (get_local $3) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $7) + (i32.shl + (get_local $2) + (i32.const 1) ) ) ) + (i32.const 0) ) ) (i32.const 2) ) ) ) - (i32.const 0) - ) - (block - (set_local $31 - (get_local $16) - ) - (set_local $32 - (i32.const 0) - ) - (set_local $28 - (i32.const 0) - ) - (set_local $11 - (i32.const 86) - ) - ) - (block - (set_local $7 - (get_local $16) - ) - (set_local $15 - (i32.const 0) - ) - (set_local $11 - (i32.shl - (get_local $5) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $12) - (i32.const 1) + (block + (set_local $5 + (get_local $0) + ) + (set_local $13 + (i32.const 0) + ) + (set_local $12 + (i32.shl + (get_local $9) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $15) + (i32.const 1) + ) + ) + (i32.eq + (get_local $15) + (i32.const 31) ) - ) - (i32.eq - (get_local $12) - (i32.const 31) ) ) ) - ) - (set_local $23 - (get_local $3) - ) - (set_local $36 - (i32.const 0) - ) - (loop $while-in$18 - (block $while-out$17 + (set_local $0 + (get_local $2) + ) + (set_local $2 + (i32.const 0) + ) + (loop $while-in$18 (if (i32.lt_u - (tee_local $16 + (tee_local $8 (i32.sub - (tee_local $3 + (tee_local $14 (i32.and (i32.load offset=4 - (get_local $23) + (get_local $0) ) (i32.const -8) ) ) - (get_local $5) + (get_local $9) ) ) - (get_local $7) + (get_local $5) ) (if (i32.eq - (get_local $3) - (get_local $5) + (get_local $14) + (get_local $9) ) (block - (set_local $26 - (get_local $16) + (set_local $4 + (get_local $8) ) - (set_local $24 - (get_local $23) + (set_local $3 + (get_local $0) ) - (set_local $29 - (get_local $23) + (set_local $1 + (get_local $0) ) - (set_local $11 + (set_local $19 (i32.const 90) ) - (br $label$break$L123) + (br $jumpthreading$outer$2) ) - (set_local $36 - (get_local $23) + (block + (set_local $5 + (get_local $8) + ) + (set_local $2 + (get_local $0) + ) ) ) - (set_local $16 - (get_local $7) - ) ) - (set_local $7 - (i32.eq - (tee_local $3 + (set_local $8 + (select + (get_local $13) + (tee_local $8 (i32.load offset=20 - (get_local $23) + (get_local $0) ) ) - (i32.const 0) - ) - ) - (set_local $15 - (select - (get_local $15) - (get_local $3) (i32.or - (get_local $7) + (i32.eqz + (get_local $8) + ) (i32.eq - (get_local $3) - (tee_local $3 + (get_local $8) + (tee_local $14 (i32.load (i32.add (i32.add - (get_local $23) + (get_local $0) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $11) + (get_local $12) (i32.const 31) ) (i32.const 2) @@ -10972,15 +9762,14 @@ ) ) ) - (set_local $11 + (set_local $0 (i32.shl - (get_local $11) + (get_local $12) (i32.xor (i32.and - (tee_local $7 - (i32.eq - (get_local $3) - (i32.const 0) + (tee_local $12 + (i32.eqz + (get_local $14) ) ) (i32.const 1) @@ -10990,330 +9779,286 @@ ) ) (if - (get_local $7) + (get_local $12) (block - (set_local $31 - (get_local $16) - ) - (set_local $32 - (get_local $15) - ) - (set_local $28 - (get_local $36) - ) - (set_local $11 - (i32.const 86) + (set_local $0 + (get_local $5) ) - (br $while-out$17) + (br $jumpthreading$inner$2) ) (block - (set_local $7 - (get_local $16) + (set_local $13 + (get_local $8) ) - (set_local $23 - (get_local $3) + (set_local $12 + (get_local $0) ) + (set_local $0 + (get_local $14) + ) + (br $while-in$18) ) ) - (br $while-in$18) ) ) + (block + (set_local $8 + (i32.const 0) + ) + (set_local $2 + (i32.const 0) + ) + (br $jumpthreading$inner$2) + ) ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 86) + (br $jumpthreading$outer$2) ) (if - (i32.eq - (tee_local $0 - (if - (i32.and - (i32.eq - (get_local $32) - (i32.const 0) - ) - (i32.eq - (get_local $28) - (i32.const 0) - ) + (tee_local $5 + (if + (i32.and + (i32.eqz + (get_local $8) ) - (block - (set_local $7 - (i32.sub - (i32.const 0) - (tee_local $3 - (i32.shl - (i32.const 2) - (get_local $12) - ) - ) - ) - ) - (if - (i32.eq - (tee_local $0 - (i32.and - (get_local $0) - (i32.or - (get_local $3) - (get_local $7) + (i32.eqz + (get_local $2) + ) + ) + (block + (if + (i32.eqz + (tee_local $5 + (i32.and + (get_local $24) + (i32.or + (tee_local $5 + (i32.shl + (i32.const 2) + (get_local $15) + ) + ) + (i32.sub + (i32.const 0) + (get_local $5) ) ) ) - (i32.const 0) ) - (block - (set_local $6 - (get_local $5) - ) - (br $do-once$0) + ) + (block + (set_local $0 + (get_local $9) ) + (br $do-once$0) ) - (set_local $0 - (i32.and - (i32.shr_u - (tee_local $3 - (i32.add - (i32.and - (get_local $0) - (i32.sub - (i32.const 0) - (get_local $0) - ) + ) + (set_local $12 + (i32.and + (i32.shr_u + (tee_local $5 + (i32.add + (i32.and + (get_local $5) + (i32.sub + (i32.const 0) + (get_local $5) ) - (i32.const -1) ) + (i32.const -1) ) - (i32.const 12) ) - (i32.const 16) + (i32.const 12) ) + (i32.const 16) ) - (i32.load offset=480 - (i32.shl - (i32.add + ) + (i32.load offset=480 + (i32.shl + (i32.add + (i32.or (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 $0) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $0) - ) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u - (get_local $7) - (get_local $3) + (get_local $5) + (get_local $12) ) ) - (i32.const 2) + (i32.const 5) ) - (i32.const 4) + (i32.const 8) ) ) + (get_local $12) ) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u - (get_local $3) - (get_local $0) + (get_local $5) + (get_local $8) ) ) - (i32.const 1) + (i32.const 2) ) - (i32.const 2) + (i32.const 4) ) ) ) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u - (get_local $3) - (get_local $0) + (get_local $5) + (get_local $8) ) ) (i32.const 1) ) - (i32.const 1) + (i32.const 2) ) ) ) - (i32.shr_u - (get_local $3) - (get_local $0) + (tee_local $8 + (i32.and + (i32.shr_u + (tee_local $5 + (i32.shr_u + (get_local $5) + (get_local $8) + ) + ) + (i32.const 1) + ) + (i32.const 1) + ) ) ) - (i32.const 2) + (i32.shr_u + (get_local $5) + (get_local $8) + ) ) + (i32.const 2) ) ) - (get_local $32) ) + (get_local $8) ) - (i32.const 0) ) (block - (set_local $17 - (get_local $31) + (set_local $4 + (get_local $0) ) - (set_local $13 - (get_local $28) + (set_local $3 + (get_local $5) + ) + (set_local $1 + (get_local $2) + ) + (set_local $19 + (i32.const 90) ) ) (block - (set_local $26 - (get_local $31) - ) - (set_local $24 + (set_local $7 (get_local $0) ) - (set_local $29 - (get_local $28) - ) - (set_local $11 - (i32.const 90) + (set_local $6 + (get_local $2) ) ) ) ) (if (i32.eq - (get_local $11) + (get_local $19) (i32.const 90) ) (loop $while-in$20 - (block $while-out$19 - (set_local $11 - (i32.const 0) - ) - (set_local $0 - (i32.lt_u - (tee_local $3 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $24) - ) - (i32.const -8) + (set_local $2 + (i32.lt_u + (tee_local $0 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $3) ) - (get_local $5) + (i32.const -8) ) + (get_local $9) ) - (get_local $26) ) + (get_local $4) ) - (set_local $17 - (select + ) + (set_local $4 + (select + (get_local $0) + (get_local $4) + (get_local $2) + ) + ) + (set_local $1 + (select + (get_local $3) + (get_local $1) + (get_local $2) + ) + ) + (if + (tee_local $0 + (i32.load offset=16 (get_local $3) - (get_local $26) - (get_local $0) ) ) - (set_local $3 - (select - (get_local $24) - (get_local $29) + (block + (set_local $3 (get_local $0) ) + (br $while-in$20) ) - (if - (i32.ne - (tee_local $0 - (i32.load offset=16 - (get_local $24) - ) - ) - (i32.const 0) - ) - (block - (set_local $26 - (get_local $17) - ) - (set_local $24 - (get_local $0) - ) - (set_local $29 - (get_local $3) - ) - (br $while-in$20) + ) + (br_if $while-in$20 + (tee_local $3 + (i32.load offset=20 + (get_local $3) ) ) - (if - (i32.eq - (tee_local $0 - (i32.load offset=20 - (get_local $24) - ) - ) - (i32.const 0) - ) - (block - (set_local $13 - (get_local $3) - ) - (br $while-out$19) - ) - (block - (set_local $26 - (get_local $17) - ) - (set_local $24 - (get_local $0) - ) - (set_local $29 - (get_local $3) - ) - ) + ) + (block + (set_local $7 + (get_local $4) + ) + (set_local $6 + (get_local $1) ) - (br $while-in$20) ) ) ) (if - (i32.eq - (get_local $13) - (i32.const 0) - ) - (set_local $6 - (get_local $5) - ) + (get_local $6) (if (i32.lt_u - (get_local $17) + (get_local $7) (i32.sub (i32.load (i32.const 184) ) - (get_local $5) + (get_local $9) ) ) (block (if (i32.lt_u - (get_local $13) - (tee_local $0 + (get_local $6) + (tee_local $8 (i32.load (i32.const 192) ) @@ -11323,140 +10068,123 @@ ) (if (i32.ge_u - (get_local $13) - (tee_local $3 + (get_local $6) + (tee_local $4 (i32.add - (get_local $13) - (get_local $5) + (get_local $6) + (get_local $9) ) ) ) (call_import $_abort) ) - (set_local $1 + (set_local $5 (i32.load offset=24 - (get_local $13) + (get_local $6) ) ) (block $do-once$21 (if (i32.eq - (tee_local $2 + (tee_local $0 (i32.load offset=12 - (get_local $13) + (get_local $6) ) ) - (get_local $13) + (get_local $6) ) (block (if - (i32.eq - (tee_local $2 + (i32.eqz + (tee_local $1 (i32.load - (tee_local $9 + (tee_local $0 (i32.add - (get_local $13) + (get_local $6) (i32.const 20) ) ) ) ) - (i32.const 0) ) (if - (i32.eq - (tee_local $2 + (i32.eqz + (tee_local $1 (i32.load - (tee_local $9 + (tee_local $0 (i32.add - (get_local $13) + (get_local $6) (i32.const 16) ) ) ) ) - (i32.const 0) ) (block - (set_local $6 + (set_local $10 (i32.const 0) ) (br $do-once$21) ) - (set_local $8 - (get_local $2) - ) - ) - (set_local $8 - (get_local $2) ) ) (loop $while-in$24 - (block $while-out$23 - (if - (i32.ne + (if + (tee_local $3 + (i32.load (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $8) - (i32.const 20) - ) - ) + (i32.add + (get_local $1) + (i32.const 20) ) ) - (i32.const 0) ) - (block - (set_local $8 - (get_local $2) - ) - (set_local $9 - (get_local $7) - ) - (br $while-in$24) + ) + (block + (set_local $1 + (get_local $3) ) + (set_local $0 + (get_local $2) + ) + (br $while-in$24) ) - (if - (i32.eq + ) + (if + (tee_local $3 + (i32.load (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $8) - (i32.const 16) - ) - ) + (i32.add + (get_local $1) + (i32.const 16) ) ) - (i32.const 0) ) - (br $while-out$23) - (block - (set_local $8 - (get_local $2) - ) - (set_local $9 - (get_local $7) - ) + ) + (block + (set_local $1 + (get_local $3) + ) + (set_local $0 + (get_local $2) ) + (br $while-in$24) ) - (br $while-in$24) ) ) (if (i32.lt_u - (get_local $9) (get_local $0) + (get_local $8) ) (call_import $_abort) (block (i32.store - (get_local $9) + (get_local $0) (i32.const 0) ) - (set_local $6 - (get_local $8) + (set_local $10 + (get_local $1) ) ) ) @@ -11464,52 +10192,52 @@ (block (if (i32.lt_u - (tee_local $8 + (tee_local $3 (i32.load offset=8 - (get_local $13) + (get_local $6) ) ) - (get_local $0) + (get_local $8) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $0 + (tee_local $2 (i32.add - (get_local $8) + (get_local $3) (i32.const 12) ) ) ) - (get_local $13) + (get_local $6) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $9 + (tee_local $1 (i32.add - (get_local $2) + (get_local $0) (i32.const 8) ) ) ) - (get_local $13) + (get_local $6) ) (block (i32.store - (get_local $0) (get_local $2) + (get_local $0) ) (i32.store - (get_local $9) - (get_local $8) + (get_local $1) + (get_local $3) ) - (set_local $6 - (get_local $2) + (set_local $10 + (get_local $0) ) ) (call_import $_abort) @@ -11519,22 +10247,19 @@ ) (block $do-once$25 (if - (i32.ne - (get_local $1) - (i32.const 0) - ) + (get_local $5) (block (if (i32.eq - (get_local $13) + (get_local $6) (i32.load - (tee_local $2 + (tee_local $0 (i32.add (i32.const 480) (i32.shl - (tee_local $0 + (tee_local $1 (i32.load offset=28 - (get_local $13) + (get_local $6) ) ) (i32.const 2) @@ -11545,13 +10270,12 @@ ) (block (i32.store - (get_local $2) - (get_local $6) + (get_local $0) + (get_local $10) ) (if - (i32.eq - (get_local $6) - (i32.const 0) + (i32.eqz + (get_local $10) ) (block (i32.store @@ -11563,7 +10287,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $0) + (get_local $1) ) (i32.const -1) ) @@ -11576,7 +10300,7 @@ (block (if (i32.lt_u - (get_local $1) + (get_local $5) (i32.load (i32.const 192) ) @@ -11588,34 +10312,33 @@ (i32.load (tee_local $0 (i32.add - (get_local $1) + (get_local $5) (i32.const 16) ) ) ) - (get_local $13) + (get_local $6) ) (i32.store (get_local $0) - (get_local $6) + (get_local $10) ) (i32.store offset=20 - (get_local $1) - (get_local $6) + (get_local $5) + (get_local $10) ) ) (br_if $do-once$25 - (i32.eq - (get_local $6) - (i32.const 0) + (i32.eqz + (get_local $10) ) ) ) ) (if (i32.lt_u - (get_local $6) - (tee_local $0 + (get_local $10) + (tee_local $1 (i32.load (i32.const 192) ) @@ -11624,44 +10347,38 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $6) - (get_local $1) + (get_local $10) + (get_local $5) ) (if - (i32.ne - (tee_local $1 - (i32.load offset=16 - (get_local $13) - ) + (tee_local $0 + (i32.load offset=16 + (get_local $6) ) - (i32.const 0) ) (if (i32.lt_u - (get_local $1) (get_local $0) + (get_local $1) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $6) - (get_local $1) + (get_local $10) + (get_local $0) ) (i32.store offset=24 - (get_local $1) - (get_local $6) + (get_local $0) + (get_local $10) ) ) ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=20 - (get_local $13) - ) + (tee_local $0 + (i32.load offset=20 + (get_local $6) ) - (i32.const 0) ) (if (i32.lt_u @@ -11673,12 +10390,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $6) + (get_local $10) (get_local $0) ) (i32.store offset=24 (get_local $0) - (get_local $6) + (get_local $10) ) ) ) @@ -11689,78 +10406,75 @@ (block $do-once$29 (if (i32.lt_u - (get_local $17) + (get_local $7) (i32.const 16) ) (block (i32.store offset=4 - (get_local $13) + (get_local $6) (i32.or (tee_local $0 (i32.add - (get_local $17) - (get_local $5) + (get_local $7) + (get_local $9) ) ) (i32.const 3) ) ) - (set_local $1 + (i32.store + (tee_local $0 + (i32.add + (i32.add + (get_local $6) + (get_local $0) + ) + (i32.const 4) + ) + ) (i32.or (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $13) - (get_local $0) - ) - (i32.const 4) - ) - ) + (get_local $0) ) (i32.const 1) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) ) (block (i32.store offset=4 - (get_local $13) + (get_local $6) (i32.or - (get_local $5) + (get_local $9) (i32.const 3) ) ) (i32.store offset=4 - (get_local $3) + (get_local $4) (i32.or - (get_local $17) + (get_local $7) (i32.const 1) ) ) (i32.store (i32.add - (get_local $3) - (get_local $17) + (get_local $4) + (get_local $7) ) - (get_local $17) + (get_local $7) ) (set_local $1 (i32.shr_u - (get_local $17) + (get_local $7) (i32.const 3) ) ) (if (i32.lt_u - (get_local $17) + (get_local $7) (i32.const 256) ) (block - (set_local $2 + (set_local $0 (i32.add (i32.const 216) (i32.shl @@ -11773,47 +10487,26 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.and + (tee_local $2 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) ) ) - (set_local $4 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (set_local $10 - (get_local $2) - ) ) (if (i32.lt_u (tee_local $1 (i32.load - (tee_local $0 + (tee_local $2 (i32.add - (get_local $2) + (get_local $0) (i32.const 8) ) ) @@ -11825,141 +10518,151 @@ ) (call_import $_abort) (block - (set_local $4 - (get_local $0) + (set_local $20 + (get_local $2) ) - (set_local $10 + (set_local $16 + (get_local $1) + ) + ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $2) (get_local $1) ) ) + (set_local $20 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + (set_local $16 + (get_local $0) + ) ) ) (i32.store + (get_local $20) (get_local $4) - (get_local $3) ) (i32.store offset=12 - (get_local $10) - (get_local $3) + (get_local $16) + (get_local $4) ) (i32.store offset=8 - (get_local $3) - (get_local $10) + (get_local $4) + (get_local $16) ) (i32.store offset=12 - (get_local $3) - (get_local $2) + (get_local $4) + (get_local $0) ) (br $do-once$29) ) ) - (set_local $2 + (set_local $1 (i32.add (i32.const 480) (i32.shl - (tee_local $1 + (tee_local $2 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $17) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $7) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u - (get_local $17) + (get_local $7) (i32.const 16777215) ) (i32.const 31) - (block - (set_local $1 - (i32.shl - (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 $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $2 - (i32.shl - (get_local $0) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (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 $0) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $2) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (i32.shl + (get_local $0) + (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 $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $0) + (get_local $1) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $17) - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $1) + (i32.shl + (get_local $0) + (i32.const 1) ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -11967,13 +10670,13 @@ ) ) (i32.store offset=28 - (get_local $3) - (get_local $1) + (get_local $4) + (get_local $2) ) (i32.store offset=4 (tee_local $0 (i32.add - (get_local $3) + (get_local $4) (i32.const 16) ) ) @@ -11984,233 +10687,211 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and - (tee_local $0 + (tee_local $3 (i32.load (i32.const 180) ) ) - (tee_local $4 + (tee_local $0 (i32.shl (i32.const 1) - (get_local $1) + (get_local $2) ) ) ) - (i32.const 0) ) (block (i32.store (i32.const 180) (i32.or + (get_local $3) (get_local $0) - (get_local $4) ) ) (i32.store - (get_local $2) - (get_local $3) + (get_local $1) + (get_local $4) ) (i32.store offset=24 - (get_local $3) - (get_local $2) + (get_local $4) + (get_local $1) ) (i32.store offset=12 - (get_local $3) - (get_local $3) + (get_local $4) + (get_local $4) ) (i32.store offset=8 - (get_local $3) - (get_local $3) + (get_local $4) + (get_local $4) ) (br $do-once$29) ) ) - (set_local $1 + (set_local $2 (i32.shl - (get_local $17) + (get_local $7) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $1) + (get_local $2) (i32.const 1) ) ) (i32.eq - (get_local $1) + (get_local $2) (i32.const 31) ) ) ) ) - (set_local $2 + (set_local $0 (i32.load - (get_local $2) + (get_local $1) ) ) - (loop $while-in$32 - (block $while-out$31 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $2) + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (block $jumpthreading$inner$0 + (loop $while-in$32 + (br_if $jumpthreading$inner$1 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) + ) + (get_local $7) ) - (i32.const -8) - ) - (get_local $17) - ) - (block - (set_local $22 - (get_local $2) ) - (set_local $11 - (i32.const 148) + (set_local $1 + (i32.shl + (get_local $2) + (i32.const 1) + ) ) - (br $while-out$31) - ) - ) - (set_local $4 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $1 - (i32.add + (if + (tee_local $3 + (i32.load + (tee_local $2 (i32.add - (get_local $2) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (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 $1) + ) + (set_local $0 + (get_local $3) + ) + (br $while-in$32) + ) + (block + (set_local $1 + (get_local $0) + ) + (set_local $0 + (get_local $2) + ) + (br $jumpthreading$inner$0) + ) + ) + ) + ) + (if + (i32.lt_u + (get_local $0) + (i32.load + (i32.const 192) ) - (i32.const 0) ) + (call_import $_abort) (block - (set_local $25 - (get_local $2) + (i32.store + (get_local $0) + (get_local $4) ) - (set_local $37 + (i32.store offset=24 + (get_local $4) (get_local $1) ) - (set_local $11 - (i32.const 145) - ) - (br $while-out$31) - ) - (block - (set_local $1 + (i32.store offset=12 + (get_local $4) (get_local $4) ) - (set_local $2 - (get_local $0) + (i32.store offset=8 + (get_local $4) + (get_local $4) ) + (br $do-once$29) ) ) - (br $while-in$32) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 145) + (br $jumpthreading$outer$1) ) (if - (i32.lt_u - (get_local $37) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $3 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + ) + (tee_local $2 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $0) + (get_local $2) ) ) - (call_import $_abort) (block - (i32.store - (get_local $37) - (get_local $3) - ) - (i32.store offset=24 - (get_local $3) - (get_local $25) - ) (i32.store offset=12 (get_local $3) - (get_local $3) + (get_local $4) + ) + (i32.store + (get_local $1) + (get_local $4) ) (i32.store offset=8 - (get_local $3) + (get_local $4) (get_local $3) ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 148) - ) - (if - (i32.and - (i32.ge_u - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $22) - (i32.const 8) - ) - ) - ) - ) - (tee_local $1 - (i32.load - (i32.const 192) - ) - ) - ) - (i32.ge_u - (get_local $22) - (get_local $1) - ) + (i32.store offset=12 + (get_local $4) + (get_local $0) ) - (block - (i32.store offset=12 - (get_local $0) - (get_local $3) - ) - (i32.store - (get_local $2) - (get_local $3) - ) - (i32.store offset=8 - (get_local $3) - (get_local $0) - ) - (i32.store offset=12 - (get_local $3) - (get_local $22) - ) - (i32.store offset=24 - (get_local $3) - (i32.const 0) - ) + (i32.store offset=24 + (get_local $4) + (i32.const 0) ) - (call_import $_abort) ) + (call_import $_abort) ) ) ) @@ -12218,17 +10899,23 @@ ) (return (i32.add - (get_local $13) + (get_local $6) (i32.const 8) ) ) ) - (set_local $6 - (get_local $5) + (set_local $0 + (get_local $9) ) ) + (set_local $0 + (get_local $9) + ) ) ) + (set_local $0 + (get_local $9) + ) ) ) ) @@ -12236,25 +10923,25 @@ ) (if (i32.ge_u - (tee_local $0 + (tee_local $2 (i32.load (i32.const 184) ) ) - (get_local $6) + (get_local $0) ) (block - (set_local $1 + (set_local $3 (i32.load (i32.const 196) ) ) (if (i32.gt_u - (tee_local $2 + (tee_local $1 (i32.sub + (get_local $2) (get_local $0) - (get_local $6) ) ) (i32.const 15) @@ -12262,35 +10949,35 @@ (block (i32.store (i32.const 196) - (tee_local $0 + (tee_local $2 (i32.add - (get_local $1) - (get_local $6) + (get_local $3) + (get_local $0) ) ) ) (i32.store (i32.const 184) - (get_local $2) + (get_local $1) ) (i32.store offset=4 - (get_local $0) + (get_local $2) (i32.or - (get_local $2) + (get_local $1) (i32.const 1) ) ) (i32.store (i32.add - (get_local $0) (get_local $2) + (get_local $1) ) - (get_local $2) + (get_local $1) ) (i32.store offset=4 - (get_local $1) + (get_local $3) (i32.or - (get_local $6) + (get_local $0) (i32.const 3) ) ) @@ -12305,37 +10992,34 @@ (i32.const 0) ) (i32.store offset=4 - (get_local $1) + (get_local $3) (i32.or - (get_local $0) + (get_local $2) (i32.const 3) ) ) - (set_local $2 + (i32.store + (tee_local $0 + (i32.add + (i32.add + (get_local $3) + (get_local $2) + ) + (i32.const 4) + ) + ) (i32.or (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $1) - (get_local $0) - ) - (i32.const 4) - ) - ) + (get_local $0) ) (i32.const 1) ) ) - (i32.store - (get_local $0) - (get_local $2) - ) ) ) (return (i32.add - (get_local $1) + (get_local $3) (i32.const 8) ) ) @@ -12343,88 +11027,85 @@ ) (if (i32.gt_u - (tee_local $0 + (tee_local $1 (i32.load (i32.const 188) ) ) - (get_local $6) + (get_local $0) ) (block (i32.store (i32.const 188) - (tee_local $2 + (tee_local $1 (i32.sub + (get_local $1) (get_local $0) - (get_local $6) ) ) ) (i32.store (i32.const 200) - (tee_local $1 + (tee_local $2 (i32.add - (tee_local $0 + (tee_local $3 (i32.load (i32.const 200) ) ) - (get_local $6) + (get_local $0) ) ) ) (i32.store offset=4 - (get_local $1) + (get_local $2) (i32.or - (get_local $2) + (get_local $1) (i32.const 1) ) ) (i32.store offset=4 - (get_local $0) + (get_local $3) (i32.or - (get_local $6) + (get_local $0) (i32.const 3) ) ) (return (i32.add - (get_local $0) + (get_local $3) (i32.const 8) ) ) ) ) (if - (i32.eq + (i32.eqz (i32.load (i32.const 648) ) - (i32.const 0) ) (if - (i32.eq - (i32.and - (i32.add - (tee_local $0 - (call_import $_sysconf - (i32.const 30) - ) + (i32.and + (i32.add + (tee_local $1 + (call_import $_sysconf + (i32.const 30) ) - (i32.const -1) ) - (get_local $0) + (i32.const -1) ) - (i32.const 0) + (get_local $1) ) + (call_import $_abort) (block (i32.store (i32.const 656) - (get_local $0) + (get_local $1) ) (i32.store (i32.const 652) - (get_local $0) + (get_local $1) ) (i32.store (i32.const 660) @@ -12455,75 +11136,71 @@ ) ) ) - (call_import $_abort) ) ) - (set_local $5 + (set_local $8 (i32.add - (get_local $6) + (get_local $0) (i32.const 48) ) ) (if (i32.le_u - (tee_local $10 + (tee_local $9 (i32.and - (tee_local $7 + (tee_local $6 (i32.add - (tee_local $0 + (tee_local $1 (i32.load (i32.const 656) ) ) - (tee_local $15 + (tee_local $5 (i32.add - (get_local $6) + (get_local $0) (i32.const 47) ) ) ) ) - (tee_local $12 + (tee_local $2 (i32.sub (i32.const 0) - (get_local $0) + (get_local $1) ) ) ) ) - (get_local $6) + (get_local $0) ) (return (i32.const 0) ) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 616) - ) + (tee_local $4 + (i32.load + (i32.const 616) ) - (i32.const 0) ) (if (i32.or (i32.le_u - (tee_local $3 + (tee_local $1 (i32.add - (tee_local $4 + (tee_local $3 (i32.load (i32.const 608) ) ) - (get_local $10) + (get_local $9) ) ) - (get_local $4) + (get_local $3) ) (i32.gt_u - (get_local $3) - (get_local $0) + (get_local $1) + (get_local $4) ) ) (return @@ -12531,679 +11208,414 @@ ) ) ) - (if - (i32.eq - (tee_local $11 - (block $label$break$L257 - (if - (i32.eq - (i32.and - (i32.load - (i32.const 620) - ) - (i32.const 4) - ) - (i32.const 0) + (block $jumpthreading$outer$12 + (block $jumpthreading$inner$12 + (if + (i32.eqz + (i32.and + (i32.load + (i32.const 620) ) - (block - (block $label$break$L259 - (if - (i32.eq - (tee_local $0 + (i32.const 4) + ) + ) + (block + (block $label$break$L279 + (block $jumpthreading$inner$4 + (block $jumpthreading$inner$3 + (br_if $jumpthreading$inner$3 + (i32.eqz + (tee_local $4 (i32.load (i32.const 200) ) ) - (i32.const 0) - ) - (set_local $11 - (i32.const 173) ) - (block - (set_local $16 - (i32.const 624) - ) - (loop $while-in$38 - (block $while-out$37 - (if - (i32.le_u - (tee_local $4 - (i32.load - (get_local $16) - ) - ) - (get_local $0) - ) - (if - (i32.gt_u - (i32.add - (get_local $4) - (i32.load - (tee_local $3 - (i32.add - (get_local $16) - (i32.const 4) - ) - ) - ) - ) - (get_local $0) - ) - (block - (set_local $4 - (get_local $16) - ) - (set_local $16 - (get_local $3) - ) - (br $while-out$37) - ) - ) - ) - (if - (i32.eq - (tee_local $4 - (i32.load offset=8 - (get_local $16) - ) - ) - (i32.const 0) - ) - (block - (set_local $11 - (i32.const 173) - ) - (br $label$break$L259) - ) - (set_local $16 - (get_local $4) - ) - ) - (br $while-in$38) - ) - ) + ) + (set_local $1 + (i32.const 624) + ) + (loop $while-in$38 + (block $while-out$37 (if - (i32.lt_u - (tee_local $0 - (i32.and - (i32.sub - (get_local $7) - (i32.load - (i32.const 188) - ) - ) - (get_local $12) + (i32.le_u + (tee_local $3 + (i32.load + (get_local $1) ) ) - (i32.const 2147483647) + (get_local $4) ) (if - (i32.eq - (tee_local $3 - (call_import $_sbrk - (get_local $0) - ) - ) + (i32.gt_u (i32.add - (i32.load - (get_local $4) - ) - (i32.load - (get_local $16) - ) - ) - ) - (if - (i32.ne (get_local $3) - (i32.const -1) - ) - (block - (set_local $14 - (get_local $3) - ) - (set_local $19 - (get_local $0) - ) - (br $label$break$L257 - (i32.const 193) + (i32.load + (tee_local $3 + (i32.add + (get_local $1) + (i32.const 4) + ) + ) ) ) + (get_local $4) ) (block - (set_local $30 - (get_local $3) - ) - (set_local $21 - (get_local $0) - ) - (set_local $11 - (i32.const 183) + (set_local $4 + (get_local $1) ) + (br $while-out$37) + ) + ) + ) + (br_if $while-in$38 + (tee_local $1 + (i32.load offset=8 + (get_local $1) ) ) ) + (br $jumpthreading$inner$3) ) ) - ) - (block $do-once$39 (if - (i32.eq - (get_local $11) - (i32.const 173) + (i32.lt_u + (tee_local $1 + (i32.and + (i32.sub + (get_local $6) + (i32.load + (i32.const 188) + ) + ) + (get_local $2) + ) + ) + (i32.const 2147483647) ) (if - (i32.ne - (tee_local $7 + (i32.eq + (tee_local $2 (call_import $_sbrk - (i32.const 0) + (get_local $1) ) ) - (i32.const -1) - ) - (block - (set_local $4 - (i32.add - (tee_local $3 - (i32.load - (i32.const 608) - ) - ) - (tee_local $12 - (if - (i32.eq - (i32.and - (tee_local $12 - (i32.add - (tee_local $4 - (i32.load - (i32.const 652) - ) - ) - (i32.const -1) - ) - ) - (tee_local $0 - (get_local $7) - ) - ) - (i32.const 0) - ) - (get_local $10) - (i32.add - (i32.sub - (get_local $10) - (get_local $0) - ) - (i32.and - (i32.add - (get_local $12) - (get_local $0) - ) - (i32.sub - (i32.const 0) - (get_local $4) - ) - ) - ) - ) - ) + (i32.add + (i32.load + (get_local $4) + ) + (i32.load + (get_local $3) ) ) - (if - (i32.and - (i32.gt_u - (get_local $12) - (get_local $6) - ) - (i32.lt_u - (get_local $12) - (i32.const 2147483647) - ) + ) + (br_if $jumpthreading$inner$12 + (i32.ne + (get_local $2) + (i32.const -1) + ) + ) + (br $jumpthreading$inner$4) + ) + ) + (br $label$break$L279) + ) + (if + (i32.ne + (tee_local $2 + (call_import $_sbrk + (i32.const 0) + ) + ) + (i32.const -1) + ) + (block + (set_local $3 + (i32.add + (tee_local $6 + (i32.load + (i32.const 608) ) - (block - (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 616) + ) + (tee_local $1 + (if + (i32.and + (tee_local $3 + (i32.add + (tee_local $4 + (i32.load + (i32.const 652) + ) ) + (i32.const -1) ) - (i32.const 0) ) - (br_if $do-once$39 - (i32.or - (i32.le_u - (get_local $4) - (get_local $3) - ) - (i32.gt_u - (get_local $4) - (get_local $0) - ) - ) + (tee_local $1 + (get_local $2) ) ) - (if - (i32.eq - (tee_local $30 - (call_import $_sbrk - (get_local $12) - ) - ) - (get_local $7) - ) - (block - (set_local $14 - (get_local $7) - ) - (set_local $19 - (get_local $12) - ) - (br $label$break$L257 - (i32.const 193) - ) + (i32.add + (i32.sub + (get_local $9) + (get_local $1) ) - (block - (set_local $21 - (get_local $12) + (i32.and + (i32.add + (get_local $3) + (get_local $1) ) - (set_local $11 - (i32.const 183) + (i32.sub + (i32.const 0) + (get_local $4) ) ) ) + (get_local $9) ) ) ) ) - ) - ) - (block $label$break$L279 - (if - (i32.eq - (get_local $11) - (i32.const 183) - ) - (block - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $21) + (if + (i32.and + (i32.gt_u + (get_local $1) + (get_local $0) ) - ) - (if - (i32.and - (i32.gt_u - (get_local $5) - (get_local $21) - ) - (i32.and - (i32.lt_u - (get_local $21) - (i32.const 2147483647) - ) - (i32.ne - (get_local $30) - (i32.const -1) - ) - ) + (i32.lt_u + (get_local $1) + (i32.const 2147483647) ) + ) + (block (if - (i32.lt_u - (tee_local $0 - (i32.and - (i32.add - (i32.sub - (get_local $15) - (get_local $21) - ) - (tee_local $0 - (i32.load - (i32.const 656) - ) - ) - ) - (i32.sub - (i32.const 0) - (get_local $0) - ) - ) + (tee_local $4 + (i32.load + (i32.const 616) ) - (i32.const 2147483647) ) - (if - (i32.eq - (call_import $_sbrk - (get_local $0) + (br_if $label$break$L279 + (i32.or + (i32.le_u + (get_local $3) + (get_local $6) ) - (i32.const -1) - ) - (block - (drop - (call_import $_sbrk - (get_local $4) - ) + (i32.gt_u + (get_local $3) + (get_local $4) ) - (br $label$break$L279) ) - (set_local $21 - (i32.add - (get_local $0) - (get_local $21) + ) + ) + (br_if $jumpthreading$inner$12 + (i32.eq + (tee_local $3 + (call_import $_sbrk + (get_local $1) ) ) + (get_local $2) ) ) - ) - (if - (i32.ne - (get_local $30) - (i32.const -1) - ) (block - (set_local $14 - (get_local $30) + (set_local $2 + (get_local $3) ) - (set_local $19 - (get_local $21) + (br $jumpthreading$inner$4) + ) + ) + ) + ) + ) + (br $label$break$L279) + ) + (set_local $3 + (i32.sub + (i32.const 0) + (get_local $1) + ) + ) + (if + (i32.and + (i32.gt_u + (get_local $8) + (get_local $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 $4 + (i32.and + (i32.add + (i32.sub + (get_local $5) + (get_local $1) ) - (br $label$break$L257 - (i32.const 193) + (tee_local $4 + (i32.load + (i32.const 656) + ) ) ) + (i32.sub + (i32.const 0) + (get_local $4) + ) ) ) + (i32.const 2147483647) ) - ) - (i32.store - (i32.const 620) - (i32.or - (i32.load - (i32.const 620) + (if + (i32.eq + (call_import $_sbrk + (get_local $4) + ) + (i32.const -1) + ) + (block + (drop + (call_import $_sbrk + (get_local $3) + ) + ) + (br $label$break$L279) + ) + (set_local $1 + (i32.add + (get_local $4) + (get_local $1) + ) ) - (i32.const 4) ) ) - (i32.const 190) ) - (i32.const 190) + (br_if $jumpthreading$inner$12 + (i32.ne + (get_local $2) + (i32.const -1) + ) + ) + ) + (i32.store + (i32.const 620) + (i32.or + (i32.load + (i32.const 620) + ) + (i32.const 4) + ) ) ) ) - (i32.const 190) - ) - (if - (i32.lt_u - (get_local $10) - (i32.const 2147483647) - ) - (block - (set_local $3 + (if + (i32.lt_u + (get_local $9) + (i32.const 2147483647) + ) + (if (i32.and - (i32.ne - (tee_local $0 + (i32.lt_u + (tee_local $2 (call_import $_sbrk - (get_local $10) + (get_local $9) ) ) - (i32.const -1) - ) - (i32.ne - (tee_local $4 + (tee_local $1 (call_import $_sbrk (i32.const 0) ) ) - (i32.const -1) ) - ) - ) - (if - (i32.and - (i32.lt_u - (get_local $0) - (get_local $4) + (i32.and + (i32.ne + (get_local $2) + (i32.const -1) + ) + (i32.ne + (get_local $1) + (i32.const -1) + ) ) - (get_local $3) ) - (if + (br_if $jumpthreading$inner$12 (i32.gt_u - (tee_local $4 + (tee_local $1 (i32.sub - (get_local $4) - (get_local $0) + (get_local $1) + (get_local $2) ) ) (i32.add - (get_local $6) - (i32.const 40) - ) - ) - (block - (set_local $14 (get_local $0) - ) - (set_local $19 - (get_local $4) - ) - (set_local $11 - (i32.const 193) + (i32.const 40) ) ) ) ) ) + (br $jumpthreading$outer$12) ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 193) - ) - (block - (i32.store - (i32.const 608) - (tee_local $0 - (i32.add - (i32.load - (i32.const 608) - ) - (get_local $19) - ) - ) - ) - (if - (i32.gt_u - (get_local $0) + (i32.store + (i32.const 608) + (tee_local $3 + (i32.add (i32.load - (i32.const 612) + (i32.const 608) ) + (get_local $1) ) - (i32.store + ) + ) + (if + (i32.gt_u + (get_local $3) + (i32.load (i32.const 612) - (get_local $0) ) ) - (block $do-once$44 - (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 200) - ) - ) - (i32.const 0) + (i32.store + (i32.const 612) + (get_local $3) + ) + ) + (block $do-once$44 + (if + (tee_local $7 + (i32.load + (i32.const 200) ) - (block - (if - (i32.or - (i32.eq - (tee_local $0 - (i32.load - (i32.const 192) - ) - ) - (i32.const 0) - ) - (i32.lt_u - (get_local $14) - (get_local $0) - ) - ) - (i32.store - (i32.const 192) - (get_local $14) - ) - ) - (i32.store - (i32.const 624) - (get_local $14) - ) - (i32.store - (i32.const 628) - (get_local $19) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) - ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (set_local $1 - (i32.const 0) - ) - (loop $while-in$47 - (block $while-out$46 - (i32.store offset=12 - (tee_local $0 - (i32.add - (i32.const 216) - (i32.shl - (i32.shl - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $0) - ) - (br_if $while-out$46 - (i32.eq - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 32) - ) - ) - (br $while-in$47) - ) - ) - (set_local $1 - (i32.eq - (i32.and - (tee_local $0 - (i32.add - (get_local $14) - (i32.const 8) - ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (i32.store - (i32.const 200) - (tee_local $0 - (i32.add - (get_local $14) - (tee_local $1 - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 7) - ) - (get_local $1) - ) - ) - ) - ) - ) - (i32.store - (i32.const 188) - (tee_local $1 - (i32.sub - (i32.add - (get_local $19) - (i32.const -40) - ) - (get_local $1) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (get_local $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) - ) - ) + ) + (block + (set_local $3 + (i32.const 624) ) - (block - (set_local $7 - (i32.const 624) - ) - (loop $while-in$49 - (block $while-out$48 - (if + (block $jumpthreading$outer$9 + (block $jumpthreading$inner$9 + (loop $while-in$49 + (br_if $jumpthreading$inner$9 (i32.eq - (get_local $14) + (get_local $2) (i32.add - (tee_local $4 + (tee_local $9 (i32.load - (get_local $7) + (get_local $3) ) ) - (tee_local $3 + (tee_local $5 (i32.load - (tee_local $5 + (tee_local $4 (i32.add - (get_local $7) + (get_local $3) (i32.const 4) ) ) @@ -13211,1329 +11623,1202 @@ ) ) ) - (block - (set_local $1 - (get_local $4) - ) - (set_local $2 - (get_local $3) - ) - (set_local $42 - (get_local $5) - ) - (set_local $43 - (get_local $7) - ) - (set_local $11 - (i32.const 203) - ) - (br $while-out$48) - ) ) - (if - (i32.eq - (tee_local $4 - (i32.load offset=8 - (get_local $7) - ) + (br_if $while-in$49 + (tee_local $3 + (i32.load offset=8 + (get_local $3) ) - (i32.const 0) - ) - (br $while-out$48) - (set_local $7 - (get_local $4) ) ) - (br $while-in$49) ) + (br $jumpthreading$outer$9) ) (if - (i32.eq - (get_local $11) - (i32.const 203) + (i32.eqz + (i32.and + (i32.load offset=12 + (get_local $3) + ) + (i32.const 8) + ) ) (if - (i32.eq - (i32.and - (i32.load offset=12 - (get_local $43) - ) - (i32.const 8) + (i32.and + (i32.lt_u + (get_local $7) + (get_local $2) + ) + (i32.ge_u + (get_local $7) + (get_local $9) ) - (i32.const 0) ) - (if - (i32.and - (i32.lt_u - (get_local $0) - (get_local $14) - ) - (i32.ge_u - (get_local $0) + (block + (i32.store + (get_local $4) + (i32.add + (get_local $5) (get_local $1) ) ) - (block - (i32.store - (get_local $42) - (i32.add - (get_local $2) - (get_local $19) - ) - ) - (set_local $2 - (i32.eq - (i32.and - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $1 - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $1) + (set_local $3 + (i32.add + (get_local $7) + (tee_local $2 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $7) + (i32.const 8) + ) ) - (i32.const 7) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and (get_local $2) + (i32.const 7) ) ) ) ) - (set_local $1 - (i32.add - (i32.sub - (get_local $19) - (get_local $1) - ) - (i32.load - (i32.const 188) - ) - ) - ) - (i32.store - (i32.const 200) - (get_local $0) - ) - (i32.store - (i32.const 188) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (get_local $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) + ) + (set_local $1 + (i32.add + (i32.sub (get_local $1) + (get_local $2) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) (i32.load - (i32.const 664) + (i32.const 188) ) ) - (br $do-once$44) ) - ) - ) - ) - (set_local $4 - (if - (i32.lt_u - (get_local $14) - (tee_local $1 + (i32.store + (i32.const 200) + (get_local $3) + ) + (i32.store + (i32.const 188) + (get_local $1) + ) + (i32.store offset=4 + (get_local $3) + (i32.or + (get_local $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $3) + (get_local $1) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) (i32.load - (i32.const 192) + (i32.const 664) ) ) + (br $do-once$44) ) - (block - (i32.store + ) + ) + ) + (set_local $10 + (if + (i32.lt_u + (get_local $2) + (tee_local $3 + (i32.load (i32.const 192) - (get_local $14) ) - (get_local $14) ) - (get_local $1) ) - ) - (set_local $3 - (i32.add - (get_local $14) - (get_local $19) + (block + (i32.store + (i32.const 192) + (get_local $2) + ) + (get_local $2) ) + (get_local $3) ) - (set_local $1 - (i32.const 624) + ) + (set_local $5 + (i32.add + (get_local $2) + (get_local $1) ) - (loop $while-in$51 - (block $while-out$50 + ) + (set_local $3 + (i32.const 624) + ) + (block $jumpthreading$outer$10 + (block $jumpthreading$inner$10 + (loop $while-in$51 (if (i32.eq (i32.load - (get_local $1) + (get_local $3) ) - (get_local $3) + (get_local $5) ) (block - (set_local $44 - (get_local $1) - ) - (set_local $38 - (get_local $1) - ) - (set_local $11 - (i32.const 211) + (set_local $4 + (get_local $3) ) - (br $while-out$50) + (br $jumpthreading$inner$10) ) ) - (if - (i32.eq - (tee_local $1 - (i32.load offset=8 - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (set_local $27 - (i32.const 624) + (br_if $while-in$51 + (tee_local $3 + (i32.load offset=8 + (get_local $3) ) - (br $while-out$50) ) ) - (br $while-in$51) + (set_local $4 + (i32.const 624) + ) ) + (br $jumpthreading$outer$10) ) (if - (i32.eq - (get_local $11) - (i32.const 211) + (i32.and + (i32.load offset=12 + (get_local $3) + ) + (i32.const 8) ) - (if - (i32.eq - (i32.and - (i32.load offset=12 - (get_local $38) - ) - (i32.const 8) - ) - (i32.const 0) + (set_local $4 + (i32.const 624) + ) + (block + (i32.store + (get_local $4) + (get_local $2) ) - (block - (i32.store - (get_local $44) - (get_local $14) - ) - (set_local $1 + (i32.store + (tee_local $3 (i32.add - (i32.load - (tee_local $2 - (i32.add - (get_local $38) - (i32.const 4) - ) - ) - ) - (get_local $19) + (get_local $3) + (i32.const 4) ) ) - (i32.store - (get_local $2) + (i32.add + (i32.load + (get_local $3) + ) (get_local $1) ) - (set_local $9 - (i32.eq - (i32.and - (tee_local $1 - (i32.add - (get_local $14) - (i32.const 8) + ) + (set_local $6 + (i32.add + (tee_local $9 + (i32.add + (get_local $2) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + ) + (i32.const 7) ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (set_local $5 - (i32.eq - (i32.and - (tee_local $2 - (i32.add - (get_local $3) - (i32.const 8) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) - (i32.const 7) ) - (i32.const 0) ) + (get_local $0) ) - (set_local $1 + ) + (set_local $2 + (i32.sub (i32.sub - (tee_local $3 + (tee_local $8 (i32.add - (get_local $3) + (get_local $5) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (get_local $2) + (tee_local $1 + (i32.add + (get_local $5) + (i32.const 8) + ) + ) ) (i32.const 7) ) - (get_local $5) - ) - ) - ) - (tee_local $7 - (i32.add - (get_local $14) - (select (i32.const 0) (i32.and - (i32.sub - (i32.const 0) - (get_local $1) - ) + (get_local $1) (i32.const 7) ) - (get_local $9) ) ) ) + (get_local $9) ) + (get_local $0) ) - (set_local $5 - (i32.add - (get_local $7) - (get_local $6) - ) - ) - (set_local $12 - (i32.sub - (get_local $1) - (get_local $6) - ) + ) + (i32.store offset=4 + (get_local $9) + (i32.or + (get_local $0) + (i32.const 3) ) - (i32.store offset=4 - (get_local $7) - (i32.or - (get_local $6) - (i32.const 3) + ) + (block $do-once$52 + (if + (i32.eq + (get_local $8) + (get_local $7) ) - ) - (block $do-once$52 - (if - (i32.eq - (get_local $3) - (get_local $0) - ) - (block - (i32.store - (i32.const 188) - (tee_local $0 - (i32.add - (i32.load - (i32.const 188) - ) - (get_local $12) + (block + (i32.store + (i32.const 188) + (tee_local $0 + (i32.add + (i32.load + (i32.const 188) ) + (get_local $2) ) ) - (i32.store - (i32.const 200) - (get_local $5) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $0) - (i32.const 1) - ) + ) + (i32.store + (i32.const 200) + (get_local $6) + ) + (i32.store offset=4 + (get_local $6) + (i32.or + (get_local $0) + (i32.const 1) ) ) - (block - (if - (i32.eq - (get_local $3) - (i32.load - (i32.const 196) - ) + ) + (block + (if + (i32.eq + (get_local $8) + (i32.load + (i32.const 196) ) - (block - (i32.store - (i32.const 184) - (tee_local $0 - (i32.add - (i32.load - (i32.const 184) - ) - (get_local $12) + ) + (block + (i32.store + (i32.const 184) + (tee_local $0 + (i32.add + (i32.load + (i32.const 184) ) + (get_local $2) ) ) - (i32.store - (i32.const 196) - (get_local $5) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $0) - (i32.const 1) - ) + ) + (i32.store + (i32.const 196) + (get_local $6) + ) + (i32.store offset=4 + (get_local $6) + (i32.or + (get_local $0) + (i32.const 1) ) - (i32.store - (i32.add - (get_local $5) - (get_local $0) - ) + ) + (i32.store + (i32.add + (get_local $6) (get_local $0) ) - (br $do-once$52) + (get_local $0) ) + (br $do-once$52) ) - (set_local $0 - (i32.and - (i32.load - (tee_local $1 - (i32.add + ) + (i32.store + (tee_local $0 + (i32.add + (if + (i32.eq + (i32.and + (tee_local $1 + (i32.load offset=4 + (get_local $8) + ) + ) + (i32.const 3) + ) + (i32.const 1) + ) + (block + (set_local $5 + (i32.and + (get_local $1) + (i32.const -8) + ) + ) + (set_local $0 + (i32.shr_u + (get_local $1) + (i32.const 3) + ) + ) + (block $label$break$L331 (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load offset=4 - (get_local $3) - ) - ) - (i32.const 3) - ) - (i32.const 1) + (i32.lt_u + (get_local $1) + (i32.const 256) ) (block - (set_local $10 - (i32.and - (get_local $0) - (i32.const -8) - ) - ) - (set_local $9 - (i32.shr_u - (get_local $0) - (i32.const 3) + (set_local $3 + (i32.load offset=12 + (get_local $8) ) ) - (block $label$break$L331 + (block $do-once$55 (if - (i32.lt_u - (get_local $0) - (i32.const 256) - ) - (block - (set_local $1 - (i32.load offset=12 - (get_local $3) + (i32.ne + (tee_local $4 + (i32.load offset=8 + (get_local $8) ) ) - (block $do-once$55 - (if - (i32.ne - (tee_local $0 - (i32.load offset=8 - (get_local $3) - ) - ) - (tee_local $2 - (i32.add - (i32.const 216) - (i32.shl - (i32.shl - (get_local $9) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - ) - (block - (if - (i32.lt_u - (get_local $0) - (get_local $4) - ) - (call_import $_abort) - ) - (br_if $do-once$55 - (i32.eq - (i32.load offset=12 - (get_local $0) - ) - (get_local $3) - ) + (tee_local $1 + (i32.add + (i32.const 216) + (i32.shl + (i32.shl + (get_local $0) + (i32.const 1) ) - (call_import $_abort) + (i32.const 2) ) ) ) + ) + (block (if - (i32.eq - (get_local $1) - (get_local $0) + (i32.lt_u + (get_local $4) + (get_local $10) ) - (block - (i32.store - (i32.const 176) - (i32.and - (i32.load - (i32.const 176) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $9) - ) - (i32.const -1) - ) - ) + (call_import $_abort) + ) + (br_if $do-once$55 + (i32.eq + (i32.load offset=12 + (get_local $4) ) - (br $label$break$L331) + (get_local $8) ) ) - (block $do-once$57 - (if - (i32.eq - (get_local $1) - (get_local $2) - ) - (set_local $39 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (block - (if - (i32.lt_u - (get_local $1) - (get_local $4) - ) - (call_import $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (get_local $3) - ) - (block - (set_local $39 - (get_local $2) - ) - (br $do-once$57) - ) - ) - (call_import $_abort) + (call_import $_abort) + ) + ) + ) + (if + (i32.eq + (get_local $3) + (get_local $4) + ) + (block + (i32.store + (i32.const 176) + (i32.and + (i32.load + (i32.const 176) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) ) + (i32.const -1) ) ) - (i32.store offset=12 - (get_local $0) - (get_local $1) - ) - (i32.store - (get_local $39) - (get_local $0) + ) + (br $label$break$L331) + ) + ) + (block $do-once$57 + (if + (i32.eq + (get_local $3) + (get_local $1) + ) + (set_local $21 + (i32.add + (get_local $3) + (i32.const 8) ) ) (block - (set_local $0 - (i32.load offset=24 + (if + (i32.lt_u (get_local $3) + (get_local $10) ) + (call_import $_abort) ) - (block $do-once$59 - (if - (i32.eq - (tee_local $1 - (i32.load offset=12 + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add (get_local $3) + (i32.const 8) ) ) - (get_local $3) ) - (block - (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $9 - (i32.add - (tee_local $20 - (i32.add - (get_local $3) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $20) - ) - ) - (i32.const 0) - ) - (block - (set_local $18 - (i32.const 0) - ) - (br $do-once$59) - ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $9 - (get_local $20) - ) - ) - ) - (set_local $2 - (get_local $1) - ) - ) - (loop $while-in$62 - (block $while-out$61 - (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $20 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) - ) - ) - (i32.const 0) - ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $9 - (get_local $20) - ) - (br $while-in$62) - ) - ) - (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $20 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - ) - ) - (i32.const 0) - ) - (br $while-out$61) - (block - (set_local $2 - (get_local $1) - ) - (set_local $9 - (get_local $20) - ) + (get_local $8) + ) + (block + (set_local $21 + (get_local $0) + ) + (br $do-once$57) + ) + ) + (call_import $_abort) + ) + ) + ) + (i32.store offset=12 + (get_local $4) + (get_local $3) + ) + (i32.store + (get_local $21) + (get_local $4) + ) + ) + (block + (set_local $7 + (i32.load offset=24 + (get_local $8) + ) + ) + (block $do-once$59 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $8) + ) + ) + (get_local $8) + ) + (block + (if + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) ) ) - (br $while-in$62) + (i32.const 4) ) ) - (if - (i32.lt_u - (get_local $9) - (get_local $4) - ) - (call_import $_abort) - (block - (i32.store - (get_local $9) - (i32.const 0) - ) - (set_local $18 - (get_local $2) - ) + ) + ) + (set_local $0 + (get_local $3) + ) + (if + (i32.eqz + (tee_local $1 + (i32.load + (get_local $0) ) ) ) (block - (if - (i32.lt_u - (tee_local $2 - (i32.load offset=8 - (get_local $3) - ) - ) - (get_local $4) - ) - (call_import $_abort) - ) - (if - (i32.ne - (i32.load - (tee_local $4 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - (get_local $3) - ) - (call_import $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $9 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (get_local $3) - ) - (block - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store - (get_local $9) - (get_local $2) - ) - (set_local $18 - (get_local $1) - ) - ) - (call_import $_abort) + (set_local $11 + (i32.const 0) ) + (br $do-once$59) ) ) ) - (br_if $label$break$L331 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (block $do-once$63 + (loop $while-in$62 (if - (i32.eq - (get_local $3) + (tee_local $4 (i32.load - (tee_local $2 + (tee_local $3 (i32.add - (i32.const 480) - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $3) - ) - ) - (i32.const 2) - ) + (get_local $1) + (i32.const 20) ) ) ) ) (block - (i32.store - (get_local $2) - (get_local $18) + (set_local $1 + (get_local $4) ) - (br_if $do-once$63 - (i32.ne - (get_local $18) - (i32.const 0) - ) + (set_local $0 + (get_local $3) ) - (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) + (br $while-in$62) + ) + ) + (if + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $1) + (i32.const 16) ) ) ) - (br $label$break$L331) ) (block - (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) - ) - ) - (call_import $_abort) + (set_local $1 + (get_local $4) ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - ) - (get_local $3) - ) - (i32.store - (get_local $1) - (get_local $18) - ) - (i32.store offset=20 - (get_local $0) - (get_local $18) - ) - ) - (br_if $label$break$L331 - (i32.eq - (get_local $18) - (i32.const 0) - ) + (set_local $0 + (get_local $3) ) + (br $while-in$62) ) ) ) (if (i32.lt_u - (get_local $18) - (tee_local $1 - (i32.load - (i32.const 192) + (get_local $0) + (get_local $10) + ) + (call_import $_abort) + (block + (i32.store + (get_local $0) + (i32.const 0) + ) + (set_local $11 + (get_local $1) + ) + ) + ) + ) + (block + (if + (i32.lt_u + (tee_local $4 + (i32.load offset=8 + (get_local $8) ) ) + (get_local $10) ) (call_import $_abort) ) - (i32.store offset=24 - (get_local $18) - (get_local $0) - ) (if (i32.ne - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $3) - (i32.const 16) - ) + (i32.load + (tee_local $3 + (i32.add + (get_local $4) + (i32.const 12) ) ) ) - (i32.const 0) + (get_local $8) ) - (if - (i32.lt_u + (call_import $_abort) + ) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + (get_local $8) + ) + (block + (i32.store + (get_local $3) (get_local $0) + ) + (i32.store (get_local $1) + (get_local $4) ) - (call_import $_abort) - (block - (i32.store offset=16 - (get_local $18) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) - (get_local $18) + (set_local $11 + (get_local $0) + ) + ) + (call_import $_abort) + ) + ) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $7) + ) + ) + (block $do-once$63 + (if + (i32.eq + (get_local $8) + (i32.load + (tee_local $0 + (i32.add + (i32.const 480) + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $8) + ) + ) + (i32.const 2) ) ) ) ) - (br_if $label$break$L331 - (i32.eq - (tee_local $0 - (i32.load offset=4 - (get_local $2) + ) + (block + (i32.store + (get_local $0) + (get_local $11) + ) + (br_if $do-once$63 + (get_local $11) + ) + (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 0) ) ) + (br $label$break$L331) + ) + (block (if (i32.lt_u - (get_local $0) + (get_local $7) (i32.load (i32.const 192) ) ) (call_import $_abort) - (block - (i32.store offset=20 - (get_local $18) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) - (get_local $18) + ) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $7) + (i32.const 16) + ) + ) ) + (get_local $8) + ) + (i32.store + (get_local $0) + (get_local $11) + ) + (i32.store offset=20 + (get_local $7) + (get_local $11) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $11) ) ) ) ) ) - (set_local $4 - (i32.add - (get_local $10) - (get_local $12) + (if + (i32.lt_u + (get_local $11) + (tee_local $3 + (i32.load + (i32.const 192) + ) + ) ) + (call_import $_abort) ) - (i32.add - (get_local $3) - (get_local $10) + (i32.store offset=24 + (get_local $11) + (get_local $7) ) - ) - (block - (set_local $4 - (get_local $12) + (if + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) + ) + ) + ) + ) + (if + (i32.lt_u + (get_local $1) + (get_local $3) + ) + (call_import $_abort) + (block + (i32.store offset=16 + (get_local $11) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $11) + ) + ) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (tee_local $0 + (i32.load offset=4 + (get_local $0) + ) + ) + ) + ) + (if + (i32.lt_u + (get_local $0) + (i32.load + (i32.const 192) + ) + ) + (call_import $_abort) + (block + (i32.store offset=20 + (get_local $11) + (get_local $0) + ) + (i32.store offset=24 + (get_local $0) + (get_local $11) + ) + ) ) - (get_local $3) ) ) - (i32.const 4) + ) + (set_local $2 + (i32.add + (get_local $5) + (get_local $2) + ) + ) + (i32.add + (get_local $8) + (get_local $5) ) ) + (get_local $8) ) - (i32.const -2) + (i32.const 4) ) ) - (i32.store - (get_local $1) - (get_local $0) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $4) - (i32.const 1) + (i32.and + (i32.load + (get_local $0) ) + (i32.const -2) ) - (i32.store - (i32.add - (get_local $5) - (get_local $4) - ) - (get_local $4) + ) + (i32.store offset=4 + (get_local $6) + (i32.or + (get_local $2) + (i32.const 1) ) - (set_local $1 - (i32.shr_u - (get_local $4) - (i32.const 3) - ) + ) + (i32.store + (i32.add + (get_local $6) + (get_local $2) ) - (if - (i32.lt_u - (get_local $4) - (i32.const 256) - ) - (block - (set_local $2 - (i32.add - (i32.const 216) + (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 $0 + (i32.add + (i32.const 216) + (i32.shl (i32.shl + (get_local $1) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (block $do-once$67 + (if + (i32.and + (tee_local $2 + (i32.load + (i32.const 176) + ) + ) + (tee_local $1 (i32.shl - (get_local $1) (i32.const 1) + (get_local $1) ) - (i32.const 2) ) ) - ) - (block $do-once$67 - (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) + (block + (if + (i32.ge_u (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) + (i32.load + (tee_local $2 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) ) ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) - (get_local $1) + (i32.load + (i32.const 192) ) ) - (set_local $8 - (i32.add + (block + (set_local $22 (get_local $2) - (i32.const 8) ) + (set_local $17 + (get_local $1) + ) + (br $do-once$67) ) - (set_local $33 + ) + (call_import $_abort) + ) + (block + (i32.store + (i32.const 176) + (i32.or (get_local $2) + (get_local $1) ) ) - (block - (if - (i32.ge_u - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - ) - ) - (i32.load - (i32.const 192) - ) - ) - (block - (set_local $8 - (get_local $0) - ) - (set_local $33 - (get_local $1) - ) - (br $do-once$67) - ) + (set_local $22 + (i32.add + (get_local $0) + (i32.const 8) ) - (call_import $_abort) + ) + (set_local $17 + (get_local $0) ) ) ) - (i32.store - (get_local $8) - (get_local $5) - ) - (i32.store offset=12 - (get_local $33) - (get_local $5) - ) - (i32.store offset=8 - (get_local $5) - (get_local $33) - ) - (i32.store offset=12 - (get_local $5) - (get_local $2) - ) - (br $do-once$52) ) + (i32.store + (get_local $22) + (get_local $6) + ) + (i32.store offset=12 + (get_local $17) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $17) + ) + (i32.store offset=12 + (get_local $6) + (get_local $0) + ) + (br $do-once$52) ) - (set_local $2 - (i32.add - (i32.const 480) - (i32.shl - (tee_local $1 - (block $do-once$69 - (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - ) - (i32.const 0) + ) + (set_local $1 + (i32.add + (i32.const 480) + (i32.shl + (tee_local $3 + (block $do-once$69 + (if + (tee_local $0 + (i32.shr_u + (get_local $2) + (i32.const 8) ) - (i32.const 0) - (block - (br_if $do-once$69 - (i32.const 31) - (i32.gt_u - (get_local $4) - (i32.const 16777215) - ) + ) + (block + (br_if $do-once$69 + (i32.const 31) + (i32.gt_u + (get_local $2) + (i32.const 16777215) ) - (set_local $1 - (i32.shl - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + ) + (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 $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $2 - (i32.shl - (get_local $0) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (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 $0) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $2) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (i32.shl + (get_local $0) + (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 $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $0) + (get_local $1) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $4) - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $1) + (i32.shl + (get_local $0) + (i32.const 1) ) ) ) + (i32.const 0) ) ) - (i32.const 2) ) + (i32.const 2) ) ) - (i32.store offset=28 - (get_local $5) - (get_local $1) - ) - (i32.store offset=4 - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 16) - ) + ) + (i32.store offset=28 + (get_local $6) + (get_local $3) + ) + (i32.store offset=4 + (tee_local $0 + (i32.add + (get_local $6) + (i32.const 16) ) - (i32.const 0) ) - (i32.store - (get_local $0) - (i32.const 0) - ) - (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 180) - ) - ) - (tee_local $8 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.const 0) + ) + (i32.store + (get_local $0) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $4 + (i32.load + (i32.const 180) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $0) - (get_local $8) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $3) ) ) - (i32.store - (get_local $2) - (get_local $5) - ) - (i32.store offset=24 - (get_local $5) - (get_local $2) - ) - (i32.store offset=12 - (get_local $5) - (get_local $5) - ) - (i32.store offset=8 - (get_local $5) - (get_local $5) + ) + ) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $4) + (get_local $0) ) - (br $do-once$52) ) + (i32.store + (get_local $1) + (get_local $6) + ) + (i32.store offset=24 + (get_local $6) + (get_local $1) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once$52) ) - (set_local $1 - (i32.shl - (get_local $4) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $1) - (i32.const 1) - ) - ) - (i32.eq - (get_local $1) - (i32.const 31) + ) + (set_local $3 + (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) + ) ) ) - (set_local $2 - (i32.load - (get_local $2) - ) + ) + (set_local $0 + (i32.load + (get_local $1) ) - (loop $while-in$72 - (block $while-out$71 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $2) + ) + (block $jumpthreading$outer$6 + (block $jumpthreading$inner$6 + (block $jumpthreading$inner$5 + (loop $while-in$72 + (br_if $jumpthreading$inner$6 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) - ) - (get_local $4) - ) - (block - (set_local $34 (get_local $2) ) - (set_local $11 - (i32.const 281) - ) - (br $while-out$71) ) - ) - (set_local $8 - (i32.shl - (get_local $1) - (i32.const 1) + (set_local $1 + (i32.shl + (get_local $3) + (i32.const 1) + ) ) - ) - (if - (i32.eq - (tee_local $0 + (if + (tee_local $4 (i32.load - (tee_local $1 + (tee_local $3 (i32.add (i32.add - (get_local $2) + (get_local $0) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $1) + (get_local $3) (i32.const 31) ) (i32.const 2) @@ -14542,40 +12827,30 @@ ) ) ) - (i32.const 0) - ) - (block - (set_local $45 - (get_local $2) - ) - (set_local $40 - (get_local $1) - ) - (set_local $11 - (i32.const 278) - ) - (br $while-out$71) - ) - (block - (set_local $1 - (get_local $8) + (block + (set_local $3 + (get_local $1) + ) + (set_local $0 + (get_local $4) + ) + (br $while-in$72) ) - (set_local $2 - (get_local $0) + (block + (set_local $1 + (get_local $0) + ) + (set_local $0 + (get_local $3) + ) + (br $jumpthreading$inner$5) ) ) ) - (br $while-in$72) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 278) ) (if (i32.lt_u - (get_local $40) + (get_local $0) (i32.load (i32.const 192) ) @@ -14583,495 +12858,461 @@ (call_import $_abort) (block (i32.store - (get_local $40) - (get_local $5) + (get_local $0) + (get_local $6) ) (i32.store offset=24 - (get_local $5) - (get_local $45) + (get_local $6) + (get_local $1) ) (i32.store offset=12 - (get_local $5) - (get_local $5) + (get_local $6) + (get_local $6) ) (i32.store offset=8 - (get_local $5) - (get_local $5) + (get_local $6) + (get_local $6) ) + (br $do-once$52) ) ) - (if - (i32.eq - (get_local $11) - (i32.const 281) - ) - (if - (i32.and - (i32.ge_u - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $34) - (i32.const 8) - ) - ) - ) - ) + (br $jumpthreading$outer$6) + ) + (if + (i32.and + (i32.ge_u + (tee_local $3 + (i32.load (tee_local $1 - (i32.load - (i32.const 192) + (i32.add + (get_local $0) + (i32.const 8) ) ) ) - (i32.ge_u - (get_local $34) - (get_local $1) - ) ) - (block - (i32.store offset=12 - (get_local $0) - (get_local $5) - ) - (i32.store - (get_local $2) - (get_local $5) - ) - (i32.store offset=8 - (get_local $5) - (get_local $0) - ) - (i32.store offset=12 - (get_local $5) - (get_local $34) - ) - (i32.store offset=24 - (get_local $5) - (i32.const 0) + (tee_local $2 + (i32.load + (i32.const 192) ) ) - (call_import $_abort) + ) + (i32.ge_u + (get_local $0) + (get_local $2) ) ) + (block + (i32.store offset=12 + (get_local $3) + (get_local $6) + ) + (i32.store + (get_local $1) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $3) + ) + (i32.store offset=12 + (get_local $6) + (get_local $0) + ) + (i32.store offset=24 + (get_local $6) + (i32.const 0) + ) + ) + (call_import $_abort) ) ) ) ) - (return - (i32.add - (get_local $7) - (i32.const 8) - ) - ) ) - (set_local $27 - (i32.const 624) + (return + (i32.add + (get_local $9) + (i32.const 8) + ) ) ) ) - (loop $while-in$74 - (block $while-out$73 - (if - (i32.le_u - (tee_local $1 - (i32.load - (get_local $27) - ) + ) + (loop $while-in$74 + (block $while-out$73 + (if + (i32.le_u + (tee_local $3 + (i32.load + (get_local $4) ) - (get_local $0) ) - (if - (i32.gt_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.load offset=4 - (get_local $27) - ) + (get_local $7) + ) + (br_if $while-out$73 + (i32.gt_u + (tee_local $3 + (i32.add + (get_local $3) + (i32.load offset=4 + (get_local $4) ) ) - (get_local $0) - ) - (block - (set_local $2 - (get_local $1) - ) - (br $while-out$73) ) + (get_local $7) ) ) - (set_local $27 - (i32.load offset=8 - (get_local $27) - ) + ) + (set_local $4 + (i32.load offset=8 + (get_local $4) ) - (br $while-in$74) ) + (br $while-in$74) ) - (set_local $8 - (i32.eq - (i32.and - (tee_local $1 + ) + (set_local $5 + (i32.add + (tee_local $4 + (i32.add + (get_local $3) + (i32.const -47) + ) + ) + (i32.const 8) + ) + ) + (set_local $8 + (i32.add + (tee_local $9 + (select + (get_local $7) + (tee_local $4 (i32.add - (tee_local $4 - (i32.add - (get_local $2) - (i32.const -47) + (get_local $4) + (select + (i32.and + (i32.sub + (i32.const 0) + (get_local $5) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $5) + (i32.const 7) ) ) - (i32.const 8) ) ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.lt_u - (tee_local $1 - (i32.add + (i32.lt_u (get_local $4) - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $1) - ) - (i32.const 7) + (tee_local $6 + (i32.add + (get_local $7) + (i32.const 16) ) - (get_local $8) ) ) ) - (tee_local $8 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) ) + (i32.const 8) ) - (set_local $4 + ) + (i32.store + (i32.const 200) + (tee_local $5 (i32.add - (tee_local $5 + (get_local $2) + (tee_local $4 (select - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (i32.const 8) - ) - ) - (set_local $3 - (i32.eq - (i32.and - (tee_local $1 - (i32.add - (get_local $14) - (i32.const 8) - ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (i32.store - (i32.const 200) - (tee_local $1 - (i32.add - (get_local $14) - (tee_local $3 - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $1) + (i32.and + (i32.sub + (i32.const 0) + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 8) + ) ) - (i32.const 7) ) - (get_local $3) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) ) ) ) ) - (i32.store - (i32.const 188) - (tee_local $3 - (i32.sub - (i32.add - (get_local $19) - (i32.const -40) - ) - (get_local $3) - ) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $3) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $1) - (get_local $3) - ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) - ) - ) - (i32.store - (tee_local $3 + ) + (i32.store + (i32.const 188) + (tee_local $4 + (i32.sub (i32.add - (get_local $5) - (i32.const 4) + (get_local $1) + (i32.const -40) ) + (get_local $4) ) - (i32.const 27) ) - (i32.store + ) + (i32.store offset=4 + (get_local $5) + (i32.or (get_local $4) - (i32.load - (i32.const 624) - ) + (i32.const 1) ) - (i32.store offset=4 + ) + (i32.store offset=4 + (i32.add + (get_local $5) (get_local $4) - (i32.load - (i32.const 628) - ) ) - (i32.store offset=8 - (get_local $4) - (i32.load - (i32.const 632) - ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) ) - (i32.store offset=12 - (get_local $4) - (i32.load - (i32.const 636) + ) + (i32.store + (tee_local $4 + (i32.add + (get_local $9) + (i32.const 4) ) ) - (i32.store + (i32.const 27) + ) + (i32.store + (get_local $8) + (i32.load (i32.const 624) - (get_local $14) ) - (i32.store + ) + (i32.store offset=4 + (get_local $8) + (i32.load (i32.const 628) - (get_local $19) ) - (i32.store + ) + (i32.store offset=8 + (get_local $8) + (i32.load + (i32.const 632) + ) + ) + (i32.store offset=12 + (get_local $8) + (i32.load (i32.const 636) - (i32.const 0) ) + ) + (i32.store + (i32.const 624) + (get_local $2) + ) + (i32.store + (i32.const 628) + (get_local $1) + ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 632) + (get_local $8) + ) + (set_local $1 + (i32.add + (get_local $9) + (i32.const 24) + ) + ) + (loop $while-in$76 (i32.store - (i32.const 632) - (get_local $4) + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 4) + ) + ) + (i32.const 7) ) - (set_local $1 - (i32.add - (get_local $5) - (i32.const 24) + (br_if $while-in$76 + (i32.lt_u + (i32.add + (get_local $1) + (i32.const 4) + ) + (get_local $3) ) ) - (loop $while-in$76 - (block $while-out$75 - (i32.store - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) + ) + (if + (i32.ne + (get_local $9) + (get_local $7) + ) + (block + (i32.store + (get_local $4) + (i32.and + (i32.load + (get_local $4) ) - (i32.const 7) + (i32.const -2) ) - (br_if $while-out$75 - (i32.ge_u - (i32.add - (get_local $1) - (i32.const 4) + ) + (i32.store offset=4 + (get_local $7) + (i32.or + (tee_local $5 + (i32.sub + (get_local $9) + (get_local $7) ) - (get_local $2) ) + (i32.const 1) ) - (br $while-in$76) ) - ) - (if - (i32.ne + (i32.store + (get_local $9) (get_local $5) - (get_local $0) ) - (block - (i32.store - (get_local $3) - (i32.and - (i32.load - (get_local $3) - ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (tee_local $3 - (i32.sub - (get_local $5) - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store + (set_local $2 + (i32.shr_u (get_local $5) - (get_local $3) + (i32.const 3) ) - (set_local $2 - (i32.shr_u - (get_local $3) - (i32.const 3) - ) + ) + (if + (i32.lt_u + (get_local $5) + (i32.const 256) ) - (if - (i32.lt_u - (get_local $3) - (i32.const 256) + (block + (set_local $1 + (i32.add + (i32.const 216) + (i32.shl + (i32.shl + (get_local $2) + (i32.const 1) + ) + (i32.const 2) + ) + ) ) - (block - (set_local $4 - (i32.add - (i32.const 216) + (if + (i32.and + (tee_local $3 + (i32.load + (i32.const 176) + ) + ) + (tee_local $2 (i32.shl - (i32.shl - (get_local $2) - (i32.const 1) - ) - (i32.const 2) + (i32.const 1) + (get_local $2) ) ) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) + (i32.lt_u + (tee_local $2 + (i32.load + (tee_local $3 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) ) - (i32.const 0) + (i32.load + (i32.const 192) + ) ) + (call_import $_abort) (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $2) - ) - ) - (set_local $9 - (i32.add - (get_local $4) - (i32.const 8) - ) + (set_local $23 + (get_local $3) ) - (set_local $20 - (get_local $4) + (set_local $18 + (get_local $2) ) ) - (if - (i32.lt_u - (tee_local $2 - (i32.load - (tee_local $1 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - ) - ) - (i32.load - (i32.const 192) - ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $2) ) - (call_import $_abort) - (block - (set_local $9 - (get_local $1) - ) - (set_local $20 - (get_local $2) - ) + ) + (set_local $23 + (i32.add + (get_local $1) + (i32.const 8) ) ) + (set_local $18 + (get_local $1) + ) ) - (i32.store - (get_local $9) - (get_local $0) - ) - (i32.store offset=12 - (get_local $20) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $20) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (br $do-once$44) ) + (i32.store + (get_local $23) + (get_local $7) + ) + (i32.store offset=12 + (get_local $18) + (get_local $7) + ) + (i32.store offset=8 + (get_local $7) + (get_local $18) + ) + (i32.store offset=12 + (get_local $7) + (get_local $1) + ) + (br $do-once$44) ) - (set_local $4 - (i32.add - (i32.const 480) - (i32.shl - (tee_local $2 + ) + (set_local $2 + (i32.add + (i32.const 480) + (i32.shl + (tee_local $3 + (if + (tee_local $1 + (i32.shr_u + (get_local $5) + (i32.const 8) + ) + ) (if - (i32.eq - (tee_local $1 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - ) - (i32.const 0) + (i32.gt_u + (get_local $5) + (i32.const 16777215) ) - (i32.const 0) - (if - (i32.gt_u - (get_local $3) - (i32.const 16777215) - ) - (i32.const 31) - (block - (set_local $2 - (i32.shl + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $5) + (i32.add (tee_local $1 (i32.add (i32.sub @@ -15082,10 +13323,10 @@ (i32.and (i32.shr_u (i32.add - (tee_local $4 + (tee_local $1 (i32.shl (get_local $1) - (tee_local $1 + (tee_local $3 (i32.and (i32.shr_u (i32.add @@ -15106,15 +13347,15 @@ (i32.const 4) ) ) - (get_local $1) + (get_local $3) ) - (tee_local $1 + (tee_local $2 (i32.and (i32.shr_u (i32.add - (tee_local $2 + (tee_local $1 (i32.shl - (get_local $4) + (get_local $1) (get_local $2) ) ) @@ -15129,158 +13370,143 @@ ) (i32.shr_u (i32.shl - (get_local $2) (get_local $1) + (get_local $2) ) (i32.const 15) ) ) ) - (i32.const 1) + (i32.const 7) ) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $3) - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $2) - ) + (i32.const 1) + ) + (i32.shl + (get_local $1) + (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 2) ) + (i32.const 2) ) ) - (i32.store offset=28 - (get_local $0) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $8) - (i32.const 0) - ) - (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 180) - ) - ) - (tee_local $8 - (i32.shl - (i32.const 1) - (get_local $2) - ) + ) + (i32.store offset=28 + (get_local $7) + (get_local $3) + ) + (i32.store offset=20 + (get_local $7) + (i32.const 0) + ) + (i32.store + (get_local $6) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $4 + (i32.load + (i32.const 180) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $1) - (get_local $8) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $3) ) ) - (i32.store - (get_local $4) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) + ) + ) + (block + (i32.store + (i32.const 180) + (i32.or (get_local $4) + (get_local $1) ) - (i32.store offset=12 - (get_local $0) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $0) - ) - (br $do-once$44) ) + (i32.store + (get_local $2) + (get_local $7) + ) + (i32.store offset=24 + (get_local $7) + (get_local $2) + ) + (i32.store offset=12 + (get_local $7) + (get_local $7) + ) + (i32.store offset=8 + (get_local $7) + (get_local $7) + ) + (br $do-once$44) ) - (set_local $2 - (i32.shl - (get_local $3) - (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 31) + ) + (set_local $3 + (i32.shl + (get_local $5) + (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) + ) ) ) - (set_local $4 - (i32.load - (get_local $4) - ) + ) + (set_local $1 + (i32.load + (get_local $2) ) - (loop $while-in$78 - (block $while-out$77 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $4) + ) + (block $jumpthreading$outer$8 + (block $jumpthreading$inner$8 + (block $jumpthreading$inner$7 + (loop $while-in$78 + (br_if $jumpthreading$inner$8 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $1) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $5) ) - (get_local $3) ) - (block - (set_local $35 - (get_local $4) - ) - (set_local $11 - (i32.const 307) + (set_local $2 + (i32.shl + (get_local $3) + (i32.const 1) ) - (br $while-out$77) ) - ) - (set_local $8 - (i32.shl - (get_local $2) - (i32.const 1) - ) - ) - (if - (i32.eq - (tee_local $1 + (if + (tee_local $4 (i32.load - (tee_local $2 + (tee_local $3 (i32.add (i32.add - (get_local $4) + (get_local $1) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $2) + (get_local $3) (i32.const 31) ) (i32.const 2) @@ -15289,40 +13515,30 @@ ) ) ) - (i32.const 0) - ) - (block - (set_local $46 - (get_local $4) - ) - (set_local $41 - (get_local $2) - ) - (set_local $11 - (i32.const 304) - ) - (br $while-out$77) - ) - (block - (set_local $2 - (get_local $8) + (block + (set_local $3 + (get_local $2) + ) + (set_local $1 + (get_local $4) + ) + (br $while-in$78) ) - (set_local $4 - (get_local $1) + (block + (set_local $2 + (get_local $1) + ) + (set_local $1 + (get_local $3) + ) + (br $jumpthreading$inner$7) ) ) ) - (br $while-in$78) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 304) ) (if (i32.lt_u - (get_local $41) + (get_local $1) (i32.load (i32.const 192) ) @@ -15330,136 +13546,271 @@ (call_import $_abort) (block (i32.store - (get_local $41) - (get_local $0) + (get_local $1) + (get_local $7) ) (i32.store offset=24 - (get_local $0) - (get_local $46) + (get_local $7) + (get_local $2) ) (i32.store offset=12 - (get_local $0) - (get_local $0) + (get_local $7) + (get_local $7) ) (i32.store offset=8 - (get_local $0) - (get_local $0) + (get_local $7) + (get_local $7) ) + (br $do-once$44) ) ) - (if - (i32.eq - (get_local $11) - (i32.const 307) - ) - (if - (i32.and - (i32.ge_u - (tee_local $1 - (i32.load - (tee_local $4 - (i32.add - (get_local $35) - (i32.const 8) - ) - ) - ) - ) + (br $jumpthreading$outer$8) + ) + (if + (i32.and + (i32.ge_u + (tee_local $4 + (i32.load (tee_local $2 - (i32.load - (i32.const 192) + (i32.add + (get_local $1) + (i32.const 8) ) ) ) - (i32.ge_u - (get_local $35) - (get_local $2) - ) ) - (block - (i32.store offset=12 - (get_local $1) - (get_local $0) - ) - (i32.store - (get_local $4) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $1) - ) - (i32.store offset=12 - (get_local $0) - (get_local $35) - ) - (i32.store offset=24 - (get_local $0) - (i32.const 0) + (tee_local $3 + (i32.load + (i32.const 192) ) ) - (call_import $_abort) + ) + (i32.ge_u + (get_local $1) + (get_local $3) + ) + ) + (block + (i32.store offset=12 + (get_local $4) + (get_local $7) + ) + (i32.store + (get_local $2) + (get_local $7) + ) + (i32.store offset=8 + (get_local $7) + (get_local $4) + ) + (i32.store offset=12 + (get_local $7) + (get_local $1) + ) + (i32.store offset=24 + (get_local $7) + (i32.const 0) ) ) + (call_import $_abort) ) ) ) ) ) - ) - (if - (i32.gt_u - (tee_local $0 + (block + (if + (i32.or + (i32.eqz + (tee_local $3 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.lt_u + (get_local $2) + (get_local $3) + ) + ) + (i32.store + (i32.const 192) + (get_local $2) + ) + ) + (i32.store + (i32.const 624) + (get_local $2) + ) + (i32.store + (i32.const 628) + (get_local $1) + ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) (i32.load - (i32.const 188) + (i32.const 648) ) ) - (get_local $6) - ) - (block (i32.store - (i32.const 188) - (tee_local $2 - (i32.sub - (get_local $0) - (get_local $6) + (i32.const 208) + (i32.const -1) + ) + (set_local $3 + (i32.const 0) + ) + (loop $while-in$47 + (i32.store offset=12 + (tee_local $4 + (i32.add + (i32.const 216) + (i32.shl + (i32.shl + (get_local $3) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + (br_if $while-in$47 + (i32.ne + (tee_local $3 + (i32.add + (get_local $3) + (i32.const 1) + ) + ) + (i32.const 32) ) ) ) (i32.store (i32.const 200) - (tee_local $1 + (tee_local $3 (i32.add - (tee_local $0 - (i32.load - (i32.const 200) + (get_local $2) + (tee_local $2 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) + ) ) ) - (get_local $6) + ) + ) + ) + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (i32.add + (get_local $1) + (i32.const -40) + ) + (get_local $2) ) ) ) (i32.store offset=4 - (get_local $1) + (get_local $3) (i32.or - (get_local $2) + (get_local $1) (i32.const 1) ) ) (i32.store offset=4 - (get_local $0) - (i32.or - (get_local $6) - (i32.const 3) + (i32.add + (get_local $3) + (get_local $1) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + ) + ) + ) + (if + (i32.gt_u + (tee_local $1 + (i32.load + (i32.const 188) + ) + ) + (get_local $0) + ) + (block + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (get_local $1) + (get_local $0) ) ) - (return + ) + (i32.store + (i32.const 200) + (tee_local $2 (i32.add + (tee_local $3 + (i32.load + (i32.const 200) + ) + ) (get_local $0) - (i32.const 8) ) ) ) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (get_local $3) + (i32.or + (get_local $0) + (i32.const 3) + ) + ) + (return + (i32.add + (get_local $3) + (i32.const 8) + ) + ) ) ) ) @@ -15485,13 +13836,9 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i32) (if - (i32.eq + (i32.eqz (get_local $0) - (i32.const 0) ) (return) ) @@ -15503,7 +13850,7 @@ (i32.const -8) ) ) - (tee_local $1 + (tee_local $11 (i32.load (i32.const 192) ) @@ -15513,9 +13860,9 @@ ) (if (i32.eq - (tee_local $8 + (tee_local $10 (i32.and - (tee_local $0 + (tee_local $3 (i32.load (i32.add (get_local $0) @@ -15530,12 +13877,12 @@ ) (call_import $_abort) ) - (set_local $9 + (set_local $6 (i32.add (get_local $2) - (tee_local $7 + (tee_local $0 (i32.and - (get_local $0) + (get_local $3) (i32.const -8) ) ) @@ -15543,50 +13890,54 @@ ) (block $do-once$0 (if - (i32.eq - (i32.and + (i32.and + (get_local $3) + (i32.const 1) + ) + (block + (set_local $4 + (get_local $2) + ) + (set_local $1 (get_local $0) - (i32.const 1) ) - (i32.const 0) ) (block - (set_local $0 + (set_local $8 (i32.load (get_local $2) ) ) (if - (i32.eq - (get_local $8) - (i32.const 0) + (i32.eqz + (get_local $10) ) (return) ) - (set_local $12 + (set_local $3 (i32.add + (get_local $8) (get_local $0) - (get_local $7) ) ) (if (i32.lt_u - (tee_local $4 + (tee_local $0 (i32.add (get_local $2) (i32.sub (i32.const 0) - (get_local $0) + (get_local $8) ) ) ) - (get_local $1) + (get_local $11) ) (call_import $_abort) ) (if (i32.eq - (get_local $4) + (get_local $0) (i32.load (i32.const 196) ) @@ -15595,11 +13946,11 @@ (if (i32.ne (i32.and - (tee_local $0 + (tee_local $1 (i32.load - (tee_local $1 + (tee_local $4 (i32.add - (get_local $9) + (get_local $6) (i32.const 4) ) ) @@ -15610,73 +13961,73 @@ (i32.const 3) ) (block - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) ) (i32.store (i32.const 184) - (get_local $12) + (get_local $3) ) (i32.store - (get_local $1) + (get_local $4) (i32.and - (get_local $0) + (get_local $1) (i32.const -2) ) ) (i32.store offset=4 - (get_local $4) + (get_local $0) (i32.or - (get_local $12) + (get_local $3) (i32.const 1) ) ) (i32.store (i32.add - (get_local $4) - (get_local $12) + (get_local $0) + (get_local $3) ) - (get_local $12) + (get_local $3) ) (return) ) ) - (set_local $7 + (set_local $10 (i32.shr_u - (get_local $0) + (get_local $8) (i32.const 3) ) ) (if (i32.lt_u - (get_local $0) + (get_local $8) (i32.const 256) ) (block (set_local $2 (i32.load offset=12 - (get_local $4) + (get_local $0) ) ) (if (i32.ne - (tee_local $0 + (tee_local $4 (i32.load offset=8 - (get_local $4) + (get_local $0) ) ) - (tee_local $8 + (tee_local $1 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $7) + (get_local $10) (i32.const 1) ) (i32.const 2) @@ -15687,17 +14038,17 @@ (block (if (i32.lt_u - (get_local $0) - (get_local $1) + (get_local $4) + (get_local $11) ) (call_import $_abort) ) (if (i32.ne (i32.load offset=12 - (get_local $0) + (get_local $4) ) - (get_local $4) + (get_local $0) ) (call_import $_abort) ) @@ -15706,7 +14057,7 @@ (if (i32.eq (get_local $2) - (get_local $0) + (get_local $4) ) (block (i32.store @@ -15718,17 +14069,17 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $7) + (get_local $10) ) (i32.const -1) ) ) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) @@ -15736,9 +14087,9 @@ (if (i32.eq (get_local $2) - (get_local $8) + (get_local $1) ) - (set_local $13 + (set_local $5 (i32.add (get_local $2) (i32.const 8) @@ -15748,7 +14099,7 @@ (if (i32.lt_u (get_local $2) - (get_local $1) + (get_local $11) ) (call_import $_abort) ) @@ -15762,9 +14113,9 @@ ) ) ) - (get_local $4) + (get_local $0) ) - (set_local $13 + (set_local $5 (get_local $1) ) (call_import $_abort) @@ -15772,47 +14123,47 @@ ) ) (i32.store offset=12 - (get_local $0) + (get_local $4) (get_local $2) ) (i32.store - (get_local $13) - (get_local $0) - ) - (set_local $3 + (get_local $5) (get_local $4) ) - (set_local $10 - (get_local $12) + (set_local $4 + (get_local $0) + ) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) ) - (set_local $8 + (set_local $12 (i32.load offset=24 - (get_local $4) + (get_local $0) ) ) (block $do-once$2 (if (i32.eq - (tee_local $0 + (tee_local $2 (i32.load offset=12 - (get_local $4) + (get_local $0) ) ) - (get_local $4) + (get_local $0) ) (block (if - (i32.eq - (tee_local $0 + (i32.eqz + (tee_local $2 (i32.load - (tee_local $7 + (tee_local $5 (i32.add - (tee_local $13 + (tee_local $8 (i32.add - (get_local $4) + (get_local $0) (i32.const 16) ) ) @@ -15821,101 +14172,80 @@ ) ) ) - (i32.const 0) ) (if - (i32.eq - (tee_local $0 - (i32.load - (get_local $13) - ) + (tee_local $2 + (i32.load + (get_local $8) ) - (i32.const 0) ) - (block - (set_local $5 - (i32.const 0) - ) - (br $do-once$2) + (set_local $5 + (get_local $8) ) (block - (set_local $2 - (get_local $0) - ) (set_local $7 - (get_local $13) + (i32.const 0) ) + (br $do-once$2) ) ) - (set_local $2 - (get_local $0) - ) ) (loop $while-in$5 - (block $while-out$4 - (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) + (if + (tee_local $8 + (i32.load + (tee_local $10 + (i32.add + (get_local $2) + (i32.const 20) ) ) - (i32.const 0) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $7 - (get_local $13) - ) - (br $while-in$5) + ) + (block + (set_local $2 + (get_local $8) + ) + (set_local $5 + (get_local $10) ) + (br $while-in$5) ) - (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) + ) + (if + (tee_local $8 + (i32.load + (tee_local $10 + (i32.add + (get_local $2) + (i32.const 16) ) ) - (i32.const 0) ) - (br $while-out$4) - (block - (set_local $2 - (get_local $0) - ) - (set_local $7 - (get_local $13) - ) + ) + (block + (set_local $2 + (get_local $8) ) + (set_local $5 + (get_local $10) + ) + (br $while-in$5) ) - (br $while-in$5) ) ) (if (i32.lt_u - (get_local $7) - (get_local $1) + (get_local $5) + (get_local $11) ) (call_import $_abort) (block (i32.store - (get_local $7) + (get_local $5) (i32.const 0) ) - (set_local $5 + (set_local $7 (get_local $2) ) ) @@ -15924,52 +14254,52 @@ (block (if (i32.lt_u - (tee_local $2 + (tee_local $5 (i32.load offset=8 - (get_local $4) + (get_local $0) ) ) - (get_local $1) + (get_local $11) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $1 + (tee_local $8 (i32.add - (get_local $2) + (get_local $5) (i32.const 12) ) ) ) - (get_local $4) + (get_local $0) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $7 + (tee_local $10 (i32.add - (get_local $0) + (get_local $2) (i32.const 8) ) ) ) - (get_local $4) + (get_local $0) ) (block (i32.store - (get_local $1) - (get_local $0) + (get_local $8) + (get_local $2) ) (i32.store - (get_local $7) - (get_local $2) + (get_local $10) + (get_local $5) ) - (set_local $5 - (get_local $0) + (set_local $7 + (get_local $2) ) ) (call_import $_abort) @@ -15978,30 +14308,19 @@ ) ) (if - (i32.eq - (get_local $8) - (i32.const 0) - ) - (block - (set_local $3 - (get_local $4) - ) - (set_local $10 - (get_local $12) - ) - ) + (get_local $12) (block (if (i32.eq - (get_local $4) + (get_local $0) (i32.load - (tee_local $1 + (tee_local $5 (i32.add (i32.const 480) (i32.shl - (tee_local $0 + (tee_local $2 (i32.load offset=28 - (get_local $4) + (get_local $0) ) ) (i32.const 2) @@ -16012,13 +14331,12 @@ ) (block (i32.store - (get_local $1) (get_local $5) + (get_local $7) ) (if - (i32.eq - (get_local $5) - (i32.const 0) + (i32.eqz + (get_local $7) ) (block (i32.store @@ -16030,17 +14348,17 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $0) + (get_local $2) ) (i32.const -1) ) ) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) @@ -16049,7 +14367,7 @@ (block (if (i32.lt_u - (get_local $8) + (get_local $12) (i32.load (i32.const 192) ) @@ -16059,35 +14377,34 @@ (if (i32.eq (i32.load - (tee_local $0 + (tee_local $2 (i32.add - (get_local $8) + (get_local $12) (i32.const 16) ) ) ) - (get_local $4) + (get_local $0) ) (i32.store - (get_local $0) - (get_local $5) + (get_local $2) + (get_local $7) ) (i32.store offset=20 - (get_local $8) - (get_local $5) + (get_local $12) + (get_local $7) ) ) (if - (i32.eq - (get_local $5) - (i32.const 0) + (i32.eqz + (get_local $7) ) (block - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) @@ -16096,8 +14413,8 @@ ) (if (i32.lt_u - (get_local $5) - (tee_local $0 + (get_local $7) + (tee_local $2 (i32.load (i32.const 192) ) @@ -16106,61 +14423,47 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $5) - (get_local $8) + (get_local $7) + (get_local $12) ) (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $2 - (i32.add - (get_local $4) - (i32.const 16) - ) + (tee_local $5 + (i32.load + (tee_local $8 + (i32.add + (get_local $0) + (i32.const 16) ) ) ) - (i32.const 0) ) (if (i32.lt_u - (get_local $1) - (get_local $0) + (get_local $5) + (get_local $2) ) (call_import $_abort) (block (i32.store offset=16 + (get_local $7) (get_local $5) - (get_local $1) ) (i32.store offset=24 - (get_local $1) (get_local $5) + (get_local $7) ) ) ) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 0) - ) - (block - (set_local $3 - (get_local $4) - ) - (set_local $10 - (get_local $12) + (tee_local $2 + (i32.load offset=4 + (get_local $8) ) ) (if (i32.lt_u - (get_local $0) + (get_local $2) (i32.load (i32.const 192) ) @@ -16168,50 +14471,58 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $5) - (get_local $0) + (get_local $7) + (get_local $2) ) (i32.store offset=24 - (get_local $0) - (get_local $5) + (get_local $2) + (get_local $7) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) ) ) + (block + (set_local $4 + (get_local $0) + ) + (set_local $1 + (get_local $3) + ) + ) + ) + ) + (block + (set_local $4 + (get_local $0) + ) + (set_local $1 + (get_local $3) ) ) - ) - ) - (block - (set_local $3 - (get_local $2) - ) - (set_local $10 - (get_local $7) ) ) ) ) (if (i32.ge_u - (get_local $3) - (get_local $9) + (get_local $4) + (get_local $6) ) (call_import $_abort) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $0 (i32.load - (tee_local $1 + (tee_local $3 (i32.add - (get_local $9) + (get_local $6) (i32.const 4) ) ) @@ -16219,22 +14530,41 @@ ) (i32.const 1) ) - (i32.const 0) ) (call_import $_abort) ) (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 2) + (i32.and + (get_local $0) + (i32.const 2) + ) + (block + (i32.store + (get_local $3) + (i32.and + (get_local $0) + (i32.const -2) + ) + ) + (i32.store offset=4 + (get_local $4) + (i32.or + (get_local $1) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $4) + (get_local $1) + ) + (get_local $1) ) - (i32.const 0) ) (block (if (i32.eq - (get_local $9) + (get_local $6) (i32.load (i32.const 200) ) @@ -16247,16 +14577,16 @@ (i32.load (i32.const 188) ) - (get_local $10) + (get_local $1) ) ) ) (i32.store (i32.const 200) - (get_local $3) + (get_local $4) ) (i32.store offset=4 - (get_local $3) + (get_local $4) (i32.or (get_local $0) (i32.const 1) @@ -16264,7 +14594,7 @@ ) (if (i32.ne - (get_local $3) + (get_local $4) (i32.load (i32.const 196) ) @@ -16284,7 +14614,7 @@ ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.load (i32.const 196) ) @@ -16297,16 +14627,16 @@ (i32.load (i32.const 184) ) - (get_local $10) + (get_local $1) ) ) ) (i32.store (i32.const 196) - (get_local $3) + (get_local $4) ) (i32.store offset=4 - (get_local $3) + (get_local $4) (i32.or (get_local $0) (i32.const 1) @@ -16314,7 +14644,7 @@ ) (i32.store (i32.add - (get_local $3) + (get_local $4) (get_local $0) ) (get_local $0) @@ -16322,16 +14652,16 @@ (return) ) ) - (set_local $5 + (set_local $2 (i32.add (i32.and (get_local $0) (i32.const -8) ) - (get_local $10) + (get_local $1) ) ) - (set_local $8 + (set_local $5 (i32.shr_u (get_local $0) (i32.const 3) @@ -16344,24 +14674,24 @@ (i32.const 256) ) (block - (set_local $1 + (set_local $3 (i32.load offset=12 - (get_local $9) + (get_local $6) ) ) (if (i32.ne - (tee_local $0 + (tee_local $1 (i32.load offset=8 - (get_local $9) + (get_local $6) ) ) - (tee_local $2 + (tee_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $8) + (get_local $5) (i32.const 1) ) (i32.const 2) @@ -16372,7 +14702,7 @@ (block (if (i32.lt_u - (get_local $0) + (get_local $1) (i32.load (i32.const 192) ) @@ -16382,9 +14712,9 @@ (if (i32.ne (i32.load offset=12 - (get_local $0) + (get_local $1) ) - (get_local $9) + (get_local $6) ) (call_import $_abort) ) @@ -16392,8 +14722,8 @@ ) (if (i32.eq + (get_local $3) (get_local $1) - (get_local $0) ) (block (i32.store @@ -16405,7 +14735,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $8) + (get_local $5) ) (i32.const -1) ) @@ -16416,19 +14746,19 @@ ) (if (i32.eq - (get_local $1) - (get_local $2) + (get_local $3) + (get_local $0) ) - (set_local $16 + (set_local $14 (i32.add - (get_local $1) + (get_local $3) (i32.const 8) ) ) (block (if (i32.lt_u - (get_local $1) + (get_local $3) (i32.load (i32.const 192) ) @@ -16438,57 +14768,57 @@ (if (i32.eq (i32.load - (tee_local $2 + (tee_local $0 (i32.add - (get_local $1) + (get_local $3) (i32.const 8) ) ) ) - (get_local $9) + (get_local $6) ) - (set_local $16 - (get_local $2) + (set_local $14 + (get_local $0) ) (call_import $_abort) ) ) ) (i32.store offset=12 - (get_local $0) (get_local $1) + (get_local $3) ) (i32.store - (get_local $16) - (get_local $0) + (get_local $14) + (get_local $1) ) ) (block - (set_local $0 + (set_local $7 (i32.load offset=24 - (get_local $9) + (get_local $6) ) ) (block $do-once$10 (if (i32.eq - (tee_local $1 + (tee_local $0 (i32.load offset=12 - (get_local $9) + (get_local $6) ) ) - (get_local $9) + (get_local $6) ) (block (if - (i32.eq - (tee_local $1 + (i32.eqz + (tee_local $0 (i32.load - (tee_local $8 + (tee_local $1 (i32.add - (tee_local $7 + (tee_local $3 (i32.add - (get_local $9) + (get_local $6) (i32.const 16) ) ) @@ -16497,92 +14827,71 @@ ) ) ) - (i32.const 0) ) (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $7) - ) + (tee_local $0 + (i32.load + (get_local $3) ) - (i32.const 0) + ) + (set_local $1 + (get_local $3) ) (block - (set_local $11 + (set_local $9 (i32.const 0) ) (br $do-once$10) ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $8 - (get_local $7) - ) - ) - ) - (set_local $2 - (get_local $1) ) ) (loop $while-in$13 - (block $while-out$12 - (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) + (if + (tee_local $3 + (i32.load + (tee_local $5 + (i32.add + (get_local $0) + (i32.const 20) ) ) - (i32.const 0) ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $8 - (get_local $7) - ) - (br $while-in$13) + ) + (block + (set_local $0 + (get_local $3) ) + (set_local $1 + (get_local $5) + ) + (br $while-in$13) ) - (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $5 + (i32.add + (get_local $0) + (i32.const 16) ) ) - (i32.const 0) ) - (br $while-out$12) - (block - (set_local $2 - (get_local $1) - ) - (set_local $8 - (get_local $7) - ) + ) + (block + (set_local $0 + (get_local $3) ) + (set_local $1 + (get_local $5) + ) + (br $while-in$13) ) - (br $while-in$13) ) ) (if (i32.lt_u - (get_local $8) + (get_local $1) (i32.load (i32.const 192) ) @@ -16590,11 +14899,11 @@ (call_import $_abort) (block (i32.store - (get_local $8) + (get_local $1) (i32.const 0) ) - (set_local $11 - (get_local $2) + (set_local $9 + (get_local $0) ) ) ) @@ -16602,9 +14911,9 @@ (block (if (i32.lt_u - (tee_local $2 + (tee_local $1 (i32.load offset=8 - (get_local $9) + (get_local $6) ) ) (i32.load @@ -16616,41 +14925,41 @@ (if (i32.ne (i32.load - (tee_local $8 + (tee_local $3 (i32.add - (get_local $2) + (get_local $1) (i32.const 12) ) ) ) - (get_local $9) + (get_local $6) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $7 + (tee_local $5 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) ) - (get_local $9) + (get_local $6) ) (block (i32.store - (get_local $8) - (get_local $1) + (get_local $3) + (get_local $0) ) (i32.store - (get_local $7) - (get_local $2) - ) - (set_local $11 + (get_local $5) (get_local $1) ) + (set_local $9 + (get_local $0) + ) ) (call_import $_abort) ) @@ -16658,22 +14967,19 @@ ) ) (if - (i32.ne - (get_local $0) - (i32.const 0) - ) + (get_local $7) (block (if (i32.eq - (get_local $9) + (get_local $6) (i32.load - (tee_local $2 + (tee_local $1 (i32.add (i32.const 480) (i32.shl - (tee_local $1 + (tee_local $0 (i32.load offset=28 - (get_local $9) + (get_local $6) ) ) (i32.const 2) @@ -16684,13 +14990,12 @@ ) (block (i32.store - (get_local $2) - (get_local $11) + (get_local $1) + (get_local $9) ) (if - (i32.eq - (get_local $11) - (i32.const 0) + (i32.eqz + (get_local $9) ) (block (i32.store @@ -16702,7 +15007,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $1) + (get_local $0) ) (i32.const -1) ) @@ -16715,7 +15020,7 @@ (block (if (i32.lt_u - (get_local $0) + (get_local $7) (i32.load (i32.const 192) ) @@ -16725,36 +15030,35 @@ (if (i32.eq (i32.load - (tee_local $1 + (tee_local $0 (i32.add - (get_local $0) + (get_local $7) (i32.const 16) ) ) ) - (get_local $9) + (get_local $6) ) (i32.store - (get_local $1) - (get_local $11) + (get_local $0) + (get_local $9) ) (i32.store offset=20 - (get_local $0) - (get_local $11) + (get_local $7) + (get_local $9) ) ) (br_if $do-once$8 - (i32.eq - (get_local $11) - (i32.const 0) + (i32.eqz + (get_local $9) ) ) ) ) (if (i32.lt_u - (get_local $11) - (tee_local $1 + (get_local $9) + (tee_local $0 (i32.load (i32.const 192) ) @@ -16763,49 +15067,43 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $11) - (get_local $0) + (get_local $9) + (get_local $7) ) (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $9) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (get_local $6) + (i32.const 16) ) ) ) - (i32.const 0) ) (if (i32.lt_u - (get_local $0) (get_local $1) + (get_local $0) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $11) - (get_local $0) + (get_local $9) + (get_local $1) ) (i32.store offset=24 - (get_local $0) - (get_local $11) + (get_local $1) + (get_local $9) ) ) ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=4 - (get_local $2) - ) + (tee_local $0 + (i32.load offset=4 + (get_local $3) ) - (i32.const 0) ) (if (i32.lt_u @@ -16817,12 +15115,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $11) + (get_local $9) (get_local $0) ) (i32.store offset=24 (get_local $0) - (get_local $11) + (get_local $9) ) ) ) @@ -16833,22 +15131,22 @@ ) ) (i32.store offset=4 - (get_local $3) + (get_local $4) (i32.or - (get_local $5) + (get_local $2) (i32.const 1) ) ) (i32.store (i32.add - (get_local $3) - (get_local $5) + (get_local $4) + (get_local $2) ) - (get_local $5) + (get_local $2) ) (if (i32.eq - (get_local $3) + (get_local $4) (i32.load (i32.const 196) ) @@ -16856,57 +15154,34 @@ (block (i32.store (i32.const 184) - (get_local $5) + (get_local $2) ) (return) ) - ) - ) - (block - (i32.store - (get_local $1) - (i32.and - (get_local $0) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.or - (get_local $10) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $3) - (get_local $10) + (set_local $1 + (get_local $2) ) - (get_local $10) - ) - (set_local $5 - (get_local $10) ) ) ) - (set_local $1 + (set_local $2 (i32.shr_u - (get_local $5) + (get_local $1) (i32.const 3) ) ) (if (i32.lt_u - (get_local $5) + (get_local $1) (i32.const 256) ) (block - (set_local $2 + (set_local $3 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $1) + (get_local $2) (i32.const 1) ) (i32.const 2) @@ -16914,39 +15189,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) - (get_local $1) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (set_local $6 - (i32.add + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $2) - (i32.const 8) ) ) - (set_local $14 - (get_local $2) - ) ) (if (i32.lt_u @@ -16954,7 +15208,7 @@ (i32.load (tee_local $0 (i32.add - (get_local $2) + (get_local $3) (i32.const 8) ) ) @@ -16966,141 +15220,151 @@ ) (call_import $_abort) (block - (set_local $6 + (set_local $15 (get_local $0) ) - (set_local $14 + (set_local $13 + (get_local $1) + ) + ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) (get_local $1) ) ) + (set_local $15 + (i32.add + (get_local $3) + (i32.const 8) + ) + ) + (set_local $13 + (get_local $3) + ) ) ) (i32.store - (get_local $6) - (get_local $3) + (get_local $15) + (get_local $4) ) (i32.store offset=12 - (get_local $14) - (get_local $3) + (get_local $13) + (get_local $4) ) (i32.store offset=8 - (get_local $3) - (get_local $14) + (get_local $4) + (get_local $13) ) (i32.store offset=12 + (get_local $4) (get_local $3) - (get_local $2) ) (return) ) ) - (set_local $1 + (set_local $5 (i32.add (i32.const 480) (i32.shl - (tee_local $6 + (tee_local $3 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $5) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $1) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u - (get_local $5) + (get_local $1) (i32.const 16777215) ) (i32.const 31) - (block - (set_local $6 - (i32.shl - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $1) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $6 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (tee_local $2 + (i32.shl + (get_local $0) + (tee_local $0 + (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 $0) ) - (get_local $0) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $6 - (i32.shl - (get_local $1) - (get_local $6) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $2) + (get_local $3) + ) ) + (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 $6) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $3) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $6) + (i32.shl + (get_local $0) + (i32.const 1) ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -17108,19 +15372,19 @@ ) ) (i32.store offset=28 + (get_local $4) (get_local $3) - (get_local $6) ) (i32.store offset=20 - (get_local $3) + (get_local $4) (i32.const 0) ) (i32.store offset=16 - (get_local $3) + (get_local $4) (i32.const 0) ) - (if - (i32.eq + (block $do-once$16 + (if (i32.and (tee_local $0 (i32.load @@ -17130,217 +15394,163 @@ (tee_local $2 (i32.shl (i32.const 1) - (get_local $6) - ) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $0) - (get_local $2) - ) - ) - (i32.store - (get_local $1) - (get_local $3) - ) - (i32.store offset=24 - (get_local $3) - (get_local $1) - ) - (i32.store offset=12 - (get_local $3) - (get_local $3) - ) - (i32.store offset=8 - (get_local $3) - (get_local $3) - ) - ) - (block - (set_local $6 - (i32.shl - (get_local $5) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $6) - (i32.const 1) - ) - ) - (i32.eq - (get_local $6) - (i32.const 31) - ) + (get_local $3) ) ) ) - (set_local $1 - (i32.load - (get_local $1) - ) - ) - (loop $while-in$19 - (block $while-out$18 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $1) + (block + (set_local $2 + (i32.shl + (get_local $1) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $3) + (i32.const 1) ) - (i32.const -8) - ) - (get_local $5) - ) - (block - (set_local $15 - (get_local $1) ) - (set_local $0 - (i32.const 130) + (i32.eq + (get_local $3) + (i32.const 31) ) - (br $while-out$18) ) ) - (set_local $2 - (i32.shl - (get_local $6) - (i32.const 1) - ) + ) + (set_local $0 + (i32.load + (get_local $5) ) - (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $6 - (i32.add - (i32.add - (get_local $1) - (i32.const 16) + ) + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (block $jumpthreading$inner$0 + (loop $while-in$19 + (br_if $jumpthreading$inner$1 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) ) - (i32.shl - (i32.shr_u - (get_local $6) - (i32.const 31) + (i32.const -8) + ) + (get_local $1) + ) + ) + (set_local $5 + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (br_if $jumpthreading$inner$0 + (i32.eqz + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (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 $5) + ) + (set_local $0 + (get_local $3) + ) + (br $while-in$19) + ) ) - (i32.const 0) - ) - (block - (set_local $18 - (get_local $1) - ) - (set_local $17 - (get_local $6) - ) - (set_local $0 - (i32.const 127) - ) - (br $while-out$18) ) - (block - (set_local $6 + (if + (i32.lt_u (get_local $2) + (i32.load + (i32.const 192) + ) ) - (set_local $1 - (get_local $0) + (call_import $_abort) + (block + (i32.store + (get_local $2) + (get_local $4) + ) + (i32.store offset=24 + (get_local $4) + (get_local $0) + ) + (i32.store offset=12 + (get_local $4) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + (br $do-once$16) ) ) - ) - (br $while-in$19) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 127) - ) - (if - (i32.lt_u - (get_local $17) - (i32.load - (i32.const 192) - ) - ) - (call_import $_abort) - (block - (i32.store - (get_local $17) - (get_local $3) - ) - (i32.store offset=24 - (get_local $3) - (get_local $18) - ) - (i32.store offset=12 - (get_local $3) - (get_local $3) - ) - (i32.store offset=8 - (get_local $3) - (get_local $3) - ) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 130) + (br $jumpthreading$outer$1) ) (if (i32.and (i32.ge_u - (tee_local $0 + (tee_local $1 (i32.load - (tee_local $1 + (tee_local $2 (i32.add - (get_local $15) + (get_local $0) (i32.const 8) ) ) ) ) - (tee_local $6 + (tee_local $3 (i32.load (i32.const 192) ) ) ) (i32.ge_u - (get_local $15) - (get_local $6) + (get_local $0) + (get_local $3) ) ) (block (i32.store offset=12 - (get_local $0) - (get_local $3) + (get_local $1) + (get_local $4) ) (i32.store - (get_local $1) - (get_local $3) + (get_local $2) + (get_local $4) ) (i32.store offset=8 - (get_local $3) - (get_local $0) + (get_local $4) + (get_local $1) ) (i32.store offset=12 - (get_local $3) - (get_local $15) + (get_local $4) + (get_local $0) ) (i32.store offset=24 - (get_local $3) + (get_local $4) (i32.const 0) ) ) @@ -17348,6 +15558,31 @@ ) ) ) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $0) + (get_local $2) + ) + ) + (i32.store + (get_local $5) + (get_local $4) + ) + (i32.store offset=24 + (get_local $4) + (get_local $5) + ) + (i32.store offset=12 + (get_local $4) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + ) ) ) (i32.store @@ -17362,37 +15597,25 @@ ) ) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (set_local $6 + (get_local $0) + (return) + (set_local $0 (i32.const 632) ) - (return) ) (loop $while-in$21 - (block $while-out$20 - (set_local $0 - (i32.eq - (tee_local $6 - (i32.load - (get_local $6) - ) + (set_local $0 + (i32.add + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 0) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 8) ) + (i32.const 8) ) - (br_if $while-out$20 - (get_local $0) - ) - (br $while-in$21) + ) + (br_if $while-in$21 + (get_local $1) ) ) (i32.store @@ -17508,70 +15731,70 @@ ) ) (loop $while-in$1 - (block $while-out$0 - (br_if $while-out$0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $3) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (br $while-in$1) ) - (br $while-in$1) ) ) ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.ge_s - (get_local $0) - (get_local $6) - ) - ) - (i32.store + (if + (i32.lt_s (get_local $0) - (get_local $5) + (get_local $6) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.ge_s - (get_local $0) - (get_local $4) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $4) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (i32.sub @@ -17726,9 +15949,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $2) - (i32.const 0) ) (return (get_local $3) @@ -17762,75 +15984,75 @@ ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.lt_s - (get_local $2) - (i32.const 4) - ) - ) - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) + (if + (i32.ge_s + (get_local $2) + (i32.const 4) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (i32.load + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 4) + ) ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.le_s - (get_local $2) - (i32.const 0) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_s - (get_local $1) - ) + (if + (i32.gt_s + (get_local $2) + (i32.const 0) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (i32.load8_s + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (get_local $3) @@ -17982,140 +16204,147 @@ ) (func $___divdi3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - (call $_i64Subtract - (i32.xor - (call $___udivmoddi4 - (call $_i64Subtract - (i32.xor - (tee_local $4 - (i32.or - (i32.shr_s + (local $5 i32) + (local $6 i32) + (set_local $6 + (call $_i64Subtract + (i32.xor + (tee_local $4 + (i32.or + (i32.shr_s + (get_local $1) + (i32.const 31) + ) + (i32.shl + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s (get_local $1) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - ) - (i32.const 1) + (i32.const 0) ) ) + (i32.const 1) ) - (get_local $0) ) - (i32.xor - (tee_local $0 - (i32.or - (i32.shr_s - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - ) - (i32.const 31) + ) + (get_local $0) + ) + (i32.xor + (tee_local $0 + (i32.or + (i32.shr_s + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $1) + (i32.const 0) ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - ) - (i32.const 1) + ) + (i32.const 31) + ) + (i32.shl + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $1) + (i32.const 0) ) ) + (i32.const 1) ) - (get_local $1) ) - (get_local $4) - (get_local $0) ) + (get_local $1) + ) + (get_local $4) + (get_local $0) + ) + ) + (set_local $5 + (i32.xor + (tee_local $1 + (i32.or + (i32.shr_s + (get_local $3) + (i32.const 31) + ) + (i32.shl + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $3) + (i32.const 0) + ) + ) + (i32.const 1) + ) + ) + ) + (get_local $4) + ) + ) + (set_local $0 + (i32.xor + (tee_local $4 + (i32.or + (i32.shr_s + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $3) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (i32.shl + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $3) + (i32.const 0) + ) + ) + (i32.const 1) + ) + ) + ) + (get_local $0) + ) + ) + (call $_i64Subtract + (i32.xor + (call $___udivmoddi4 + (get_local $6) (get_global $tempRet0) (call $_i64Subtract (i32.xor - (tee_local $1 - (i32.or - (i32.shr_s - (get_local $3) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - ) + (get_local $1) (get_local $2) ) (i32.xor - (tee_local $2 - (i32.or - (i32.shr_s - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - ) + (get_local $4) (get_local $3) ) (get_local $1) - (get_local $2) + (get_local $4) ) (get_global $tempRet0) (i32.const 0) ) - (tee_local $1 - (i32.xor - (get_local $1) - (get_local $4) - ) - ) + (get_local $5) ) (i32.xor (get_global $tempRet0) - (tee_local $0 - (i32.xor - (get_local $2) - (get_local $0) - ) - ) + (get_local $0) ) - (get_local $1) + (get_local $5) (get_local $0) ) ) @@ -18269,15 +16498,9 @@ (get_local $5) ) ) - (set_local $1 - (get_global $tempRet0) - ) (set_global $STACKTOP (get_local $6) ) - (set_global $tempRet0 - (get_local $1) - ) (get_local $0) ) (func $___muldi3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) @@ -18362,971 +16585,61 @@ (get_local $0) ) ) - (func $___udivmoddi4 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (set_local $8 - (get_local $0) - ) - (set_local $5 - (get_local $2) - ) - (set_local $7 - (tee_local $14 - (get_local $3) - ) - ) - (if - (i32.eq - (tee_local $6 - (tee_local $9 - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (set_local $2 - (i32.ne - (get_local $4) - (i32.const 0) - ) - ) - (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (block - (if - (get_local $2) - (block - (i32.store - (get_local $4) - (call_import $i32u-rem - (get_local $8) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (set_local $0 - (call_import $i32u-div - (get_local $8) - (get_local $5) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (block - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (i32.store - (get_local $4) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $10 - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - (block $do-once$0 - (if - (i32.eq - (get_local $5) - (i32.const 0) + (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32) + (local $x64 i64) + (local $y64 i64) + (set_local $x64 + (i64.or + (i64.extend_u/i32 + (get_local $xl) ) - (block - (if - (get_local $10) - (block - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (call_import $i32u-rem - (get_local $6) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (set_local $0 - (call_import $i32u-div - (get_local $6) - (get_local $5) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 0) - ) - (block - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (call_import $i32u-rem - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (set_local $0 - (call_import $i32u-div - (get_local $6) - (get_local $7) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (get_local $0) - ) - ) - ) - (if - (i32.eq - (i32.and - (tee_local $5 - (i32.sub - (get_local $7) - (i32.const 1) - ) - ) - (get_local $7) - ) - (i32.const 0) - ) - (block - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (i32.and - (get_local $5) - (get_local $6) - ) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.shr_u - (get_local $6) - (i32.ctz - (get_local $7) - ) - ) - ) - ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.sub - (i32.clz - (get_local $7) - ) - (i32.clz - (get_local $6) - ) - ) - ) - (i32.const 30) - ) - (block - (set_local $12 - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - (set_local $11 - (i32.or - (i32.shl - (get_local $6) - (tee_local $1 - (i32.sub - (i32.const 31) - (get_local $5) - ) - ) - ) - (i32.shr_u - (get_local $8) - (get_local $0) - ) - ) - ) - (set_local $13 - (i32.shr_u - (get_local $6) - (get_local $0) - ) - ) - (set_local $10 - (i32.const 0) - ) - (set_local $0 - (i32.shl - (get_local $8) - (get_local $1) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (block - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $9) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - (block - (if - (i32.eqz - (get_local $10) - ) - (block - (if - (i32.le_u - (tee_local $5 - (i32.sub - (i32.clz - (get_local $7) - ) - (i32.clz - (get_local $6) - ) - ) - ) - (i32.const 31) - ) - (block - (set_local $12 - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - (set_local $11 - (i32.or - (i32.and - (i32.shr_u - (get_local $8) - (get_local $0) - ) - (tee_local $9 - (i32.shr_s - (i32.sub - (get_local $5) - (i32.const 31) - ) - (i32.const 31) - ) - ) - ) - (i32.shl - (get_local $6) - (tee_local $1 - (i32.sub - (i32.const 31) - (get_local $5) - ) - ) - ) - ) - ) - (set_local $13 - (i32.and - (i32.shr_u - (get_local $6) - (get_local $0) - ) - (get_local $9) - ) - ) - (set_local $10 - (i32.const 0) - ) - (set_local $0 - (i32.shl - (get_local $8) - (get_local $1) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (block - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $9) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (if - (i32.ne - (i32.and - (tee_local $7 - (i32.sub - (get_local $5) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.const 0) - ) - (block - (set_local $1 - (i32.sub - (i32.const 64) - (tee_local $0 - (i32.sub - (i32.add - (i32.clz - (get_local $5) - ) - (i32.const 33) - ) - (i32.clz - (get_local $6) - ) - ) - ) - ) - ) - (set_local $5 - (i32.shr_s - (tee_local $9 - (i32.sub - (i32.const 32) - (get_local $0) - ) - ) - (i32.const 31) - ) - ) - (set_local $10 - (i32.shr_s - (tee_local $7 - (i32.sub - (get_local $0) - (i32.const 32) - ) - ) - (i32.const 31) - ) - ) - (set_local $12 - (get_local $0) - ) - (set_local $11 - (i32.or - (i32.and - (i32.shr_s - (i32.sub - (get_local $9) - (i32.const 1) - ) - (i32.const 31) - ) - (i32.shr_u - (get_local $6) - (get_local $7) - ) - ) - (i32.and - (i32.or - (i32.shl - (get_local $6) - (get_local $9) - ) - (i32.shr_u - (get_local $8) - (get_local $0) - ) - ) - (get_local $10) - ) - ) - ) - (set_local $13 - (i32.and - (get_local $10) - (i32.shr_u - (get_local $6) - (get_local $0) - ) - ) - ) - (set_local $10 - (i32.and - (i32.shl - (get_local $8) - (get_local $1) - ) - (get_local $5) - ) - ) - (set_local $0 - (i32.or - (i32.and - (i32.or - (i32.shl - (get_local $6) - (get_local $1) - ) - (i32.shr_u - (get_local $8) - (get_local $7) - ) - ) - (get_local $5) - ) - (i32.and - (i32.shl - (get_local $8) - (get_local $9) - ) - (i32.shr_s - (i32.sub - (get_local $0) - (i32.const 33) - ) - (i32.const 31) - ) - ) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.and - (get_local $7) - (get_local $8) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1) - ) - (block - (set_global $tempRet0 - (i32.or - (get_local $9) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - (return - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - ) - (block - (set_global $tempRet0 - (i32.or - (i32.const 0) - (i32.shr_u - (get_local $6) - (tee_local $0 - (i32.ctz - (get_local $5) - ) - ) - ) - ) - ) - (return - (i32.or - (i32.shl - (get_local $6) - (i32.sub - (i32.const 32) - (get_local $0) - ) - ) - (i32.shr_u - (get_local $8) - (get_local $0) - ) - ) - ) - ) + (i64.shl + (i64.extend_u/i32 + (get_local $xh) ) + (i64.const 32) ) ) ) - (set_local $0 - (if - (i32.eq - (get_local $12) - (i32.const 0) - ) - (block - (set_local $6 - (get_local $0) - ) - (set_local $1 - (i32.const 0) - ) - (i32.const 0) + (set_local $y64 + (i64.or + (i64.extend_u/i32 + (get_local $yl) ) - (block - (set_local $3 - (call $_i64Add - (tee_local $1 - (i32.or - (i32.const 0) - (i32.and - (get_local $2) - (i32.const -1) - ) - ) - ) - (tee_local $2 - (i32.or - (get_local $14) - (i32.and - (get_local $3) - (i32.const 0) - ) - ) - ) - (i32.const -1) - (i32.const -1) - ) - ) - (set_local $8 - (get_global $tempRet0) - ) - (set_local $9 - (get_local $0) - ) - (set_local $0 - (i32.const 0) - ) - (loop $while-in$3 - (block $while-out$2 - (set_local $6 - (i32.or - (i32.shr_u - (get_local $10) - (i32.const 31) - ) - (i32.shl - (get_local $9) - (i32.const 1) - ) - ) - ) - (set_local $10 - (i32.or - (get_local $0) - (i32.shl - (get_local $10) - (i32.const 1) - ) - ) - ) - (drop - (call $_i64Subtract - (get_local $3) - (get_local $8) - (tee_local $0 - (i32.or - (i32.const 0) - (i32.or - (i32.shl - (get_local $11) - (i32.const 1) - ) - (i32.shr_u - (get_local $9) - (i32.const 31) - ) - ) - ) - ) - (tee_local $9 - (i32.or - (i32.shr_u - (get_local $11) - (i32.const 31) - ) - (i32.shl - (get_local $13) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $7 - (i32.and - (tee_local $14 - (i32.or - (i32.shr_s - (tee_local $5 - (get_global $tempRet0) - ) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - ) - (i32.const 1) - ) - ) - (set_local $11 - (call $_i64Subtract - (get_local $0) - (get_local $9) - (i32.and - (get_local $14) - (get_local $1) - ) - (i32.and - (i32.or - (i32.shr_s - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - ) - (set_local $13 - (get_global $tempRet0) - ) - (if - (i32.eq - (tee_local $12 - (i32.sub - (get_local $12) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (br $while-out$2) - (block - (set_local $9 - (get_local $6) - ) - (set_local $0 - (get_local $7) - ) - ) - ) - (br $while-in$3) - ) - ) - (set_local $1 - (i32.const 0) + (i64.shl + (i64.extend_u/i32 + (get_local $yh) ) - (get_local $7) + (i64.const 32) ) ) ) - (set_local $3 - (i32.or - (get_local $6) - (tee_local $2 - (i32.const 0) + (if + (get_local $r) + (i64.store + (get_local $r) + (i64.rem_u + (get_local $x64) + (get_local $y64) ) ) ) - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (get_local $11) - ) - ) - (i32.store offset=4 - (get_local $4) - (get_local $13) - ) + (set_local $x64 + (i64.div_u + (get_local $x64) + (get_local $y64) ) ) (set_global $tempRet0 - (i32.or - (i32.or - (i32.or - (i32.shr_u - (i32.or - (i32.const 0) - (get_local $10) - ) - (i32.const 31) - ) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.and - (i32.or - (i32.shl - (get_local $2) - (i32.const 1) - ) - (i32.shr_u - (get_local $10) - (i32.const 31) - ) - ) - (i32.const 0) - ) + (i32.wrap/i64 + (i64.shr_u + (get_local $x64) + (i64.const 32) ) - (get_local $1) ) ) - (i32.or - (i32.and - (i32.or - (i32.shl - (get_local $10) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.const -2) - ) - (get_local $0) + (i32.wrap/i64 + (get_local $x64) ) ) (func $dynCall_ii (param $0 i32) (param $1 i32) (result i32) diff --git a/test/emcc_hello_world.fromasm.imprecise b/test/emcc_hello_world.fromasm.imprecise index c97524f7b..bc1e15b0d 100644 --- a/test/emcc_hello_world.fromasm.imprecise +++ b/test/emcc_hello_world.fromasm.imprecise @@ -132,9 +132,8 @@ ) (func $setThrew (param $0 i32) (param $1 i32) (if - (i32.eq + (i32.eqz (get_global $__THREW__) - (i32.const 0) ) (block (set_global $__THREW__ @@ -374,37 +373,30 @@ (set_local $1 (i32.const 0) ) - (loop $while-in$1 - (block $while-out$0 - (if - (i32.eq - (i32.and - (i32.load8_s offset=687 - (get_local $1) + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 + (loop $while-in$1 + (br_if $jumpthreading$inner$0 + (i32.eq + (i32.and + (i32.load8_s offset=687 + (get_local $1) + ) + (i32.const 255) ) - (i32.const 255) - ) - (get_local $0) - ) - (block - (set_local $4 - (get_local $1) - ) - (set_local $0 - (i32.const 2) + (get_local $0) ) - (br $while-out$0) ) - ) - (if - (i32.eq - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (br_if $while-in$1 + (i32.ne + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) ) + (i32.const 87) ) - (i32.const 87) ) (block (set_local $3 @@ -413,108 +405,72 @@ (set_local $2 (i32.const 775) ) - (set_local $0 + (set_local $4 (i32.const 5) ) - (br $while-out$0) ) ) - (br $while-in$1) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 2) + (br $jumpthreading$outer$0) ) (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (set_local $5 - (i32.const 775) - ) + (get_local $1) (block (set_local $3 - (get_local $4) + (get_local $1) ) (set_local $2 (i32.const 775) ) - (set_local $0 + (set_local $4 (i32.const 5) ) ) + (set_local $5 + (i32.const 775) + ) ) ) (if (i32.eq - (get_local $0) + (get_local $4) (i32.const 5) ) (loop $while-in$3 - (block $while-out$2 - (loop $while-in$5 - (block $while-out$4 - (set_local $0 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - (block - (set_local $1 - (get_local $0) - ) - (br $while-out$4) - ) - (set_local $2 - (get_local $0) - ) - ) - (br $while-in$5) + (loop $while-in$5 + (set_local $0 + (i32.add + (get_local $2) + (i32.const 1) ) ) (if - (i32.eq - (tee_local $0 - (i32.add - (get_local $3) - (i32.const -1) - ) - ) - (i32.const 0) - ) - (block - (set_local $5 - (get_local $1) - ) - (br $while-out$2) + (i32.load8_s + (get_local $2) ) (block - (set_local $3 - (get_local $0) - ) (set_local $2 - (get_local $1) + (get_local $0) ) + (br $while-in$5) ) ) - (br $while-in$3) + ) + (if + (tee_local $3 + (i32.add + (get_local $3) + (i32.const -1) + ) + ) + (block + (set_local $2 + (get_local $0) + ) + (br $while-in$3) + ) + (set_local $5 + (get_local $0) + ) ) ) ) @@ -522,16 +478,13 @@ ) (func $___errno_location (result i32) (if - (i32.eq - (i32.load - (i32.const 16) - ) - (i32.const 0) + (i32.load + (i32.const 16) ) - (i32.const 60) (i32.load offset=60 (call_import $_pthread_self) ) + (i32.const 60) ) ) (func $___stdio_close (param $0 i32) (result i32) @@ -608,14 +561,13 @@ (i32.const 4) ) (if - (i32.eq + (i32.eqz (i32.and (i32.load (get_local $0) ) (i32.const 64) ) - (i32.const 0) ) (block (i32.store @@ -633,12 +585,9 @@ (get_local $5) ) (if - (i32.ne - (call_import $___syscall54 - (i32.const 54) - (get_local $3) - ) - (i32.const 0) + (call_import $___syscall54 + (i32.const 54) + (get_local $3) ) (i32.store8 offset=75 (get_local $0) @@ -740,107 +689,112 @@ (local $2 i32) (block $do-once$0 (if - (i32.eq - (get_local $0) - (i32.const 0) + (get_local $0) + (block + (if + (i32.le_s + (i32.load offset=76 + (get_local $0) + ) + (i32.const -1) + ) + (br $do-once$0 + (call $___fflush_unlocked + (get_local $0) + ) + ) + ) + (set_local $2 + (i32.eqz + (call $___lockfile + (get_local $0) + ) + ) + ) + (set_local $1 + (call $___fflush_unlocked + (get_local $0) + ) + ) + (if + (get_local $2) + (get_local $1) + (block + (call $___unlockfile + (get_local $0) + ) + (get_local $1) + ) + ) ) (block (set_local $0 (if - (i32.eq - (i32.load - (i32.const 12) - ) - (i32.const 0) + (i32.load + (i32.const 12) ) - (i32.const 0) (call $_fflush (i32.load (i32.const 12) ) ) + (i32.const 0) ) ) (call_import $___lock (i32.const 44) ) (if - (i32.ne - (tee_local $1 - (i32.load - (i32.const 40) - ) + (tee_local $1 + (i32.load + (i32.const 40) ) - (i32.const 0) ) - (block + (loop $while-in$3 (set_local $2 - (get_local $0) - ) - (loop $while-in$3 - (block $while-out$2 - (set_local $0 - (if - (i32.gt_s - (i32.load offset=76 - (get_local $1) - ) - (i32.const -1) - ) - (call $___lockfile - (get_local $1) - ) - (i32.const 0) + (if + (i32.gt_s + (i32.load offset=76 + (get_local $1) ) + (i32.const -1) ) - (set_local $2 - (if - (i32.gt_u - (i32.load offset=20 - (get_local $1) - ) - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.or - (call $___fflush_unlocked - (get_local $1) - ) - (get_local $2) - ) - (get_local $2) - ) + (call $___lockfile + (get_local $1) ) - (if - (i32.ne - (get_local $0) - (i32.const 0) + (i32.const 0) + ) + ) + (set_local $0 + (if + (i32.gt_u + (i32.load offset=20 + (get_local $1) ) - (call $___unlockfile + (i32.load offset=28 (get_local $1) ) ) - (if - (i32.eq - (tee_local $0 - (i32.load offset=56 - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (set_local $0 - (get_local $2) - ) - (br $while-out$2) - ) - (set_local $1 - (get_local $0) + (i32.or + (call $___fflush_unlocked + (get_local $1) ) + (get_local $0) + ) + (get_local $0) + ) + ) + (if + (get_local $2) + (call $___unlockfile + (get_local $1) + ) + ) + (br_if $while-in$3 + (tee_local $1 + (i32.load offset=56 + (get_local $1) ) - (br $while-in$3) ) ) ) @@ -850,44 +804,6 @@ ) (get_local $0) ) - (block - (if - (i32.le_s - (i32.load offset=76 - (get_local $0) - ) - (i32.const -1) - ) - (br $do-once$0 - (call $___fflush_unlocked - (get_local $0) - ) - ) - ) - (set_local $2 - (i32.eq - (call $___lockfile - (get_local $0) - ) - (i32.const 0) - ) - ) - (set_local $1 - (call $___fflush_unlocked - (get_local $0) - ) - ) - (if - (get_local $2) - (get_local $1) - (block - (call $___unlockfile - (get_local $0) - ) - (get_local $1) - ) - ) - ) ) ) ) @@ -949,10 +865,7 @@ (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (set_local $8 + (set_local $7 (get_global $STACKTOP) ) (set_global $STACKTOP @@ -968,25 +881,25 @@ ) (call_import $abort) ) - (set_local $9 + (set_local $8 (i32.add - (get_local $8) + (get_local $7) (i32.const 16) ) ) - (set_local $10 - (get_local $8) + (set_local $9 + (get_local $7) ) (i32.store (tee_local $4 (i32.add - (get_local $8) + (get_local $7) (i32.const 32) ) ) (tee_local $3 (i32.load - (tee_local $7 + (tee_local $6 (i32.add (get_local $0) (i32.const 28) @@ -1000,7 +913,7 @@ (tee_local $3 (i32.sub (i32.load - (tee_local $11 + (tee_local $10 (i32.add (get_local $0) (i32.const 20) @@ -1019,310 +932,281 @@ (get_local $4) (get_local $2) ) - (set_local $12 + (set_local $13 (i32.add (get_local $0) (i32.const 60) ) ) - (set_local $13 + (set_local $14 (i32.add (get_local $0) (i32.const 44) ) ) - (set_local $6 + (set_local $1 + (get_local $4) + ) + (set_local $4 (i32.const 2) ) - (set_local $3 + (set_local $11 (i32.add (get_local $3) (get_local $2) ) ) - (loop $while-in$1 - (block $while-out$0 - (if - (i32.eq - (get_local $3) - (tee_local $5 - (if + (set_local $0 + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (block $jumpthreading$inner$0 + (loop $while-in$1 + (br_if $jumpthreading$inner$0 (i32.eq - (i32.load - (i32.const 16) + (get_local $11) + (tee_local $5 + (if + (i32.load + (i32.const 16) + ) + (block + (call_import $_pthread_cleanup_push + (i32.const 5) + (get_local $0) + ) + (i32.store + (get_local $9) + (i32.load + (get_local $13) + ) + ) + (i32.store offset=4 + (get_local $9) + (get_local $1) + ) + (i32.store offset=8 + (get_local $9) + (get_local $4) + ) + (set_local $3 + (call $___syscall_ret + (call_import $___syscall146 + (i32.const 146) + (get_local $9) + ) + ) + ) + (call_import $_pthread_cleanup_pop + (i32.const 0) + ) + (get_local $3) + ) + (block + (i32.store + (get_local $8) + (i32.load + (get_local $13) + ) + ) + (i32.store offset=4 + (get_local $8) + (get_local $1) + ) + (i32.store offset=8 + (get_local $8) + (get_local $4) + ) + (call $___syscall_ret + (call_import $___syscall146 + (i32.const 146) + (get_local $8) + ) + ) + ) + ) ) + ) + ) + (br_if $jumpthreading$inner$1 + (i32.lt_s + (get_local $5) (i32.const 0) ) - (block - (i32.store - (get_local $9) - (i32.load - (get_local $12) - ) - ) - (i32.store offset=4 - (get_local $9) - (get_local $4) - ) - (i32.store offset=8 - (get_local $9) - (get_local $6) - ) - (call $___syscall_ret - (call_import $___syscall146 - (i32.const 146) - (get_local $9) - ) + ) + (block + (set_local $11 + (i32.sub + (get_local $11) + (get_local $5) ) ) - (block - (call_import $_pthread_cleanup_push - (i32.const 5) - (get_local $0) - ) - (i32.store - (get_local $10) - (i32.load - (get_local $12) + (set_local $1 + (if + (i32.gt_u + (get_local $5) + (tee_local $12 + (i32.load offset=4 + (get_local $1) + ) + ) ) - ) - (i32.store offset=4 - (get_local $10) - (get_local $4) - ) - (i32.store offset=8 - (get_local $10) - (get_local $6) - ) - (set_local $1 - (call $___syscall_ret - (call_import $___syscall146 - (i32.const 146) + (block + (i32.store + (get_local $6) + (tee_local $3 + (i32.load + (get_local $14) + ) + ) + ) + (i32.store (get_local $10) + (get_local $3) + ) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $12) + ) + ) + (set_local $3 + (i32.add + (get_local $1) + (i32.const 8) + ) + ) + (set_local $4 + (i32.add + (get_local $4) + (i32.const -1) + ) + ) + (i32.load offset=12 + (get_local $1) + ) + ) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $6) + (i32.add + (i32.load + (get_local $6) + ) + (get_local $5) + ) + ) + (set_local $3 + (get_local $1) + ) + (set_local $4 + (i32.const 2) + ) + (get_local $12) + ) + (block + (set_local $3 + (get_local $1) + ) + (get_local $12) ) ) ) - (call_import $_pthread_cleanup_pop - (i32.const 0) - ) - (get_local $1) - ) - ) - ) - ) - (block - (set_local $1 - (i32.const 6) - ) - (br $while-out$0) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $15 - (get_local $4) - ) - (set_local $16 - (get_local $6) - ) - (set_local $1 - (i32.const 8) - ) - (br $while-out$0) - ) - ) - (set_local $17 - (i32.sub - (get_local $3) - (get_local $5) - ) - ) - (set_local $1 - (if - (i32.gt_u - (get_local $5) - (tee_local $1 - (i32.load offset=4 - (get_local $4) - ) - ) - ) - (block - (i32.store - (get_local $7) - (tee_local $3 - (i32.load - (get_local $13) - ) - ) - ) - (i32.store - (get_local $11) - (get_local $3) - ) - (set_local $5 - (i32.sub - (get_local $5) - (get_local $1) - ) - ) - (set_local $3 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const -1) ) - ) - (i32.load offset=12 - (get_local $4) - ) - ) - (if - (i32.eq - (get_local $6) - (i32.const 2) - ) - (block (i32.store - (get_local $7) + (get_local $3) (i32.add (i32.load - (get_local $7) + (get_local $3) ) (get_local $5) ) ) - (set_local $3 - (get_local $4) + (i32.store offset=4 + (get_local $3) + (i32.sub + (get_local $1) + (get_local $5) + ) ) - (set_local $6 - (i32.const 2) + (set_local $1 + (get_local $3) ) - (get_local $1) + (br $while-in$1) ) - (block - (set_local $3 - (get_local $4) + ) + ) + (i32.store offset=16 + (get_local $0) + (i32.add + (tee_local $1 + (i32.load + (get_local $14) ) - (get_local $1) + ) + (i32.load offset=48 + (get_local $0) ) ) ) - ) - (i32.store - (get_local $3) - (i32.add - (i32.load - (get_local $3) + (i32.store + (get_local $6) + (tee_local $0 + (get_local $1) ) - (get_local $5) ) - ) - (i32.store offset=4 - (get_local $3) - (i32.sub - (get_local $1) - (get_local $5) + (i32.store + (get_local $10) + (get_local $0) + ) + (br $jumpthreading$outer$1 + (get_local $2) ) ) - (set_local $4 - (get_local $3) - ) - (set_local $3 - (get_local $17) - ) - (br $while-in$1) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 6) - ) - (block (i32.store offset=16 (get_local $0) - (i32.add - (tee_local $1 - (i32.load - (get_local $13) - ) - ) - (i32.load offset=48 - (get_local $0) - ) - ) + (i32.const 0) ) (i32.store - (get_local $7) - (get_local $1) + (get_local $6) + (i32.const 0) ) (i32.store - (get_local $11) - (get_local $1) - ) - (set_local $14 - (get_local $2) - ) - ) - (if - (i32.eq - (get_local $1) - (i32.const 8) + (get_local $10) + (i32.const 0) ) - (block - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $7) - (i32.const 0) - ) - (i32.store - (get_local $11) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.or - (i32.load - (get_local $0) - ) - (i32.const 32) + (i32.store + (get_local $0) + (i32.or + (i32.load + (get_local $0) ) + (i32.const 32) ) - (set_local $14 - (select - (i32.const 0) - (i32.sub - (get_local $2) - (i32.load offset=4 - (get_local $15) - ) - ) - (i32.eq - (get_local $16) - (i32.const 2) - ) + ) + (select + (i32.const 0) + (i32.sub + (get_local $2) + (i32.load offset=4 + (get_local $1) ) ) + (i32.eq + (get_local $4) + (i32.const 2) + ) ) ) ) (set_global $STACKTOP - (get_local $8) + (get_local $7) ) - (get_local $14) + (get_local $0) ) (func $_vfprintf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -1444,14 +1328,8 @@ ) (if (i32.lt_s - (i32.shr_s - (i32.shl - (i32.load8_s offset=74 - (get_local $0) - ) - (i32.const 24) - ) - (i32.const 24) + (i32.load8_s offset=74 + (get_local $0) ) (i32.const 1) ) @@ -1465,17 +1343,22 @@ ) (set_local $2 (select + (i32.const -1) (if - (i32.eq - (i32.load - (tee_local $10 - (i32.add - (get_local $0) - (i32.const 48) - ) + (i32.load + (tee_local $10 + (i32.add + (get_local $0) + (i32.const 48) ) ) - (i32.const 0) + ) + (call $_printf_core + (get_local $0) + (get_local $1) + (get_local $5) + (get_local $8) + (get_local $9) ) (block (set_local $2 @@ -1536,11 +1419,7 @@ ) ) (if - (i32.eq - (get_local $2) - (i32.const 0) - ) - (get_local $1) + (get_local $2) (block (drop (call_indirect $FUNCSIG$iiii @@ -1560,13 +1439,10 @@ ) (set_local $1 (select - (i32.const -1) (get_local $1) - (i32.eq - (i32.load - (get_local $11) - ) - (i32.const 0) + (i32.const -1) + (i32.load + (get_local $11) ) ) ) @@ -1592,27 +1468,17 @@ ) (get_local $1) ) + (get_local $1) ) ) - (call $_printf_core - (get_local $0) - (get_local $1) - (get_local $5) - (get_local $8) - (get_local $9) - ) ) - (i32.const -1) - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) + (i32.and + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 32) ) - (i32.const 0) + (i32.const 32) ) ) ) @@ -1624,10 +1490,7 @@ ) ) (if - (i32.ne - (get_local $12) - (i32.const 0) - ) + (get_local $12) (call $___unlockfile (get_local $0) ) @@ -1646,262 +1509,216 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (if - (i32.eq - (tee_local $6 - (i32.load - (tee_local $5 - (i32.add - (get_local $2) - (i32.const 16) + (block $label$break$L5 + (block $jumpthreading$inner$0 + (br_if $jumpthreading$inner$0 + (tee_local $3 + (i32.load + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 16) + ) ) ) ) ) - (i32.const 0) - ) - (if - (i32.eq + (if (call $___towrite (get_local $2) ) - (i32.const 0) - ) - (block (set_local $3 - (i32.load - (get_local $5) - ) + (i32.const 0) ) - (set_local $7 - (i32.const 5) + (block + (set_local $3 + (i32.load + (get_local $4) + ) + ) + (br $jumpthreading$inner$0) ) ) - (set_local $4 - (i32.const 0) - ) + (br $label$break$L5) ) - (block - (set_local $3 - (get_local $6) - ) - (set_local $7 - (i32.const 5) + (set_local $6 + (tee_local $4 + (i32.load + (tee_local $5 + (i32.add + (get_local $2) + (i32.const 20) + ) + ) + ) ) ) - ) - (block $label$break$L5 (if - (i32.eq - (get_local $7) - (i32.const 5) + (i32.lt_u + (i32.sub + (get_local $3) + (get_local $4) + ) + (get_local $1) ) (block (set_local $3 - (i32.lt_u - (i32.sub - (get_local $3) - (tee_local $6 - (i32.load - (tee_local $5 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) + (call_indirect $FUNCSIG$iiii + (get_local $2) + (get_local $0) + (get_local $1) + (i32.add + (i32.and + (i32.load offset=36 + (get_local $2) ) + (i32.const 7) ) + (i32.const 2) ) - (get_local $1) ) ) - (if - (get_local $3) - (block - (set_local $4 - (call_indirect $FUNCSIG$iiii + (br $label$break$L5) + ) + ) + (drop + (call $_memcpy + (block $label$break$L10 + (if + (i32.gt_s + (i32.load8_s offset=75 (get_local $2) - (get_local $0) - (get_local $1) - (i32.add - (i32.and - (i32.load offset=36 - (get_local $2) - ) - (i32.const 7) - ) - (i32.const 2) - ) ) + (i32.const -1) ) - (br $label$break$L5) - ) - ) - (drop - (call $_memcpy - (block $label$break$L10 - (if - (i32.gt_s - (i32.shr_s - (i32.shl - (i32.load8_s offset=75 - (get_local $2) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -1) - ) - (block - (set_local $3 - (get_local $1) + (block + (set_local $3 + (get_local $1) + ) + (loop $while-in$3 + (if + (i32.eqz + (get_local $3) ) - (loop $while-in$3 - (block $while-out$2 - (if - (i32.eq - (get_local $3) - (i32.const 0) - ) - (block - (set_local $2 - (i32.const 0) - ) - (br $label$break$L10 - (get_local $6) - ) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (i32.add - (get_local $0) - (tee_local $4 - (i32.add - (get_local $3) - (i32.const -1) - ) - ) - ) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 10) - ) - (br $while-out$2) - (set_local $3 - (get_local $4) - ) - ) - (br $while-in$3) + (block + (set_local $2 + (i32.const 0) + ) + (br $label$break$L10 + (get_local $6) ) ) - (if - (i32.lt_u - (call_indirect $FUNCSIG$iiii - (get_local $2) + ) + (if + (i32.ne + (i32.load8_s + (i32.add (get_local $0) - (get_local $3) - (i32.add - (i32.and - (i32.load offset=36 - (get_local $2) - ) - (i32.const 7) + (tee_local $4 + (i32.add + (get_local $3) + (i32.const -1) ) - (i32.const 2) ) ) - (get_local $3) - ) - (block - (set_local $4 - (get_local $3) - ) - (br $label$break$L5) ) + (i32.const 10) ) - (set_local $2 - (get_local $3) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $3) + (block + (set_local $3 + (get_local $4) ) + (br $while-in$3) ) - (set_local $0 + ) + ) + (br_if $label$break$L5 + (i32.lt_u + (call_indirect $FUNCSIG$iiii + (get_local $2) + (get_local $0) + (get_local $3) (i32.add - (get_local $0) - (get_local $3) + (i32.and + (i32.load offset=36 + (get_local $2) + ) + (i32.const 7) + ) + (i32.const 2) ) ) - (i32.load - (get_local $5) - ) + (get_local $3) ) - (block - (set_local $2 - (i32.const 0) - ) - (get_local $6) + ) + (set_local $2 + (get_local $3) + ) + (set_local $1 + (i32.sub + (get_local $1) + (get_local $3) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $3) ) ) + (i32.load + (get_local $5) + ) ) - (get_local $0) - (get_local $1) - ) - ) - (i32.store - (get_local $5) - (i32.add - (i32.load - (get_local $5) + (block + (set_local $2 + (i32.const 0) + ) + (get_local $6) ) - (get_local $1) ) ) - (set_local $4 - (i32.add - (get_local $2) - (get_local $1) - ) + (get_local $0) + (get_local $1) + ) + ) + (i32.store + (get_local $5) + (i32.add + (i32.load + (get_local $5) ) + (get_local $1) + ) + ) + (set_local $3 + (i32.add + (get_local $2) + (get_local $1) ) ) ) - (get_local $4) + (get_local $3) ) (func $___towrite (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (set_local $1 + (i32.load8_s + (tee_local $2 + (i32.add + (get_local $0) + (i32.const 74) + ) + ) + ) + ) + (i32.store8 + (get_local $2) (i32.and (i32.or (i32.add - (tee_local $1 - (i32.shr_s - (i32.shl - (i32.load8_s - (tee_local $2 - (i32.add - (get_local $0) - (i32.const 74) - ) - ) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) + (get_local $1) (i32.const 255) ) (get_local $1) @@ -1909,21 +1726,24 @@ (i32.const 255) ) ) - (i32.store8 - (get_local $2) - (get_local $1) - ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) + (i32.and + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 8) ) - (i32.const 0) + (i32.const 8) + ) + (block + (i32.store + (get_local $0) + (i32.or + (get_local $1) + (i32.const 32) + ) + ) + (i32.const -1) ) (block (i32.store offset=8 @@ -1957,26 +1777,12 @@ ) (i32.const 0) ) - (block - (i32.store - (get_local $0) - (i32.or - (get_local $1) - (i32.const 32) - ) - ) - (i32.const -1) - ) ) ) (func $_wcrtomb (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (block $do-once$0 (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (i32.const 1) + (get_local $0) (block (if (i32.lt_u @@ -2173,444 +1979,264 @@ ) ) ) + (i32.const 1) ) ) ) (func $_wctomb (param $0 i32) (param $1 i32) (result i32) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (i32.const 0) + (get_local $0) (call $_wcrtomb (get_local $0) (get_local $1) (i32.const 0) ) + (i32.const 0) ) ) (func $_memchr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (local $15 i32) - (local $16 i32) - (set_local $16 + (set_local $5 (i32.and (get_local $1) (i32.const 255) ) ) - (block $label$break$L1 - (if - (i32.and - (tee_local $6 - (i32.ne - (get_local $2) - (i32.const 0) - ) - ) - (i32.ne - (i32.and - (get_local $0) - (i32.const 3) - ) - (i32.const 0) - ) - ) - (block - (set_local $6 + (block $label$break$L8 + (block $jumpthreading$inner$2 + (block $jumpthreading$inner$1 + (if (i32.and - (get_local $1) - (i32.const 255) + (tee_local $3 + (i32.ne + (get_local $2) + (i32.const 0) + ) + ) + (i32.ne + (i32.and + (get_local $0) + (i32.const 3) + ) + (i32.const 0) + ) ) - ) - (set_local $3 - (get_local $2) - ) - (set_local $2 - (get_local $0) - ) - (loop $while-in$2 - (block $while-out$1 - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $2) - ) - (i32.const 24) + (block + (set_local $4 + (i32.and + (get_local $1) + (i32.const 255) + ) + ) + (loop $while-in$2 + (br_if $jumpthreading$inner$2 + (i32.eq + (i32.load8_s + (get_local $0) ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (get_local $6) + (i32.shr_s + (i32.shl + (get_local $4) + (i32.const 24) + ) (i32.const 24) ) - (i32.const 24) - ) - ) - (block - (set_local $4 - (get_local $3) - ) - (set_local $5 - (get_local $2) - ) - (set_local $3 - (i32.const 6) ) - (br $label$break$L1) ) - ) - (if - (i32.and - (tee_local $3 - (i32.ne - (tee_local $0 - (i32.add - (get_local $3) - (i32.const -1) + (br_if $while-in$2 + (i32.and + (tee_local $3 + (i32.ne + (tee_local $2 + (i32.add + (get_local $2) + (i32.const -1) + ) ) + (i32.const 0) ) - (i32.const 0) ) - ) - (i32.ne - (i32.and - (tee_local $2 - (i32.add - (get_local $2) - (i32.const 1) + (i32.ne + (i32.and + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 0) ) - (i32.const 0) ) ) - (set_local $3 - (get_local $0) - ) - (block - (set_local $14 - (get_local $0) - ) - (set_local $11 - (get_local $2) - ) - (set_local $15 - (get_local $3) - ) - (set_local $3 - (i32.const 5) - ) - (br $while-out$1) - ) + (br $jumpthreading$inner$1) ) - (br $while-in$2) ) ) ) - (block - (set_local $14 - (get_local $2) - ) - (set_local $11 - (get_local $0) - ) - (set_local $15 - (get_local $6) - ) - (set_local $3 - (i32.const 5) - ) - ) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 5) - ) - (if - (get_local $15) - (block - (set_local $4 - (get_local $14) - ) - (set_local $5 - (get_local $11) - ) - (set_local $3 - (i32.const 6) - ) + (br_if $jumpthreading$inner$2 + (get_local $3) ) - (block - (set_local $7 - (i32.const 0) - ) - (set_local $8 - (get_local $11) - ) + (set_local $1 + (i32.const 0) ) + (br $label$break$L8) ) - ) - (block $label$break$L8 (if (i32.eq - (get_local $3) - (i32.const 6) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $5) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (tee_local $0 - (i32.and - (get_local $1) - (i32.const 255) - ) + (i32.load8_s + (get_local $0) + ) + (i32.shr_s + (i32.shl + (tee_local $4 + (i32.and + (get_local $1) + (i32.const 255) ) - (i32.const 24) ) (i32.const 24) ) + (i32.const 24) ) - (block - (set_local $7 - (get_local $4) - ) - (set_local $8 + ) + (set_local $1 + (get_local $2) + ) + (block + (set_local $3 + (i32.mul (get_local $5) + (i32.const 16843009) ) ) - (block - (set_local $2 - (i32.mul - (get_local $16) - (i32.const 16843009) - ) - ) - (block $label$break$L11 + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 (if (i32.gt_u - (get_local $4) + (get_local $2) (i32.const 3) ) - (block - (loop $while-in$6 - (block $while-out$5 - (set_local $1 - (i32.add - (tee_local $6 - (i32.xor - (i32.load - (get_local $5) - ) - (get_local $2) - ) - ) - (i32.const -16843009) - ) - ) - (br_if $while-out$5 - (i32.ne + (loop $while-in$6 + (block $while-out$5 + (if + (i32.and + (i32.xor (i32.and - (i32.xor - (i32.and - (get_local $6) - (i32.const -2139062144) + (tee_local $1 + (i32.xor + (i32.load + (get_local $0) + ) + (get_local $3) ) - (i32.const -2139062144) ) - (get_local $1) + (i32.const -2139062144) ) - (i32.const 0) + (i32.const -2139062144) ) - ) - (set_local $1 (i32.add - (get_local $5) - (i32.const 4) + (get_local $1) + (i32.const -16843009) ) ) - (if - (i32.gt_u - (tee_local $4 - (i32.add - (get_local $4) - (i32.const -4) - ) - ) - (i32.const 3) - ) - (set_local $5 - (get_local $1) + (block + (set_local $1 + (get_local $2) ) - (block - (set_local $12 - (get_local $4) - ) - (set_local $13 - (get_local $1) - ) - (set_local $3 - (i32.const 11) + (br $while-out$5) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) + ) + (br_if $jumpthreading$inner$0 + (i32.le_u + (tee_local $1 + (i32.add + (get_local $2) + (i32.const -4) ) - (br $label$break$L11) ) + (i32.const 3) + ) + ) + (block + (set_local $2 + (get_local $1) ) (br $while-in$6) ) ) - (set_local $10 - (get_local $4) - ) - (set_local $9 - (get_local $5) - ) ) (block - (set_local $12 - (get_local $4) - ) - (set_local $13 - (get_local $5) - ) - (set_local $3 - (i32.const 11) + (set_local $1 + (get_local $2) ) + (br $jumpthreading$inner$0) ) ) + (br $jumpthreading$outer$0) ) (if - (i32.eq - (get_local $3) - (i32.const 11) + (i32.eqz + (get_local $1) ) - (if - (i32.eq - (get_local $12) + (block + (set_local $1 (i32.const 0) ) - (block - (set_local $7 - (i32.const 0) - ) - (set_local $8 - (get_local $13) - ) - (br $label$break$L8) - ) - (block - (set_local $10 - (get_local $12) - ) - (set_local $9 - (get_local $13) - ) - ) + (br $label$break$L8) ) ) - (loop $while-in$8 - (block $while-out$7 - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $9) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.shr_s - (i32.shl - (get_local $0) - (i32.const 24) - ) - (i32.const 24) - ) - ) - (block - (set_local $7 - (get_local $10) - ) - (set_local $8 - (get_local $9) - ) - (br $label$break$L8) - ) + ) + (loop $while-in$8 + (br_if $label$break$L8 + (i32.eq + (i32.load8_s + (get_local $0) ) - (set_local $2 - (i32.add - (get_local $9) - (i32.const 1) + (i32.shr_s + (i32.shl + (get_local $4) + (i32.const 24) ) + (i32.const 24) ) - (if - (i32.eq - (tee_local $1 - (i32.add - (get_local $10) - (i32.const -1) - ) - ) - (i32.const 0) - ) - (block - (set_local $7 - (i32.const 0) - ) - (set_local $8 - (get_local $2) - ) - (br $while-out$7) - ) - (block - (set_local $10 - (get_local $1) - ) - (set_local $9 - (get_local $2) - ) - ) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br_if $while-in$8 + (tee_local $1 + (i32.add + (get_local $1) + (i32.const -1) ) - (br $while-in$8) ) ) + (set_local $1 + (i32.const 0) + ) ) ) ) ) (select - (get_local $8) + (get_local $0) (i32.const 0) (i32.ne - (get_local $7) + (get_local $1) (i32.const 0) ) ) @@ -2641,26 +2267,28 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (if - (i32.gt_u - (i32.load - (tee_local $3 - (i32.add - (get_local $0) - (i32.const 20) + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 + (br_if $jumpthreading$inner$0 + (i32.le_u + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 20) + ) + ) ) - ) - ) - (i32.load - (tee_local $4 - (i32.add - (get_local $0) - (i32.const 28) + (i32.load + (tee_local $2 + (i32.add + (get_local $0) + (i32.const 28) + ) + ) ) ) ) - ) - (block (drop (call_indirect $FUNCSIG$iiii (get_local $0) @@ -2677,108 +2305,87 @@ ) ) ) - (if - (i32.eq - (i32.load - (get_local $3) - ) - (i32.const 0) - ) - (set_local $1 - (i32.const -1) - ) - (set_local $2 - (i32.const 3) + (br_if $jumpthreading$inner$0 + (i32.load + (get_local $1) ) ) + (br $jumpthreading$outer$0 + (i32.const -1) + ) ) - (set_local $2 - (i32.const 3) - ) - ) - (if - (i32.eq - (get_local $2) - (i32.const 3) - ) - (block - (if - (i32.lt_u - (tee_local $1 - (i32.load - (tee_local $5 - (i32.add - (get_local $0) - (i32.const 4) - ) + (if + (i32.lt_u + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $0) + (i32.const 4) ) ) ) - (tee_local $2 - (i32.load - (tee_local $6 - (i32.add - (get_local $0) - (i32.const 8) - ) + ) + (tee_local $6 + (i32.load + (tee_local $5 + (i32.add + (get_local $0) + (i32.const 8) ) ) ) ) - (drop - (call_indirect $FUNCSIG$iiii - (get_local $0) - (i32.sub - (get_local $1) - (get_local $2) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load offset=40 - (get_local $0) - ) - (i32.const 7) + ) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $0) + (i32.sub + (get_local $4) + (get_local $6) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load offset=40 + (get_local $0) ) - (i32.const 2) + (i32.const 7) ) + (i32.const 2) ) ) ) - (i32.store offset=16 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store - (get_local $3) - (i32.const 0) - ) - (i32.store - (get_local $6) - (i32.const 0) - ) - (i32.store - (get_local $5) - (i32.const 0) - ) - (set_local $1 - (i32.const 0) - ) ) + (i32.store offset=16 + (get_local $0) + (i32.const 0) + ) + (i32.store + (get_local $2) + (i32.const 0) + ) + (i32.store + (get_local $1) + (i32.const 0) + ) + (i32.store + (get_local $5) + (i32.const 0) + ) + (i32.store + (get_local $3) + (i32.const 0) + ) + (i32.const 0) ) - (get_local $1) ) (func $_cleanup (param $0 i32) (if - (i32.eq + (i32.eqz (i32.load offset=68 (get_local $0) ) - (i32.const 0) ) (call $___unlockfile (get_local $0) @@ -2803,7 +2410,7 @@ (local $19 i32) (local $20 i32) (local $21 i32) - (local $22 i32) + (local $22 f64) (local $23 i32) (local $24 i32) (local $25 i32) @@ -2811,7 +2418,7 @@ (local $27 i32) (local $28 i32) (local $29 i32) - (local $30 f64) + (local $30 i32) (local $31 i32) (local $32 i32) (local $33 i32) @@ -2837,35 +2444,7 @@ (local $53 i32) (local $54 i32) (local $55 i32) - (local $56 i32) - (local $57 i32) - (local $58 i32) - (local $59 i32) - (local $60 i32) - (local $61 i32) - (local $62 i32) - (local $63 i32) - (local $64 i32) - (local $65 i32) - (local $66 i32) - (local $67 i32) - (local $68 i32) - (local $69 i32) - (local $70 i32) - (local $71 i32) - (local $72 i32) - (local $73 i32) - (local $74 i32) - (local $75 i32) - (local $76 i32) - (local $77 i32) - (local $78 i32) - (local $79 i32) - (local $80 i32) - (local $81 i32) - (local $82 i32) - (local $83 i32) - (set_local $31 + (set_local $27 (get_global $STACKTOP) ) (set_global $STACKTOP @@ -2881,33 +2460,33 @@ ) (call_import $abort) ) - (set_local $25 + (set_local $20 (i32.add - (get_local $31) + (get_local $27) (i32.const 16) ) ) - (set_local $19 - (get_local $31) + (set_local $18 + (get_local $27) ) - (set_local $63 + (set_local $41 (i32.add - (get_local $31) + (get_local $27) (i32.const 528) ) ) - (set_local $44 + (set_local $33 (i32.ne (get_local $0) (i32.const 0) ) ) - (set_local $71 - (tee_local $28 + (set_local $45 + (tee_local $23 (i32.add - (tee_local $5 + (tee_local $13 (i32.add - (get_local $31) + (get_local $27) (i32.const 536) ) ) @@ -2915,542 +2494,320 @@ ) ) ) - (set_local $72 + (set_local $46 (i32.add - (get_local $5) + (get_local $13) (i32.const 39) ) ) - (set_local $76 + (set_local $50 (i32.add - (tee_local $73 + (tee_local $47 (i32.add - (get_local $31) + (get_local $27) (i32.const 8) ) ) (i32.const 4) ) ) - (set_local $52 + (set_local $37 (i32.add - (tee_local $5 + (tee_local $13 (i32.add - (get_local $31) + (get_local $27) (i32.const 576) ) ) (i32.const 12) ) ) - (set_local $74 + (set_local $48 (i32.add - (get_local $5) + (get_local $13) (i32.const 11) ) ) - (set_local $77 + (set_local $51 (i32.sub - (tee_local $40 - (get_local $52) + (tee_local $32 + (get_local $37) ) - (tee_local $64 - (tee_local $29 + (tee_local $42 + (tee_local $24 (i32.add - (get_local $31) + (get_local $27) (i32.const 588) ) ) ) ) ) - (set_local $78 + (set_local $52 (i32.sub (i32.const -2) - (get_local $64) + (get_local $42) ) ) - (set_local $79 + (set_local $53 (i32.add - (get_local $40) + (get_local $32) (i32.const 2) ) ) - (set_local $81 + (set_local $55 (i32.add - (tee_local $80 + (tee_local $54 (i32.add - (get_local $31) + (get_local $27) (i32.const 24) ) ) (i32.const 288) ) ) - (set_local $75 - (tee_local $45 + (set_local $49 + (tee_local $34 (i32.add - (get_local $29) + (get_local $24) (i32.const 9) ) ) ) - (set_local $53 + (set_local $38 (i32.add - (get_local $29) + (get_local $24) (i32.const 8) ) ) - (set_local $22 + (set_local $15 (i32.const 0) ) - (set_local $20 - (get_local $1) - ) - (set_local $1 + (set_local $5 (i32.const 0) ) - (set_local $8 + (set_local $13 (i32.const 0) ) - (loop $label$continue$L1 - (block $label$break$L1 - (set_local $22 - (if - (i32.gt_s - (get_local $22) - (i32.const -1) - ) - (if - (i32.gt_s - (get_local $1) - (i32.sub - (i32.const 2147483647) - (get_local $22) - ) - ) - (block - (i32.store - (call $___errno_location) - (i32.const 75) - ) - (i32.const -1) - ) - (i32.add - (get_local $1) - (get_local $22) - ) - ) - (get_local $22) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (get_local $20) - ) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - (block - (set_local $82 - (get_local $22) - ) - (set_local $83 - (get_local $8) - ) - (set_local $12 - (i32.const 242) - ) - (br $label$break$L1) - ) - (set_local $5 - (get_local $20) - ) - ) - (loop $label$continue$L9 - (block $label$break$L9 - (block $switch-default$5 - (block $switch-case$4 - (block $switch-case$3 - (br_table $switch-case$4 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-case$3 $switch-default$5 - (i32.sub - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - ) - ) - (set_local $54 - (get_local $5) - ) - (set_local $65 - (get_local $5) - ) - (set_local $12 - (i32.const 9) - ) - (br $label$break$L9) - ) - (set_local $41 - (get_local $5) - ) - (set_local $55 - (get_local $5) - ) - (br $label$break$L9) - ) - (set_local $1 - (i32.load8_s - (tee_local $5 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - ) - (br $label$continue$L9) - ) - ) - (block $label$break$L12 - (if - (i32.eq - (get_local $12) - (i32.const 9) - ) - (loop $while-in$8 - (block $while-out$7 - (set_local $12 - (i32.const 0) + (block $label$break$L343 + (block $jumpthreading$inner$8 + (loop $label$continue$L1 + (block $label$break$L1 + (set_local $15 + (if + (i32.gt_s + (get_local $15) + (i32.const -1) ) (if - (i32.ne - (i32.shr_s - (i32.shl - (i32.load8_s offset=1 - (get_local $54) - ) - (i32.const 24) - ) - (i32.const 24) + (i32.gt_s + (get_local $5) + (i32.sub + (i32.const 2147483647) + (get_local $15) ) - (i32.const 37) ) (block - (set_local $41 - (get_local $54) - ) - (set_local $55 - (get_local $65) + (i32.store + (call $___errno_location) + (i32.const 75) ) - (br $label$break$L12) + (i32.const -1) ) - ) - (set_local $5 (i32.add - (get_local $65) - (i32.const 1) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $54) - (i32.const 2) - ) - ) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 37) - ) - (block - (set_local $54 - (get_local $1) - ) - (set_local $65 - (get_local $5) - ) - ) - (block - (set_local $41 - (get_local $1) - ) - (set_local $55 - (get_local $5) - ) - (br $while-out$7) + (get_local $5) + (get_local $15) ) ) - (br $while-in$8) - ) - ) - ) - ) - (set_local $17 - (i32.sub - (get_local $55) - (get_local $20) - ) - ) - (if - (get_local $44) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (get_local $15) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $20) - (get_local $17) - (get_local $0) - ) - ) - ) - (if - (i32.ne - (get_local $55) - (get_local $20) - ) - (block - (set_local $20 - (get_local $41) - ) - (set_local $1 - (get_local $17) ) - (br $label$continue$L1) - ) - ) - (set_local $7 - (if - (i32.lt_u - (tee_local $6 - (i32.add - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (tee_local $5 - (i32.add - (get_local $41) - (i32.const 1) - ) - ) - ) + (br_if $jumpthreading$inner$8 + (i32.eqz + (i32.shr_s + (i32.shl + (tee_local $5 + (i32.load8_s + (get_local $1) ) - (i32.const 24) ) (i32.const 24) ) - (i32.const -48) + (i32.const 24) ) ) - (i32.const 10) ) (block - (set_local $1 - (i32.load8_s - (tee_local $5 - (select - (i32.add - (get_local $41) - (i32.const 3) - ) - (get_local $5) - (tee_local $7 - (i32.eq + (set_local $6 + (get_local $5) + ) + (set_local $5 + (get_local $1) + ) + ) + (loop $label$continue$L9 + (block $label$break$L9 + (block $switch-default$5 + (block $switch-case$4 + (block $switch-case$3 + (br_table $switch-case$4 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-default$5 $switch-case$3 $switch-default$5 + (i32.sub (i32.shr_s (i32.shl - (i32.load8_s offset=2 - (get_local $41) - ) + (get_local $6) (i32.const 24) ) (i32.const 24) ) - (i32.const 36) + (i32.const 0) ) ) ) + (set_local $39 + (get_local $5) + ) + (set_local $43 + (get_local $5) + ) + (set_local $28 + (i32.const 9) + ) + (br $label$break$L9) ) + (set_local $29 + (get_local $5) + ) + (set_local $35 + (get_local $5) + ) + (br $label$break$L9) ) - ) - (set_local $11 - (select - (i32.const 1) - (get_local $8) - (get_local $7) - ) - ) - (set_local $9 - (get_local $5) - ) - (select - (get_local $6) - (i32.const -1) - (get_local $7) - ) - ) - (block - (set_local $11 - (get_local $8) - ) - (set_local $9 - (get_local $5) - ) - (i32.const -1) - ) - ) - ) - (block $label$break$L25 - (if - (i32.eq - (i32.and - (tee_local $5 - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) + (set_local $6 + (i32.load8_s + (tee_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) ) - (i32.const 24) ) ) - (i32.const -32) + (br $label$continue$L9) ) - (i32.const 32) ) - (block - (set_local $8 - (i32.const 0) - ) - (loop $while-in$11 - (block $while-out$10 - (br_if $label$break$L25 - (i32.eq - (i32.and - (i32.shl - (i32.const 1) - (i32.add - (get_local $5) - (i32.const -32) - ) - ) - (i32.const 75913) + (block $label$break$L12 + (if + (i32.eq + (get_local $28) + (i32.const 9) + ) + (loop $while-in$8 + (set_local $28 + (i32.const 0) + ) + (if + (i32.ne + (i32.load8_s offset=1 + (get_local $39) ) - (i32.const 0) + (i32.const 37) ) - ) - (set_local $8 - (i32.or - (i32.shl - (i32.const 1) - (i32.add - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const -32) - ) + (block + (set_local $29 + (get_local $39) ) - (get_local $8) + (set_local $35 + (get_local $43) + ) + (br $label$break$L12) + ) + ) + (set_local $35 + (i32.add + (get_local $43) + (i32.const 1) ) ) (if (i32.eq - (i32.and - (tee_local $5 - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (tee_local $6 - (i32.add - (get_local $9) - (i32.const 1) - ) - ) - ) - ) - (i32.const 24) - ) - (i32.const 24) + (i32.load8_s + (tee_local $29 + (i32.add + (get_local $39) + (i32.const 2) ) ) - (i32.const -32) ) - (i32.const 32) - ) - (set_local $9 - (get_local $6) + (i32.const 37) ) (block - (set_local $9 - (get_local $6) + (set_local $39 + (get_local $29) ) - (br $while-out$10) + (set_local $43 + (get_local $35) + ) + (br $while-in$8) ) ) - (br $while-in$11) ) ) ) - (set_local $8 - (i32.const 0) + (set_local $6 + (i32.sub + (get_local $35) + (get_local $1) + ) ) - ) - ) - (block $do-once$12 - (if - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) + (if + (get_local $33) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $1) + (get_local $6) + (get_local $0) + ) ) - (i32.const 24) ) - (i32.const 42) ) - (block + (if + (i32.ne + (get_local $35) + (get_local $1) + ) + (block + (set_local $1 + (get_local $29) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + ) + (set_local $21 (if (i32.lt_u - (tee_local $1 + (tee_local $9 (i32.add (i32.shr_s (i32.shl - (i32.load8_s - (tee_local $6 - (i32.add - (get_local $9) - (i32.const 1) + (tee_local $5 + (i32.load8_s + (tee_local $10 + (i32.add + (get_local $29) + (i32.const 1) + ) ) ) ) @@ -3463,228 +2820,128 @@ ) (i32.const 10) ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s offset=2 - (get_local $9) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 36) - ) - (block - (i32.store - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (i32.const 10) - ) - (set_local $1 - (i32.load - (i32.add - (get_local $3) - (i32.shl - (i32.add - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $6) - ) - (i32.const 24) - ) - (i32.const 24) + (block + (set_local $5 + (i32.load8_s + (tee_local $10 + (select + (i32.add + (get_local $29) + (i32.const 3) + ) + (get_local $10) + (tee_local $8 + (i32.eq + (i32.load8_s offset=2 + (get_local $29) ) - (i32.const -48) + (i32.const 36) ) - (i32.const 3) ) ) ) ) - (set_local $66 + ) + (set_local $7 + (select (i32.const 1) - ) - (set_local $67 - (i32.add - (get_local $9) - (i32.const 3) - ) - ) - (set_local $56 - (get_local $1) + (get_local $13) + (get_local $8) ) ) - (set_local $12 - (i32.const 24) + (select + (get_local $9) + (i32.const -1) + (get_local $8) ) ) - (set_local $12 - (i32.const 24) + (block + (set_local $7 + (get_local $13) + ) + (i32.const -1) ) ) + ) + (block $label$break$L25 (if (i32.eq - (get_local $12) - (i32.const 24) - ) - (block - (set_local $12 - (i32.const 0) - ) - (if - (i32.ne - (get_local $11) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) + (i32.and + (tee_local $8 + (i32.shr_s + (i32.shl + (get_local $5) + (i32.const 24) + ) + (i32.const 24) ) - (br $label$break$L1) ) + (i32.const -32) ) - (if - (i32.eqz - (get_local $44) - ) - (block - (set_local $9 - (get_local $6) - ) - (set_local $21 - (i32.const 0) - ) - (set_local $16 - (i32.const 0) - ) - (br $do-once$12) - ) + (i32.const 32) + ) + (block + (set_local $13 + (get_local $5) ) (set_local $5 - (i32.load - (tee_local $1 + (get_local $8) + ) + (set_local $8 + (i32.const 0) + ) + (loop $while-in$11 + (if + (i32.eqz (i32.and - (i32.add - (i32.load - (get_local $2) + (i32.shl + (i32.const 1) + (i32.add + (get_local $5) + (i32.const -32) ) - (i32.const 3) ) - (i32.const -4) + (i32.const 75913) ) ) - ) - ) - (i32.store - (get_local $2) - (i32.add - (get_local $1) - (i32.const 4) - ) - ) - (set_local $66 - (i32.const 0) - ) - (set_local $67 - (get_local $6) - ) - (set_local $56 - (get_local $5) - ) - ) - ) - (set_local $8 - (if - (i32.lt_s - (get_local $56) - (i32.const 0) - ) - (block - (set_local $9 - (get_local $67) - ) - (set_local $21 - (get_local $66) - ) - (set_local $16 - (i32.sub - (i32.const 0) - (get_local $56) - ) - ) - (i32.or - (get_local $8) - (i32.const 8192) - ) - ) - (block - (set_local $9 - (get_local $67) - ) - (set_local $21 - (get_local $66) - ) - (set_local $16 - (get_local $56) - ) - (get_local $8) - ) - ) - ) - ) - (if - (i32.lt_u - (tee_local $6 - (i32.add - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) + (block + (set_local $5 + (get_local $8) + ) + (br $label$break$L25) ) - (i32.const 24) ) - (i32.const -48) - ) - ) - (i32.const 10) - ) - (block - (set_local $1 - (get_local $9) - ) - (set_local $5 - (i32.const 0) - ) - (loop $while-in$15 - (block $while-out$14 - (set_local $5 - (i32.add - (i32.mul - (get_local $5) - (i32.const 10) + (set_local $8 + (i32.or + (i32.shl + (i32.const 1) + (i32.add + (i32.shr_s + (i32.shl + (get_local $13) + (i32.const 24) + ) + (i32.const 24) + ) + (i32.const -32) + ) ) - (get_local $6) + (get_local $8) ) ) - (br_if $while-out$14 - (i32.ge_u - (tee_local $6 - (i32.add + (br_if $while-in$11 + (i32.eq + (i32.and + (tee_local $5 (i32.shr_s (i32.shl - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (tee_local $13 + (i32.load8_s + (tee_local $10 + (i32.add + (get_local $10) + (i32.const 1) + ) ) ) ) @@ -3692,147 +2949,236 @@ ) (i32.const 24) ) - (i32.const -48) ) + (i32.const -32) ) - (i32.const 10) + (i32.const 32) ) ) - (br $while-in$15) + (set_local $5 + (get_local $8) + ) ) ) - (if - (i32.lt_s + (block + (set_local $13 (get_local $5) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L1) ) - (block - (set_local $9 - (get_local $1) - ) - (set_local $21 - (get_local $11) - ) - (set_local $16 - (get_local $5) - ) + (set_local $5 + (i32.const 0) ) ) ) - (block - (set_local $21 - (get_local $11) - ) - (set_local $16 - (i32.const 0) - ) - ) ) - ) - ) - (set_local $11 - (block $label$break$L46 - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $9) + (block $do-once$12 + (if + (i32.eq + (i32.shr_s + (i32.shl + (get_local $13) + (i32.const 24) ) (i32.const 24) ) - (i32.const 24) + (i32.const 42) ) - (i32.const 46) - ) - (block - (if - (i32.ne - (i32.shr_s - (i32.shl - (tee_local $1 - (i32.load8_s - (tee_local $5 + (block + (set_local $13 + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 + (br_if $jumpthreading$inner$0 + (i32.ge_u + (tee_local $8 (i32.add - (get_local $9) - (i32.const 1) + (i32.load8_s + (tee_local $13 + (i32.add + (get_local $10) + (i32.const 1) + ) + ) + ) + (i32.const -48) ) ) + (i32.const 10) ) ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 42) - ) - (block - (if - (i32.lt_u - (tee_local $6 + (br_if $jumpthreading$inner$0 + (i32.ne + (i32.load8_s offset=2 + (get_local $10) + ) + (i32.const 36) + ) + ) + (i32.store (i32.add - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) + (get_local $4) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + (i32.const 10) + ) + (set_local $13 + (i32.add + (get_local $3) + (i32.shl + (i32.add + (i32.load8_s + (get_local $13) + ) + (i32.const -48) ) - (i32.const 24) + (i32.const 3) ) - (i32.const -48) ) ) - (i32.const 10) + (set_local $10 + (i32.add + (get_local $10) + (i32.const 3) + ) + ) + (set_local $7 + (i32.load + (get_local $13) + ) + ) + (br $jumpthreading$outer$0 + (i32.const 1) + ) ) - (block - (set_local $1 - (get_local $5) + (set_local $28 + (i32.const 0) + ) + (if + (get_local $7) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) ) - (set_local $5 - (i32.const 0) + ) + (if + (i32.eqz + (get_local $33) + ) + (block + (set_local $8 + (get_local $5) + ) + (set_local $10 + (get_local $13) + ) + (set_local $13 + (i32.const 0) + ) + (set_local $17 + (i32.const 0) + ) + (br $do-once$12) + ) + ) + (set_local $7 + (i32.load + (tee_local $10 + (i32.and + (i32.add + (i32.load + (get_local $2) + ) + (i32.const 3) + ) + (i32.const -4) + ) + ) ) ) + (i32.store + (get_local $2) + (i32.add + (get_local $10) + (i32.const 4) + ) + ) + (set_local $10 + (get_local $13) + ) + (i32.const 0) + ) + ) + (set_local $8 + (if + (i32.lt_s + (get_local $7) + (i32.const 0) + ) (block - (set_local $10 - (i32.const 0) + (set_local $17 + (i32.sub + (i32.const 0) + (get_local $7) + ) ) - (br $label$break$L46 + (i32.or (get_local $5) + (i32.const 8192) ) ) + (block + (set_local $17 + (get_local $7) + ) + (get_local $5) + ) ) - (loop $while-in$18 - (set_local $5 + ) + ) + (if + (i32.lt_u + (tee_local $13 + (i32.add + (i32.shr_s + (i32.shl + (get_local $13) + (i32.const 24) + ) + (i32.const 24) + ) + (i32.const -48) + ) + ) + (i32.const 10) + ) + (block + (set_local $8 + (i32.const 0) + ) + (loop $while-in$15 + (set_local $13 (i32.add (i32.mul - (get_local $5) + (get_local $8) (i32.const 10) ) - (get_local $6) + (get_local $13) ) ) (if - (i32.ge_u - (tee_local $6 + (i32.lt_u + (tee_local $9 (i32.add - (i32.shr_s - (i32.shl - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) + (i32.load8_s + (tee_local $10 + (i32.add + (get_local $10) + (i32.const 1) ) - (i32.const 24) ) - (i32.const 24) ) (i32.const -48) ) @@ -3840,29 +3186,78 @@ (i32.const 10) ) (block - (set_local $10 - (get_local $5) + (set_local $8 + (get_local $13) ) - (br $label$break$L46 - (get_local $1) + (set_local $13 + (get_local $9) ) + (br $while-in$15) + ) + (set_local $9 + (get_local $13) ) ) - (br $while-in$18) + ) + (if + (i32.lt_s + (get_local $9) + (i32.const 0) + ) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) + ) + (block + (set_local $8 + (get_local $5) + ) + (set_local $13 + (get_local $7) + ) + (set_local $17 + (get_local $9) + ) + ) + ) + ) + (block + (set_local $8 + (get_local $5) + ) + (set_local $13 + (get_local $7) + ) + (set_local $17 + (i32.const 0) ) ) ) + ) + ) + (set_local $9 + (block $label$break$L46 (if - (i32.lt_u - (tee_local $1 - (i32.add + (i32.eq + (i32.load8_s + (get_local $10) + ) + (i32.const 46) + ) + (block + (if + (i32.ne (i32.shr_s (i32.shl - (i32.load8_s - (tee_local $6 - (i32.add - (get_local $9) - (i32.const 2) + (tee_local $7 + (i32.load8_s + (tee_local $5 + (i32.add + (get_local $10) + (i32.const 1) + ) ) ) ) @@ -3870,4698 +3265,4251 @@ ) (i32.const 24) ) - (i32.const -48) + (i32.const 42) ) - ) - (i32.const 10) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s offset=3 - (get_local $9) - ) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 36) - ) - (block - (i32.store - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - (i32.const 10) - ) - (set_local $1 - (i32.load - (i32.add - (get_local $3) - (i32.shl + (block + (if + (i32.lt_u + (tee_local $7 (i32.add (i32.shr_s (i32.shl - (i32.load8_s - (get_local $6) - ) + (get_local $7) (i32.const 24) ) (i32.const 24) ) (i32.const -48) ) - (i32.const 3) + ) + (i32.const 10) + ) + (set_local $10 + (i32.const 0) + ) + (block + (set_local $7 + (i32.const 0) + ) + (br $label$break$L46 + (get_local $5) ) ) ) - ) - (set_local $10 - (get_local $1) - ) - (br $label$break$L46 - (i32.add - (get_local $9) - (i32.const 4) + (loop $while-in$18 + (set_local $7 + (i32.add + (i32.mul + (get_local $10) + (i32.const 10) + ) + (get_local $7) + ) + ) + (if + (i32.lt_u + (tee_local $9 + (i32.add + (i32.load8_s + (tee_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + ) + (i32.const -48) + ) + ) + (i32.const 10) + ) + (block + (set_local $10 + (get_local $7) + ) + (set_local $7 + (get_local $9) + ) + (br $while-in$18) + ) + (br $label$break$L46 + (get_local $5) + ) + ) ) ) ) - ) - ) - (if - (i32.ne - (get_local $21) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L1) - ) - ) - (if - (get_local $44) - (block - (set_local $5 - (i32.load - (tee_local $1 - (i32.and + (if + (i32.lt_u + (tee_local $5 + (i32.add + (i32.load8_s + (tee_local $9 + (i32.add + (get_local $10) + (i32.const 2) + ) + ) + ) + (i32.const -48) + ) + ) + (i32.const 10) + ) + (if + (i32.eq + (i32.load8_s offset=3 + (get_local $10) + ) + (i32.const 36) + ) + (block + (i32.store (i32.add - (i32.load - (get_local $2) + (get_local $4) + (i32.shl + (get_local $5) + (i32.const 2) ) - (i32.const 3) ) - (i32.const -4) + (i32.const 10) + ) + (set_local $5 + (i32.add + (get_local $3) + (i32.shl + (i32.add + (i32.load8_s + (get_local $9) + ) + (i32.const -48) + ) + (i32.const 3) + ) + ) + ) + (set_local $7 + (i32.load + (get_local $5) + ) + ) + (br $label$break$L46 + (i32.add + (get_local $10) + (i32.const 4) + ) ) ) ) ) - (i32.store - (get_local $2) - (i32.add - (get_local $1) - (i32.const 4) + (if + (get_local $13) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) ) ) - (set_local $10 - (get_local $5) + (if + (get_local $33) + (block + (set_local $7 + (i32.load + (tee_local $5 + (i32.and + (i32.add + (i32.load + (get_local $2) + ) + (i32.const 3) + ) + (i32.const -4) + ) + ) + ) + ) + (i32.store + (get_local $2) + (i32.add + (get_local $5) + (i32.const 4) + ) + ) + (get_local $9) + ) + (block + (set_local $7 + (i32.const 0) + ) + (get_local $9) + ) ) - (get_local $6) ) (block - (set_local $10 - (i32.const 0) + (set_local $7 + (i32.const -1) ) - (get_local $6) + (get_local $10) ) ) ) - (block - (set_local $10 - (i32.const -1) - ) - (get_local $9) - ) ) - ) - ) - (set_local $13 - (i32.const 0) - ) - (loop $while-in$20 - (block $while-out$19 - (if - (i32.gt_u - (tee_local $1 - (i32.add - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $11) - ) - (i32.const 24) + (set_local $11 + (i32.const 0) + ) + (loop $while-in$20 + (if + (i32.gt_u + (tee_local $5 + (i32.add + (i32.load8_s + (get_local $9) ) - (i32.const 24) + (i32.const -65) ) - (i32.const -65) ) + (i32.const 57) ) - (i32.const 57) - ) - (block - (set_local $24 - (i32.const -1) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) ) - (br $label$break$L1) - ) - ) - (set_local $9 - (i32.add - (get_local $11) - (i32.const 1) ) - ) - (if - (i32.lt_u + (set_local $10 (i32.add - (tee_local $5 - (i32.and - (tee_local $1 - (i32.load8_s - (i32.add + (get_local $9) + (i32.const 1) + ) + ) + (if + (i32.lt_u + (i32.add + (tee_local $5 + (i32.and + (tee_local $12 + (i32.load8_s (i32.add - (i32.const 3611) - (i32.mul - (get_local $13) - (i32.const 58) + (i32.add + (i32.const 3611) + (i32.mul + (get_local $11) + (i32.const 58) + ) ) + (get_local $5) ) - (get_local $1) ) ) + (i32.const 255) ) - (i32.const 255) ) + (i32.const -1) ) - (i32.const -1) - ) - (i32.const 8) - ) - (block - (set_local $11 - (get_local $9) + (i32.const 8) ) - (set_local $13 - (get_local $5) + (block + (set_local $9 + (get_local $10) + ) + (set_local $11 + (get_local $5) + ) + (br $while-in$20) ) - ) - (block - (set_local $6 - (get_local $5) + (block + (set_local $16 + (get_local $5) + ) + (set_local $5 + (get_local $10) + ) + (set_local $19 + (get_local $9) + ) ) - (br $while-out$19) ) ) - (br $while-in$20) - ) - ) - (if - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) - (i32.const 24) - ) - (i32.const 24) - ) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L1) - ) - ) - (set_local $5 - (i32.gt_s - (get_local $7) - (i32.const -1) - ) - ) - (block $do-once$21 - (if - (i32.eq - (i32.shr_s - (i32.shl - (get_local $1) + (if + (i32.eqz + (i32.shr_s + (i32.shl + (get_local $12) + (i32.const 24) + ) (i32.const 24) ) - (i32.const 24) ) - (i32.const 19) - ) - (if - (get_local $5) (block - (set_local $24 + (set_local $15 (i32.const -1) ) (br $label$break$L1) ) - (set_local $12 - (i32.const 52) + ) + (set_local $10 + (i32.gt_s + (get_local $21) + (i32.const -1) ) ) - (block - (if - (get_local $5) - (block - (i32.store - (i32.add - (get_local $4) + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (if + (i32.eq + (i32.shr_s (i32.shl - (get_local $7) - (i32.const 2) + (get_local $12) + (i32.const 24) ) + (i32.const 24) ) - (get_local $6) + (i32.const 19) ) - (set_local $5 - (i32.load - (tee_local $1 - (i32.add - (get_local $3) - (i32.shl - (get_local $7) - (i32.const 3) + (if + (get_local $10) + (block + (set_local $15 + (i32.const -1) + ) + (br $label$break$L1) + ) + (br $jumpthreading$inner$1) + ) + (block + (if + (get_local $10) + (block + (i32.store + (i32.add + (get_local $4) + (i32.shl + (get_local $21) + (i32.const 2) + ) ) + (get_local $16) ) + (set_local $12 + (i32.load offset=4 + (tee_local $9 + (i32.add + (get_local $3) + (i32.shl + (get_local $21) + (i32.const 3) + ) + ) + ) + ) + ) + (i32.store + (tee_local $10 + (get_local $18) + ) + (i32.load + (get_local $9) + ) + ) + (i32.store offset=4 + (get_local $10) + (get_local $12) + ) + (br $jumpthreading$inner$1) ) ) - ) - (set_local $1 - (i32.load offset=4 - (get_local $1) + (if + (i32.eqz + (get_local $33) + ) + (block + (set_local $15 + (i32.const 0) + ) + (br $label$break$L1) + ) ) - ) - (i32.store - (tee_local $7 - (get_local $19) + (call $_pop_arg_336 + (get_local $18) + (get_local $16) + (get_local $2) ) - (get_local $5) - ) - (i32.store offset=4 - (get_local $7) - (get_local $1) - ) - (set_local $12 - (i32.const 52) ) - (br $do-once$21) ) + (br $jumpthreading$outer$1) + ) + (set_local $28 + (i32.const 0) ) (if (i32.eqz - (get_local $44) + (get_local $33) ) (block - (set_local $24 - (i32.const 0) + (set_local $1 + (get_local $5) ) - (br $label$break$L1) - ) - ) - (call $_pop_arg_336 - (get_local $19) - (get_local $6) - (get_local $2) - ) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 52) - ) - (block - (set_local $12 - (i32.const 0) - ) - (if - (i32.eqz - (get_local $44) - ) - (block - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) ) - (br $label$continue$L1) ) ) - ) - ) - (set_local $5 - (i32.and - (i32.ne - (get_local $13) - (i32.const 0) - ) - (i32.eq - (i32.and - (tee_local $1 - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $11) - ) - (i32.const 24) - ) - (i32.const 24) + (set_local $10 + (select + (tee_local $9 + (i32.and + (get_local $8) + (i32.const -65537) ) ) - (i32.const 15) - ) - (i32.const 3) - ) - ) - ) - (set_local $18 - (select - (get_local $8) - (tee_local $7 - (i32.and (get_local $8) - (i32.const -65537) - ) - ) - (i32.eq - (i32.and - (get_local $8) - (i32.const 8192) - ) - (i32.const 0) - ) - ) - ) - (block $switch$24 - (block $switch-default$127 - (block $switch-case$49 - (block $switch-case$48 - (block $switch-case$47 - (block $switch-case$46 - (block $switch-case$45 - (block $switch-case$44 - (block $switch-case$43 - (block $switch-case$41 - (block $switch-case$40 - (block $switch-case$36 - (block $switch-case$35 - (block $switch-case$34 - (br_table $switch-case$49 $switch-default$127 $switch-case$47 $switch-default$127 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$48 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$49 $switch-default$127 $switch-case$44 $switch-case$41 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-case$41 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$45 $switch-case$34 $switch-case$40 $switch-case$35 $switch-default$127 $switch-default$127 $switch-case$46 $switch-default$127 $switch-case$43 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 - (i32.sub - (tee_local $26 - (select - (i32.and - (get_local $1) - (i32.const -33) - ) - (get_local $1) - (get_local $5) - ) - ) - (i32.const 65) - ) - ) - ) - (block $switch-default$33 - (block $switch-case$32 - (block $switch-case$31 - (block $switch-case$30 - (block $switch-case$29 - (block $switch-case$28 - (block $switch-case$27 - (block $switch-case$26 - (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33 - (i32.sub - (get_local $13) - (i32.const 0) + (i32.and + (get_local $8) + (i32.const 8192) + ) + ) + ) + (block $jumpthreading$outer$7 + (block $jumpthreading$inner$7 + (block $jumpthreading$inner$6 + (block $jumpthreading$inner$5 + (block $jumpthreading$inner$4 + (block $jumpthreading$inner$3 + (block $jumpthreading$inner$2 + (block $switch-default$127 + (block $switch-case$49 + (block $switch-case$48 + (block $switch-case$47 + (block $switch-case$46 + (block $switch-case$45 + (block $switch-case$44 + (block $switch-case$43 + (block $switch-case$41 + (block $switch-case$40 + (block $switch-case$36 + (block $switch-case$35 + (block $switch-case$34 + (br_table $switch-case$49 $switch-default$127 $switch-case$47 $switch-default$127 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$48 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$49 $switch-default$127 $switch-case$44 $switch-case$41 $switch-case$49 $switch-case$49 $switch-case$49 $switch-default$127 $switch-case$41 $switch-default$127 $switch-default$127 $switch-default$127 $switch-case$45 $switch-case$34 $switch-case$40 $switch-case$35 $switch-default$127 $switch-default$127 $switch-case$46 $switch-default$127 $switch-case$43 $switch-default$127 $switch-default$127 $switch-case$36 $switch-default$127 + (i32.sub + (tee_local $16 + (select + (i32.and + (tee_local $8 + (i32.load8_s + (get_local $19) + ) + ) + (i32.const -33) + ) + (get_local $8) + (i32.and + (i32.ne + (get_local $11) + (i32.const 0) + ) + (i32.eq + (i32.and + (get_local $8) + (i32.const 15) + ) + (i32.const 3) + ) + ) + ) + ) + (i32.const 65) + ) + ) + ) + (block $switch-default$33 + (block $switch-case$32 + (block $switch-case$31 + (block $switch-case$30 + (block $switch-case$29 + (block $switch-case$28 + (block $switch-case$27 + (block $switch-case$26 + (br_table $switch-case$26 $switch-case$27 $switch-case$28 $switch-case$29 $switch-case$30 $switch-default$33 $switch-case$31 $switch-case$32 $switch-default$33 + (i32.sub + (get_local $11) + (i32.const 0) + ) + ) + ) + (i32.store + (i32.load + (get_local $18) + ) + (get_local $15) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store + (i32.load + (get_local $18) + ) + (get_local $15) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store + (tee_local $1 + (i32.load + (get_local $18) + ) + ) + (get_local $15) + ) + (i32.store offset=4 + (get_local $1) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $15) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store16 + (i32.load + (get_local $18) + ) + (i32.and + (get_local $15) + (i32.const 65535) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store8 + (i32.load + (get_local $18) + ) + (i32.and + (get_local $15) + (i32.const 255) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store + (i32.load + (get_local $18) + ) + (get_local $15) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (i32.store + (tee_local $1 + (i32.load + (get_local $18) + ) + ) + (get_local $15) ) + (i32.store offset=4 + (get_local $1) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $15) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) + ) + (set_local $1 + (get_local $5) ) + (set_local $5 + (get_local $6) + ) + (br $label$continue$L1) ) - (i32.store - (i32.load - (get_local $19) + (set_local $1 + (i32.or + (get_local $10) + (i32.const 8) ) - (get_local $22) ) - (set_local $20 - (get_local $9) + (set_local $7 + (select + (get_local $7) + (i32.const 8) + (i32.gt_u + (get_local $7) + (i32.const 8) + ) + ) + ) + (set_local $16 + (i32.const 120) + ) + (br $jumpthreading$inner$2) + ) + (set_local $1 + (get_local $10) + ) + (br $jumpthreading$inner$2) + ) + (if + (i32.and + (i32.eqz + (tee_local $6 + (i32.load + (tee_local $1 + (get_local $18) + ) + ) + ) + ) + (i32.eqz + (tee_local $8 + (i32.load offset=4 + (get_local $1) + ) + ) ) + ) + (set_local $8 + (get_local $23) + ) + (block (set_local $1 - (get_local $17) + (get_local $6) + ) + (set_local $6 + (get_local $8) ) (set_local $8 - (get_local $21) + (get_local $23) ) - (br $label$continue$L1) - ) - (i32.store - (i32.load - (get_local $19) + (loop $while-in$39 + (i32.store8 + (tee_local $8 + (i32.add + (get_local $8) + (i32.const -1) + ) + ) + (i32.and + (i32.or + (i32.and + (get_local $1) + (i32.const 7) + ) + (i32.const 48) + ) + (i32.const 255) + ) + ) + (br_if $while-in$39 + (i32.eqz + (i32.and + (i32.eqz + (tee_local $1 + (call $_bitshift64Lshr + (get_local $1) + (get_local $6) + (i32.const 3) + ) + ) + ) + (i32.eqz + (tee_local $6 + (get_global $tempRet0) + ) + ) + ) + ) + ) ) - (get_local $22) ) - (set_local $20 - (get_local $9) + ) + (if + (i32.and + (get_local $10) + (i32.const 8) ) - (set_local $1 - (get_local $17) + (block + (set_local $6 + (get_local $8) + ) + (set_local $1 + (get_local $10) + ) + (set_local $7 + (select + (tee_local $10 + (i32.add + (i32.sub + (get_local $45) + (get_local $8) + ) + (i32.const 1) + ) + ) + (get_local $7) + (i32.lt_s + (get_local $7) + (get_local $10) + ) + ) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$7) ) - (set_local $8 - (get_local $21) + (block + (set_local $6 + (get_local $8) + ) + (set_local $1 + (get_local $10) + ) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$7) ) - (br $label$continue$L1) ) - (i32.store - (tee_local $1 - (i32.load - (get_local $19) + ) + (set_local $1 + (i32.load + (tee_local $6 + (get_local $18) + ) + ) + ) + (if + (i32.lt_s + (tee_local $6 + (i32.load offset=4 + (get_local $6) ) ) - (get_local $22) + (i32.const 0) ) - (i32.store offset=4 - (get_local $1) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $22) + (block + (i32.store + (tee_local $8 + (get_local $18) + ) + (tee_local $1 + (call $_i64Subtract (i32.const 0) + (i32.const 0) + (get_local $1) + (get_local $6) ) - (i32.const 31) ) - (i32.const 31) ) + (i32.store offset=4 + (get_local $8) + (tee_local $6 + (get_global $tempRet0) + ) + ) + (set_local $8 + (i32.const 1) + ) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$3) ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) ) - (i32.store16 - (i32.load - (get_local $19) - ) + (if (i32.and - (get_local $22) - (i32.const 65535) + (get_local $10) + (i32.const 2048) + ) + (block + (set_local $8 + (i32.const 1) + ) + (set_local $9 + (i32.const 4092) + ) + (br $jumpthreading$inner$3) + ) + (block + (set_local $8 + (tee_local $9 + (i32.and + (get_local $10) + (i32.const 1) + ) + ) + ) + (set_local $9 + (select + (i32.const 4093) + (i32.const 4091) + (get_local $9) + ) + ) + (br $jumpthreading$inner$3) ) ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) ) - (i32.store8 + (set_local $1 (i32.load - (get_local $19) - ) - (i32.and - (get_local $22) - (i32.const 255) + (tee_local $6 + (get_local $18) + ) ) ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $17) + (set_local $6 + (i32.load offset=4 + (get_local $6) + ) ) (set_local $8 - (get_local $21) + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) ) - (br $label$continue$L1) + (br $jumpthreading$inner$3) ) - (i32.store - (i32.load - (get_local $19) + (set_local $1 + (get_local $18) + ) + (i32.store8 + (get_local $46) + (i32.and + (i32.load + (get_local $1) + ) + (i32.const 255) ) - (get_local $22) ) - (set_local $20 + (set_local $6 + (get_local $46) + ) + (set_local $10 (get_local $9) ) - (set_local $1 - (get_local $17) + (set_local $11 + (i32.const 1) ) (set_local $8 - (get_local $21) + (i32.const 0) ) - (br $label$continue$L1) - ) - (i32.store - (tee_local $1 - (i32.load - (get_local $19) - ) + (set_local $9 + (i32.const 4091) ) - (get_local $22) - ) - (i32.store offset=4 - (get_local $1) - (i32.shr_s - (i32.shl - (i32.lt_s - (get_local $22) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) + (set_local $1 + (get_local $23) ) - ) - (set_local $20 - (get_local $9) + (br $jumpthreading$outer$7) ) (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) + (call $_strerror + (i32.load + (call $___errno_location) + ) + ) ) - (br $label$continue$L1) - ) - (set_local $20 - (get_local $9) + (br $jumpthreading$inner$4) ) (set_local $1 - (get_local $17) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) - ) - (set_local $46 - (i32.or - (get_local $18) - (i32.const 8) - ) - ) - (set_local $57 - (select - (get_local $10) - (i32.const 8) - (i32.gt_u - (get_local $10) - (i32.const 8) - ) - ) - ) - (set_local $68 - (i32.const 120) - ) - (set_local $12 - (i32.const 64) - ) - (br $switch$24) - ) - (set_local $46 - (get_local $18) - ) - (set_local $57 - (get_local $10) - ) - (set_local $68 - (get_local $26) - ) - (set_local $12 - (i32.const 64) - ) - (br $switch$24) - ) - (if - (i32.and - (i32.eq - (tee_local $5 - (i32.load + (select (tee_local $1 - (get_local $19) + (i32.load + (get_local $18) + ) + ) + (i32.const 4101) + (i32.ne + (get_local $1) + (i32.const 0) ) ) ) - (i32.const 0) + (br $jumpthreading$inner$4) ) - (i32.eq - (tee_local $1 - (i32.load offset=4 - (get_local $1) - ) + (set_local $1 + (get_local $18) + ) + (i32.store + (get_local $47) + (i32.load + (get_local $1) ) + ) + (i32.store + (get_local $50) (i32.const 0) ) - ) - (set_local $6 - (get_local $28) - ) - (block - (set_local $6 - (get_local $28) + (i32.store + (get_local $18) + (get_local $47) ) - (loop $while-in$39 - (block $while-out$38 - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) - ) - ) - (i32.and - (i32.or - (i32.and - (get_local $5) - (i32.const 7) - ) - (i32.const 48) - ) - (i32.const 255) - ) - ) - (br_if $while-out$38 - (i32.and - (i32.eq - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $1) - (i32.const 3) - ) - ) - (i32.const 0) - ) - (i32.eq - (tee_local $1 - (get_global $tempRet0) - ) - (i32.const 0) - ) - ) - ) - (br $while-in$39) - ) + (set_local $8 + (i32.const -1) ) + (br $jumpthreading$inner$5) ) - ) - (set_local $58 (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 8) - ) - (i32.const 0) - ) + (get_local $7) (block - (set_local $34 - (get_local $18) - ) - (set_local $32 - (get_local $10) - ) - (set_local $35 - (i32.const 0) - ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) + (set_local $8 + (get_local $7) ) - (get_local $6) + (br $jumpthreading$inner$5) ) (block - (set_local $5 - (i32.lt_s - (get_local $10) - (tee_local $1 - (i32.add - (i32.sub - (get_local $71) - (get_local $6) - ) - (i32.const 1) - ) - ) - ) - ) - (set_local $34 - (get_local $18) - ) - (set_local $32 - (select - (get_local $1) - (get_local $10) - (get_local $5) - ) - ) - (set_local $35 + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) (i32.const 0) + (get_local $10) ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) + (set_local $6 + (i32.const 0) ) - (get_local $6) + (br $jumpthreading$inner$6) ) ) ) - (br $switch$24) - ) - (set_local $5 - (i32.load - (tee_local $1 - (get_local $19) + (set_local $14 + (f64.load + (get_local $18) ) ) - ) - (if - (i32.lt_s - (tee_local $33 - (i32.load offset=4 - (get_local $1) - ) - ) + (i32.store + (get_local $20) (i32.const 0) ) - (block - (set_local $1 - (call $_i64Subtract - (i32.const 0) - (i32.const 0) - (get_local $5) - (get_local $33) - ) - ) - (set_local $5 - (get_global $tempRet0) - ) - (i32.store - (tee_local $33 - (get_local $19) - ) - (get_local $1) - ) - (i32.store offset=4 - (get_local $33) - (get_local $5) - ) - (set_local $33 - (get_local $1) - ) - (set_local $59 - (get_local $5) - ) - (set_local $60 - (i32.const 1) - ) - (set_local $61 - (i32.const 4091) - ) - (set_local $12 - (i32.const 76) - ) - (br $switch$24) + (f64.store + (get_global $tempDoublePtr) + (get_local $14) ) - ) - (set_local $33 - (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) + (set_local $36 + (if + (i32.lt_s + (i32.load offset=4 + (get_global $tempDoublePtr) + ) + (i32.const 0) ) - (i32.const 0) - ) - (block - (set_local $1 - (select - (i32.const 4091) - (i32.const 4093) - (i32.eq - (tee_local $6 - (i32.and - (get_local $18) - (i32.const 1) - ) - ) - (i32.const 0) + (block + (set_local $30 + (i32.const 1) + ) + (set_local $14 + (f64.neg + (get_local $14) ) ) + (i32.const 4108) ) - (set_local $59 - (get_local $33) - ) - (set_local $60 - (get_local $6) - ) - (set_local $61 - (get_local $1) - ) - (set_local $12 - (i32.const 76) - ) - (get_local $5) - ) - (block - (set_local $59 - (get_local $33) - ) - (set_local $60 - (i32.const 1) - ) - (set_local $61 - (i32.const 4092) - ) - (set_local $12 - (i32.const 76) - ) - (get_local $5) - ) - ) - ) - (br $switch$24) - ) - (set_local $33 - (i32.load - (tee_local $1 - (get_local $19) - ) - ) - ) - (set_local $59 - (i32.load offset=4 - (get_local $1) - ) - ) - (set_local $60 - (i32.const 0) - ) - (set_local $61 - (i32.const 4091) - ) - (set_local $12 - (i32.const 76) - ) - (br $switch$24) - ) - (set_local $1 - (i32.load - (get_local $19) - ) - ) - (i32.store8 - (get_local $72) - (i32.and - (get_local $1) - (i32.const 255) - ) - ) - (set_local $47 - (get_local $72) - ) - (set_local $37 - (get_local $7) - ) - (set_local $42 - (i32.const 1) - ) - (set_local $43 - (i32.const 0) - ) - (set_local $48 - (i32.const 4091) - ) - (set_local $49 - (get_local $28) - ) - (br $switch$24) - ) - (set_local $50 - (call $_strerror - (i32.load - (call $___errno_location) - ) - ) - ) - (set_local $12 - (i32.const 82) - ) - (br $switch$24) - ) - (set_local $5 - (i32.ne - (tee_local $1 - (i32.load - (get_local $19) - ) - ) - (i32.const 0) - ) - ) - (set_local $50 - (select - (get_local $1) - (i32.const 4101) - (get_local $5) - ) - ) - (set_local $12 - (i32.const 82) - ) - (br $switch$24) - ) - (set_local $1 - (i32.load - (get_local $19) - ) - ) - (i32.store - (get_local $73) - (get_local $1) - ) - (i32.store - (get_local $76) - (i32.const 0) - ) - (i32.store - (get_local $19) - (get_local $73) - ) - (set_local $69 - (i32.const -1) - ) - (set_local $12 - (i32.const 86) - ) - (br $switch$24) - ) - (set_local $12 - (if - (i32.eq - (get_local $10) - (i32.const 0) - ) - (block - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (i32.const 0) - (get_local $18) - ) - (set_local $38 - (i32.const 0) - ) - (i32.const 98) - ) - (block - (set_local $69 - (get_local $10) - ) - (i32.const 86) - ) - ) - ) - (br $switch$24) - ) - (set_local $14 - (f64.load - (get_local $19) - ) - ) - (i32.store - (get_local $25) - (i32.const 0) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $14) - ) - (set_local $51 - (if - (i32.lt_s - (i32.load offset=4 - (get_global $tempDoublePtr) - ) - (i32.const 0) - ) - (block - (set_local $39 - (i32.const 4108) - ) - (set_local $14 - (f64.neg - (get_local $14) - ) - ) - (i32.const 1) - ) - (if - (i32.eq - (i32.and - (get_local $18) - (i32.const 2048) - ) - (i32.const 0) - ) - (block - (set_local $39 - (select - (i32.const 4109) - (i32.const 4114) - (i32.eq - (tee_local $1 - (i32.and - (get_local $18) - (i32.const 1) - ) - ) - (i32.const 0) - ) - ) - ) - (get_local $1) - ) - (block - (set_local $39 - (i32.const 4111) - ) - (i32.const 1) - ) - ) - ) - ) - (f64.store - (get_global $tempDoublePtr) - (get_local $14) - ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (block $do-once$56 - (if - (i32.or - (i32.lt_u - (tee_local $1 - (i32.and - (i32.load offset=4 - (get_global $tempDoublePtr) - ) - (i32.const 2146435072) - ) - ) - (i32.const 2146435072) - ) - (i32.and - (i32.eq - (get_local $1) - (i32.const 2146435072) - ) - (i32.const 0) - ) - ) - (block - (if - (tee_local $5 - (f64.ne - (tee_local $14 - (f64.mul - (call $_frexpl - (get_local $14) - (get_local $25) - ) - (f64.const 2) - ) - ) - (f64.const 0) - ) - ) - (i32.store - (get_local $25) - (i32.add - (i32.load - (get_local $25) - ) - (i32.const -1) - ) - ) - ) - (if - (i32.eq - (tee_local $15 - (i32.or - (get_local $26) - (i32.const 32) - ) - ) - (i32.const 97) - ) - (block - (set_local $9 - (select - (get_local $39) - (i32.add - (get_local $39) - (i32.const 9) - ) - (i32.eq - (tee_local $6 - (i32.and - (get_local $26) - (i32.const 32) - ) - ) - (i32.const 0) - ) - ) - ) - (set_local $7 - (i32.or - (get_local $51) - (i32.const 2) - ) - ) - (set_local $14 - (if - (i32.or - (i32.gt_u - (get_local $10) - (i32.const 11) - ) - (i32.eq - (tee_local $1 - (i32.sub - (i32.const 12) + (if + (i32.and (get_local $10) + (i32.const 2048) ) - ) - (i32.const 0) - ) - ) - (get_local $14) - (block - (set_local $30 - (f64.const 8) - ) - (loop $while-in$61 - (block $while-out$60 - (set_local $30 - (f64.mul - (get_local $30) - (f64.const 16) + (block + (set_local $30 + (i32.const 1) ) + (i32.const 4111) ) - (br_if $while-out$60 - (i32.eq + (block + (set_local $30 (tee_local $1 - (i32.add - (get_local $1) - (i32.const -1) + (i32.and + (get_local $10) + (i32.const 1) ) ) - (i32.const 0) - ) - ) - (br $while-in$61) - ) - ) - (select - (f64.neg - (f64.add - (get_local $30) - (f64.sub - (f64.neg - (get_local $14) - ) - (get_local $30) - ) - ) - ) - (f64.sub - (f64.add - (get_local $14) - (get_local $30) - ) - (get_local $30) - ) - (i32.eq - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $9) - ) - (i32.const 24) ) - (i32.const 24) - ) - (i32.const 45) - ) - ) - ) - ) - ) - (set_local $5 - (i32.lt_s - (tee_local $1 - (i32.load - (get_local $25) - ) - ) - (i32.const 0) - ) - ) - (set_local $5 - (i32.shr_s - (i32.shl - (i32.lt_s - (tee_local $8 - (select - (i32.sub - (i32.const 0) + (select + (i32.const 4114) + (i32.const 4109) (get_local $1) ) - (get_local $1) - (get_local $5) - ) - ) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) - (i32.store8 - (i32.add - (tee_local $5 - (if - (i32.eq - (tee_local $5 - (call $_fmt_u - (get_local $8) - (get_local $5) - (get_local $52) - ) - ) - (get_local $52) - ) - (block - (i32.store8 - (get_local $74) - (i32.const 48) ) - (get_local $74) ) - (get_local $5) ) ) - (i32.const -1) - ) - (i32.and - (i32.add - (i32.and - (i32.shr_s - (get_local $1) - (i32.const 31) - ) - (i32.const 2) - ) - (i32.const 43) + (f64.store + (get_global $tempDoublePtr) + (get_local $14) ) - (i32.const 255) - ) - ) - (i32.store8 - (tee_local $8 - (i32.add + (set_local $1 (get_local $5) - (i32.const -2) - ) - ) - (i32.and - (i32.add - (get_local $26) - (i32.const 15) - ) - (i32.const 255) - ) - ) - (set_local $5 - (i32.lt_s - (get_local $10) - (i32.const 1) - ) - ) - (set_local $13 - (i32.eq - (i32.and - (get_local $18) - (i32.const 8) ) - (i32.const 0) - ) - ) - (set_local $11 - (get_local $29) - ) - (loop $while-in$63 - (block $while-out$62 - (i32.store8 - (get_local $11) - (i32.and - (i32.or - (i32.and - (i32.load8_s - (i32.add - (tee_local $1 - (i32.trunc_s/f64 - (get_local $14) + (set_local $5 + (block $do-once$56 + (if + (i32.or + (i32.lt_u + (tee_local $5 + (i32.and + (i32.load offset=4 + (get_global $tempDoublePtr) ) + (i32.const 2146435072) ) - (i32.const 4075) ) + (i32.const 2146435072) ) - (i32.const 255) - ) - (get_local $6) - ) - (i32.const 255) - ) - ) - (set_local $14 - (f64.mul - (f64.sub - (get_local $14) - (f64.convert_s/i32 - (get_local $1) - ) - ) - (f64.const 16) - ) - ) - (set_local $11 - (block $do-once$64 - (if - (i32.eq - (i32.sub - (tee_local $1 - (i32.add - (get_local $11) - (i32.const 1) - ) + (i32.and + (i32.eq + (get_local $5) + (i32.const 2146435072) ) - (get_local $64) + (i32.const 0) ) - (i32.const 1) ) (block - (br_if $do-once$64 - (get_local $1) - (i32.and - (get_local $13) - (i32.and - (get_local $5) - (f64.eq - (get_local $14) - (f64.const 0) + (if + (tee_local $5 + (f64.ne + (tee_local $22 + (f64.mul + (call $_frexpl + (get_local $14) + (get_local $20) + ) + (f64.const 2) + ) ) + (f64.const 0) ) ) - ) - (i32.store8 - (get_local $1) - (i32.const 46) - ) - (i32.add - (get_local $11) - (i32.const 2) - ) - ) - (get_local $1) - ) - ) - ) - (if - (f64.eq - (get_local $14) - (f64.const 0) - ) - (block - (set_local $1 - (get_local $11) - ) - (br $while-out$62) - ) - ) - (br $while-in$63) - ) - ) - (set_local $5 - (i32.and - (i32.ne - (get_local $10) - (i32.const 0) - ) - (i32.lt_s - (i32.add - (get_local $78) - (get_local $1) - ) - (get_local $10) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (tee_local $5 - (i32.add - (tee_local $6 - (select - (i32.sub - (i32.add - (get_local $79) - (get_local $10) - ) - (get_local $8) - ) - (i32.add - (i32.sub - (get_local $77) - (get_local $8) - ) - (get_local $1) - ) - (get_local $5) - ) - ) - (get_local $7) - ) - ) - (get_local $18) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $9) - (get_local $7) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $16) - (get_local $5) - (i32.xor - (get_local $18) - (i32.const 65536) - ) - ) - (set_local $1 - (i32.sub - (get_local $1) - (get_local $64) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $29) - (get_local $1) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.sub - (get_local $6) - (i32.add - (get_local $1) - (tee_local $1 - (i32.sub - (get_local $40) - (get_local $8) - ) - ) - ) - ) - (i32.const 0) - (i32.const 0) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (get_local $1) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (get_local $5) - (i32.xor - (get_local $18) - (i32.const 8192) - ) - ) - (br $do-once$56 - (select - (get_local $16) - (get_local $5) - (i32.lt_s - (get_local $5) - (get_local $16) - ) - ) - ) - ) - ) - (set_local $1 - (select - (i32.const 6) - (get_local $10) - (i32.lt_s - (get_local $10) - (i32.const 0) - ) - ) - ) - (set_local $62 - (tee_local $9 - (select - (get_local $80) - (get_local $81) - (i32.lt_s - (if - (get_local $5) - (block - (i32.store - (get_local $25) - (tee_local $5 - (i32.add - (i32.load - (get_local $25) + (i32.store + (get_local $20) + (i32.add + (i32.load + (get_local $20) + ) + (i32.const -1) + ) ) - (i32.const -28) ) - ) - ) - (set_local $14 - (f64.mul - (get_local $14) - (f64.const 268435456) - ) - ) - (get_local $5) - ) - (i32.load - (get_local $25) - ) - ) - (i32.const 0) - ) - ) - ) - ) - (set_local $7 - (get_local $9) - ) - (loop $while-in$67 - (block $while-out$66 - (i32.store - (get_local $7) - (tee_local $5 - (i32.trunc_s/f64 - (get_local $14) - ) - ) - ) - (set_local $7 - (i32.add - (get_local $7) - (i32.const 4) - ) - ) - (if - (f64.eq - (tee_local $14 - (f64.mul - (f64.sub - (get_local $14) - (f64.convert_u/i32 - (get_local $5) - ) - ) - (f64.const 1e9) - ) - ) - (f64.const 0) - ) - (block - (set_local $6 - (get_local $7) - ) - (br $while-out$66) - ) - ) - (br $while-in$67) - ) - ) - (if - (i32.gt_s - (tee_local $5 - (i32.load - (get_local $25) - ) - ) - (i32.const 0) - ) - (block - (set_local $8 - (get_local $9) - ) - (set_local $13 - (get_local $6) - ) - (loop $while-in$69 - (block $while-out$68 - (set_local $11 - (select - (i32.const 29) - (get_local $5) - (i32.gt_s - (get_local $5) - (i32.const 29) - ) - ) - ) - (set_local $7 - (block $do-once$70 - (if - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $13) - (i32.const -4) + (if + (i32.eq + (tee_local $25 + (i32.or + (get_local $16) + (i32.const 32) + ) + ) + (i32.const 97) ) - ) - (get_local $8) - ) - (get_local $8) - (block - (set_local $5 - (i32.const 0) - ) - (set_local $10 - (get_local $7) - ) - (loop $while-in$73 - (block $while-out$72 - (set_local $6 - (call $___uremdi3 - (tee_local $5 - (call $_i64Add - (call $_bitshift64Shl - (i32.load - (get_local $10) + (block + (set_local $19 + (select + (i32.add + (get_local $36) + (i32.const 9) + ) + (get_local $36) + (tee_local $9 + (i32.and + (get_local $16) + (i32.const 32) + ) + ) + ) + ) + (set_local $8 + (i32.or + (get_local $30) + (i32.const 2) + ) + ) + (set_local $14 + (if + (i32.or + (i32.gt_u + (get_local $7) + (i32.const 11) + ) + (i32.eqz + (tee_local $5 + (i32.sub + (i32.const 12) + (get_local $7) ) - (i32.const 0) - (get_local $11) ) - (get_global $tempRet0) - (get_local $5) - (i32.const 0) ) ) - (tee_local $7 - (get_global $tempRet0) + (get_local $22) + (block + (set_local $14 + (f64.const 8) + ) + (loop $while-in$61 + (set_local $14 + (f64.mul + (get_local $14) + (f64.const 16) + ) + ) + (br_if $while-in$61 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + ) + ) + (select + (f64.neg + (f64.add + (get_local $14) + (f64.sub + (f64.neg + (get_local $22) + ) + (get_local $14) + ) + ) + ) + (f64.sub + (f64.add + (get_local $22) + (get_local $14) + ) + (get_local $14) + ) + (i32.eq + (i32.load8_s + (get_local $19) + ) + (i32.const 45) + ) + ) ) - (i32.const 1000000000) - (i32.const 0) ) ) - (i32.store - (get_local $10) - (get_local $6) + (i32.store8 + (i32.add + (tee_local $6 + (if + (i32.eq + (tee_local $6 + (call $_fmt_u + (tee_local $6 + (select + (i32.sub + (i32.const 0) + (tee_local $5 + (i32.load + (get_local $20) + ) + ) + ) + (get_local $5) + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + ) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $6) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + (get_local $37) + ) + ) + (get_local $37) + ) + (block + (i32.store8 + (get_local $48) + (i32.const 48) + ) + (get_local $48) + ) + (get_local $6) + ) + ) + (i32.const -1) + ) + (i32.and + (i32.add + (i32.and + (i32.shr_s + (get_local $5) + (i32.const 31) + ) + (i32.const 2) + ) + (i32.const 43) + ) + (i32.const 255) + ) + ) + (i32.store8 + (tee_local $11 + (i32.add + (get_local $6) + (i32.const -2) + ) + ) + (i32.and + (i32.add + (get_local $16) + (i32.const 15) + ) + (i32.const 255) + ) + ) + (set_local $12 + (i32.lt_s + (get_local $7) + (i32.const 1) + ) + ) + (set_local $16 + (i32.eqz + (i32.and + (get_local $10) + (i32.const 8) + ) + ) ) (set_local $5 - (call $___udivdi3 + (get_local $24) + ) + (loop $while-in$63 + (i32.store8 (get_local $5) - (get_local $7) - (i32.const 1000000000) - (i32.const 0) + (i32.and + (i32.or + (i32.and + (i32.load8_s + (i32.add + (tee_local $6 + (i32.trunc_s/f64 + (get_local $14) + ) + ) + (i32.const 4075) + ) + ) + (i32.const 255) + ) + (get_local $9) + ) + (i32.const 255) + ) + ) + (set_local $14 + (f64.mul + (f64.sub + (get_local $14) + (f64.convert_s/i32 + (get_local $6) + ) + ) + (f64.const 16) + ) + ) + (set_local $5 + (block $do-once$64 + (if + (i32.eq + (i32.sub + (tee_local $6 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (get_local $42) + ) + (i32.const 1) + ) + (block + (br_if $do-once$64 + (get_local $6) + (i32.and + (get_local $16) + (i32.and + (get_local $12) + (f64.eq + (get_local $14) + (f64.const 0) + ) + ) + ) + ) + (i32.store8 + (get_local $6) + (i32.const 46) + ) + (i32.add + (get_local $5) + (i32.const 2) + ) + ) + (get_local $6) + ) + ) + ) + (br_if $while-in$63 + (f64.ne + (get_local $14) + (f64.const 0) + ) + ) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (tee_local $6 + (i32.add + (tee_local $7 + (select + (i32.sub + (i32.add + (get_local $53) + (get_local $7) + ) + (get_local $11) + ) + (i32.add + (i32.sub + (get_local $51) + (get_local $11) + ) + (get_local $5) + ) + (i32.and + (i32.ne + (get_local $7) + (i32.const 0) + ) + (i32.lt_s + (i32.add + (get_local $52) + (get_local $5) + ) + (get_local $7) + ) + ) + ) + ) + (get_local $8) + ) ) + (get_local $10) ) (if - (i32.lt_u - (tee_local $7 - (i32.add - (get_local $10) - (i32.const -4) + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) ) - (get_local $8) ) - (br $while-out$72) - (set_local $10 - (get_local $7) + (drop + (call $___fwritex + (get_local $19) + (get_local $8) + (get_local $0) + ) ) ) - (br $while-in$73) - ) - ) - (br_if $do-once$70 - (get_local $8) - (i32.eq - (get_local $5) - (i32.const 0) - ) - ) - (i32.store - (tee_local $7 - (i32.add - (get_local $8) - (i32.const -4) - ) - ) - (get_local $5) - ) - (get_local $7) - ) - ) - ) - ) - (loop $while-in$75 - (block $while-out$74 - (br_if $while-out$74 - (i32.le_u - (get_local $13) - (get_local $7) - ) - ) - (if - (i32.eq - (i32.load - (tee_local $5 - (i32.add - (get_local $13) - (i32.const -4) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $17) + (get_local $6) + (i32.xor + (get_local $10) + (i32.const 65536) + ) ) - ) - ) - (i32.const 0) - ) - (set_local $13 - (get_local $5) - ) - (br $while-out$74) - ) - (br $while-in$75) - ) - ) - (i32.store - (get_local $25) - (tee_local $5 - (i32.sub - (i32.load - (get_local $25) - ) - (get_local $11) - ) - ) - ) - (if - (i32.gt_s - (get_local $5) - (i32.const 0) - ) - (set_local $8 - (get_local $7) - ) - (block - (set_local $6 - (get_local $13) - ) - (br $while-out$68) - ) - ) - (br $while-in$69) - ) - ) - ) - (set_local $7 - (get_local $9) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $8 - (i32.add - (i32.and - (i32.div_s - (i32.add - (get_local $1) - (i32.const 25) - ) - (i32.const 9) - ) - (i32.const -1) - ) - (i32.const 1) - ) - ) - (set_local $10 - (i32.eq - (get_local $15) - (i32.const 102) - ) - ) - (set_local $23 - (get_local $6) - ) - (loop $while-in$77 - (block $while-out$76 - (set_local $5 - (i32.gt_s - (tee_local $6 - (i32.sub - (i32.const 0) - (get_local $5) - ) - ) - (i32.const 9) - ) - ) - (set_local $13 - (select - (i32.const 9) - (get_local $6) - (get_local $5) - ) - ) - (set_local $11 - (block $do-once$78 - (if - (i32.lt_u - (get_local $7) - (get_local $23) - ) - (block - (set_local $70 - (i32.add - (i32.shl - (i32.const 1) - (get_local $13) + (set_local $5 + (i32.sub + (get_local $5) + (get_local $42) + ) ) - (i32.const -1) - ) - ) - (set_local $27 - (i32.shr_u - (i32.const 1000000000) - (get_local $13) - ) - ) - (set_local $11 - (i32.const 0) - ) - (set_local $17 - (get_local $7) - ) - (loop $while-in$81 - (block $while-out$80 - (set_local $6 - (i32.and - (tee_local $5 + (if + (i32.eqz + (i32.and (i32.load - (get_local $17) + (get_local $0) ) + (i32.const 32) ) - (get_local $70) ) - ) - (i32.store - (get_local $17) - (i32.add - (i32.shr_u + (drop + (call $___fwritex + (get_local $24) (get_local $5) - (get_local $13) + (get_local $0) ) - (get_local $11) ) ) - (set_local $11 - (i32.mul - (get_local $6) - (get_local $27) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.sub + (get_local $7) + (i32.add + (get_local $5) + (tee_local $5 + (i32.sub + (get_local $32) + (get_local $11) + ) + ) + ) ) + (i32.const 0) + (i32.const 0) ) - (br_if $while-out$80 - (i32.ge_u - (tee_local $17 - (i32.add - (get_local $17) - (i32.const 4) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $11) + (get_local $5) + (get_local $0) ) - (get_local $23) ) ) - (br $while-in$81) - ) - ) - (set_local $5 - (select - (i32.add - (get_local $7) - (i32.const 4) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $6) + (i32.xor + (get_local $10) + (i32.const 8192) + ) ) - (get_local $7) - (i32.eq - (i32.load - (get_local $7) + (br $do-once$56 + (select + (get_local $17) + (get_local $6) + (i32.lt_s + (get_local $6) + (get_local $17) + ) ) - (i32.const 0) ) ) ) - (br_if $do-once$78 - (get_local $5) - (i32.eq - (get_local $11) - (i32.const 0) - ) - ) - (i32.store - (get_local $23) - (get_local $11) - ) - (set_local $23 - (i32.add - (get_local $23) - (i32.const 4) - ) - ) - (get_local $5) - ) - (select - (i32.add - (get_local $7) - (i32.const 4) - ) - (get_local $7) - (i32.eq - (i32.load + (set_local $19 + (select + (i32.const 6) (get_local $7) + (i32.lt_s + (get_local $7) + (i32.const 0) + ) ) - (i32.const 0) ) - ) - ) - ) - ) - (set_local $5 - (i32.gt_s - (i32.shr_s - (i32.sub - (get_local $23) - (tee_local $7 - (select - (get_local $9) - (get_local $11) - (get_local $10) + (set_local $40 + (tee_local $8 + (select + (get_local $54) + (get_local $55) + (i32.lt_s + (if + (get_local $5) + (block + (i32.store + (get_local $20) + (tee_local $5 + (i32.add + (i32.load + (get_local $20) + ) + (i32.const -28) + ) + ) + ) + (set_local $14 + (f64.mul + (get_local $22) + (f64.const 268435456) + ) + ) + (get_local $5) + ) + (block + (set_local $14 + (get_local $22) + ) + (i32.load + (get_local $20) + ) + ) + ) + (i32.const 0) + ) + ) ) ) - ) - (i32.const 2) - ) - (get_local $8) - ) - ) - (set_local $6 - (select - (i32.add - (get_local $7) - (i32.shl - (get_local $8) - (i32.const 2) - ) - ) - (get_local $23) - (get_local $5) - ) - ) - (i32.store - (get_local $25) - (tee_local $5 - (i32.add - (i32.load - (get_local $25) - ) - (get_local $13) - ) - ) - ) - (if - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - (block - (set_local $7 - (get_local $11) - ) - (set_local $23 - (get_local $6) - ) - ) - (block - (set_local $7 - (get_local $11) - ) - (set_local $27 - (get_local $6) - ) - (br $while-out$76) - ) - ) - (br $while-in$77) - ) - ) - ) - (set_local $27 - (get_local $6) - ) - ) - (block $do-once$82 - (if - (i32.lt_u - (get_local $7) - (get_local $27) - ) - (block - (set_local $6 - (i32.mul - (i32.shr_s - (i32.sub - (get_local $62) - (get_local $7) - ) - (i32.const 2) - ) - (i32.const 9) - ) - ) - (if - (i32.lt_u - (tee_local $5 - (i32.load - (get_local $7) - ) - ) - (i32.const 10) - ) - (block - (set_local $13 - (get_local $6) - ) - (br $do-once$82) - ) - (set_local $8 - (i32.const 10) - ) - ) - (loop $while-in$85 - (block $while-out$84 - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) - ) - ) - (if - (i32.lt_u - (get_local $5) - (tee_local $8 - (i32.mul + (set_local $6 (get_local $8) - (i32.const 10) - ) - ) - ) - (block - (set_local $13 - (get_local $6) - ) - (br $while-out$84) - ) - ) - (br $while-in$85) - ) - ) - ) - (set_local $13 - (i32.const 0) - ) - ) - ) - (set_local $7 - (if - (i32.lt_s - (tee_local $5 - (i32.add - (i32.sub - (get_local $1) - (select - (get_local $13) - (i32.const 0) - (i32.ne - (get_local $15) - (i32.const 102) - ) - ) - ) - (i32.shr_s - (i32.shl - (i32.and - (tee_local $70 - (i32.ne - (get_local $1) - (i32.const 0) - ) - ) - (tee_local $8 - (i32.eq - (get_local $15) - (i32.const 103) - ) ) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) - ) - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $27) - (get_local $62) - ) - (i32.const 2) - ) - (i32.const 9) - ) - (i32.const -9) - ) - ) - (block - (set_local $6 - (i32.add - (i32.add - (get_local $9) - (i32.const 4) - ) - (i32.shl - (i32.add - (i32.and - (i32.div_s - (tee_local $5 - (i32.add - (get_local $5) - (i32.const 9216) + (loop $while-in$67 + (i32.store + (get_local $6) + (tee_local $5 + (i32.trunc_s/f64 + (get_local $14) + ) ) ) - (i32.const 9) - ) - (i32.const -1) - ) - (i32.const -1024) - ) - (i32.const 2) - ) - ) - ) - (if - (i32.lt_s - (tee_local $11 - (i32.add - (i32.and - (i32.rem_s - (get_local $5) - (i32.const 9) - ) - (i32.const -1) - ) - (i32.const 1) - ) - ) - (i32.const 9) - ) - (block - (set_local $5 - (i32.const 10) - ) - (loop $while-in$87 - (block $while-out$86 - (set_local $5 - (i32.mul - (get_local $5) - (i32.const 10) - ) - ) - (if - (i32.eq - (tee_local $11 + (set_local $6 (i32.add - (get_local $11) - (i32.const 1) + (get_local $6) + (i32.const 4) ) ) - (i32.const 9) - ) - (block - (set_local $17 - (get_local $5) - ) - (br $while-out$86) - ) - ) - (br $while-in$87) - ) - ) - ) - (set_local $17 - (i32.const 10) - ) - ) - (block $do-once$88 - (if - (i32.eqz - (i32.and - (tee_local $11 - (i32.eq - (i32.add - (get_local $6) - (i32.const 4) - ) - (get_local $27) - ) - ) - (i32.eq - (tee_local $15 - (i32.and - (i32.rem_u - (tee_local $5 - (i32.load - (get_local $6) + (br_if $while-in$67 + (f64.ne + (tee_local $14 + (f64.mul + (f64.sub + (get_local $14) + (f64.convert_u/i32 + (get_local $5) + ) + ) + (f64.const 1e9) ) ) - (get_local $17) + (f64.const 0) ) - (i32.const -1) ) ) - (i32.const 0) - ) - ) - ) - (block - (set_local $14 - (select - (f64.const 9007199254740992) - (f64.const 9007199254740994) - (i32.eq - (i32.and - (i32.and - (i32.div_u - (get_local $5) - (get_local $17) + (if + (i32.gt_s + (tee_local $7 + (i32.load + (get_local $20) ) - (i32.const -1) ) - (i32.const 1) + (i32.const 0) ) - (i32.const 0) - ) - ) - ) - (set_local $30 - (if - (i32.lt_u - (get_local $15) - (tee_local $10 - (i32.and - (i32.div_s - (get_local $17) - (i32.const 2) + (block + (set_local $9 + (get_local $8) + ) + (loop $while-in$69 + (set_local $21 + (select + (i32.const 29) + (get_local $7) + (i32.gt_s + (get_local $7) + (i32.const 29) + ) + ) + ) + (set_local $9 + (block $do-once$70 + (if + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $6) + (i32.const -4) + ) + ) + (get_local $9) + ) + (get_local $9) + (block + (set_local $5 + (i32.const 0) + ) + (loop $while-in$73 + (set_local $12 + (call $___uremdi3 + (tee_local $5 + (call $_i64Add + (call $_bitshift64Shl + (i32.load + (get_local $7) + ) + (i32.const 0) + (get_local $21) + ) + (get_global $tempRet0) + (get_local $5) + (i32.const 0) + ) + ) + (tee_local $11 + (get_global $tempRet0) + ) + (i32.const 1000000000) + (i32.const 0) + ) + ) + (i32.store + (get_local $7) + (get_local $12) + ) + (set_local $5 + (call $___udivdi3 + (get_local $5) + (get_local $11) + (i32.const 1000000000) + (i32.const 0) + ) + ) + (br_if $while-in$73 + (i32.ge_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -4) + ) + ) + (get_local $9) + ) + ) + ) + (br_if $do-once$70 + (get_local $9) + (i32.eqz + (get_local $5) + ) + ) + (i32.store + (tee_local $7 + (i32.add + (get_local $9) + (i32.const -4) + ) + ) + (get_local $5) + ) + (get_local $7) + ) + ) + ) + ) + (set_local $5 + (get_local $6) + ) + (loop $while-in$75 + (block $while-out$74 + (if + (i32.le_u + (get_local $5) + (get_local $9) + ) + (block + (set_local $6 + (get_local $5) + ) + (br $while-out$74) + ) + ) + (if + (i32.load + (tee_local $6 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + ) + (set_local $6 + (get_local $5) + ) + (block + (set_local $5 + (get_local $6) + ) + (br $while-in$75) + ) + ) + ) + ) + (i32.store + (get_local $20) + (tee_local $7 + (i32.sub + (i32.load + (get_local $20) + ) + (get_local $21) + ) + ) + ) + (br_if $while-in$69 + (i32.gt_s + (get_local $7) + (i32.const 0) + ) + ) + (set_local $5 + (get_local $9) ) - (i32.const -1) ) ) - ) - (f64.const 0.5) - (select - (f64.const 1) - (f64.const 1.5) - (i32.and - (get_local $11) - (i32.eq - (get_local $15) - (get_local $10) - ) + (set_local $5 + (get_local $8) ) ) - ) - ) - (set_local $14 - (block $do-once$90 (if - (i32.eq - (get_local $51) + (i32.lt_s + (get_local $7) (i32.const 0) ) - (get_local $14) (block - (br_if $do-once$90 - (get_local $14) - (i32.ne - (i32.shr_s - (i32.shl - (i32.load8_s - (get_local $39) + (set_local $12 + (i32.add + (i32.and + (i32.div_s + (i32.add + (get_local $19) + (i32.const 25) ) - (i32.const 24) + (i32.const 9) ) - (i32.const 24) + (i32.const -1) ) - (i32.const 45) + (i32.const 1) ) ) - (set_local $30 - (f64.neg - (get_local $30) + (set_local $21 + (i32.eq + (get_local $25) + (i32.const 102) ) ) - (f64.neg - (get_local $14) + (loop $while-in$77 + (set_local $26 + (select + (i32.const 9) + (tee_local $7 + (i32.sub + (i32.const 0) + (get_local $7) + ) + ) + (i32.gt_s + (get_local $7) + (i32.const 9) + ) + ) + ) + (set_local $6 + (select + (i32.add + (tee_local $7 + (select + (get_local $8) + (tee_local $5 + (block $do-once$78 + (if + (i32.lt_u + (get_local $5) + (get_local $6) + ) + (block + (set_local $44 + (i32.add + (i32.shl + (i32.const 1) + (get_local $26) + ) + (i32.const -1) + ) + ) + (set_local $31 + (i32.shr_u + (i32.const 1000000000) + (get_local $26) + ) + ) + (set_local $9 + (i32.const 0) + ) + (set_local $7 + (get_local $5) + ) + (loop $while-in$81 + (i32.store + (get_local $7) + (i32.add + (i32.shr_u + (tee_local $11 + (i32.load + (get_local $7) + ) + ) + (get_local $26) + ) + (get_local $9) + ) + ) + (set_local $9 + (i32.mul + (i32.and + (get_local $11) + (get_local $44) + ) + (get_local $31) + ) + ) + (br_if $while-in$81 + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $6) + ) + ) + ) + (set_local $5 + (select + (get_local $5) + (i32.add + (get_local $5) + (i32.const 4) + ) + (i32.load + (get_local $5) + ) + ) + ) + (br_if $do-once$78 + (get_local $5) + (i32.eqz + (get_local $9) + ) + ) + (i32.store + (get_local $6) + (get_local $9) + ) + (set_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $5) + ) + (select + (get_local $5) + (i32.add + (get_local $5) + (i32.const 4) + ) + (i32.load + (get_local $5) + ) + ) + ) + ) + ) + (get_local $21) + ) + ) + (i32.shl + (get_local $12) + (i32.const 2) + ) + ) + (get_local $6) + (i32.gt_s + (i32.shr_s + (i32.sub + (get_local $6) + (get_local $7) + ) + (i32.const 2) + ) + (get_local $12) + ) + ) + ) + (i32.store + (get_local $20) + (tee_local $7 + (i32.add + (i32.load + (get_local $20) + ) + (get_local $26) + ) + ) + ) + (br_if $while-in$77 + (i32.lt_s + (get_local $7) + (i32.const 0) + ) + ) + (set_local $9 + (get_local $6) + ) ) ) - ) - ) - ) - (i32.store - (get_local $6) - (tee_local $5 - (i32.sub - (get_local $5) - (get_local $15) - ) - ) - ) - (br_if $do-once$88 - (f64.eq - (f64.add - (get_local $14) - (get_local $30) - ) - (get_local $14) - ) - ) - (i32.store - (get_local $6) - (tee_local $5 - (i32.add - (get_local $5) - (get_local $17) - ) - ) - ) - (if - (i32.gt_u - (get_local $5) - (i32.const 999999999) - ) - (loop $while-in$93 - (block $while-out$92 - (i32.store + (set_local $9 (get_local $6) - (i32.const 0) ) - (set_local $7 - (if - (i32.lt_u - (tee_local $6 + ) + (block $do-once$82 + (if + (i32.lt_u + (get_local $5) + (get_local $9) + ) + (block + (set_local $6 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $40) + (get_local $5) + ) + (i32.const 2) + ) + (i32.const 9) + ) + ) + (br_if $do-once$82 + (i32.lt_u + (tee_local $11 + (i32.load + (get_local $5) + ) + ) + (i32.const 10) + ) + ) + (set_local $7 + (i32.const 10) + ) + (loop $while-in$85 + (set_local $6 (i32.add (get_local $6) - (i32.const -4) + (i32.const 1) ) ) - (get_local $7) - ) - (block - (i32.store - (tee_local $5 - (i32.add - (get_local $7) - (i32.const -4) + (br_if $while-in$85 + (i32.ge_u + (get_local $11) + (tee_local $7 + (i32.mul + (get_local $7) + (i32.const 10) + ) ) ) - (i32.const 0) ) - (get_local $5) ) - (get_local $7) + ) + (set_local $6 + (i32.const 0) ) ) - (i32.store - (get_local $6) - (tee_local $5 + ) + (set_local $12 + (if + (i32.lt_s + (tee_local $7 + (i32.add + (i32.sub + (get_local $19) + (select + (get_local $6) + (i32.const 0) + (i32.ne + (get_local $25) + (i32.const 102) + ) + ) + ) + (i32.shr_s + (i32.shl + (i32.and + (tee_local $44 + (i32.ne + (get_local $19) + (i32.const 0) + ) + ) + (tee_local $21 + (i32.eq + (get_local $25) + (i32.const 103) + ) + ) + ) + (i32.const 31) + ) + (i32.const 31) + ) + ) + ) (i32.add - (i32.load - (get_local $6) + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $40) + ) + (i32.const 2) + ) + (i32.const 9) ) - (i32.const 1) + (i32.const -9) ) ) - ) - (br_if $while-out$92 - (i32.le_u + (block + (set_local $7 + (i32.add + (i32.add + (get_local $8) + (i32.const 4) + ) + (i32.shl + (i32.add + (i32.and + (i32.div_s + (tee_local $11 + (i32.add + (get_local $7) + (i32.const 9216) + ) + ) + (i32.const 9) + ) + (i32.const -1) + ) + (i32.const -1024) + ) + (i32.const 2) + ) + ) + ) + (if + (i32.lt_s + (tee_local $11 + (i32.add + (i32.and + (i32.rem_s + (get_local $11) + (i32.const 9) + ) + (i32.const -1) + ) + (i32.const 1) + ) + ) + (i32.const 9) + ) + (block + (set_local $12 + (i32.const 10) + ) + (loop $while-in$87 + (set_local $12 + (i32.mul + (get_local $12) + (i32.const 10) + ) + ) + (br_if $while-in$87 + (i32.ne + (tee_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (i32.const 9) + ) + ) + ) + ) + (set_local $12 + (i32.const 10) + ) + ) + (block $do-once$88 + (if + (i32.eqz + (i32.and + (tee_local $26 + (i32.eq + (i32.add + (get_local $7) + (i32.const 4) + ) + (get_local $9) + ) + ) + (i32.eqz + (tee_local $31 + (i32.and + (i32.rem_u + (tee_local $11 + (i32.load + (get_local $7) + ) + ) + (get_local $12) + ) + (i32.const -1) + ) + ) + ) + ) + ) + (block + (set_local $22 + (select + (f64.const 9007199254740994) + (f64.const 9007199254740992) + (i32.and + (i32.and + (i32.div_u + (get_local $11) + (get_local $12) + ) + (i32.const -1) + ) + (i32.const 1) + ) + ) + ) + (set_local $14 + (if + (i32.lt_u + (get_local $31) + (tee_local $25 + (i32.and + (i32.div_s + (get_local $12) + (i32.const 2) + ) + (i32.const -1) + ) + ) + ) + (f64.const 0.5) + (select + (f64.const 1) + (f64.const 1.5) + (i32.and + (get_local $26) + (i32.eq + (get_local $31) + (get_local $25) + ) + ) + ) + ) + ) + (set_local $22 + (block $do-once$90 + (if + (get_local $30) + (block + (br_if $do-once$90 + (get_local $22) + (i32.ne + (i32.load8_s + (get_local $36) + ) + (i32.const 45) + ) + ) + (set_local $14 + (f64.neg + (get_local $14) + ) + ) + (f64.neg + (get_local $22) + ) + ) + (get_local $22) + ) + ) + ) + (i32.store + (get_local $7) + (tee_local $11 + (i32.sub + (get_local $11) + (get_local $31) + ) + ) + ) + (br_if $do-once$88 + (f64.eq + (f64.add + (get_local $22) + (get_local $14) + ) + (get_local $22) + ) + ) + (i32.store + (get_local $7) + (tee_local $6 + (i32.add + (get_local $11) + (get_local $12) + ) + ) + ) + (if + (i32.gt_u + (get_local $6) + (i32.const 999999999) + ) + (loop $while-in$93 + (i32.store + (get_local $7) + (i32.const 0) + ) + (set_local $5 + (if + (i32.lt_u + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -4) + ) + ) + (get_local $5) + ) + (block + (i32.store + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + (i32.const 0) + ) + (get_local $5) + ) + (get_local $5) + ) + ) + (i32.store + (get_local $7) + (tee_local $6 + (i32.add + (i32.load + (get_local $7) + ) + (i32.const 1) + ) + ) + ) + (br_if $while-in$93 + (i32.gt_u + (get_local $6) + (i32.const 999999999) + ) + ) + ) + ) + (set_local $6 + (i32.mul + (i32.shr_s + (i32.sub + (get_local $40) + (get_local $5) + ) + (i32.const 2) + ) + (i32.const 9) + ) + ) + (br_if $do-once$88 + (i32.lt_u + (tee_local $12 + (i32.load + (get_local $5) + ) + ) + (i32.const 10) + ) + ) + (set_local $11 + (i32.const 10) + ) + (loop $while-in$95 + (set_local $6 + (i32.add + (get_local $6) + (i32.const 1) + ) + ) + (br_if $while-in$95 + (i32.ge_u + (get_local $12) + (tee_local $11 + (i32.mul + (get_local $11) + (i32.const 10) + ) + ) + ) + ) + ) + ) + ) + ) + (set_local $11 + (get_local $6) + ) + (set_local $9 + (select + (tee_local $6 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $9) + (i32.gt_u + (get_local $9) + (get_local $6) + ) + ) + ) + (get_local $5) + ) + (block + (set_local $11 + (get_local $6) + ) (get_local $5) - (i32.const 999999999) ) ) - (br $while-in$93) ) - ) - ) - (set_local $11 - (i32.mul - (i32.shr_s + (set_local $25 (i32.sub - (get_local $62) - (get_local $7) - ) - (i32.const 2) - ) - (i32.const 9) - ) - ) - (if - (i32.lt_u - (tee_local $5 - (i32.load - (get_local $7) - ) - ) - (i32.const 10) - ) - (block - (set_local $13 - (get_local $11) - ) - (br $do-once$88) - ) - (set_local $10 - (i32.const 10) - ) - ) - (loop $while-in$95 - (block $while-out$94 - (set_local $11 - (i32.add + (i32.const 0) (get_local $11) - (i32.const 1) ) ) - (if - (i32.lt_u - (get_local $5) - (tee_local $10 - (i32.mul - (get_local $10) - (i32.const 10) + (set_local $5 + (get_local $9) + ) + (loop $while-in$97 + (block $while-out$96 + (if + (i32.le_u + (get_local $5) + (get_local $12) + ) + (block + (set_local $26 + (i32.const 0) + ) + (set_local $9 + (get_local $5) + ) + (br $while-out$96) ) ) - ) - (block - (set_local $13 - (get_local $11) + (if + (i32.load + (tee_local $6 + (i32.add + (get_local $5) + (i32.const -4) + ) + ) + ) + (block + (set_local $26 + (i32.const 1) + ) + (set_local $9 + (get_local $5) + ) + ) + (block + (set_local $5 + (get_local $6) + ) + (br $while-in$97) + ) ) - (br $while-out$94) ) ) - (br $while-in$95) - ) - ) - ) - ) - ) - (set_local $6 - (i32.gt_u - (get_local $27) - (tee_local $5 - (i32.add - (get_local $6) - (i32.const 4) - ) - ) - ) - ) - (set_local $6 - (select - (get_local $5) - (get_local $27) - (get_local $6) - ) - ) - (get_local $7) - ) - (block - (set_local $6 - (get_local $27) - ) - (get_local $7) - ) - ) - ) - (set_local $27 - (i32.sub - (i32.const 0) - (get_local $13) - ) - ) - (loop $while-in$97 - (block $while-out$96 - (if - (i32.le_u - (get_local $6) - (get_local $7) - ) - (block - (set_local $11 - (i32.const 0) - ) - (set_local $23 - (get_local $6) - ) - (br $while-out$96) - ) - ) - (if - (i32.eq - (i32.load - (tee_local $5 - (i32.add - (get_local $6) - (i32.const -4) - ) - ) - ) - (i32.const 0) - ) - (set_local $6 - (get_local $5) - ) - (block - (set_local $11 - (i32.const 1) - ) - (set_local $23 - (get_local $6) - ) - (br $while-out$96) - ) - ) - (br $while-in$97) - ) - ) - (set_local $8 - (block $do-once$98 - (if - (get_local $8) - (block - (set_local $8 - (if - (i32.and - (i32.gt_s - (tee_local $1 - (i32.add - (i32.xor - (i32.and - (get_local $70) - (i32.const 1) + (set_local $19 + (block $do-once$98 + (if + (get_local $21) + (block + (set_local $16 + (if + (i32.and + (i32.gt_s + (tee_local $5 + (i32.add + (i32.xor + (i32.and + (get_local $44) + (i32.const 1) + ) + (i32.const 1) + ) + (get_local $19) + ) + ) + (get_local $11) + ) + (i32.gt_s + (get_local $11) + (i32.const -5) + ) + ) + (block + (set_local $6 + (i32.add + (get_local $16) + (i32.const -1) + ) + ) + (i32.sub + (i32.add + (get_local $5) + (i32.const -1) + ) + (get_local $11) + ) + ) + (block + (set_local $6 + (i32.add + (get_local $16) + (i32.const -2) + ) + ) + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + ) + ) + (if + (tee_local $7 + (i32.and + (get_local $10) + (i32.const 8) + ) + ) + (block + (set_local $5 + (get_local $16) + ) + (br $do-once$98 + (get_local $7) + ) + ) + ) + (block $do-once$100 + (if + (get_local $26) + (block + (if + (i32.eqz + (tee_local $19 + (i32.load + (i32.add + (get_local $9) + (i32.const -4) + ) + ) + ) + ) + (block + (set_local $5 + (i32.const 9) + ) + (br $do-once$100) + ) + ) + (if + (i32.and + (i32.rem_u + (get_local $19) + (i32.const 10) + ) + (i32.const -1) + ) + (block + (set_local $5 + (i32.const 0) + ) + (br $do-once$100) + ) + (block + (set_local $7 + (i32.const 10) + ) + (set_local $5 + (i32.const 0) + ) + ) + ) + (loop $while-in$103 + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br_if $while-in$103 + (i32.eqz + (i32.and + (i32.rem_u + (get_local $19) + (tee_local $7 + (i32.mul + (get_local $7) + (i32.const 10) + ) + ) + ) + (i32.const -1) + ) + ) + ) + ) + ) + (set_local $5 + (i32.const 9) + ) + ) + ) + (set_local $7 + (i32.add + (i32.mul + (i32.shr_s + (i32.sub + (get_local $9) + (get_local $40) + ) + (i32.const 2) + ) + (i32.const 9) + ) + (i32.const -9) + ) + ) + (if + (i32.eq + (i32.or + (get_local $6) + (i32.const 32) + ) + (i32.const 102) + ) + (block + (set_local $5 + (select + (get_local $16) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (get_local $7) + (get_local $5) + ) + ) + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + ) + (i32.lt_s + (get_local $16) + (get_local $5) + ) + ) + ) + (i32.const 0) + ) + (block + (set_local $5 + (select + (get_local $16) + (tee_local $5 + (select + (i32.const 0) + (tee_local $5 + (i32.sub + (i32.add + (get_local $7) + (get_local $11) + ) + (get_local $5) + ) + ) + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + ) + (i32.lt_s + (get_local $16) + (get_local $5) + ) + ) + ) + (i32.const 0) + ) + ) + ) + (block + (set_local $5 + (get_local $19) + ) + (set_local $6 + (get_local $16) + ) + (i32.and + (get_local $10) + (i32.const 8) + ) ) - (i32.const 1) ) - (get_local $1) ) ) - (get_local $13) - ) - (i32.gt_s - (get_local $13) - (i32.const -5) - ) - ) - (block - (set_local $10 - (i32.add - (get_local $26) - (i32.const -1) - ) - ) - (i32.sub - (i32.add - (get_local $1) - (i32.const -1) - ) - (get_local $13) - ) - ) - (block - (set_local $10 - (i32.add - (get_local $26) - (i32.const -2) - ) - ) - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - ) - ) - (if - (i32.ne - (tee_local $1 - (i32.and - (get_local $18) - (i32.const 8) - ) - ) - (i32.const 0) - ) - (block - (set_local $15 - (get_local $8) - ) - (set_local $26 - (get_local $10) - ) - (br $do-once$98 - (get_local $1) - ) - ) - ) - (block $do-once$100 - (if - (get_local $11) - (block - (if - (i32.eq - (tee_local $1 - (i32.load - (i32.add - (get_local $23) - (i32.const -4) + (set_local $31 + (i32.and + (i32.ne + (tee_local $16 + (i32.or + (get_local $5) + (get_local $19) + ) ) + (i32.const 0) ) + (i32.const 1) ) - (i32.const 0) ) - (block - (set_local $6 - (i32.const 9) + (set_local $25 + (if + (tee_local $21 + (i32.eq + (i32.or + (get_local $6) + (i32.const 32) + ) + (i32.const 102) + ) + ) + (block + (set_local $6 + (select + (get_local $11) + (i32.const 0) + (i32.gt_s + (get_local $11) + (i32.const 0) + ) + ) + ) + (i32.const 0) + ) + (block + (if + (i32.lt_s + (i32.sub + (get_local $32) + (tee_local $7 + (call $_fmt_u + (tee_local $7 + (select + (get_local $25) + (get_local $11) + (i32.lt_s + (get_local $11) + (i32.const 0) + ) + ) + ) + (i32.shr_s + (i32.shl + (i32.lt_s + (get_local $7) + (i32.const 0) + ) + (i32.const 31) + ) + (i32.const 31) + ) + (get_local $37) + ) + ) + ) + (i32.const 2) + ) + (loop $while-in$105 + (i32.store8 + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in$105 + (i32.lt_s + (i32.sub + (get_local $32) + (get_local $7) + ) + (i32.const 2) + ) + ) + ) + ) + (i32.store8 + (i32.add + (get_local $7) + (i32.const -1) + ) + (i32.and + (i32.add + (i32.and + (i32.shr_s + (get_local $11) + (i32.const 31) + ) + (i32.const 2) + ) + (i32.const 43) + ) + (i32.const 255) + ) + ) + (i32.store8 + (tee_local $7 + (i32.add + (get_local $7) + (i32.const -2) + ) + ) + (i32.and + (get_local $6) + (i32.const 255) + ) + ) + (set_local $6 + (i32.sub + (get_local $32) + (get_local $7) + ) + ) + (get_local $7) + ) ) - (br $do-once$100) ) - ) - (if - (i32.eq - (i32.and - (i32.rem_u - (get_local $1) - (i32.const 10) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (tee_local $11 + (i32.add + (i32.add + (i32.add + (i32.add + (get_local $30) + (i32.const 1) + ) + (get_local $5) + ) + (get_local $31) + ) + (get_local $6) ) - (i32.const -1) ) - (i32.const 0) + (get_local $10) ) - (block - (set_local $5 - (i32.const 10) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) ) - (set_local $6 - (i32.const 0) + (drop + (call $___fwritex + (get_local $36) + (get_local $30) + (get_local $0) + ) ) ) - (block - (set_local $6 - (i32.const 0) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $17) + (get_local $11) + (i32.xor + (get_local $10) + (i32.const 65536) ) - (br $do-once$100) ) - ) - (loop $while-in$103 - (block $while-out$102 - (set_local $6 - (i32.add - (get_local $6) - (i32.const 1) + (block $do-once$106 + (if + (get_local $21) + (block + (set_local $7 + (tee_local $12 + (select + (get_local $8) + (get_local $12) + (i32.gt_u + (get_local $12) + (get_local $8) + ) + ) + ) + ) + (loop $while-in$109 + (set_local $6 + (call $_fmt_u + (i32.load + (get_local $7) + ) + (i32.const 0) + (get_local $34) + ) + ) + (block $do-once$110 + (if + (i32.eq + (get_local $7) + (get_local $12) + ) + (block + (br_if $do-once$110 + (i32.ne + (get_local $6) + (get_local $34) + ) + ) + (i32.store8 + (get_local $38) + (i32.const 48) + ) + (set_local $6 + (get_local $38) + ) + ) + (block + (br_if $do-once$110 + (i32.le_u + (get_local $6) + (get_local $24) + ) + ) + (loop $while-in$113 + (i32.store8 + (tee_local $6 + (i32.add + (get_local $6) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in$113 + (i32.gt_u + (get_local $6) + (get_local $24) + ) + ) + ) + ) + ) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $6) + (i32.sub + (get_local $49) + (get_local $6) + ) + (get_local $0) + ) + ) + ) + (if + (i32.le_u + (tee_local $6 + (i32.add + (get_local $7) + (i32.const 4) + ) + ) + (get_local $8) + ) + (block + (set_local $7 + (get_local $6) + ) + (br $while-in$109) + ) + ) + ) + (block $do-once$114 + (if + (get_local $16) + (block + (br_if $do-once$114 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) + ) + ) + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $5) + (i32.const 0) + ) + (i32.lt_u + (get_local $6) + (get_local $9) + ) + ) + (block + (set_local $7 + (get_local $5) + ) + (loop $while-in$117 + (if + (i32.gt_u + (tee_local $5 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $34) + ) + ) + (get_local $24) + ) + (loop $while-in$119 + (i32.store8 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in$119 + (i32.gt_u + (get_local $5) + (get_local $24) + ) + ) + ) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $5) + (select + (i32.const 9) + (get_local $7) + (i32.gt_s + (get_local $7) + (i32.const 9) + ) + ) + (get_local $0) + ) + ) + ) + (set_local $5 + (i32.add + (get_local $7) + (i32.const -9) + ) + ) + (if + (i32.and + (i32.gt_s + (get_local $7) + (i32.const 9) + ) + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $9) + ) + ) + (block + (set_local $7 + (get_local $5) + ) + (br $while-in$117) + ) + ) + ) + ) + ) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $5) + (i32.const 9) + ) + (i32.const 9) + (i32.const 0) + ) ) - ) - (br_if $while-out$102 - (i32.ne - (i32.and - (i32.rem_u - (get_local $1) - (tee_local $5 - (i32.mul - (get_local $5) - (i32.const 10) + (block + (set_local $16 + (select + (get_local $9) + (i32.add + (get_local $12) + (i32.const 4) + ) + (get_local $26) + ) + ) + (if + (i32.gt_s + (get_local $5) + (i32.const -1) + ) + (block + (set_local $9 + (i32.eqz + (get_local $19) + ) + ) + (set_local $6 + (get_local $12) + ) + (set_local $7 + (get_local $5) + ) + (loop $while-in$121 + (set_local $8 + (if + (i32.eq + (tee_local $5 + (call $_fmt_u + (i32.load + (get_local $6) + ) + (i32.const 0) + (get_local $34) + ) + ) + (get_local $34) + ) + (block + (i32.store8 + (get_local $38) + (i32.const 48) + ) + (get_local $38) + ) + (get_local $5) + ) + ) + (block $do-once$122 + (if + (i32.eq + (get_local $6) + (get_local $12) + ) + (block + (set_local $5 + (i32.add + (get_local $8) + (i32.const 1) + ) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $8) + (i32.const 1) + (get_local $0) + ) + ) + ) + (br_if $do-once$122 + (i32.and + (get_local $9) + (i32.lt_s + (get_local $7) + (i32.const 1) + ) + ) + ) + (br_if $do-once$122 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (i32.const 4143) + (i32.const 1) + (get_local $0) + ) + ) + ) + (block + (if + (i32.gt_u + (get_local $8) + (get_local $24) + ) + (set_local $5 + (get_local $8) + ) + (block + (set_local $5 + (get_local $8) + ) + (br $do-once$122) + ) + ) + (loop $while-in$125 + (i32.store8 + (tee_local $5 + (i32.add + (get_local $5) + (i32.const -1) + ) + ) + (i32.const 48) + ) + (br_if $while-in$125 + (i32.gt_u + (get_local $5) + (get_local $24) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.sub + (get_local $49) + (get_local $5) + ) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $5) + (select + (get_local $8) + (get_local $7) + (i32.gt_s + (get_local $7) + (get_local $8) + ) + ) + (get_local $0) + ) + ) + ) + (if + (i32.and + (i32.lt_u + (tee_local $6 + (i32.add + (get_local $6) + (i32.const 4) + ) + ) + (get_local $16) + ) + (i32.gt_s + (tee_local $5 + (i32.sub + (get_local $7) + (get_local $8) + ) + ) + (i32.const -1) + ) + ) + (block + (set_local $7 + (get_local $5) + ) + (br $while-in$121) + ) ) ) ) - (i32.const -1) ) - (i32.const 0) + (call $_pad + (get_local $0) + (i32.const 48) + (i32.add + (get_local $5) + (i32.const 18) + ) + (i32.const 18) + (i32.const 0) + ) + (br_if $do-once$106 + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $25) + (i32.sub + (get_local $32) + (get_local $25) + ) + (get_local $0) + ) + ) ) ) - (br $while-in$103) ) - ) - ) - (set_local $6 - (i32.const 9) - ) - ) - ) - (set_local $1 - (i32.add - (i32.mul - (i32.shr_s - (i32.sub - (get_local $23) - (get_local $62) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $11) + (i32.xor + (get_local $10) + (i32.const 8192) + ) ) - (i32.const 2) - ) - (i32.const 9) - ) - (i32.const -9) - ) - ) - (if - (i32.eq - (i32.or - (get_local $10) - (i32.const 32) - ) - (i32.const 102) - ) - (block - (set_local $1 - (i32.lt_s - (tee_local $5 - (i32.sub - (get_local $1) - (get_local $6) + (select + (get_local $17) + (get_local $11) + (i32.lt_s + (get_local $11) + (get_local $17) ) ) - (i32.const 0) ) - ) - (set_local $5 - (i32.lt_s - (get_local $8) - (tee_local $1 + (block + (set_local $7 (select (i32.const 0) + (get_local $30) + (tee_local $5 + (i32.or + (f64.ne + (get_local $14) + (get_local $14) + ) + (i32.const 0) + ) + ) + ) + ) + (set_local $8 + (select + (select + (i32.const 4135) + (i32.const 4139) + (tee_local $6 + (i32.ne + (i32.and + (get_local $16) + (i32.const 32) + ) + (i32.const 0) + ) + ) + ) + (select + (i32.const 4127) + (i32.const 4131) + (get_local $6) + ) (get_local $5) - (get_local $1) ) ) - ) - ) - (set_local $15 - (select - (get_local $8) - (get_local $1) - (get_local $5) - ) - ) - (set_local $26 - (get_local $10) - ) - (i32.const 0) - ) - (block - (set_local $1 - (i32.lt_s - (tee_local $5 - (i32.sub + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (tee_local $6 (i32.add - (get_local $1) - (get_local $13) + (get_local $7) + (i32.const 3) ) - (get_local $6) ) + (get_local $9) ) - (i32.const 0) - ) - ) - (set_local $5 - (i32.lt_s - (get_local $8) - (tee_local $1 - (select - (i32.const 0) - (get_local $5) - (get_local $1) + (if + (i32.eqz + (i32.and + (if + (i32.and + (tee_local $5 + (i32.load + (get_local $0) + ) + ) + (i32.const 32) + ) + (get_local $5) + (block + (drop + (call $___fwritex + (get_local $36) + (get_local $7) + (get_local $0) + ) + ) + (i32.load + (get_local $0) + ) + ) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $8) + (i32.const 3) + (get_local $0) + ) + ) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $6) + (i32.xor + (get_local $10) + (i32.const 8192) + ) + ) + (select + (get_local $17) + (get_local $6) + (i32.lt_s + (get_local $6) + (get_local $17) ) ) ) ) - (set_local $15 - (select - (get_local $8) - (get_local $1) - (get_local $5) - ) - ) - (set_local $26 - (get_local $10) - ) - (i32.const 0) ) ) + (br $label$continue$L1) ) - (block - (set_local $15 - (get_local $1) - ) - (i32.and - (get_local $18) - (i32.const 8) - ) + (set_local $6 + (get_local $1) ) - ) - ) - ) - (set_local $17 - (i32.and - (i32.ne - (tee_local $1 - (i32.or - (get_local $15) - (get_local $8) - ) + (set_local $11 + (get_local $7) ) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (set_local $13 - (if - (tee_local $10 - (i32.eq - (i32.or - (get_local $26) - (i32.const 32) - ) - (i32.const 102) + (set_local $8 + (i32.const 0) + ) + (set_local $9 + (i32.const 4091) + ) + (set_local $1 + (get_local $23) ) + (br $jumpthreading$outer$7) ) - (block - (set_local $6 - (select - (get_local $13) - (i32.const 0) - (i32.gt_s - (get_local $13) - (i32.const 0) - ) - ) + (set_local $9 + (i32.and + (get_local $16) + (i32.const 32) ) - (i32.const 0) ) - (block - (set_local $5 - (i32.shr_s - (i32.shl - (i32.lt_s + (if + (i32.and + (i32.eqz + (tee_local $10 + (i32.load (tee_local $6 - (select - (get_local $27) - (get_local $13) - (i32.lt_s - (get_local $13) - (i32.const 0) - ) - ) - ) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.const 31) - ) - ) - (if - (i32.lt_s - (i32.sub - (get_local $40) - (tee_local $5 - (call $_fmt_u - (get_local $6) - (get_local $5) - (get_local $52) - ) - ) - ) - (i32.const 2) - ) - (loop $while-in$105 - (block $while-out$104 - (i32.store8 - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (br_if $while-out$104 - (i32.ge_s - (i32.sub - (get_local $40) - (get_local $5) - ) - (i32.const 2) + (get_local $18) ) ) - (br $while-in$105) ) ) - ) - (i32.store8 - (i32.add - (get_local $5) - (i32.const -1) - ) - (i32.and - (i32.add - (i32.and - (i32.shr_s - (get_local $13) - (i32.const 31) - ) - (i32.const 2) + (i32.eqz + (tee_local $6 + (i32.load offset=4 + (get_local $6) ) - (i32.const 43) ) - (i32.const 255) ) ) - (i32.store8 - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -2) - ) - ) - (i32.and - (get_local $26) - (i32.const 255) + (block + (set_local $6 + (get_local $23) ) - ) - (set_local $6 - (i32.sub - (get_local $40) - (get_local $5) + (set_local $8 + (i32.const 0) ) - ) - (get_local $5) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (tee_local $6 - (i32.add - (i32.add - (i32.add - (i32.add - (get_local $51) - (i32.const 1) - ) - (get_local $15) + (set_local $9 + (i32.const 4091) ) - (get_local $17) - ) - (get_local $6) - ) - ) - (get_local $18) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) + (br $jumpthreading$inner$7) ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $39) - (get_local $51) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $16) - (get_local $6) - (i32.xor - (get_local $18) - (i32.const 65536) - ) - ) - (block $do-once$106 - (if - (get_local $10) - (block - (set_local $7 - (tee_local $8 - (select - (get_local $9) - (get_local $7) - (i32.gt_u - (get_local $7) - (get_local $9) - ) - ) + (block + (set_local $8 + (get_local $23) ) - ) - (loop $while-in$109 - (block $while-out$108 - (set_local $5 - (call $_fmt_u - (i32.load - (get_local $7) - ) - (i32.const 0) - (get_local $45) - ) - ) - (block $do-once$110 - (if - (i32.eq - (get_local $7) + (loop $while-in$130 + (i32.store8 + (tee_local $8 + (i32.add (get_local $8) + (i32.const -1) ) - (block - (br_if $do-once$110 - (i32.ne - (get_local $5) - (get_local $45) - ) - ) - (i32.store8 - (get_local $53) - (i32.const 48) - ) - (set_local $5 - (get_local $53) - ) - ) - (block - (br_if $do-once$110 - (i32.le_u - (get_local $5) - (get_local $29) - ) - ) - (loop $while-in$113 - (block $while-out$112 - (i32.store8 - (tee_local $5 - (i32.add - (get_local $5) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (br_if $while-out$112 - (i32.le_u - (get_local $5) - (get_local $29) + ) + (i32.and + (i32.or + (i32.and + (i32.load8_s + (i32.add + (i32.and + (get_local $10) + (i32.const 15) ) + (i32.const 4075) ) - (br $while-in$113) ) + (i32.const 255) ) + (get_local $9) ) + (i32.const 255) ) ) - (if - (i32.eq + (br_if $while-in$130 + (i32.eqz (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (drop - (call $___fwritex - (get_local $5) - (i32.sub - (get_local $75) - (get_local $5) - ) - (get_local $0) - ) - ) - ) - (if - (i32.gt_u - (tee_local $7 - (i32.add - (get_local $7) - (i32.const 4) + (i32.eqz + (tee_local $10 + (call $_bitshift64Lshr + (get_local $10) + (get_local $6) + (i32.const 4) + ) + ) ) - ) - (get_local $9) - ) - (block - (set_local $5 - (get_local $7) - ) - (br $while-out$108) - ) - ) - (br $while-in$109) - ) - ) - (block $do-once$114 - (if - (i32.ne - (get_local $1) - (i32.const 0) - ) - (block - (br_if $do-once$114 - (i32.ne - (i32.and - (i32.load - (get_local $0) + (i32.eqz + (tee_local $6 + (get_global $tempRet0) ) - (i32.const 32) ) - (i32.const 0) - ) - ) - (drop - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) ) ) ) - ) - ) - (if - (i32.and - (i32.gt_s - (get_local $15) - (i32.const 0) - ) - (i32.lt_u - (get_local $5) - (get_local $23) + (set_local $6 + (get_local $8) ) ) - (loop $while-in$117 - (block $while-out$116 - (if - (i32.gt_u - (tee_local $1 - (call $_fmt_u - (i32.load - (get_local $5) - ) - (i32.const 0) - (get_local $45) - ) - ) - (get_local $29) - ) - (loop $while-in$119 - (block $while-out$118 - (i32.store8 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (br_if $while-out$118 - (i32.le_u - (get_local $1) - (get_local $29) - ) - ) - (br $while-in$119) - ) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (drop - (call $___fwritex - (get_local $1) - (select - (i32.const 9) - (get_local $15) - (i32.gt_s - (get_local $15) - (i32.const 9) - ) - ) - (get_local $0) - ) - ) - ) - (set_local $1 - (i32.add - (get_local $15) - (i32.const -9) + (if + (i32.or + (i32.eqz + (i32.and + (get_local $1) + (i32.const 8) ) ) - (if - (i32.and - (i32.gt_s - (get_local $15) - (i32.const 9) - ) - (i32.lt_u - (tee_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) + (i32.and + (i32.eqz + (i32.load + (tee_local $10 + (get_local $18) ) - (get_local $23) ) ) - (set_local $15 - (get_local $1) - ) - (block - (set_local $15 - (get_local $1) + (i32.eqz + (i32.load offset=4 + (get_local $10) ) - (br $while-out$116) ) ) - (br $while-in$117) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $15) - (i32.const 9) - ) - (i32.const 9) - (i32.const 0) - ) - ) - (block - (set_local $11 - (select - (get_local $23) - (i32.add - (get_local $7) - (i32.const 4) ) - (get_local $11) - ) - ) - (if - (i32.gt_s - (get_local $15) - (i32.const -1) - ) - (block - (set_local $9 - (i32.eq - (get_local $8) + (block + (set_local $8 (i32.const 0) ) + (set_local $9 + (i32.const 4091) + ) + (br $jumpthreading$inner$7) ) - (set_local $5 - (get_local $7) - ) - (loop $while-in$121 - (block $while-out$120 - (set_local $8 - (if - (i32.eq - (tee_local $1 - (call $_fmt_u - (i32.load - (get_local $5) - ) - (i32.const 0) - (get_local $45) - ) - ) - (get_local $45) - ) - (block - (i32.store8 - (get_local $53) - (i32.const 48) - ) - (get_local $53) - ) - (get_local $1) - ) - ) - (block $do-once$122 - (if - (i32.eq - (get_local $5) - (get_local $7) - ) - (block - (set_local $1 - (i32.add - (get_local $8) - (i32.const 1) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (i32.const 1) - (get_local $0) - ) - ) - (br_if $do-once$122 - (i32.and - (get_local $9) - (i32.lt_s - (get_local $15) - (i32.const 1) - ) - ) - ) - (br_if $do-once$122 - (i32.ne - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - ) - (drop - (call $___fwritex - (i32.const 4143) - (i32.const 1) - (get_local $0) - ) - ) - ) - (block - (if - (i32.gt_u - (get_local $8) - (get_local $29) - ) - (set_local $1 - (get_local $8) - ) - (block - (set_local $1 - (get_local $8) - ) - (br $do-once$122) - ) - ) - (loop $while-in$125 - (block $while-out$124 - (i32.store8 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.const 48) - ) - (br_if $while-out$124 - (i32.le_u - (get_local $1) - (get_local $29) - ) - ) - (br $while-in$125) - ) - ) - ) - ) - ) - (set_local $8 - (i32.sub - (get_local $75) - (get_local $1) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (drop - (call $___fwritex - (get_local $1) - (select - (get_local $8) - (get_local $15) - (i32.gt_s - (get_local $15) - (get_local $8) - ) - ) - (get_local $0) - ) - ) - ) - (br_if $while-out$120 - (i32.eqz - (i32.and - (i32.lt_u - (tee_local $5 - (i32.add - (get_local $5) - (i32.const 4) - ) - ) - (get_local $11) - ) - (i32.gt_s - (tee_local $15 - (i32.sub - (get_local $15) - (get_local $8) - ) - ) - (i32.const -1) - ) - ) + (block + (set_local $8 + (i32.const 2) + ) + (set_local $9 + (i32.add + (i32.const 4091) + (i32.shr_s + (get_local $16) + (i32.const 4) ) ) - (br $while-in$121) - ) - ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (i32.add - (get_local $15) - (i32.const 18) - ) - (i32.const 18) - (i32.const 0) - ) - (br_if $do-once$106 - (i32.ne - (i32.and - (i32.load - (get_local $0) ) - (i32.const 32) - ) - (i32.const 0) - ) - ) - (drop - (call $___fwritex - (get_local $13) - (i32.sub - (get_local $40) - (get_local $13) + (br $jumpthreading$inner$7) ) - (get_local $0) ) ) ) + (br $jumpthreading$outer$7) ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (get_local $6) - (i32.xor - (get_local $18) - (i32.const 8192) + (set_local $6 + (call $_fmt_u + (get_local $1) + (get_local $6) + (get_local $23) + ) ) - ) - (select - (get_local $16) - (get_local $6) - (i32.lt_s - (get_local $6) - (get_local $16) + (set_local $1 + (get_local $10) ) + (br $jumpthreading$inner$7) ) - ) - (block - (set_local $5 - (select - (i32.const 4127) - (i32.const 4131) - (tee_local $8 - (i32.ne - (i32.and - (get_local $26) - (i32.const 32) - ) - (i32.const 0) - ) - ) - ) + (set_local $28 + (i32.const 0) ) - (set_local $6 - (select - (i32.const 0) - (get_local $51) - (tee_local $1 - (i32.or - (f64.ne - (get_local $14) - (get_local $14) - ) + (set_local $16 + (i32.eqz + (tee_local $12 + (call $_memchr + (get_local $1) (i32.const 0) + (get_local $7) ) ) ) ) - (set_local $8 - (select - (select - (i32.const 4135) - (i32.const 4139) - (get_local $8) - ) - (get_local $5) - (get_local $1) - ) + (set_local $6 + (get_local $1) ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (tee_local $5 - (i32.add - (get_local $6) - (i32.const 3) - ) - ) - (get_local $7) + (set_local $10 + (get_local $9) ) - (if - (i32.eq - (i32.and - (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (get_local $0) - ) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (block - (drop - (call $___fwritex - (get_local $39) - (get_local $6) - (get_local $0) - ) - ) - (i32.load - (get_local $0) - ) - ) - (get_local $1) - ) - (i32.const 32) + (set_local $11 + (select + (get_local $7) + (i32.sub + (get_local $12) + (get_local $1) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $8) - (i32.const 3) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) - (get_local $5) - (i32.xor - (get_local $18) - (i32.const 8192) - ) - ) - (select - (get_local $16) - (get_local $5) - (i32.lt_s - (get_local $5) (get_local $16) ) ) - ) - ) - ) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) - ) - (set_local $47 - (get_local $20) - ) - (set_local $37 - (get_local $18) - ) - (set_local $42 - (get_local $10) - ) - (set_local $43 - (i32.const 0) - ) - (set_local $48 - (i32.const 4091) - ) - (set_local $49 - (get_local $28) - ) - ) - (block $label$break$L308 - (if - (i32.eq - (get_local $12) - (i32.const 64) - ) - (block - (set_local $7 - (i32.and - (get_local $68) - (i32.const 32) - ) - ) - (set_local $58 - (if - (i32.and - (i32.eq - (tee_local $5 - (i32.load - (tee_local $1 - (get_local $19) - ) - ) - ) + (set_local $8 (i32.const 0) ) - (i32.eq - (tee_local $1 - (i32.load offset=4 + (set_local $9 + (i32.const 4091) + ) + (set_local $1 + (select + (i32.add (get_local $1) + (get_local $7) ) + (get_local $12) + (get_local $16) ) - (i32.const 0) ) + (br $jumpthreading$outer$7) ) - (block - (set_local $34 - (get_local $46) - ) - (set_local $32 - (get_local $57) - ) - (set_local $35 - (i32.const 0) - ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) - ) - (get_local $28) + (set_local $1 + (i32.const 0) ) - (block - (set_local $6 - (get_local $28) + (set_local $6 + (i32.const 0) + ) + (set_local $7 + (i32.load + (get_local $18) ) - (loop $while-in$130 - (block $while-out$129 - (i32.store8 - (tee_local $6 - (i32.add - (get_local $6) - (i32.const -1) - ) - ) - (i32.and - (i32.or - (i32.and - (i32.load8_s - (i32.add - (i32.and - (get_local $5) - (i32.const 15) - ) - (i32.const 4075) - ) - ) - (i32.const 255) - ) + ) + (loop $while-in$132 + (block $while-out$131 + (br_if $while-out$131 + (i32.eqz + (tee_local $9 + (i32.load (get_local $7) ) - (i32.const 255) ) ) - (br_if $while-out$129 - (i32.and - (i32.eq - (tee_local $5 - (call $_bitshift64Lshr - (get_local $5) - (get_local $1) - (i32.const 4) - ) - ) - (i32.const 0) - ) - (i32.eq - (tee_local $1 - (get_global $tempRet0) - ) - (i32.const 0) - ) - ) - ) - (br $while-in$130) ) - ) - (if - (i32.or - (i32.eq - (i32.and - (get_local $46) - (i32.const 8) - ) - (i32.const 0) - ) - (i32.and - (i32.eq - (i32.load - (tee_local $1 - (get_local $19) + (br_if $while-out$131 + (i32.or + (i32.lt_s + (tee_local $6 + (call $_wctomb + (get_local $41) + (get_local $9) ) ) (i32.const 0) ) - (i32.eq - (i32.load offset=4 + (i32.gt_u + (get_local $6) + (i32.sub + (get_local $8) (get_local $1) ) - (i32.const 0) ) ) ) - (block - (set_local $34 - (get_local $46) - ) - (set_local $32 - (get_local $57) - ) - (set_local $35 - (i32.const 0) - ) - (set_local $36 - (i32.const 4091) - ) - (set_local $12 - (i32.const 77) + (set_local $7 + (i32.add + (get_local $7) + (i32.const 4) ) - (get_local $6) ) - (block - (set_local $34 - (get_local $46) - ) - (set_local $32 - (get_local $57) - ) - (set_local $35 - (i32.const 2) - ) - (set_local $36 - (i32.add - (i32.const 4091) - (i32.shr_s - (get_local $68) - (i32.const 4) + (br_if $while-in$132 + (i32.gt_u + (get_local $8) + (tee_local $1 + (i32.add + (get_local $6) + (get_local $1) ) ) ) - (set_local $12 - (i32.const 77) - ) - (get_local $6) ) ) ) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 76) - ) - (block - (set_local $58 - (call $_fmt_u - (get_local $33) - (get_local $59) - (get_local $28) - ) - ) - (set_local $34 - (get_local $18) - ) - (set_local $32 - (get_local $10) - ) - (set_local $35 - (get_local $60) - ) - (set_local $36 - (get_local $61) - ) - (set_local $12 - (i32.const 77) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 82) - ) - (block - (set_local $12 - (i32.const 0) - ) - (set_local $5 - (i32.eq - (tee_local $1 - (call $_memchr - (get_local $50) - (i32.const 0) - (get_local $10) - ) - ) + (if + (i32.lt_s + (get_local $6) (i32.const 0) ) - ) - (set_local $47 - (get_local $50) - ) - (set_local $37 - (get_local $7) - ) - (set_local $42 - (select - (get_local $10) - (i32.sub - (get_local $1) - (get_local $50) + (block + (set_local $15 + (i32.const -1) ) - (get_local $5) + (br $label$break$L1) ) ) - (set_local $43 - (i32.const 0) - ) - (set_local $48 - (i32.const 4091) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $1) + (get_local $10) ) - (set_local $49 - (select - (i32.add - (get_local $50) - (get_local $10) + (if + (get_local $1) + (block + (set_local $6 + (i32.const 0) ) - (get_local $1) - (get_local $5) - ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 86) - ) - (block - (set_local $12 - (i32.const 0) - ) - (set_local $7 - (i32.const 0) - ) - (set_local $5 - (i32.const 0) - ) - (set_local $6 - (i32.load - (get_local $19) + (set_local $7 + (i32.load + (get_local $18) + ) ) - ) - (loop $while-in$132 - (block $while-out$131 - (br_if $while-out$131 - (i32.eq - (tee_local $1 + (loop $while-in$134 + (if + (i32.eqz + (tee_local $8 (i32.load - (get_local $6) + (get_local $7) ) ) - (i32.const 0) ) - ) - (br_if $while-out$131 - (i32.or - (i32.lt_s - (tee_local $5 - (call $_wctomb - (get_local $63) - (get_local $1) - ) - ) - (i32.const 0) - ) - (i32.gt_u - (get_local $5) - (i32.sub - (get_local $69) - (get_local $7) - ) + (block + (set_local $6 + (get_local $1) ) + (br $jumpthreading$inner$6) ) ) - (set_local $6 + (set_local $7 (i32.add - (get_local $6) + (get_local $7) (i32.const 4) ) ) (if - (i32.gt_u - (get_local $69) - (tee_local $1 + (i32.gt_s + (tee_local $6 (i32.add - (get_local $5) - (get_local $7) + (tee_local $8 + (call $_wctomb + (get_local $41) + (get_local $8) + ) + ) + (get_local $6) ) ) - ) - (set_local $7 (get_local $1) ) (block - (set_local $7 + (set_local $6 (get_local $1) ) - (br $while-out$131) + (br $jumpthreading$inner$6) ) ) - (br $while-in$132) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) + ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $41) + (get_local $8) + (get_local $0) + ) + ) + ) + (br_if $while-in$134 + (i32.lt_u + (get_local $6) + (get_local $1) + ) + ) + (block + (set_local $6 + (get_local $1) + ) + (br $jumpthreading$inner$6) + ) ) ) - (if - (i32.lt_s - (get_local $5) + (block + (set_local $6 (i32.const 0) ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L1) - ) + (br $jumpthreading$inner$6) ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $16) + ) + (br $jumpthreading$outer$7) + ) + (set_local $28 + (i32.const 0) + ) + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $17) + (get_local $6) + (i32.xor + (get_local $10) + (i32.const 8192) + ) + ) + (set_local $1 + (get_local $5) + ) + (set_local $5 + (select + (get_local $17) + (get_local $6) + (i32.gt_s + (get_local $17) + (get_local $6) + ) + ) + ) + (br $label$continue$L1) + ) + (set_local $28 + (i32.const 0) + ) + (set_local $10 + (select + (i32.and + (get_local $1) + (i32.const -65537) + ) + (get_local $1) + (i32.gt_s + (get_local $7) + (i32.const -1) + ) + ) + ) + (set_local $6 + (if + (i32.or + (i32.ne (get_local $7) - (get_local $18) + (i32.const 0) ) - (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (block - (set_local $38 - (i32.const 0) - ) - (set_local $12 - (i32.const 98) - ) - ) - (block - (set_local $6 + (tee_local $1 + (i32.or + (i32.ne + (i32.load + (tee_local $1 + (get_local $18) + ) + ) (i32.const 0) ) - (set_local $8 - (i32.load - (get_local $19) + (i32.ne + (i32.load offset=4 + (get_local $1) ) + (i32.const 0) ) - (loop $while-in$134 - (block $while-out$133 - (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $8) - ) - ) - (i32.const 0) - ) - (block - (set_local $38 - (get_local $7) - ) - (set_local $12 - (i32.const 98) - ) - (br $label$break$L308) - ) - ) - (set_local $8 - (i32.add - (get_local $8) - (i32.const 4) - ) - ) - (if - (i32.gt_s - (tee_local $1 - (i32.add - (tee_local $5 - (call $_wctomb - (get_local $63) - (get_local $1) - ) - ) - (get_local $6) - ) - ) - (get_local $7) - ) - (block - (set_local $38 - (get_local $7) - ) - (set_local $12 - (i32.const 98) - ) - (br $label$break$L308) - ) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) - ) - (i32.const 0) - ) - (call $___fwritex - (get_local $63) - (get_local $5) - (get_local $0) - ) - ) - (if - (i32.lt_u - (get_local $1) - (get_local $7) - ) - (set_local $6 + ) + ) + ) + (block + (set_local $11 + (select + (get_local $7) + (tee_local $1 + (i32.add + (i32.xor + (i32.and (get_local $1) + (i32.const 1) ) - (block - (set_local $38 - (get_local $7) - ) - (set_local $12 - (i32.const 98) - ) - (br $while-out$133) - ) + (i32.const 1) + ) + (i32.sub + (get_local $45) + (get_local $6) ) - (br $while-in$134) ) ) + (i32.gt_s + (get_local $7) + (get_local $1) + ) ) ) + (set_local $1 + (get_local $23) + ) + (get_local $6) + ) + (block + (set_local $11 + (i32.const 0) + ) + (set_local $1 + (get_local $23) + ) + (get_local $23) ) ) ) ) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 98) - ) - (block - (set_local $12 - (i32.const 0) - ) (call $_pad (get_local $0) (i32.const 32) - (get_local $16) - (get_local $38) - (i32.xor - (get_local $18) - (i32.const 8192) - ) - ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (select - (get_local $16) - (get_local $38) - (i32.gt_s - (get_local $16) - (get_local $38) - ) - ) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) - ) - ) - (if - (i32.eq - (get_local $12) - (i32.const 77) - ) - (block - (set_local $12 - (i32.const 0) - ) - (set_local $5 - (select - (i32.and - (get_local $34) - (i32.const -65537) - ) - (get_local $34) - (i32.gt_s - (get_local $32) - (i32.const -1) - ) - ) - ) - (set_local $47 - (if - (i32.or - (i32.ne - (get_local $32) - (i32.const 0) - ) + (tee_local $7 + (select (tee_local $1 - (i32.or - (i32.ne - (i32.load - (tee_local $1 - (get_local $19) - ) - ) - (i32.const 0) - ) - (i32.ne - (i32.load offset=4 - (get_local $1) - ) - (i32.const 0) - ) - ) - ) - ) - (block - (set_local $7 - (i32.gt_s - (get_local $32) - (tee_local $1 - (i32.add - (i32.xor - (i32.and + (i32.add + (get_local $8) + (tee_local $11 + (select + (tee_local $12 + (i32.sub (get_local $1) - (i32.const 1) + (get_local $6) ) - (i32.const 1) ) - (i32.sub - (get_local $71) - (get_local $58) + (get_local $11) + (i32.lt_s + (get_local $11) + (get_local $12) ) ) ) ) ) - (set_local $37 - (get_local $5) - ) - (set_local $42 - (select - (get_local $32) - (get_local $1) - (get_local $7) - ) - ) - (set_local $43 - (get_local $35) - ) - (set_local $48 - (get_local $36) - ) - (set_local $49 - (get_local $28) + (get_local $17) + (i32.lt_s + (get_local $17) + (get_local $1) ) - (get_local $58) ) - (block - (set_local $37 - (get_local $5) - ) - (set_local $42 - (i32.const 0) - ) - (set_local $43 - (get_local $35) - ) - (set_local $48 - (get_local $36) - ) - (set_local $49 - (get_local $28) + ) + (get_local $1) + (get_local $10) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) - (get_local $28) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $9) + (get_local $8) + (get_local $0) ) ) ) - ) - ) - (set_local $1 - (i32.lt_s - (get_local $42) - (tee_local $7 - (i32.sub - (get_local $49) - (get_local $47) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $7) + (get_local $1) + (i32.xor + (get_local $10) + (i32.const 65536) ) ) - ) - ) - (set_local $5 - (i32.lt_s - (get_local $16) - (tee_local $1 - (i32.add - (get_local $43) - (tee_local $6 - (select - (get_local $7) - (get_local $42) - (get_local $1) + (call $_pad + (get_local $0) + (i32.const 48) + (get_local $11) + (get_local $12) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (i32.load + (get_local $0) ) + (i32.const 32) + ) + ) + (drop + (call $___fwritex + (get_local $6) + (get_local $12) + (get_local $0) ) ) ) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (tee_local $5 - (select + (call $_pad + (get_local $0) + (i32.const 32) + (get_local $7) (get_local $1) - (get_local $16) - (get_local $5) - ) - ) - (get_local $1) - (get_local $37) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) + (i32.xor + (get_local $10) + (i32.const 8192) ) - (i32.const 32) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $48) - (get_local $43) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $5) - (get_local $1) - (i32.xor - (get_local $37) - (i32.const 65536) - ) - ) - (call $_pad - (get_local $0) - (i32.const 48) - (get_local $6) - (get_local $7) - (i32.const 0) - ) - (if - (i32.eq - (i32.and - (i32.load - (get_local $0) - ) - (i32.const 32) + (set_local $1 + (get_local $5) ) - (i32.const 0) - ) - (call $___fwritex - (get_local $47) - (get_local $7) - (get_local $0) - ) - ) - (call $_pad - (get_local $0) - (i32.const 32) - (get_local $5) - (get_local $1) - (i32.xor - (get_local $37) - (i32.const 8192) + (set_local $5 + (get_local $7) + ) + (br $label$continue$L1) ) ) - (set_local $20 - (get_local $9) - ) - (set_local $1 - (get_local $5) - ) - (set_local $8 - (get_local $21) - ) - (br $label$continue$L1) + (br $label$break$L343) ) - ) - (block $label$break$L343 (if - (i32.eq - (get_local $12) - (i32.const 242) + (i32.eqz + (get_local $0) ) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (if - (i32.eq - (get_local $83) - (i32.const 0) - ) - (set_local $24 - (i32.const 0) + (get_local $13) + (block + (set_local $0 + (i32.const 1) ) - (block - (set_local $1 - (i32.const 1) - ) - (loop $while-in$137 - (block $while-out$136 - (br_if $while-out$136 - (i32.eq - (tee_local $0 - (i32.load - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) + (loop $while-in$137 + (block $while-out$136 + (br_if $while-out$136 + (i32.eqz + (tee_local $1 + (i32.load + (i32.add + (get_local $4) + (i32.shl + (get_local $0) + (i32.const 2) ) ) ) - (i32.const 0) ) ) - (call $_pop_arg_336 - (i32.add - (get_local $3) - (i32.shl - (get_local $1) - (i32.const 3) - ) + ) + (call $_pop_arg_336 + (i32.add + (get_local $3) + (i32.shl + (get_local $0) + (i32.const 3) ) - (get_local $0) - (get_local $2) ) - (if - (i32.ge_s - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 10) - ) - (block - (set_local $24 + (get_local $1) + (get_local $2) + ) + (br_if $while-in$137 + (i32.lt_s + (tee_local $0 + (i32.add + (get_local $0) (i32.const 1) ) - (br $label$break$L343) ) + (i32.const 10) + ) + ) + (block + (set_local $15 + (i32.const 1) ) - (br $while-in$137) + (br $label$break$L343) ) ) - (if - (i32.lt_s - (get_local $1) - (i32.const 10) + ) + (if + (i32.lt_s + (get_local $0) + (i32.const 10) + ) + (loop $while-in$139 + (set_local $1 + (i32.add + (get_local $0) + (i32.const 1) + ) ) - (loop $while-in$139 - (block $while-out$138 - (set_local $0 - (i32.add - (get_local $1) - (i32.const 1) + (if + (i32.load + (i32.add + (get_local $4) + (i32.shl + (get_local $0) + (i32.const 2) ) ) - (if - (i32.ne - (i32.load - (i32.add - (get_local $4) - (i32.shl - (get_local $1) - (i32.const 2) - ) - ) - ) - (i32.const 0) - ) - (block - (set_local $24 - (i32.const -1) - ) - (br $label$break$L343) - ) + ) + (block + (set_local $15 + (i32.const -1) ) - (if - (i32.lt_s - (get_local $0) - (i32.const 10) - ) - (set_local $1 - (get_local $0) - ) - (block - (set_local $24 - (i32.const 1) - ) - (br $while-out$138) - ) + (br $label$break$L343) + ) + ) + (if + (i32.lt_s + (get_local $1) + (i32.const 10) + ) + (block + (set_local $0 + (get_local $1) ) (br $while-in$139) ) + (set_local $15 + (i32.const 1) + ) ) - (set_local $24 - (i32.const 1) - ) + ) + (set_local $15 + (i32.const 1) ) ) ) - (set_local $24 - (get_local $82) + (set_local $15 + (i32.const 0) ) ) ) ) (set_global $STACKTOP - (get_local $31) + (get_local $27) ) - (get_local $24) + (get_local $15) ) (func $_pop_arg_336 (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -8753,22 +7701,27 @@ (i32.const 4) ) ) - (set_local $2 + (i32.store + (get_local $0) + (tee_local $1 + (i32.shr_s + (i32.shl + (i32.and + (get_local $3) + (i32.const 65535) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + ) + (i32.store offset=4 + (get_local $0) (i32.shr_s (i32.shl (i32.lt_s - (tee_local $1 - (i32.shr_s - (i32.shl - (i32.and - (get_local $3) - (i32.const 65535) - ) - (i32.const 16) - ) - (i32.const 16) - ) - ) + (get_local $1) (i32.const 0) ) (i32.const 31) @@ -8776,14 +7729,6 @@ (i32.const 31) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $2) - ) (br $label$break$L1) ) (set_local $3 @@ -8843,22 +7788,27 @@ (i32.const 4) ) ) - (set_local $2 + (i32.store + (get_local $0) + (tee_local $1 + (i32.shr_s + (i32.shl + (i32.and + (get_local $3) + (i32.const 255) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + ) + (i32.store offset=4 + (get_local $0) (i32.shr_s (i32.shl (i32.lt_s - (tee_local $1 - (i32.shr_s - (i32.shl - (i32.and - (get_local $3) - (i32.const 255) - ) - (i32.const 24) - ) - (i32.const 24) - ) - ) + (get_local $1) (i32.const 0) ) (i32.const 31) @@ -8866,14 +7816,6 @@ (i32.const 31) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (get_local $2) - ) (br $label$break$L1) ) (set_local $3 @@ -8972,7 +7914,7 @@ (func $_fmt_u (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (set_local $0 + (set_local $1 (if (i32.or (i32.gt_u @@ -8980,9 +7922,8 @@ (i32.const 0) ) (i32.and - (i32.eq + (i32.eqz (get_local $1) - (i32.const 0) ) (i32.gt_u (get_local $0) @@ -8991,151 +7932,129 @@ ) ) (block - (set_local $3 - (get_local $0) - ) - (set_local $4 - (get_local $1) - ) (loop $while-in$1 - (block $while-out$0 - (set_local $0 - (call $___uremdi3 + (set_local $3 + (call $___uremdi3 + (get_local $0) + (get_local $1) + (i32.const 10) + (i32.const 0) + ) + ) + (i32.store8 + (tee_local $2 + (i32.add + (get_local $2) + (i32.const -1) + ) + ) + (i32.and + (i32.or (get_local $3) - (get_local $4) - (i32.const 10) - (i32.const 0) + (i32.const 48) ) + (i32.const 255) ) - (i32.store8 - (tee_local $2 - (i32.add - (get_local $2) - (i32.const -1) - ) + ) + (set_local $3 + (call $___udivdi3 + (get_local $0) + (get_local $1) + (i32.const 10) + (i32.const 0) + ) + ) + (set_local $4 + (get_global $tempRet0) + ) + (if + (i32.or + (i32.gt_u + (get_local $1) + (i32.const 9) ) (i32.and - (i32.or + (i32.eq + (get_local $1) + (i32.const 9) + ) + (i32.gt_u (get_local $0) - (i32.const 48) + (i32.const -1) ) - (i32.const 255) ) ) - (set_local $0 - (call $___udivdi3 + (block + (set_local $0 (get_local $3) + ) + (set_local $1 (get_local $4) - (i32.const 10) - (i32.const 0) ) + (br $while-in$1) ) - (set_local $1 - (get_global $tempRet0) - ) - (if - (i32.or - (i32.gt_u - (get_local $4) - (i32.const 9) - ) - (i32.and - (i32.eq - (get_local $4) - (i32.const 9) - ) - (i32.gt_u - (get_local $3) - (i32.const -1) - ) - ) - ) - (block - (set_local $3 - (get_local $0) - ) - (set_local $4 - (get_local $1) - ) - ) - (br $while-out$0) + (set_local $0 + (get_local $3) ) - (br $while-in$1) ) ) - (set_local $3 - (get_local $0) - ) - (get_local $2) - ) - (block - (set_local $3 - (get_local $0) - ) (get_local $2) ) + (get_local $2) ) ) (if - (i32.ne - (get_local $3) - (i32.const 0) - ) - (block - (set_local $1 - (get_local $0) - ) - (loop $while-in$3 - (block $while-out$2 - (i32.store8 - (tee_local $1 - (i32.add - (get_local $1) - (i32.const -1) - ) - ) - (i32.and - (i32.or - (i32.and - (i32.rem_u - (get_local $3) - (i32.const 10) - ) - (i32.const -1) - ) - (i32.const 48) - ) - (i32.const 255) - ) + (get_local $0) + (loop $while-in$3 + (i32.store8 + (tee_local $1 + (i32.add + (get_local $1) + (i32.const -1) ) - (set_local $0 + ) + (i32.and + (i32.or (i32.and - (i32.div_u - (get_local $3) + (i32.rem_u + (get_local $0) (i32.const 10) ) (i32.const -1) ) + (i32.const 48) ) - (if - (i32.lt_u - (get_local $3) - (i32.const 10) - ) - (block - (set_local $0 - (get_local $1) - ) - (br $while-out$2) - ) - (set_local $3 - (get_local $0) - ) + (i32.const 255) + ) + ) + (set_local $2 + (i32.and + (i32.div_u + (get_local $0) + (i32.const 10) + ) + (i32.const -1) + ) + ) + (if + (i32.lt_u + (get_local $0) + (i32.const 10) + ) + (set_local $0 + (get_local $1) + ) + (block + (set_local $0 + (get_local $2) ) (br $while-in$3) ) ) ) + (set_local $0 + (get_local $1) + ) ) (get_local $0) ) @@ -9143,7 +8062,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (set_local $7 + (local $8 i32) + (set_local $6 (get_global $STACKTOP) ) (set_global $STACKTOP @@ -9159,8 +8079,8 @@ ) (call_import $abort) ) - (set_local $6 - (get_local $7) + (set_local $5 + (get_local $6) ) (block $do-once$0 (if @@ -9169,39 +8089,35 @@ (get_local $2) (get_local $3) ) - (i32.eq + (i32.eqz (i32.and (get_local $4) (i32.const 73728) ) - (i32.const 0) ) ) (block - (set_local $4 - (i32.gt_u - (tee_local $5 - (i32.sub - (get_local $2) - (get_local $3) - ) - ) - (i32.const 256) - ) - ) (drop (call $_memset - (get_local $6) + (get_local $5) (get_local $1) (select (i32.const 256) - (get_local $5) - (get_local $4) + (tee_local $4 + (i32.sub + (get_local $2) + (get_local $3) + ) + ) + (i32.gt_u + (get_local $4) + (i32.const 256) + ) ) ) ) - (set_local $4 - (i32.eq + (set_local $7 + (i32.eqz (i32.and (tee_local $1 (i32.load @@ -9210,89 +8126,87 @@ ) (i32.const 32) ) - (i32.const 0) ) ) (if (i32.gt_u - (get_local $5) + (get_local $4) (i32.const 255) ) (block - (set_local $2 + (set_local $8 (i32.sub (get_local $2) (get_local $3) ) ) + (set_local $2 + (get_local $4) + ) (set_local $3 - (get_local $5) + (get_local $7) ) (loop $while-in$3 - (block $while-out$2 - (set_local $4 - (i32.eq - (i32.and - (tee_local $1 - (if - (get_local $4) - (block - (drop - (call $___fwritex - (get_local $6) - (i32.const 256) - (get_local $0) - ) - ) - (i32.load + (set_local $3 + (i32.eqz + (i32.and + (tee_local $1 + (if + (get_local $3) + (block + (drop + (call $___fwritex + (get_local $5) + (i32.const 256) (get_local $0) ) ) - (get_local $1) + (i32.load + (get_local $0) + ) ) + (get_local $1) ) - (i32.const 32) ) - (i32.const 0) + (i32.const 32) ) ) - (br_if $while-out$2 - (i32.le_u - (tee_local $3 - (i32.add - (get_local $3) - (i32.const -256) - ) + ) + (br_if $while-in$3 + (i32.gt_u + (tee_local $2 + (i32.add + (get_local $2) + (i32.const -256) ) - (i32.const 255) ) + (i32.const 255) ) - (br $while-in$3) ) ) (set_local $1 (i32.and - (get_local $2) + (get_local $8) (i32.const 255) ) ) (br_if $do-once$0 (i32.eqz - (get_local $4) + (get_local $3) ) ) ) (if - (get_local $4) + (get_local $7) (set_local $1 - (get_local $5) + (get_local $4) ) (br $do-once$0) ) ) (drop (call $___fwritex - (get_local $6) + (get_local $5) (get_local $1) (get_local $0) ) @@ -9301,7 +8215,7 @@ ) ) (set_global $STACKTOP - (get_local $7) + (get_local $6) ) ) (func $_malloc (param $0 i32) (result i32) @@ -9329,28 +8243,6 @@ (local $22 i32) (local $23 i32) (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) - (local $30 i32) - (local $31 i32) - (local $32 i32) - (local $33 i32) - (local $34 i32) - (local $35 i32) - (local $36 i32) - (local $37 i32) - (local $38 i32) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i32) - (local $44 i32) - (local $45 i32) - (local $46 i32) (block $do-once$0 (if (i32.lt_u @@ -9359,66 +8251,63 @@ ) (block (if - (i32.ne - (i32.and - (tee_local $25 - (i32.shr_u - (tee_local $4 - (i32.load - (i32.const 176) - ) + (i32.and + (tee_local $1 + (i32.shr_u + (tee_local $10 + (i32.load + (i32.const 176) ) - (tee_local $22 - (i32.shr_u - (tee_local $6 - (select - (i32.const 16) - (i32.and - (i32.add - (get_local $0) - (i32.const 11) - ) - (i32.const -8) - ) - (i32.lt_u + ) + (tee_local $4 + (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 3) ) + (i32.const 3) ) ) ) - (i32.const 3) ) - (i32.const 0) + (i32.const 3) ) (block - (set_local $2 + (set_local $4 (i32.load - (tee_local $3 + (tee_local $1 (i32.add - (tee_local $1 + (tee_local $5 (i32.load - (tee_local $0 + (tee_local $9 (i32.add - (tee_local $9 + (tee_local $2 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $8 + (tee_local $3 (i32.add (i32.xor (i32.and - (get_local $25) + (get_local $1) (i32.const 1) ) (i32.const 1) ) - (get_local $22) + (get_local $4) ) ) (i32.const 1) @@ -9439,17 +8328,17 @@ ) (if (i32.eq - (get_local $9) (get_local $2) + (get_local $4) ) (i32.store (i32.const 176) (i32.and - (get_local $4) + (get_local $10) (i32.xor (i32.shl (i32.const 1) - (get_local $8) + (get_local $3) ) (i32.const -1) ) @@ -9458,7 +8347,7 @@ (block (if (i32.lt_u - (get_local $2) + (get_local $4) (i32.load (i32.const 192) ) @@ -9468,70 +8357,67 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $0 (i32.add - (get_local $2) + (get_local $4) (i32.const 12) ) ) ) - (get_local $1) + (get_local $5) ) (block (i32.store - (get_local $4) - (get_local $9) - ) - (i32.store (get_local $0) (get_local $2) ) + (i32.store + (get_local $9) + (get_local $4) + ) ) (call_import $_abort) ) ) ) (i32.store offset=4 - (get_local $1) + (get_local $5) (i32.or (tee_local $0 (i32.shl - (get_local $8) + (get_local $3) (i32.const 3) ) ) (i32.const 3) ) ) - (set_local $1 + (i32.store + (tee_local $0 + (i32.add + (i32.add + (get_local $5) + (get_local $0) + ) + (i32.const 4) + ) + ) (i32.or (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $1) - (get_local $0) - ) - (i32.const 4) - ) - ) + (get_local $0) ) (i32.const 1) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) (return - (get_local $3) + (get_local $1) ) ) ) (if (i32.gt_u - (get_local $6) - (tee_local $10 + (get_local $3) + (tee_local $0 (i32.load (i32.const 184) ) @@ -9539,47 +8425,38 @@ ) (block (if - (i32.ne - (get_local $25) - (i32.const 0) - ) + (get_local $1) (block - (set_local $1 - (i32.sub - (i32.const 0) - (tee_local $0 - (i32.shl - (i32.const 2) - (get_local $22) - ) - ) - ) - ) - (set_local $1 - (i32.sub - (i32.const 0) - (tee_local $0 - (i32.and - (i32.shl - (get_local $25) - (get_local $22) - ) - (i32.or - (get_local $0) - (get_local $1) - ) - ) - ) - ) - ) - (set_local $0 + (set_local $5 (i32.and (i32.shr_u (tee_local $1 (i32.add (i32.and - (get_local $0) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shl + (get_local $1) + (get_local $4) + ) + (i32.or + (tee_local $1 + (i32.shl + (i32.const 2) + (get_local $4) + ) + ) + (i32.sub + (i32.const 0) + (get_local $1) + ) + ) + ) + ) + (i32.sub + (i32.const 0) + (get_local $1) + ) ) (i32.const -1) ) @@ -9589,32 +8466,32 @@ (i32.const 16) ) ) - (set_local $0 + (set_local $7 (i32.load - (tee_local $3 + (tee_local $5 (i32.add - (tee_local $2 + (tee_local $9 (i32.load - (tee_local $1 + (tee_local $6 (i32.add - (tee_local $9 + (tee_local $1 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $8 + (tee_local $4 (i32.add (i32.or (i32.or (i32.or (i32.or - (tee_local $1 + (tee_local $4 (i32.and (i32.shr_u - (tee_local $2 + (tee_local $1 (i32.shr_u (get_local $1) - (get_local $0) + (get_local $5) ) ) (i32.const 5) @@ -9622,15 +8499,15 @@ (i32.const 8) ) ) - (get_local $0) + (get_local $5) ) - (tee_local $0 + (tee_local $4 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u - (get_local $2) (get_local $1) + (get_local $4) ) ) (i32.const 2) @@ -9639,13 +8516,13 @@ ) ) ) - (tee_local $0 + (tee_local $4 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u (get_local $1) - (get_local $0) + (get_local $4) ) ) (i32.const 1) @@ -9654,13 +8531,13 @@ ) ) ) - (tee_local $0 + (tee_local $4 (i32.and (i32.shr_u (tee_local $1 (i32.shr_u (get_local $1) - (get_local $0) + (get_local $4) ) ) (i32.const 1) @@ -9671,7 +8548,7 @@ ) (i32.shr_u (get_local $1) - (get_local $0) + (get_local $4) ) ) ) @@ -9693,31 +8570,31 @@ ) (if (i32.eq - (get_local $9) - (get_local $0) + (get_local $1) + (get_local $7) ) (block (i32.store (i32.const 176) (i32.and - (get_local $4) + (get_local $10) (i32.xor (i32.shl (i32.const 1) - (get_local $8) + (get_local $4) ) (i32.const -1) ) ) ) - (set_local $7 - (get_local $10) + (set_local $8 + (get_local $0) ) ) (block (if (i32.lt_u - (get_local $0) + (get_local $7) (i32.load (i32.const 192) ) @@ -9727,25 +8604,25 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $0 (i32.add - (get_local $0) + (get_local $7) (i32.const 12) ) ) ) - (get_local $2) + (get_local $9) ) (block (i32.store - (get_local $4) - (get_local $9) + (get_local $0) + (get_local $1) ) (i32.store - (get_local $1) - (get_local $0) + (get_local $6) + (get_local $7) ) - (set_local $7 + (set_local $8 (i32.load (i32.const 184) ) @@ -9756,27 +8633,27 @@ ) ) (i32.store offset=4 - (get_local $2) + (get_local $9) (i32.or - (get_local $6) + (get_local $3) (i32.const 3) ) ) (i32.store offset=4 - (tee_local $4 + (tee_local $9 (i32.add - (get_local $2) - (get_local $6) + (get_local $9) + (get_local $3) ) ) (i32.or - (tee_local $9 + (tee_local $4 (i32.sub (i32.shl - (get_local $8) + (get_local $4) (i32.const 3) ) - (get_local $6) + (get_local $3) ) ) (i32.const 1) @@ -9784,30 +8661,27 @@ ) (i32.store (i32.add - (get_local $4) (get_local $9) + (get_local $4) ) - (get_local $9) + (get_local $4) ) (if - (i32.ne - (get_local $7) - (i32.const 0) - ) + (get_local $8) (block - (set_local $0 + (set_local $6 (i32.load (i32.const 196) ) ) - (set_local $8 + (set_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $2 + (tee_local $1 (i32.shr_u - (get_local $7) + (get_local $8) (i32.const 3) ) ) @@ -9818,47 +8692,26 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) + (i32.and + (tee_local $3 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) - (get_local $2) - ) - ) - (set_local $5 - (i32.add - (get_local $8) - (i32.const 8) ) ) - (set_local $12 - (get_local $8) - ) ) (if (i32.lt_u - (tee_local $2 + (tee_local $1 (i32.load - (tee_local $1 + (tee_local $3 (i32.add - (get_local $8) + (get_local $0) (i32.const 8) ) ) @@ -9870,60 +8723,75 @@ ) (call_import $_abort) (block - (set_local $5 + (set_local $12 + (get_local $3) + ) + (set_local $2 (get_local $1) ) - (set_local $12 - (get_local $2) + ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $1) + ) + ) + (set_local $12 + (i32.add + (get_local $0) + (i32.const 8) ) ) + (set_local $2 + (get_local $0) + ) ) ) (i32.store - (get_local $5) - (get_local $0) + (get_local $12) + (get_local $6) ) (i32.store offset=12 - (get_local $12) - (get_local $0) + (get_local $2) + (get_local $6) ) (i32.store offset=8 - (get_local $0) - (get_local $12) + (get_local $6) + (get_local $2) ) (i32.store offset=12 + (get_local $6) (get_local $0) - (get_local $8) ) ) ) (i32.store (i32.const 184) - (get_local $9) + (get_local $4) ) (i32.store (i32.const 196) - (get_local $4) + (get_local $9) ) (return - (get_local $3) + (get_local $5) ) ) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 180) - ) + (tee_local $0 + (i32.load + (i32.const 180) ) - (i32.const 0) ) (block - (set_local $0 + (set_local $2 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.add (i32.and (get_local $0) @@ -9940,11 +8808,11 @@ (i32.const 16) ) ) - (set_local $2 + (set_local $4 (i32.sub (i32.and (i32.load offset=4 - (tee_local $0 + (tee_local $1 (i32.load offset=480 (i32.shl (i32.add @@ -9955,10 +8823,10 @@ (tee_local $1 (i32.and (i32.shr_u - (tee_local $2 + (tee_local $0 (i32.shr_u - (get_local $1) (get_local $0) + (get_local $2) ) ) (i32.const 5) @@ -9966,14 +8834,14 @@ (i32.const 8) ) ) - (get_local $0) + (get_local $2) ) - (tee_local $0 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u - (get_local $2) + (get_local $0) (get_local $1) ) ) @@ -9983,13 +8851,13 @@ ) ) ) - (tee_local $0 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u - (get_local $1) (get_local $0) + (get_local $1) ) ) (i32.const 1) @@ -9998,13 +8866,13 @@ ) ) ) - (tee_local $0 + (tee_local $1 (i32.and (i32.shr_u - (tee_local $1 + (tee_local $0 (i32.shr_u - (get_local $1) (get_local $0) + (get_local $1) ) ) (i32.const 1) @@ -10014,8 +8882,8 @@ ) ) (i32.shr_u - (get_local $1) (get_local $0) + (get_local $1) ) ) (i32.const 2) @@ -10025,83 +8893,69 @@ ) (i32.const -8) ) - (get_local $6) + (get_local $3) ) ) - (set_local $4 - (get_local $0) - ) - (set_local $8 - (get_local $0) + (set_local $2 + (get_local $1) ) (loop $while-in$7 (block $while-out$6 (if - (i32.eq + (i32.eqz (tee_local $0 (i32.load offset=16 - (get_local $4) + (get_local $2) ) ) - (i32.const 0) ) (if - (i32.eq + (i32.eqz (tee_local $0 (i32.load offset=20 - (get_local $4) + (get_local $2) ) ) - (i32.const 0) ) (block - (set_local $7 - (get_local $2) - ) - (set_local $10 - (get_local $8) + (set_local $2 + (get_local $1) ) (br $while-out$6) ) - (set_local $1 - (get_local $0) - ) - ) - (set_local $1 - (get_local $0) ) ) - (set_local $0 + (set_local $6 (i32.lt_u - (tee_local $4 + (tee_local $2 (i32.sub (i32.and (i32.load offset=4 - (get_local $1) + (get_local $0) ) (i32.const -8) ) - (get_local $6) + (get_local $3) ) ) - (get_local $2) + (get_local $4) ) ) - (set_local $2 + (set_local $4 (select - (get_local $4) (get_local $2) - (get_local $0) + (get_local $4) + (get_local $6) ) ) - (set_local $4 - (get_local $1) + (set_local $2 + (get_local $0) ) - (set_local $8 + (set_local $1 (select - (get_local $1) - (get_local $8) (get_local $0) + (get_local $1) + (get_local $6) ) ) (br $while-in$7) @@ -10109,8 +8963,8 @@ ) (if (i32.lt_u - (get_local $10) - (tee_local $0 + (get_local $2) + (tee_local $10 (i32.load (i32.const 192) ) @@ -10120,140 +8974,123 @@ ) (if (i32.ge_u - (get_local $10) - (tee_local $9 + (get_local $2) + (tee_local $7 (i32.add - (get_local $10) - (get_local $6) + (get_local $2) + (get_local $3) ) ) ) (call_import $_abort) ) - (set_local $1 + (set_local $11 (i32.load offset=24 - (get_local $10) + (get_local $2) ) ) (block $do-once$8 (if (i32.eq - (tee_local $2 + (tee_local $0 (i32.load offset=12 - (get_local $10) + (get_local $2) ) ) - (get_local $10) + (get_local $2) ) (block (if - (i32.eq - (tee_local $2 + (i32.eqz + (tee_local $1 (i32.load - (tee_local $8 + (tee_local $0 (i32.add - (get_local $10) + (get_local $2) (i32.const 20) ) ) ) ) - (i32.const 0) ) (if - (i32.eq - (tee_local $2 + (i32.eqz + (tee_local $1 (i32.load - (tee_local $8 + (tee_local $0 (i32.add - (get_local $10) + (get_local $2) (i32.const 16) ) ) ) ) - (i32.const 0) ) (block - (set_local $15 + (set_local $5 (i32.const 0) ) (br $do-once$8) ) - (set_local $4 - (get_local $2) - ) - ) - (set_local $4 - (get_local $2) ) ) (loop $while-in$11 - (block $while-out$10 - (if - (i32.ne - (tee_local $2 - (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 20) - ) - ) + (if + (tee_local $8 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 20) ) ) - (i32.const 0) ) - (block - (set_local $4 - (get_local $2) - ) - (set_local $8 - (get_local $5) - ) - (br $while-in$11) + ) + (block + (set_local $1 + (get_local $8) ) + (set_local $0 + (get_local $6) + ) + (br $while-in$11) ) - (if - (i32.eq - (tee_local $2 - (i32.load - (tee_local $5 - (i32.add - (get_local $4) - (i32.const 16) - ) - ) + ) + (if + (tee_local $8 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 16) ) ) - (i32.const 0) ) - (br $while-out$10) - (block - (set_local $4 - (get_local $2) - ) - (set_local $8 - (get_local $5) - ) + ) + (block + (set_local $1 + (get_local $8) ) + (set_local $0 + (get_local $6) + ) + (br $while-in$11) ) - (br $while-in$11) ) ) (if (i32.lt_u - (get_local $8) (get_local $0) + (get_local $10) ) (call_import $_abort) (block (i32.store - (get_local $8) + (get_local $0) (i32.const 0) ) - (set_local $15 - (get_local $4) + (set_local $5 + (get_local $1) ) ) ) @@ -10261,52 +9098,52 @@ (block (if (i32.lt_u - (tee_local $4 + (tee_local $8 (i32.load offset=8 - (get_local $10) + (get_local $2) ) ) - (get_local $0) + (get_local $10) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $0 + (tee_local $6 (i32.add - (get_local $4) + (get_local $8) (i32.const 12) ) ) ) - (get_local $10) + (get_local $2) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $8 + (tee_local $1 (i32.add - (get_local $2) + (get_local $0) (i32.const 8) ) ) ) - (get_local $10) + (get_local $2) ) (block (i32.store + (get_local $6) (get_local $0) - (get_local $2) ) (i32.store + (get_local $1) (get_local $8) - (get_local $4) ) - (set_local $15 - (get_local $2) + (set_local $5 + (get_local $0) ) ) (call_import $_abort) @@ -10316,22 +9153,19 @@ ) (block $do-once$12 (if - (i32.ne - (get_local $1) - (i32.const 0) - ) + (get_local $11) (block (if (i32.eq - (get_local $10) + (get_local $2) (i32.load - (tee_local $2 + (tee_local $0 (i32.add (i32.const 480) (i32.shl - (tee_local $0 + (tee_local $1 (i32.load offset=28 - (get_local $10) + (get_local $2) ) ) (i32.const 2) @@ -10342,13 +9176,12 @@ ) (block (i32.store - (get_local $2) - (get_local $15) + (get_local $0) + (get_local $5) ) (if - (i32.eq - (get_local $15) - (i32.const 0) + (i32.eqz + (get_local $5) ) (block (i32.store @@ -10360,7 +9193,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $0) + (get_local $1) ) (i32.const -1) ) @@ -10373,7 +9206,7 @@ (block (if (i32.lt_u - (get_local $1) + (get_local $11) (i32.load (i32.const 192) ) @@ -10385,34 +9218,33 @@ (i32.load (tee_local $0 (i32.add - (get_local $1) + (get_local $11) (i32.const 16) ) ) ) - (get_local $10) + (get_local $2) ) (i32.store (get_local $0) - (get_local $15) + (get_local $5) ) (i32.store offset=20 - (get_local $1) - (get_local $15) + (get_local $11) + (get_local $5) ) ) (br_if $do-once$12 - (i32.eq - (get_local $15) - (i32.const 0) + (i32.eqz + (get_local $5) ) ) ) ) (if (i32.lt_u - (get_local $15) - (tee_local $0 + (get_local $5) + (tee_local $1 (i32.load (i32.const 192) ) @@ -10421,44 +9253,38 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $15) - (get_local $1) + (get_local $5) + (get_local $11) ) (if - (i32.ne - (tee_local $1 - (i32.load offset=16 - (get_local $10) - ) + (tee_local $0 + (i32.load offset=16 + (get_local $2) ) - (i32.const 0) ) (if (i32.lt_u - (get_local $1) (get_local $0) + (get_local $1) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $15) - (get_local $1) + (get_local $5) + (get_local $0) ) (i32.store offset=24 - (get_local $1) - (get_local $15) + (get_local $0) + (get_local $5) ) ) ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=20 - (get_local $10) - ) + (tee_local $0 + (i32.load offset=20 + (get_local $2) ) - (i32.const 0) ) (if (i32.lt_u @@ -10470,12 +9296,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $15) + (get_local $5) (get_local $0) ) (i32.store offset=24 (get_local $0) - (get_local $15) + (get_local $5) ) ) ) @@ -10485,86 +9311,80 @@ ) (if (i32.lt_u - (get_local $7) + (get_local $4) (i32.const 16) ) (block (i32.store offset=4 - (get_local $10) + (get_local $2) (i32.or (tee_local $0 (i32.add - (get_local $7) - (get_local $6) + (get_local $4) + (get_local $3) ) ) (i32.const 3) ) ) - (set_local $1 + (i32.store + (tee_local $0 + (i32.add + (i32.add + (get_local $2) + (get_local $0) + ) + (i32.const 4) + ) + ) (i32.or (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $10) - (get_local $0) - ) - (i32.const 4) - ) - ) + (get_local $0) ) (i32.const 1) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) ) (block (i32.store offset=4 - (get_local $10) + (get_local $2) (i32.or - (get_local $6) + (get_local $3) (i32.const 3) ) ) (i32.store offset=4 - (get_local $9) + (get_local $7) (i32.or - (get_local $7) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add - (get_local $9) (get_local $7) + (get_local $4) ) - (get_local $7) + (get_local $4) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 184) - ) + (tee_local $0 + (i32.load + (i32.const 184) ) - (i32.const 0) ) (block - (set_local $1 + (set_local $5 (i32.load (i32.const 196) ) ) - (set_local $4 + (set_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (tee_local $2 + (tee_local $1 (i32.shr_u (get_local $0) (i32.const 3) @@ -10577,47 +9397,26 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) - ) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) - (get_local $2) + (i32.and + (tee_local $3 + (i32.load + (i32.const 176) ) ) - (set_local $3 - (i32.add - (get_local $4) - (i32.const 8) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $1) ) ) - (set_local $16 - (get_local $4) - ) ) (if (i32.lt_u - (tee_local $2 + (tee_local $1 (i32.load - (tee_local $0 + (tee_local $3 (i32.add - (get_local $4) + (get_local $0) (i32.const 8) ) ) @@ -10629,52 +9428,76 @@ ) (call_import $_abort) (block - (set_local $3 - (get_local $0) + (set_local $13 + (get_local $3) ) - (set_local $16 - (get_local $2) + (set_local $9 + (get_local $1) + ) + ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $1) + ) + ) + (set_local $13 + (i32.add + (get_local $0) + (i32.const 8) ) ) + (set_local $9 + (get_local $0) + ) ) ) (i32.store - (get_local $3) - (get_local $1) + (get_local $13) + (get_local $5) ) (i32.store offset=12 - (get_local $16) - (get_local $1) + (get_local $9) + (get_local $5) ) (i32.store offset=8 - (get_local $1) - (get_local $16) + (get_local $5) + (get_local $9) ) (i32.store offset=12 - (get_local $1) - (get_local $4) + (get_local $5) + (get_local $0) ) ) ) (i32.store (i32.const 184) - (get_local $7) + (get_local $4) ) (i32.store (i32.const 196) - (get_local $9) + (get_local $7) ) ) ) (return (i32.add - (get_local $10) + (get_local $2) (i32.const 8) ) ) ) + (set_local $0 + (get_local $3) + ) ) ) + (set_local $0 + (get_local $3) + ) ) ) (if @@ -10682,13 +9505,13 @@ (get_local $0) (i32.const -65) ) - (set_local $6 + (set_local $0 (i32.const -1) ) (block - (set_local $5 + (set_local $9 (i32.and - (tee_local $3 + (tee_local $2 (i32.add (get_local $0) (i32.const 11) @@ -10698,262 +9521,229 @@ ) ) (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 180) - ) + (tee_local $24 + (i32.load + (i32.const 180) ) - (i32.const 0) - ) - (set_local $6 - (get_local $5) ) (block - (set_local $16 + (set_local $0 (i32.sub (i32.const 0) - (get_local $5) + (get_local $9) ) ) - (block $label$break$L123 - (if - (i32.eq - (tee_local $3 + (block $jumpthreading$outer$2 + (block $jumpthreading$inner$2 + (if + (tee_local $2 (i32.load offset=480 (i32.shl - (tee_local $12 + (tee_local $15 (if - (i32.eq - (tee_local $3 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) + (tee_local $2 + (i32.shr_u + (get_local $2) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u - (get_local $5) + (get_local $9) (i32.const 16777215) ) (i32.const 31) - (block - (set_local $7 - (i32.shl - (tee_local $3 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $9) + (i32.add + (tee_local $2 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $7 - (i32.and - (i32.shr_u - (i32.add - (tee_local $12 - (i32.shl - (get_local $3) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (get_local $3) - (i32.const 1048320) + (i32.or + (tee_local $5 + (i32.and + (i32.shr_u + (i32.add + (tee_local $2 + (i32.shl + (get_local $2) + (tee_local $8 + (i32.and + (i32.shr_u + (i32.add + (get_local $2) + (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 $8) ) - (get_local $3) - ) - (tee_local $3 - (i32.and - (i32.shr_u - (i32.add - (tee_local $7 - (i32.shl - (get_local $12) - (get_local $7) + (tee_local $5 + (i32.and + (i32.shr_u + (i32.add + (tee_local $2 + (i32.shl + (get_local $2) + (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 $7) - (get_local $3) + (i32.shr_u + (i32.shl + (get_local $2) + (get_local $5) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (get_local $3) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $7) + (i32.shl + (get_local $2) + (i32.const 1) ) ) ) + (i32.const 0) ) ) (i32.const 2) ) ) ) - (i32.const 0) - ) - (block - (set_local $31 - (get_local $16) - ) - (set_local $32 - (i32.const 0) - ) - (set_local $28 - (i32.const 0) - ) - (set_local $11 - (i32.const 86) - ) - ) - (block - (set_local $7 - (get_local $16) - ) - (set_local $15 - (i32.const 0) - ) - (set_local $11 - (i32.shl - (get_local $5) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $12) - (i32.const 1) + (block + (set_local $5 + (get_local $0) + ) + (set_local $13 + (i32.const 0) + ) + (set_local $12 + (i32.shl + (get_local $9) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $15) + (i32.const 1) + ) + ) + (i32.eq + (get_local $15) + (i32.const 31) ) - ) - (i32.eq - (get_local $12) - (i32.const 31) ) ) ) - ) - (set_local $23 - (get_local $3) - ) - (set_local $36 - (i32.const 0) - ) - (loop $while-in$18 - (block $while-out$17 + (set_local $0 + (get_local $2) + ) + (set_local $2 + (i32.const 0) + ) + (loop $while-in$18 (if (i32.lt_u - (tee_local $16 + (tee_local $8 (i32.sub - (tee_local $3 + (tee_local $14 (i32.and (i32.load offset=4 - (get_local $23) + (get_local $0) ) (i32.const -8) ) ) - (get_local $5) + (get_local $9) ) ) - (get_local $7) + (get_local $5) ) (if (i32.eq - (get_local $3) - (get_local $5) + (get_local $14) + (get_local $9) ) (block - (set_local $26 - (get_local $16) + (set_local $4 + (get_local $8) ) - (set_local $24 - (get_local $23) + (set_local $3 + (get_local $0) ) - (set_local $29 - (get_local $23) + (set_local $1 + (get_local $0) ) - (set_local $11 + (set_local $19 (i32.const 90) ) - (br $label$break$L123) + (br $jumpthreading$outer$2) ) - (set_local $36 - (get_local $23) + (block + (set_local $5 + (get_local $8) + ) + (set_local $2 + (get_local $0) + ) ) ) - (set_local $16 - (get_local $7) - ) ) - (set_local $7 - (i32.eq - (tee_local $3 + (set_local $8 + (select + (get_local $13) + (tee_local $8 (i32.load offset=20 - (get_local $23) + (get_local $0) ) ) - (i32.const 0) - ) - ) - (set_local $15 - (select - (get_local $15) - (get_local $3) (i32.or - (get_local $7) + (i32.eqz + (get_local $8) + ) (i32.eq - (get_local $3) - (tee_local $3 + (get_local $8) + (tee_local $14 (i32.load (i32.add (i32.add - (get_local $23) + (get_local $0) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $11) + (get_local $12) (i32.const 31) ) (i32.const 2) @@ -10965,15 +9755,14 @@ ) ) ) - (set_local $11 + (set_local $0 (i32.shl - (get_local $11) + (get_local $12) (i32.xor (i32.and - (tee_local $7 - (i32.eq - (get_local $3) - (i32.const 0) + (tee_local $12 + (i32.eqz + (get_local $14) ) ) (i32.const 1) @@ -10983,330 +9772,286 @@ ) ) (if - (get_local $7) + (get_local $12) (block - (set_local $31 - (get_local $16) - ) - (set_local $32 - (get_local $15) - ) - (set_local $28 - (get_local $36) - ) - (set_local $11 - (i32.const 86) + (set_local $0 + (get_local $5) ) - (br $while-out$17) + (br $jumpthreading$inner$2) ) (block - (set_local $7 - (get_local $16) + (set_local $13 + (get_local $8) ) - (set_local $23 - (get_local $3) + (set_local $12 + (get_local $0) + ) + (set_local $0 + (get_local $14) ) + (br $while-in$18) ) ) - (br $while-in$18) ) ) + (block + (set_local $8 + (i32.const 0) + ) + (set_local $2 + (i32.const 0) + ) + (br $jumpthreading$inner$2) + ) ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 86) + (br $jumpthreading$outer$2) ) (if - (i32.eq - (tee_local $0 - (if - (i32.and - (i32.eq - (get_local $32) - (i32.const 0) - ) - (i32.eq - (get_local $28) - (i32.const 0) - ) + (tee_local $5 + (if + (i32.and + (i32.eqz + (get_local $8) ) - (block - (set_local $7 - (i32.sub - (i32.const 0) - (tee_local $3 - (i32.shl - (i32.const 2) - (get_local $12) - ) - ) - ) - ) - (if - (i32.eq - (tee_local $0 - (i32.and - (get_local $0) - (i32.or - (get_local $3) - (get_local $7) + (i32.eqz + (get_local $2) + ) + ) + (block + (if + (i32.eqz + (tee_local $5 + (i32.and + (get_local $24) + (i32.or + (tee_local $5 + (i32.shl + (i32.const 2) + (get_local $15) + ) + ) + (i32.sub + (i32.const 0) + (get_local $5) ) ) ) - (i32.const 0) ) - (block - (set_local $6 - (get_local $5) - ) - (br $do-once$0) + ) + (block + (set_local $0 + (get_local $9) ) + (br $do-once$0) ) - (set_local $0 - (i32.and - (i32.shr_u - (tee_local $3 - (i32.add - (i32.and - (get_local $0) - (i32.sub - (i32.const 0) - (get_local $0) - ) + ) + (set_local $12 + (i32.and + (i32.shr_u + (tee_local $5 + (i32.add + (i32.and + (get_local $5) + (i32.sub + (i32.const 0) + (get_local $5) ) - (i32.const -1) ) + (i32.const -1) ) - (i32.const 12) ) - (i32.const 16) + (i32.const 12) ) + (i32.const 16) ) - (i32.load offset=480 - (i32.shl - (i32.add + ) + (i32.load offset=480 + (i32.shl + (i32.add + (i32.or (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 $0) - ) - ) - (i32.const 5) - ) - (i32.const 8) - ) - ) - (get_local $0) - ) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u - (get_local $7) - (get_local $3) + (get_local $5) + (get_local $12) ) ) - (i32.const 2) + (i32.const 5) ) - (i32.const 4) + (i32.const 8) ) ) + (get_local $12) ) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u - (get_local $3) - (get_local $0) + (get_local $5) + (get_local $8) ) ) - (i32.const 1) + (i32.const 2) ) - (i32.const 2) + (i32.const 4) ) ) ) - (tee_local $0 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $3 + (tee_local $5 (i32.shr_u - (get_local $3) - (get_local $0) + (get_local $5) + (get_local $8) ) ) (i32.const 1) ) - (i32.const 1) + (i32.const 2) ) ) ) - (i32.shr_u - (get_local $3) - (get_local $0) + (tee_local $8 + (i32.and + (i32.shr_u + (tee_local $5 + (i32.shr_u + (get_local $5) + (get_local $8) + ) + ) + (i32.const 1) + ) + (i32.const 1) + ) ) ) - (i32.const 2) + (i32.shr_u + (get_local $5) + (get_local $8) + ) ) + (i32.const 2) ) ) - (get_local $32) ) + (get_local $8) ) - (i32.const 0) ) (block - (set_local $17 - (get_local $31) + (set_local $4 + (get_local $0) ) - (set_local $13 - (get_local $28) + (set_local $3 + (get_local $5) + ) + (set_local $1 + (get_local $2) + ) + (set_local $19 + (i32.const 90) ) ) (block - (set_local $26 - (get_local $31) - ) - (set_local $24 + (set_local $7 (get_local $0) ) - (set_local $29 - (get_local $28) - ) - (set_local $11 - (i32.const 90) + (set_local $6 + (get_local $2) ) ) ) ) (if (i32.eq - (get_local $11) + (get_local $19) (i32.const 90) ) (loop $while-in$20 - (block $while-out$19 - (set_local $11 - (i32.const 0) - ) - (set_local $0 - (i32.lt_u - (tee_local $3 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $24) - ) - (i32.const -8) + (set_local $2 + (i32.lt_u + (tee_local $0 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $3) ) - (get_local $5) + (i32.const -8) ) + (get_local $9) ) - (get_local $26) ) + (get_local $4) ) - (set_local $17 - (select + ) + (set_local $4 + (select + (get_local $0) + (get_local $4) + (get_local $2) + ) + ) + (set_local $1 + (select + (get_local $3) + (get_local $1) + (get_local $2) + ) + ) + (if + (tee_local $0 + (i32.load offset=16 (get_local $3) - (get_local $26) - (get_local $0) ) ) - (set_local $3 - (select - (get_local $24) - (get_local $29) + (block + (set_local $3 (get_local $0) ) + (br $while-in$20) ) - (if - (i32.ne - (tee_local $0 - (i32.load offset=16 - (get_local $24) - ) - ) - (i32.const 0) - ) - (block - (set_local $26 - (get_local $17) - ) - (set_local $24 - (get_local $0) - ) - (set_local $29 - (get_local $3) - ) - (br $while-in$20) + ) + (br_if $while-in$20 + (tee_local $3 + (i32.load offset=20 + (get_local $3) ) ) - (if - (i32.eq - (tee_local $0 - (i32.load offset=20 - (get_local $24) - ) - ) - (i32.const 0) - ) - (block - (set_local $13 - (get_local $3) - ) - (br $while-out$19) - ) - (block - (set_local $26 - (get_local $17) - ) - (set_local $24 - (get_local $0) - ) - (set_local $29 - (get_local $3) - ) - ) + ) + (block + (set_local $7 + (get_local $4) + ) + (set_local $6 + (get_local $1) ) - (br $while-in$20) ) ) ) (if - (i32.eq - (get_local $13) - (i32.const 0) - ) - (set_local $6 - (get_local $5) - ) + (get_local $6) (if (i32.lt_u - (get_local $17) + (get_local $7) (i32.sub (i32.load (i32.const 184) ) - (get_local $5) + (get_local $9) ) ) (block (if (i32.lt_u - (get_local $13) - (tee_local $0 + (get_local $6) + (tee_local $8 (i32.load (i32.const 192) ) @@ -11316,140 +10061,123 @@ ) (if (i32.ge_u - (get_local $13) - (tee_local $3 + (get_local $6) + (tee_local $4 (i32.add - (get_local $13) - (get_local $5) + (get_local $6) + (get_local $9) ) ) ) (call_import $_abort) ) - (set_local $1 + (set_local $5 (i32.load offset=24 - (get_local $13) + (get_local $6) ) ) (block $do-once$21 (if (i32.eq - (tee_local $2 + (tee_local $0 (i32.load offset=12 - (get_local $13) + (get_local $6) ) ) - (get_local $13) + (get_local $6) ) (block (if - (i32.eq - (tee_local $2 + (i32.eqz + (tee_local $1 (i32.load - (tee_local $9 + (tee_local $0 (i32.add - (get_local $13) + (get_local $6) (i32.const 20) ) ) ) ) - (i32.const 0) ) (if - (i32.eq - (tee_local $2 + (i32.eqz + (tee_local $1 (i32.load - (tee_local $9 + (tee_local $0 (i32.add - (get_local $13) + (get_local $6) (i32.const 16) ) ) ) ) - (i32.const 0) ) (block - (set_local $6 + (set_local $10 (i32.const 0) ) (br $do-once$21) ) - (set_local $8 - (get_local $2) - ) - ) - (set_local $8 - (get_local $2) ) ) (loop $while-in$24 - (block $while-out$23 - (if - (i32.ne + (if + (tee_local $3 + (i32.load (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $8) - (i32.const 20) - ) - ) + (i32.add + (get_local $1) + (i32.const 20) ) ) - (i32.const 0) ) - (block - (set_local $8 - (get_local $2) - ) - (set_local $9 - (get_local $7) - ) - (br $while-in$24) + ) + (block + (set_local $1 + (get_local $3) ) + (set_local $0 + (get_local $2) + ) + (br $while-in$24) ) - (if - (i32.eq + ) + (if + (tee_local $3 + (i32.load (tee_local $2 - (i32.load - (tee_local $7 - (i32.add - (get_local $8) - (i32.const 16) - ) - ) + (i32.add + (get_local $1) + (i32.const 16) ) ) - (i32.const 0) ) - (br $while-out$23) - (block - (set_local $8 - (get_local $2) - ) - (set_local $9 - (get_local $7) - ) + ) + (block + (set_local $1 + (get_local $3) ) + (set_local $0 + (get_local $2) + ) + (br $while-in$24) ) - (br $while-in$24) ) ) (if (i32.lt_u - (get_local $9) (get_local $0) + (get_local $8) ) (call_import $_abort) (block (i32.store - (get_local $9) + (get_local $0) (i32.const 0) ) - (set_local $6 - (get_local $8) + (set_local $10 + (get_local $1) ) ) ) @@ -11457,52 +10185,52 @@ (block (if (i32.lt_u - (tee_local $8 + (tee_local $3 (i32.load offset=8 - (get_local $13) + (get_local $6) ) ) - (get_local $0) + (get_local $8) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $0 + (tee_local $2 (i32.add - (get_local $8) + (get_local $3) (i32.const 12) ) ) ) - (get_local $13) + (get_local $6) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $9 + (tee_local $1 (i32.add - (get_local $2) + (get_local $0) (i32.const 8) ) ) ) - (get_local $13) + (get_local $6) ) (block (i32.store - (get_local $0) (get_local $2) + (get_local $0) ) (i32.store - (get_local $9) - (get_local $8) + (get_local $1) + (get_local $3) ) - (set_local $6 - (get_local $2) + (set_local $10 + (get_local $0) ) ) (call_import $_abort) @@ -11512,22 +10240,19 @@ ) (block $do-once$25 (if - (i32.ne - (get_local $1) - (i32.const 0) - ) + (get_local $5) (block (if (i32.eq - (get_local $13) + (get_local $6) (i32.load - (tee_local $2 + (tee_local $0 (i32.add (i32.const 480) (i32.shl - (tee_local $0 + (tee_local $1 (i32.load offset=28 - (get_local $13) + (get_local $6) ) ) (i32.const 2) @@ -11538,13 +10263,12 @@ ) (block (i32.store - (get_local $2) - (get_local $6) + (get_local $0) + (get_local $10) ) (if - (i32.eq - (get_local $6) - (i32.const 0) + (i32.eqz + (get_local $10) ) (block (i32.store @@ -11556,7 +10280,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $0) + (get_local $1) ) (i32.const -1) ) @@ -11569,7 +10293,7 @@ (block (if (i32.lt_u - (get_local $1) + (get_local $5) (i32.load (i32.const 192) ) @@ -11581,34 +10305,33 @@ (i32.load (tee_local $0 (i32.add - (get_local $1) + (get_local $5) (i32.const 16) ) ) ) - (get_local $13) + (get_local $6) ) (i32.store (get_local $0) - (get_local $6) + (get_local $10) ) (i32.store offset=20 - (get_local $1) - (get_local $6) + (get_local $5) + (get_local $10) ) ) (br_if $do-once$25 - (i32.eq - (get_local $6) - (i32.const 0) + (i32.eqz + (get_local $10) ) ) ) ) (if (i32.lt_u - (get_local $6) - (tee_local $0 + (get_local $10) + (tee_local $1 (i32.load (i32.const 192) ) @@ -11617,44 +10340,38 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $6) - (get_local $1) + (get_local $10) + (get_local $5) ) (if - (i32.ne - (tee_local $1 - (i32.load offset=16 - (get_local $13) - ) + (tee_local $0 + (i32.load offset=16 + (get_local $6) ) - (i32.const 0) ) (if (i32.lt_u - (get_local $1) (get_local $0) + (get_local $1) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $6) - (get_local $1) + (get_local $10) + (get_local $0) ) (i32.store offset=24 - (get_local $1) - (get_local $6) + (get_local $0) + (get_local $10) ) ) ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=20 - (get_local $13) - ) + (tee_local $0 + (i32.load offset=20 + (get_local $6) ) - (i32.const 0) ) (if (i32.lt_u @@ -11666,12 +10383,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $6) + (get_local $10) (get_local $0) ) (i32.store offset=24 (get_local $0) - (get_local $6) + (get_local $10) ) ) ) @@ -11682,78 +10399,75 @@ (block $do-once$29 (if (i32.lt_u - (get_local $17) + (get_local $7) (i32.const 16) ) (block (i32.store offset=4 - (get_local $13) + (get_local $6) (i32.or (tee_local $0 (i32.add - (get_local $17) - (get_local $5) + (get_local $7) + (get_local $9) ) ) (i32.const 3) ) ) - (set_local $1 + (i32.store + (tee_local $0 + (i32.add + (i32.add + (get_local $6) + (get_local $0) + ) + (i32.const 4) + ) + ) (i32.or (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $13) - (get_local $0) - ) - (i32.const 4) - ) - ) + (get_local $0) ) (i32.const 1) ) ) - (i32.store - (get_local $0) - (get_local $1) - ) ) (block (i32.store offset=4 - (get_local $13) + (get_local $6) (i32.or - (get_local $5) + (get_local $9) (i32.const 3) ) ) (i32.store offset=4 - (get_local $3) + (get_local $4) (i32.or - (get_local $17) + (get_local $7) (i32.const 1) ) ) (i32.store (i32.add - (get_local $3) - (get_local $17) + (get_local $4) + (get_local $7) ) - (get_local $17) + (get_local $7) ) (set_local $1 (i32.shr_u - (get_local $17) + (get_local $7) (i32.const 3) ) ) (if (i32.lt_u - (get_local $17) + (get_local $7) (i32.const 256) ) (block - (set_local $2 + (set_local $0 (i32.add (i32.const 216) (i32.shl @@ -11766,47 +10480,26 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.and + (tee_local $2 + (i32.load + (i32.const 176) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $1) ) ) - (set_local $4 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - (set_local $10 - (get_local $2) - ) ) (if (i32.lt_u (tee_local $1 (i32.load - (tee_local $0 + (tee_local $2 (i32.add - (get_local $2) + (get_local $0) (i32.const 8) ) ) @@ -11818,141 +10511,151 @@ ) (call_import $_abort) (block - (set_local $4 - (get_local $0) + (set_local $20 + (get_local $2) ) - (set_local $10 + (set_local $16 + (get_local $1) + ) + ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $2) (get_local $1) ) ) + (set_local $20 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + (set_local $16 + (get_local $0) + ) ) ) (i32.store + (get_local $20) (get_local $4) - (get_local $3) ) (i32.store offset=12 - (get_local $10) - (get_local $3) + (get_local $16) + (get_local $4) ) (i32.store offset=8 - (get_local $3) - (get_local $10) + (get_local $4) + (get_local $16) ) (i32.store offset=12 - (get_local $3) - (get_local $2) + (get_local $4) + (get_local $0) ) (br $do-once$29) ) ) - (set_local $2 + (set_local $1 (i32.add (i32.const 480) (i32.shl - (tee_local $1 + (tee_local $2 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $17) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $7) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u - (get_local $17) + (get_local $7) (i32.const 16777215) ) (i32.const 31) - (block - (set_local $1 - (i32.shl - (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 $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $2 - (i32.shl - (get_local $0) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (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 $0) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $2) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (i32.shl + (get_local $0) + (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 $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $0) + (get_local $1) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $17) - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $1) + (i32.shl + (get_local $0) + (i32.const 1) ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -11960,13 +10663,13 @@ ) ) (i32.store offset=28 - (get_local $3) - (get_local $1) + (get_local $4) + (get_local $2) ) (i32.store offset=4 (tee_local $0 (i32.add - (get_local $3) + (get_local $4) (i32.const 16) ) ) @@ -11977,233 +10680,211 @@ (i32.const 0) ) (if - (i32.eq + (i32.eqz (i32.and - (tee_local $0 + (tee_local $3 (i32.load (i32.const 180) ) ) - (tee_local $4 + (tee_local $0 (i32.shl (i32.const 1) - (get_local $1) + (get_local $2) ) ) ) - (i32.const 0) ) (block (i32.store (i32.const 180) (i32.or + (get_local $3) (get_local $0) - (get_local $4) ) ) (i32.store - (get_local $2) - (get_local $3) + (get_local $1) + (get_local $4) ) (i32.store offset=24 - (get_local $3) - (get_local $2) + (get_local $4) + (get_local $1) ) (i32.store offset=12 - (get_local $3) - (get_local $3) + (get_local $4) + (get_local $4) ) (i32.store offset=8 - (get_local $3) - (get_local $3) + (get_local $4) + (get_local $4) ) (br $do-once$29) ) ) - (set_local $1 + (set_local $2 (i32.shl - (get_local $17) + (get_local $7) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $1) + (get_local $2) (i32.const 1) ) ) (i32.eq - (get_local $1) + (get_local $2) (i32.const 31) ) ) ) ) - (set_local $2 + (set_local $0 (i32.load - (get_local $2) + (get_local $1) ) ) - (loop $while-in$32 - (block $while-out$31 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $2) + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (block $jumpthreading$inner$0 + (loop $while-in$32 + (br_if $jumpthreading$inner$1 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) + ) + (get_local $7) ) - (i32.const -8) - ) - (get_local $17) - ) - (block - (set_local $22 - (get_local $2) ) - (set_local $11 - (i32.const 148) + (set_local $1 + (i32.shl + (get_local $2) + (i32.const 1) + ) ) - (br $while-out$31) - ) - ) - (set_local $4 - (i32.shl - (get_local $1) - (i32.const 1) - ) - ) - (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $1 - (i32.add + (if + (tee_local $3 + (i32.load + (tee_local $2 (i32.add - (get_local $2) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $1) - (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 $1) + ) + (set_local $0 + (get_local $3) + ) + (br $while-in$32) + ) + (block + (set_local $1 + (get_local $0) + ) + (set_local $0 + (get_local $2) + ) + (br $jumpthreading$inner$0) + ) + ) + ) + ) + (if + (i32.lt_u + (get_local $0) + (i32.load + (i32.const 192) ) - (i32.const 0) ) + (call_import $_abort) (block - (set_local $25 - (get_local $2) + (i32.store + (get_local $0) + (get_local $4) ) - (set_local $37 + (i32.store offset=24 + (get_local $4) (get_local $1) ) - (set_local $11 - (i32.const 145) - ) - (br $while-out$31) - ) - (block - (set_local $1 + (i32.store offset=12 + (get_local $4) (get_local $4) ) - (set_local $2 - (get_local $0) + (i32.store offset=8 + (get_local $4) + (get_local $4) ) + (br $do-once$29) ) ) - (br $while-in$32) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 145) + (br $jumpthreading$outer$1) ) (if - (i32.lt_u - (get_local $37) - (i32.load - (i32.const 192) + (i32.and + (i32.ge_u + (tee_local $3 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + ) + (tee_local $2 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.ge_u + (get_local $0) + (get_local $2) ) ) - (call_import $_abort) (block - (i32.store - (get_local $37) - (get_local $3) - ) - (i32.store offset=24 - (get_local $3) - (get_local $25) - ) (i32.store offset=12 (get_local $3) - (get_local $3) + (get_local $4) + ) + (i32.store + (get_local $1) + (get_local $4) ) (i32.store offset=8 - (get_local $3) + (get_local $4) (get_local $3) ) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 148) - ) - (if - (i32.and - (i32.ge_u - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $22) - (i32.const 8) - ) - ) - ) - ) - (tee_local $1 - (i32.load - (i32.const 192) - ) - ) - ) - (i32.ge_u - (get_local $22) - (get_local $1) - ) + (i32.store offset=12 + (get_local $4) + (get_local $0) ) - (block - (i32.store offset=12 - (get_local $0) - (get_local $3) - ) - (i32.store - (get_local $2) - (get_local $3) - ) - (i32.store offset=8 - (get_local $3) - (get_local $0) - ) - (i32.store offset=12 - (get_local $3) - (get_local $22) - ) - (i32.store offset=24 - (get_local $3) - (i32.const 0) - ) + (i32.store offset=24 + (get_local $4) + (i32.const 0) ) - (call_import $_abort) ) + (call_import $_abort) ) ) ) @@ -12211,17 +10892,23 @@ ) (return (i32.add - (get_local $13) + (get_local $6) (i32.const 8) ) ) ) - (set_local $6 - (get_local $5) + (set_local $0 + (get_local $9) ) ) + (set_local $0 + (get_local $9) + ) ) ) + (set_local $0 + (get_local $9) + ) ) ) ) @@ -12229,25 +10916,25 @@ ) (if (i32.ge_u - (tee_local $0 + (tee_local $2 (i32.load (i32.const 184) ) ) - (get_local $6) + (get_local $0) ) (block - (set_local $1 + (set_local $3 (i32.load (i32.const 196) ) ) (if (i32.gt_u - (tee_local $2 + (tee_local $1 (i32.sub + (get_local $2) (get_local $0) - (get_local $6) ) ) (i32.const 15) @@ -12255,35 +10942,35 @@ (block (i32.store (i32.const 196) - (tee_local $0 + (tee_local $2 (i32.add - (get_local $1) - (get_local $6) + (get_local $3) + (get_local $0) ) ) ) (i32.store (i32.const 184) - (get_local $2) + (get_local $1) ) (i32.store offset=4 - (get_local $0) + (get_local $2) (i32.or - (get_local $2) + (get_local $1) (i32.const 1) ) ) (i32.store (i32.add - (get_local $0) (get_local $2) + (get_local $1) ) - (get_local $2) + (get_local $1) ) (i32.store offset=4 - (get_local $1) + (get_local $3) (i32.or - (get_local $6) + (get_local $0) (i32.const 3) ) ) @@ -12298,37 +10985,34 @@ (i32.const 0) ) (i32.store offset=4 - (get_local $1) + (get_local $3) (i32.or - (get_local $0) + (get_local $2) (i32.const 3) ) ) - (set_local $2 + (i32.store + (tee_local $0 + (i32.add + (i32.add + (get_local $3) + (get_local $2) + ) + (i32.const 4) + ) + ) (i32.or (i32.load - (tee_local $0 - (i32.add - (i32.add - (get_local $1) - (get_local $0) - ) - (i32.const 4) - ) - ) + (get_local $0) ) (i32.const 1) ) ) - (i32.store - (get_local $0) - (get_local $2) - ) ) ) (return (i32.add - (get_local $1) + (get_local $3) (i32.const 8) ) ) @@ -12336,88 +11020,85 @@ ) (if (i32.gt_u - (tee_local $0 + (tee_local $1 (i32.load (i32.const 188) ) ) - (get_local $6) + (get_local $0) ) (block (i32.store (i32.const 188) - (tee_local $2 + (tee_local $1 (i32.sub + (get_local $1) (get_local $0) - (get_local $6) ) ) ) (i32.store (i32.const 200) - (tee_local $1 + (tee_local $2 (i32.add - (tee_local $0 + (tee_local $3 (i32.load (i32.const 200) ) ) - (get_local $6) + (get_local $0) ) ) ) (i32.store offset=4 - (get_local $1) + (get_local $2) (i32.or - (get_local $2) + (get_local $1) (i32.const 1) ) ) (i32.store offset=4 - (get_local $0) + (get_local $3) (i32.or - (get_local $6) + (get_local $0) (i32.const 3) ) ) (return (i32.add - (get_local $0) + (get_local $3) (i32.const 8) ) ) ) ) (if - (i32.eq + (i32.eqz (i32.load (i32.const 648) ) - (i32.const 0) ) (if - (i32.eq - (i32.and - (i32.add - (tee_local $0 - (call_import $_sysconf - (i32.const 30) - ) + (i32.and + (i32.add + (tee_local $1 + (call_import $_sysconf + (i32.const 30) ) - (i32.const -1) ) - (get_local $0) + (i32.const -1) ) - (i32.const 0) + (get_local $1) ) + (call_import $_abort) (block (i32.store (i32.const 656) - (get_local $0) + (get_local $1) ) (i32.store (i32.const 652) - (get_local $0) + (get_local $1) ) (i32.store (i32.const 660) @@ -12448,75 +11129,71 @@ ) ) ) - (call_import $_abort) ) ) - (set_local $5 + (set_local $8 (i32.add - (get_local $6) + (get_local $0) (i32.const 48) ) ) (if (i32.le_u - (tee_local $10 + (tee_local $9 (i32.and - (tee_local $7 + (tee_local $6 (i32.add - (tee_local $0 + (tee_local $1 (i32.load (i32.const 656) ) ) - (tee_local $15 + (tee_local $5 (i32.add - (get_local $6) + (get_local $0) (i32.const 47) ) ) ) ) - (tee_local $12 + (tee_local $2 (i32.sub (i32.const 0) - (get_local $0) + (get_local $1) ) ) ) ) - (get_local $6) + (get_local $0) ) (return (i32.const 0) ) ) (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 616) - ) + (tee_local $4 + (i32.load + (i32.const 616) ) - (i32.const 0) ) (if (i32.or (i32.le_u - (tee_local $3 + (tee_local $1 (i32.add - (tee_local $4 + (tee_local $3 (i32.load (i32.const 608) ) ) - (get_local $10) + (get_local $9) ) ) - (get_local $4) + (get_local $3) ) (i32.gt_u - (get_local $3) - (get_local $0) + (get_local $1) + (get_local $4) ) ) (return @@ -12524,679 +11201,414 @@ ) ) ) - (if - (i32.eq - (tee_local $11 - (block $label$break$L257 - (if - (i32.eq - (i32.and - (i32.load - (i32.const 620) - ) - (i32.const 4) - ) - (i32.const 0) + (block $jumpthreading$outer$12 + (block $jumpthreading$inner$12 + (if + (i32.eqz + (i32.and + (i32.load + (i32.const 620) ) - (block - (block $label$break$L259 - (if - (i32.eq - (tee_local $0 + (i32.const 4) + ) + ) + (block + (block $label$break$L279 + (block $jumpthreading$inner$4 + (block $jumpthreading$inner$3 + (br_if $jumpthreading$inner$3 + (i32.eqz + (tee_local $4 (i32.load (i32.const 200) ) ) - (i32.const 0) - ) - (set_local $11 - (i32.const 173) ) - (block - (set_local $16 - (i32.const 624) - ) - (loop $while-in$38 - (block $while-out$37 - (if - (i32.le_u - (tee_local $4 - (i32.load - (get_local $16) - ) - ) - (get_local $0) - ) - (if - (i32.gt_u - (i32.add - (get_local $4) - (i32.load - (tee_local $3 - (i32.add - (get_local $16) - (i32.const 4) - ) - ) - ) - ) - (get_local $0) - ) - (block - (set_local $4 - (get_local $16) - ) - (set_local $16 - (get_local $3) - ) - (br $while-out$37) - ) - ) - ) - (if - (i32.eq - (tee_local $4 - (i32.load offset=8 - (get_local $16) - ) - ) - (i32.const 0) - ) - (block - (set_local $11 - (i32.const 173) - ) - (br $label$break$L259) - ) - (set_local $16 - (get_local $4) - ) - ) - (br $while-in$38) - ) - ) + ) + (set_local $1 + (i32.const 624) + ) + (loop $while-in$38 + (block $while-out$37 (if - (i32.lt_u - (tee_local $0 - (i32.and - (i32.sub - (get_local $7) - (i32.load - (i32.const 188) - ) - ) - (get_local $12) + (i32.le_u + (tee_local $3 + (i32.load + (get_local $1) ) ) - (i32.const 2147483647) + (get_local $4) ) (if - (i32.eq - (tee_local $3 - (call_import $_sbrk - (get_local $0) - ) - ) + (i32.gt_u (i32.add - (i32.load - (get_local $4) - ) - (i32.load - (get_local $16) - ) - ) - ) - (if - (i32.ne (get_local $3) - (i32.const -1) - ) - (block - (set_local $14 - (get_local $3) - ) - (set_local $19 - (get_local $0) - ) - (br $label$break$L257 - (i32.const 193) + (i32.load + (tee_local $3 + (i32.add + (get_local $1) + (i32.const 4) + ) + ) ) ) + (get_local $4) ) (block - (set_local $30 - (get_local $3) - ) - (set_local $21 - (get_local $0) - ) - (set_local $11 - (i32.const 183) + (set_local $4 + (get_local $1) ) + (br $while-out$37) + ) + ) + ) + (br_if $while-in$38 + (tee_local $1 + (i32.load offset=8 + (get_local $1) ) ) ) + (br $jumpthreading$inner$3) ) ) - ) - (block $do-once$39 (if - (i32.eq - (get_local $11) - (i32.const 173) + (i32.lt_u + (tee_local $1 + (i32.and + (i32.sub + (get_local $6) + (i32.load + (i32.const 188) + ) + ) + (get_local $2) + ) + ) + (i32.const 2147483647) ) (if - (i32.ne - (tee_local $7 + (i32.eq + (tee_local $2 (call_import $_sbrk - (i32.const 0) + (get_local $1) ) ) - (i32.const -1) - ) - (block - (set_local $4 - (i32.add - (tee_local $3 - (i32.load - (i32.const 608) - ) - ) - (tee_local $12 - (if - (i32.eq - (i32.and - (tee_local $12 - (i32.add - (tee_local $4 - (i32.load - (i32.const 652) - ) - ) - (i32.const -1) - ) - ) - (tee_local $0 - (get_local $7) - ) - ) - (i32.const 0) - ) - (get_local $10) - (i32.add - (i32.sub - (get_local $10) - (get_local $0) - ) - (i32.and - (i32.add - (get_local $12) - (get_local $0) - ) - (i32.sub - (i32.const 0) - (get_local $4) - ) - ) - ) - ) - ) + (i32.add + (i32.load + (get_local $4) + ) + (i32.load + (get_local $3) ) ) - (if - (i32.and - (i32.gt_u - (get_local $12) - (get_local $6) - ) - (i32.lt_u - (get_local $12) - (i32.const 2147483647) - ) + ) + (br_if $jumpthreading$inner$12 + (i32.ne + (get_local $2) + (i32.const -1) + ) + ) + (br $jumpthreading$inner$4) + ) + ) + (br $label$break$L279) + ) + (if + (i32.ne + (tee_local $2 + (call_import $_sbrk + (i32.const 0) + ) + ) + (i32.const -1) + ) + (block + (set_local $3 + (i32.add + (tee_local $6 + (i32.load + (i32.const 608) ) - (block - (if - (i32.ne - (tee_local $0 - (i32.load - (i32.const 616) + ) + (tee_local $1 + (if + (i32.and + (tee_local $3 + (i32.add + (tee_local $4 + (i32.load + (i32.const 652) + ) ) + (i32.const -1) ) - (i32.const 0) ) - (br_if $do-once$39 - (i32.or - (i32.le_u - (get_local $4) - (get_local $3) - ) - (i32.gt_u - (get_local $4) - (get_local $0) - ) - ) + (tee_local $1 + (get_local $2) ) ) - (if - (i32.eq - (tee_local $30 - (call_import $_sbrk - (get_local $12) - ) - ) - (get_local $7) - ) - (block - (set_local $14 - (get_local $7) - ) - (set_local $19 - (get_local $12) - ) - (br $label$break$L257 - (i32.const 193) - ) + (i32.add + (i32.sub + (get_local $9) + (get_local $1) ) - (block - (set_local $21 - (get_local $12) + (i32.and + (i32.add + (get_local $3) + (get_local $1) ) - (set_local $11 - (i32.const 183) + (i32.sub + (i32.const 0) + (get_local $4) ) ) ) + (get_local $9) ) ) ) ) - ) - ) - (block $label$break$L279 - (if - (i32.eq - (get_local $11) - (i32.const 183) - ) - (block - (set_local $4 - (i32.sub - (i32.const 0) - (get_local $21) + (if + (i32.and + (i32.gt_u + (get_local $1) + (get_local $0) ) - ) - (if - (i32.and - (i32.gt_u - (get_local $5) - (get_local $21) - ) - (i32.and - (i32.lt_u - (get_local $21) - (i32.const 2147483647) - ) - (i32.ne - (get_local $30) - (i32.const -1) - ) - ) + (i32.lt_u + (get_local $1) + (i32.const 2147483647) ) + ) + (block (if - (i32.lt_u - (tee_local $0 - (i32.and - (i32.add - (i32.sub - (get_local $15) - (get_local $21) - ) - (tee_local $0 - (i32.load - (i32.const 656) - ) - ) - ) - (i32.sub - (i32.const 0) - (get_local $0) - ) - ) + (tee_local $4 + (i32.load + (i32.const 616) ) - (i32.const 2147483647) ) - (if - (i32.eq - (call_import $_sbrk - (get_local $0) + (br_if $label$break$L279 + (i32.or + (i32.le_u + (get_local $3) + (get_local $6) ) - (i32.const -1) - ) - (block - (drop - (call_import $_sbrk - (get_local $4) - ) + (i32.gt_u + (get_local $3) + (get_local $4) ) - (br $label$break$L279) ) - (set_local $21 - (i32.add - (get_local $0) - (get_local $21) + ) + ) + (br_if $jumpthreading$inner$12 + (i32.eq + (tee_local $3 + (call_import $_sbrk + (get_local $1) ) ) + (get_local $2) ) ) - ) - (if - (i32.ne - (get_local $30) - (i32.const -1) - ) (block - (set_local $14 - (get_local $30) + (set_local $2 + (get_local $3) ) - (set_local $19 - (get_local $21) + (br $jumpthreading$inner$4) + ) + ) + ) + ) + ) + (br $label$break$L279) + ) + (set_local $3 + (i32.sub + (i32.const 0) + (get_local $1) + ) + ) + (if + (i32.and + (i32.gt_u + (get_local $8) + (get_local $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 $4 + (i32.and + (i32.add + (i32.sub + (get_local $5) + (get_local $1) ) - (br $label$break$L257 - (i32.const 193) + (tee_local $4 + (i32.load + (i32.const 656) + ) ) ) + (i32.sub + (i32.const 0) + (get_local $4) + ) ) ) + (i32.const 2147483647) ) - ) - (i32.store - (i32.const 620) - (i32.or - (i32.load - (i32.const 620) + (if + (i32.eq + (call_import $_sbrk + (get_local $4) + ) + (i32.const -1) + ) + (block + (drop + (call_import $_sbrk + (get_local $3) + ) + ) + (br $label$break$L279) + ) + (set_local $1 + (i32.add + (get_local $4) + (get_local $1) + ) ) - (i32.const 4) ) ) - (i32.const 190) ) - (i32.const 190) + (br_if $jumpthreading$inner$12 + (i32.ne + (get_local $2) + (i32.const -1) + ) + ) + ) + (i32.store + (i32.const 620) + (i32.or + (i32.load + (i32.const 620) + ) + (i32.const 4) + ) ) ) ) - (i32.const 190) - ) - (if - (i32.lt_u - (get_local $10) - (i32.const 2147483647) - ) - (block - (set_local $3 + (if + (i32.lt_u + (get_local $9) + (i32.const 2147483647) + ) + (if (i32.and - (i32.ne - (tee_local $0 + (i32.lt_u + (tee_local $2 (call_import $_sbrk - (get_local $10) + (get_local $9) ) ) - (i32.const -1) - ) - (i32.ne - (tee_local $4 + (tee_local $1 (call_import $_sbrk (i32.const 0) ) ) - (i32.const -1) ) - ) - ) - (if - (i32.and - (i32.lt_u - (get_local $0) - (get_local $4) + (i32.and + (i32.ne + (get_local $2) + (i32.const -1) + ) + (i32.ne + (get_local $1) + (i32.const -1) + ) ) - (get_local $3) ) - (if + (br_if $jumpthreading$inner$12 (i32.gt_u - (tee_local $4 + (tee_local $1 (i32.sub - (get_local $4) - (get_local $0) + (get_local $1) + (get_local $2) ) ) (i32.add - (get_local $6) - (i32.const 40) - ) - ) - (block - (set_local $14 (get_local $0) - ) - (set_local $19 - (get_local $4) - ) - (set_local $11 - (i32.const 193) + (i32.const 40) ) ) ) ) ) + (br $jumpthreading$outer$12) ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 193) - ) - (block - (i32.store - (i32.const 608) - (tee_local $0 - (i32.add - (i32.load - (i32.const 608) - ) - (get_local $19) - ) - ) - ) - (if - (i32.gt_u - (get_local $0) + (i32.store + (i32.const 608) + (tee_local $3 + (i32.add (i32.load - (i32.const 612) + (i32.const 608) ) + (get_local $1) ) - (i32.store + ) + ) + (if + (i32.gt_u + (get_local $3) + (i32.load (i32.const 612) - (get_local $0) ) ) - (block $do-once$44 - (if - (i32.eq - (tee_local $0 - (i32.load - (i32.const 200) - ) - ) - (i32.const 0) + (i32.store + (i32.const 612) + (get_local $3) + ) + ) + (block $do-once$44 + (if + (tee_local $7 + (i32.load + (i32.const 200) ) - (block - (if - (i32.or - (i32.eq - (tee_local $0 - (i32.load - (i32.const 192) - ) - ) - (i32.const 0) - ) - (i32.lt_u - (get_local $14) - (get_local $0) - ) - ) - (i32.store - (i32.const 192) - (get_local $14) - ) - ) - (i32.store - (i32.const 624) - (get_local $14) - ) - (i32.store - (i32.const 628) - (get_local $19) - ) - (i32.store - (i32.const 636) - (i32.const 0) - ) - (i32.store - (i32.const 212) - (i32.load - (i32.const 648) - ) - ) - (i32.store - (i32.const 208) - (i32.const -1) - ) - (set_local $1 - (i32.const 0) - ) - (loop $while-in$47 - (block $while-out$46 - (i32.store offset=12 - (tee_local $0 - (i32.add - (i32.const 216) - (i32.shl - (i32.shl - (get_local $1) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $0) - ) - (br_if $while-out$46 - (i32.eq - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 1) - ) - ) - (i32.const 32) - ) - ) - (br $while-in$47) - ) - ) - (set_local $1 - (i32.eq - (i32.and - (tee_local $0 - (i32.add - (get_local $14) - (i32.const 8) - ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (i32.store - (i32.const 200) - (tee_local $0 - (i32.add - (get_local $14) - (tee_local $1 - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $0) - ) - (i32.const 7) - ) - (get_local $1) - ) - ) - ) - ) - ) - (i32.store - (i32.const 188) - (tee_local $1 - (i32.sub - (i32.add - (get_local $19) - (i32.const -40) - ) - (get_local $1) - ) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (get_local $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) - (get_local $1) - ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) - ) - ) + ) + (block + (set_local $3 + (i32.const 624) ) - (block - (set_local $7 - (i32.const 624) - ) - (loop $while-in$49 - (block $while-out$48 - (if + (block $jumpthreading$outer$9 + (block $jumpthreading$inner$9 + (loop $while-in$49 + (br_if $jumpthreading$inner$9 (i32.eq - (get_local $14) + (get_local $2) (i32.add - (tee_local $4 + (tee_local $9 (i32.load - (get_local $7) + (get_local $3) ) ) - (tee_local $3 + (tee_local $5 (i32.load - (tee_local $5 + (tee_local $4 (i32.add - (get_local $7) + (get_local $3) (i32.const 4) ) ) @@ -13204,1329 +11616,1202 @@ ) ) ) - (block - (set_local $1 - (get_local $4) - ) - (set_local $2 - (get_local $3) - ) - (set_local $42 - (get_local $5) - ) - (set_local $43 - (get_local $7) - ) - (set_local $11 - (i32.const 203) - ) - (br $while-out$48) - ) ) - (if - (i32.eq - (tee_local $4 - (i32.load offset=8 - (get_local $7) - ) + (br_if $while-in$49 + (tee_local $3 + (i32.load offset=8 + (get_local $3) ) - (i32.const 0) - ) - (br $while-out$48) - (set_local $7 - (get_local $4) ) ) - (br $while-in$49) ) + (br $jumpthreading$outer$9) ) (if - (i32.eq - (get_local $11) - (i32.const 203) + (i32.eqz + (i32.and + (i32.load offset=12 + (get_local $3) + ) + (i32.const 8) + ) ) (if - (i32.eq - (i32.and - (i32.load offset=12 - (get_local $43) - ) - (i32.const 8) + (i32.and + (i32.lt_u + (get_local $7) + (get_local $2) + ) + (i32.ge_u + (get_local $7) + (get_local $9) ) - (i32.const 0) ) - (if - (i32.and - (i32.lt_u - (get_local $0) - (get_local $14) - ) - (i32.ge_u - (get_local $0) + (block + (i32.store + (get_local $4) + (i32.add + (get_local $5) (get_local $1) ) ) - (block - (i32.store - (get_local $42) - (i32.add - (get_local $2) - (get_local $19) - ) - ) - (set_local $2 - (i32.eq - (i32.and - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 8) - ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (set_local $0 - (i32.add - (get_local $0) - (tee_local $1 - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $1) + (set_local $3 + (i32.add + (get_local $7) + (tee_local $2 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $7) + (i32.const 8) + ) ) - (i32.const 7) ) + (i32.const 7) + ) + (i32.const 0) + (i32.and (get_local $2) + (i32.const 7) ) ) ) ) - (set_local $1 - (i32.add - (i32.sub - (get_local $19) - (get_local $1) - ) - (i32.load - (i32.const 188) - ) - ) - ) - (i32.store - (i32.const 200) - (get_local $0) - ) - (i32.store - (i32.const 188) - (get_local $1) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (get_local $1) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $0) + ) + (set_local $1 + (i32.add + (i32.sub (get_local $1) + (get_local $2) ) - (i32.const 40) - ) - (i32.store - (i32.const 204) (i32.load - (i32.const 664) + (i32.const 188) ) ) - (br $do-once$44) ) - ) - ) - ) - (set_local $4 - (if - (i32.lt_u - (get_local $14) - (tee_local $1 + (i32.store + (i32.const 200) + (get_local $3) + ) + (i32.store + (i32.const 188) + (get_local $1) + ) + (i32.store offset=4 + (get_local $3) + (i32.or + (get_local $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $3) + (get_local $1) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) (i32.load - (i32.const 192) + (i32.const 664) ) ) + (br $do-once$44) ) - (block - (i32.store + ) + ) + ) + (set_local $10 + (if + (i32.lt_u + (get_local $2) + (tee_local $3 + (i32.load (i32.const 192) - (get_local $14) ) - (get_local $14) ) - (get_local $1) ) - ) - (set_local $3 - (i32.add - (get_local $14) - (get_local $19) + (block + (i32.store + (i32.const 192) + (get_local $2) + ) + (get_local $2) ) + (get_local $3) ) - (set_local $1 - (i32.const 624) + ) + (set_local $5 + (i32.add + (get_local $2) + (get_local $1) ) - (loop $while-in$51 - (block $while-out$50 + ) + (set_local $3 + (i32.const 624) + ) + (block $jumpthreading$outer$10 + (block $jumpthreading$inner$10 + (loop $while-in$51 (if (i32.eq (i32.load - (get_local $1) + (get_local $3) ) - (get_local $3) + (get_local $5) ) (block - (set_local $44 - (get_local $1) - ) - (set_local $38 - (get_local $1) - ) - (set_local $11 - (i32.const 211) + (set_local $4 + (get_local $3) ) - (br $while-out$50) + (br $jumpthreading$inner$10) ) ) - (if - (i32.eq - (tee_local $1 - (i32.load offset=8 - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (set_local $27 - (i32.const 624) + (br_if $while-in$51 + (tee_local $3 + (i32.load offset=8 + (get_local $3) ) - (br $while-out$50) ) ) - (br $while-in$51) + (set_local $4 + (i32.const 624) + ) ) + (br $jumpthreading$outer$10) ) (if - (i32.eq - (get_local $11) - (i32.const 211) + (i32.and + (i32.load offset=12 + (get_local $3) + ) + (i32.const 8) ) - (if - (i32.eq - (i32.and - (i32.load offset=12 - (get_local $38) - ) - (i32.const 8) - ) - (i32.const 0) + (set_local $4 + (i32.const 624) + ) + (block + (i32.store + (get_local $4) + (get_local $2) ) - (block - (i32.store - (get_local $44) - (get_local $14) - ) - (set_local $1 + (i32.store + (tee_local $3 (i32.add - (i32.load - (tee_local $2 - (i32.add - (get_local $38) - (i32.const 4) - ) - ) - ) - (get_local $19) + (get_local $3) + (i32.const 4) ) ) - (i32.store - (get_local $2) + (i32.add + (i32.load + (get_local $3) + ) (get_local $1) ) - (set_local $9 - (i32.eq - (i32.and - (tee_local $1 - (i32.add - (get_local $14) - (i32.const 8) + ) + (set_local $6 + (i32.add + (tee_local $9 + (i32.add + (get_local $2) + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $1 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + ) + (i32.const 7) ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (set_local $5 - (i32.eq - (i32.and - (tee_local $2 - (i32.add - (get_local $3) - (i32.const 8) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) - (i32.const 7) ) - (i32.const 0) ) + (get_local $0) ) - (set_local $1 + ) + (set_local $2 + (i32.sub (i32.sub - (tee_local $3 + (tee_local $8 (i32.add - (get_local $3) + (get_local $5) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (get_local $2) + (tee_local $1 + (i32.add + (get_local $5) + (i32.const 8) + ) + ) ) (i32.const 7) ) - (get_local $5) - ) - ) - ) - (tee_local $7 - (i32.add - (get_local $14) - (select (i32.const 0) (i32.and - (i32.sub - (i32.const 0) - (get_local $1) - ) + (get_local $1) (i32.const 7) ) - (get_local $9) ) ) ) + (get_local $9) ) + (get_local $0) ) - (set_local $5 - (i32.add - (get_local $7) - (get_local $6) - ) - ) - (set_local $12 - (i32.sub - (get_local $1) - (get_local $6) - ) + ) + (i32.store offset=4 + (get_local $9) + (i32.or + (get_local $0) + (i32.const 3) ) - (i32.store offset=4 - (get_local $7) - (i32.or - (get_local $6) - (i32.const 3) + ) + (block $do-once$52 + (if + (i32.eq + (get_local $8) + (get_local $7) ) - ) - (block $do-once$52 - (if - (i32.eq - (get_local $3) - (get_local $0) - ) - (block - (i32.store - (i32.const 188) - (tee_local $0 - (i32.add - (i32.load - (i32.const 188) - ) - (get_local $12) + (block + (i32.store + (i32.const 188) + (tee_local $0 + (i32.add + (i32.load + (i32.const 188) ) + (get_local $2) ) ) - (i32.store - (i32.const 200) - (get_local $5) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $0) - (i32.const 1) - ) + ) + (i32.store + (i32.const 200) + (get_local $6) + ) + (i32.store offset=4 + (get_local $6) + (i32.or + (get_local $0) + (i32.const 1) ) ) - (block - (if - (i32.eq - (get_local $3) - (i32.load - (i32.const 196) - ) + ) + (block + (if + (i32.eq + (get_local $8) + (i32.load + (i32.const 196) ) - (block - (i32.store - (i32.const 184) - (tee_local $0 - (i32.add - (i32.load - (i32.const 184) - ) - (get_local $12) + ) + (block + (i32.store + (i32.const 184) + (tee_local $0 + (i32.add + (i32.load + (i32.const 184) ) + (get_local $2) ) ) - (i32.store - (i32.const 196) - (get_local $5) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $0) - (i32.const 1) - ) + ) + (i32.store + (i32.const 196) + (get_local $6) + ) + (i32.store offset=4 + (get_local $6) + (i32.or + (get_local $0) + (i32.const 1) ) - (i32.store - (i32.add - (get_local $5) - (get_local $0) - ) + ) + (i32.store + (i32.add + (get_local $6) (get_local $0) ) - (br $do-once$52) + (get_local $0) ) + (br $do-once$52) ) - (set_local $0 - (i32.and - (i32.load - (tee_local $1 - (i32.add + ) + (i32.store + (tee_local $0 + (i32.add + (if + (i32.eq + (i32.and + (tee_local $1 + (i32.load offset=4 + (get_local $8) + ) + ) + (i32.const 3) + ) + (i32.const 1) + ) + (block + (set_local $5 + (i32.and + (get_local $1) + (i32.const -8) + ) + ) + (set_local $0 + (i32.shr_u + (get_local $1) + (i32.const 3) + ) + ) + (block $label$break$L331 (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load offset=4 - (get_local $3) - ) - ) - (i32.const 3) - ) - (i32.const 1) + (i32.lt_u + (get_local $1) + (i32.const 256) ) (block - (set_local $10 - (i32.and - (get_local $0) - (i32.const -8) - ) - ) - (set_local $9 - (i32.shr_u - (get_local $0) - (i32.const 3) + (set_local $3 + (i32.load offset=12 + (get_local $8) ) ) - (block $label$break$L331 + (block $do-once$55 (if - (i32.lt_u - (get_local $0) - (i32.const 256) - ) - (block - (set_local $1 - (i32.load offset=12 - (get_local $3) + (i32.ne + (tee_local $4 + (i32.load offset=8 + (get_local $8) ) ) - (block $do-once$55 - (if - (i32.ne - (tee_local $0 - (i32.load offset=8 - (get_local $3) - ) - ) - (tee_local $2 - (i32.add - (i32.const 216) - (i32.shl - (i32.shl - (get_local $9) - (i32.const 1) - ) - (i32.const 2) - ) - ) - ) - ) - (block - (if - (i32.lt_u - (get_local $0) - (get_local $4) - ) - (call_import $_abort) - ) - (br_if $do-once$55 - (i32.eq - (i32.load offset=12 - (get_local $0) - ) - (get_local $3) - ) + (tee_local $1 + (i32.add + (i32.const 216) + (i32.shl + (i32.shl + (get_local $0) + (i32.const 1) ) - (call_import $_abort) + (i32.const 2) ) ) ) + ) + (block (if - (i32.eq - (get_local $1) - (get_local $0) + (i32.lt_u + (get_local $4) + (get_local $10) ) - (block - (i32.store - (i32.const 176) - (i32.and - (i32.load - (i32.const 176) - ) - (i32.xor - (i32.shl - (i32.const 1) - (get_local $9) - ) - (i32.const -1) - ) - ) + (call_import $_abort) + ) + (br_if $do-once$55 + (i32.eq + (i32.load offset=12 + (get_local $4) ) - (br $label$break$L331) + (get_local $8) ) ) - (block $do-once$57 - (if - (i32.eq - (get_local $1) - (get_local $2) - ) - (set_local $39 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - (block - (if - (i32.lt_u - (get_local $1) - (get_local $4) - ) - (call_import $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $2 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (get_local $3) - ) - (block - (set_local $39 - (get_local $2) - ) - (br $do-once$57) - ) - ) - (call_import $_abort) + (call_import $_abort) + ) + ) + ) + (if + (i32.eq + (get_local $3) + (get_local $4) + ) + (block + (i32.store + (i32.const 176) + (i32.and + (i32.load + (i32.const 176) + ) + (i32.xor + (i32.shl + (i32.const 1) + (get_local $0) ) + (i32.const -1) ) ) - (i32.store offset=12 - (get_local $0) - (get_local $1) - ) - (i32.store - (get_local $39) - (get_local $0) + ) + (br $label$break$L331) + ) + ) + (block $do-once$57 + (if + (i32.eq + (get_local $3) + (get_local $1) + ) + (set_local $21 + (i32.add + (get_local $3) + (i32.const 8) ) ) (block - (set_local $0 - (i32.load offset=24 + (if + (i32.lt_u (get_local $3) + (get_local $10) ) + (call_import $_abort) ) - (block $do-once$59 - (if - (i32.eq - (tee_local $1 - (i32.load offset=12 + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add (get_local $3) + (i32.const 8) ) ) - (get_local $3) ) - (block - (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $9 - (i32.add - (tee_local $20 - (i32.add - (get_local $3) - (i32.const 16) - ) - ) - (i32.const 4) - ) - ) - ) - ) - (i32.const 0) - ) - (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $20) - ) - ) - (i32.const 0) - ) - (block - (set_local $18 - (i32.const 0) - ) - (br $do-once$59) - ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $9 - (get_local $20) - ) - ) - ) - (set_local $2 - (get_local $1) - ) - ) - (loop $while-in$62 - (block $while-out$61 - (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $20 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) - ) - ) - (i32.const 0) - ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $9 - (get_local $20) - ) - (br $while-in$62) - ) - ) - (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $20 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) - ) - ) - (i32.const 0) - ) - (br $while-out$61) - (block - (set_local $2 - (get_local $1) - ) - (set_local $9 - (get_local $20) - ) + (get_local $8) + ) + (block + (set_local $21 + (get_local $0) + ) + (br $do-once$57) + ) + ) + (call_import $_abort) + ) + ) + ) + (i32.store offset=12 + (get_local $4) + (get_local $3) + ) + (i32.store + (get_local $21) + (get_local $4) + ) + ) + (block + (set_local $7 + (i32.load offset=24 + (get_local $8) + ) + ) + (block $do-once$59 + (if + (i32.eq + (tee_local $0 + (i32.load offset=12 + (get_local $8) + ) + ) + (get_local $8) + ) + (block + (if + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) ) ) - (br $while-in$62) + (i32.const 4) ) ) - (if - (i32.lt_u - (get_local $9) - (get_local $4) - ) - (call_import $_abort) - (block - (i32.store - (get_local $9) - (i32.const 0) - ) - (set_local $18 - (get_local $2) - ) + ) + ) + (set_local $0 + (get_local $3) + ) + (if + (i32.eqz + (tee_local $1 + (i32.load + (get_local $0) ) ) ) (block - (if - (i32.lt_u - (tee_local $2 - (i32.load offset=8 - (get_local $3) - ) - ) - (get_local $4) - ) - (call_import $_abort) - ) - (if - (i32.ne - (i32.load - (tee_local $4 - (i32.add - (get_local $2) - (i32.const 12) - ) - ) - ) - (get_local $3) - ) - (call_import $_abort) - ) - (if - (i32.eq - (i32.load - (tee_local $9 - (i32.add - (get_local $1) - (i32.const 8) - ) - ) - ) - (get_local $3) - ) - (block - (i32.store - (get_local $4) - (get_local $1) - ) - (i32.store - (get_local $9) - (get_local $2) - ) - (set_local $18 - (get_local $1) - ) - ) - (call_import $_abort) + (set_local $11 + (i32.const 0) ) + (br $do-once$59) ) ) ) - (br_if $label$break$L331 - (i32.eq - (get_local $0) - (i32.const 0) - ) - ) - (block $do-once$63 + (loop $while-in$62 (if - (i32.eq - (get_local $3) + (tee_local $4 (i32.load - (tee_local $2 + (tee_local $3 (i32.add - (i32.const 480) - (i32.shl - (tee_local $1 - (i32.load offset=28 - (get_local $3) - ) - ) - (i32.const 2) - ) + (get_local $1) + (i32.const 20) ) ) ) ) (block - (i32.store - (get_local $2) - (get_local $18) + (set_local $1 + (get_local $4) ) - (br_if $do-once$63 - (i32.ne - (get_local $18) - (i32.const 0) - ) + (set_local $0 + (get_local $3) ) - (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) + (br $while-in$62) + ) + ) + (if + (tee_local $4 + (i32.load + (tee_local $3 + (i32.add + (get_local $1) + (i32.const 16) ) ) ) - (br $label$break$L331) ) (block - (if - (i32.lt_u - (get_local $0) - (i32.load - (i32.const 192) - ) - ) - (call_import $_abort) + (set_local $1 + (get_local $4) ) - (if - (i32.eq - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) - ) - (get_local $3) - ) - (i32.store - (get_local $1) - (get_local $18) - ) - (i32.store offset=20 - (get_local $0) - (get_local $18) - ) - ) - (br_if $label$break$L331 - (i32.eq - (get_local $18) - (i32.const 0) - ) + (set_local $0 + (get_local $3) ) + (br $while-in$62) ) ) ) (if (i32.lt_u - (get_local $18) - (tee_local $1 - (i32.load - (i32.const 192) + (get_local $0) + (get_local $10) + ) + (call_import $_abort) + (block + (i32.store + (get_local $0) + (i32.const 0) + ) + (set_local $11 + (get_local $1) + ) + ) + ) + ) + (block + (if + (i32.lt_u + (tee_local $4 + (i32.load offset=8 + (get_local $8) ) ) + (get_local $10) ) (call_import $_abort) ) - (i32.store offset=24 - (get_local $18) - (get_local $0) - ) (if (i32.ne - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $3) - (i32.const 16) - ) + (i32.load + (tee_local $3 + (i32.add + (get_local $4) + (i32.const 12) ) ) ) - (i32.const 0) + (get_local $8) ) - (if - (i32.lt_u + (call_import $_abort) + ) + (if + (i32.eq + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) + ) + (get_local $8) + ) + (block + (i32.store + (get_local $3) (get_local $0) + ) + (i32.store (get_local $1) + (get_local $4) ) - (call_import $_abort) - (block - (i32.store offset=16 - (get_local $18) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) - (get_local $18) + (set_local $11 + (get_local $0) + ) + ) + (call_import $_abort) + ) + ) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $7) + ) + ) + (block $do-once$63 + (if + (i32.eq + (get_local $8) + (i32.load + (tee_local $0 + (i32.add + (i32.const 480) + (i32.shl + (tee_local $1 + (i32.load offset=28 + (get_local $8) + ) + ) + (i32.const 2) ) ) ) ) - (br_if $label$break$L331 - (i32.eq - (tee_local $0 - (i32.load offset=4 - (get_local $2) + ) + (block + (i32.store + (get_local $0) + (get_local $11) + ) + (br_if $do-once$63 + (get_local $11) + ) + (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 0) ) ) + (br $label$break$L331) + ) + (block (if (i32.lt_u - (get_local $0) + (get_local $7) (i32.load (i32.const 192) ) ) (call_import $_abort) - (block - (i32.store offset=20 - (get_local $18) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) - (get_local $18) + ) + (if + (i32.eq + (i32.load + (tee_local $0 + (i32.add + (get_local $7) + (i32.const 16) + ) + ) ) + (get_local $8) + ) + (i32.store + (get_local $0) + (get_local $11) + ) + (i32.store offset=20 + (get_local $7) + (get_local $11) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (get_local $11) ) ) ) ) ) - (set_local $4 - (i32.add - (get_local $10) - (get_local $12) + (if + (i32.lt_u + (get_local $11) + (tee_local $3 + (i32.load + (i32.const 192) + ) + ) ) + (call_import $_abort) ) - (i32.add - (get_local $3) - (get_local $10) + (i32.store offset=24 + (get_local $11) + (get_local $7) ) - ) - (block - (set_local $4 - (get_local $12) + (if + (tee_local $1 + (i32.load + (tee_local $0 + (i32.add + (get_local $8) + (i32.const 16) + ) + ) + ) + ) + (if + (i32.lt_u + (get_local $1) + (get_local $3) + ) + (call_import $_abort) + (block + (i32.store offset=16 + (get_local $11) + (get_local $1) + ) + (i32.store offset=24 + (get_local $1) + (get_local $11) + ) + ) + ) + ) + (br_if $label$break$L331 + (i32.eqz + (tee_local $0 + (i32.load offset=4 + (get_local $0) + ) + ) + ) + ) + (if + (i32.lt_u + (get_local $0) + (i32.load + (i32.const 192) + ) + ) + (call_import $_abort) + (block + (i32.store offset=20 + (get_local $11) + (get_local $0) + ) + (i32.store offset=24 + (get_local $0) + (get_local $11) + ) + ) ) - (get_local $3) ) ) - (i32.const 4) + ) + (set_local $2 + (i32.add + (get_local $5) + (get_local $2) + ) + ) + (i32.add + (get_local $8) + (get_local $5) ) ) + (get_local $8) ) - (i32.const -2) + (i32.const 4) ) ) - (i32.store - (get_local $1) - (get_local $0) - ) - (i32.store offset=4 - (get_local $5) - (i32.or - (get_local $4) - (i32.const 1) + (i32.and + (i32.load + (get_local $0) ) + (i32.const -2) ) - (i32.store - (i32.add - (get_local $5) - (get_local $4) - ) - (get_local $4) + ) + (i32.store offset=4 + (get_local $6) + (i32.or + (get_local $2) + (i32.const 1) ) - (set_local $1 - (i32.shr_u - (get_local $4) - (i32.const 3) - ) + ) + (i32.store + (i32.add + (get_local $6) + (get_local $2) ) - (if - (i32.lt_u - (get_local $4) - (i32.const 256) - ) - (block - (set_local $2 - (i32.add - (i32.const 216) + (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 $0 + (i32.add + (i32.const 216) + (i32.shl (i32.shl + (get_local $1) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (block $do-once$67 + (if + (i32.and + (tee_local $2 + (i32.load + (i32.const 176) + ) + ) + (tee_local $1 (i32.shl - (get_local $1) (i32.const 1) + (get_local $1) ) - (i32.const 2) ) ) - ) - (block $do-once$67 - (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) + (block + (if + (i32.ge_u (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) + (i32.load + (tee_local $2 + (i32.add + (get_local $0) + (i32.const 8) + ) + ) ) ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) - (get_local $1) + (i32.load + (i32.const 192) ) ) - (set_local $8 - (i32.add + (block + (set_local $22 (get_local $2) - (i32.const 8) ) + (set_local $17 + (get_local $1) + ) + (br $do-once$67) ) - (set_local $33 + ) + (call_import $_abort) + ) + (block + (i32.store + (i32.const 176) + (i32.or (get_local $2) + (get_local $1) ) ) - (block - (if - (i32.ge_u - (tee_local $1 - (i32.load - (tee_local $0 - (i32.add - (get_local $2) - (i32.const 8) - ) - ) - ) - ) - (i32.load - (i32.const 192) - ) - ) - (block - (set_local $8 - (get_local $0) - ) - (set_local $33 - (get_local $1) - ) - (br $do-once$67) - ) + (set_local $22 + (i32.add + (get_local $0) + (i32.const 8) ) - (call_import $_abort) + ) + (set_local $17 + (get_local $0) ) ) ) - (i32.store - (get_local $8) - (get_local $5) - ) - (i32.store offset=12 - (get_local $33) - (get_local $5) - ) - (i32.store offset=8 - (get_local $5) - (get_local $33) - ) - (i32.store offset=12 - (get_local $5) - (get_local $2) - ) - (br $do-once$52) ) + (i32.store + (get_local $22) + (get_local $6) + ) + (i32.store offset=12 + (get_local $17) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $17) + ) + (i32.store offset=12 + (get_local $6) + (get_local $0) + ) + (br $do-once$52) ) - (set_local $2 - (i32.add - (i32.const 480) - (i32.shl - (tee_local $1 - (block $do-once$69 - (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $4) - (i32.const 8) - ) - ) - (i32.const 0) + ) + (set_local $1 + (i32.add + (i32.const 480) + (i32.shl + (tee_local $3 + (block $do-once$69 + (if + (tee_local $0 + (i32.shr_u + (get_local $2) + (i32.const 8) ) - (i32.const 0) - (block - (br_if $do-once$69 - (i32.const 31) - (i32.gt_u - (get_local $4) - (i32.const 16777215) - ) + ) + (block + (br_if $do-once$69 + (i32.const 31) + (i32.gt_u + (get_local $2) + (i32.const 16777215) ) - (set_local $1 - (i32.shl - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + ) + (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 $1 - (i32.and - (i32.shr_u - (i32.add - (tee_local $2 - (i32.shl - (get_local $0) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (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 $0) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $2) - (get_local $1) + (tee_local $1 + (i32.and + (i32.shr_u + (i32.add + (tee_local $0 + (i32.shl + (get_local $0) + (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 $1) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $0) + (get_local $1) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $4) - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $1) + (i32.shl + (get_local $0) + (i32.const 1) ) ) ) + (i32.const 0) ) ) - (i32.const 2) ) + (i32.const 2) ) ) - (i32.store offset=28 - (get_local $5) - (get_local $1) - ) - (i32.store offset=4 - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 16) - ) + ) + (i32.store offset=28 + (get_local $6) + (get_local $3) + ) + (i32.store offset=4 + (tee_local $0 + (i32.add + (get_local $6) + (i32.const 16) ) - (i32.const 0) - ) - (i32.store - (get_local $0) - (i32.const 0) ) - (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 180) - ) - ) - (tee_local $8 - (i32.shl - (i32.const 1) - (get_local $1) - ) + (i32.const 0) + ) + (i32.store + (get_local $0) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $4 + (i32.load + (i32.const 180) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $0) - (get_local $8) + (tee_local $0 + (i32.shl + (i32.const 1) + (get_local $3) ) ) - (i32.store - (get_local $2) - (get_local $5) - ) - (i32.store offset=24 - (get_local $5) - (get_local $2) - ) - (i32.store offset=12 - (get_local $5) - (get_local $5) - ) - (i32.store offset=8 - (get_local $5) - (get_local $5) + ) + ) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $4) + (get_local $0) ) - (br $do-once$52) ) + (i32.store + (get_local $1) + (get_local $6) + ) + (i32.store offset=24 + (get_local $6) + (get_local $1) + ) + (i32.store offset=12 + (get_local $6) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $6) + ) + (br $do-once$52) ) - (set_local $1 - (i32.shl - (get_local $4) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $1) - (i32.const 1) - ) - ) - (i32.eq - (get_local $1) - (i32.const 31) + ) + (set_local $3 + (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) + ) ) ) - (set_local $2 - (i32.load - (get_local $2) - ) + ) + (set_local $0 + (i32.load + (get_local $1) ) - (loop $while-in$72 - (block $while-out$71 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $2) + ) + (block $jumpthreading$outer$6 + (block $jumpthreading$inner$6 + (block $jumpthreading$inner$5 + (loop $while-in$72 + (br_if $jumpthreading$inner$6 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) + ) + (i32.const -8) ) - (i32.const -8) - ) - (get_local $4) - ) - (block - (set_local $34 (get_local $2) ) - (set_local $11 - (i32.const 281) - ) - (br $while-out$71) ) - ) - (set_local $8 - (i32.shl - (get_local $1) - (i32.const 1) + (set_local $1 + (i32.shl + (get_local $3) + (i32.const 1) + ) ) - ) - (if - (i32.eq - (tee_local $0 + (if + (tee_local $4 (i32.load - (tee_local $1 + (tee_local $3 (i32.add (i32.add - (get_local $2) + (get_local $0) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $1) + (get_local $3) (i32.const 31) ) (i32.const 2) @@ -14535,40 +12820,30 @@ ) ) ) - (i32.const 0) - ) - (block - (set_local $45 - (get_local $2) - ) - (set_local $40 - (get_local $1) - ) - (set_local $11 - (i32.const 278) - ) - (br $while-out$71) - ) - (block - (set_local $1 - (get_local $8) + (block + (set_local $3 + (get_local $1) + ) + (set_local $0 + (get_local $4) + ) + (br $while-in$72) ) - (set_local $2 - (get_local $0) + (block + (set_local $1 + (get_local $0) + ) + (set_local $0 + (get_local $3) + ) + (br $jumpthreading$inner$5) ) ) ) - (br $while-in$72) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 278) ) (if (i32.lt_u - (get_local $40) + (get_local $0) (i32.load (i32.const 192) ) @@ -14576,495 +12851,461 @@ (call_import $_abort) (block (i32.store - (get_local $40) - (get_local $5) + (get_local $0) + (get_local $6) ) (i32.store offset=24 - (get_local $5) - (get_local $45) + (get_local $6) + (get_local $1) ) (i32.store offset=12 - (get_local $5) - (get_local $5) + (get_local $6) + (get_local $6) ) (i32.store offset=8 - (get_local $5) - (get_local $5) + (get_local $6) + (get_local $6) ) + (br $do-once$52) ) ) - (if - (i32.eq - (get_local $11) - (i32.const 281) - ) - (if - (i32.and - (i32.ge_u - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $34) - (i32.const 8) - ) - ) - ) - ) + (br $jumpthreading$outer$6) + ) + (if + (i32.and + (i32.ge_u + (tee_local $3 + (i32.load (tee_local $1 - (i32.load - (i32.const 192) + (i32.add + (get_local $0) + (i32.const 8) ) ) ) - (i32.ge_u - (get_local $34) - (get_local $1) - ) ) - (block - (i32.store offset=12 - (get_local $0) - (get_local $5) - ) - (i32.store - (get_local $2) - (get_local $5) - ) - (i32.store offset=8 - (get_local $5) - (get_local $0) - ) - (i32.store offset=12 - (get_local $5) - (get_local $34) - ) - (i32.store offset=24 - (get_local $5) - (i32.const 0) + (tee_local $2 + (i32.load + (i32.const 192) ) ) - (call_import $_abort) + ) + (i32.ge_u + (get_local $0) + (get_local $2) ) ) + (block + (i32.store offset=12 + (get_local $3) + (get_local $6) + ) + (i32.store + (get_local $1) + (get_local $6) + ) + (i32.store offset=8 + (get_local $6) + (get_local $3) + ) + (i32.store offset=12 + (get_local $6) + (get_local $0) + ) + (i32.store offset=24 + (get_local $6) + (i32.const 0) + ) + ) + (call_import $_abort) ) ) ) ) - (return - (i32.add - (get_local $7) - (i32.const 8) - ) - ) ) - (set_local $27 - (i32.const 624) + (return + (i32.add + (get_local $9) + (i32.const 8) + ) ) ) ) - (loop $while-in$74 - (block $while-out$73 - (if - (i32.le_u - (tee_local $1 - (i32.load - (get_local $27) - ) + ) + (loop $while-in$74 + (block $while-out$73 + (if + (i32.le_u + (tee_local $3 + (i32.load + (get_local $4) ) - (get_local $0) ) - (if - (i32.gt_u - (tee_local $1 - (i32.add - (get_local $1) - (i32.load offset=4 - (get_local $27) - ) + (get_local $7) + ) + (br_if $while-out$73 + (i32.gt_u + (tee_local $3 + (i32.add + (get_local $3) + (i32.load offset=4 + (get_local $4) ) ) - (get_local $0) - ) - (block - (set_local $2 - (get_local $1) - ) - (br $while-out$73) ) + (get_local $7) ) ) - (set_local $27 - (i32.load offset=8 - (get_local $27) - ) + ) + (set_local $4 + (i32.load offset=8 + (get_local $4) ) - (br $while-in$74) ) + (br $while-in$74) ) - (set_local $8 - (i32.eq - (i32.and - (tee_local $1 + ) + (set_local $5 + (i32.add + (tee_local $4 + (i32.add + (get_local $3) + (i32.const -47) + ) + ) + (i32.const 8) + ) + ) + (set_local $8 + (i32.add + (tee_local $9 + (select + (get_local $7) + (tee_local $4 (i32.add - (tee_local $4 - (i32.add - (get_local $2) - (i32.const -47) + (get_local $4) + (select + (i32.and + (i32.sub + (i32.const 0) + (get_local $5) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $5) + (i32.const 7) ) ) - (i32.const 8) ) ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (set_local $4 - (i32.lt_u - (tee_local $1 - (i32.add + (i32.lt_u (get_local $4) - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $1) - ) - (i32.const 7) + (tee_local $6 + (i32.add + (get_local $7) + (i32.const 16) ) - (get_local $8) ) ) ) - (tee_local $8 - (i32.add - (get_local $0) - (i32.const 16) - ) - ) ) + (i32.const 8) ) - (set_local $4 + ) + (i32.store + (i32.const 200) + (tee_local $5 (i32.add - (tee_local $5 + (get_local $2) + (tee_local $4 (select - (get_local $0) - (get_local $1) - (get_local $4) - ) - ) - (i32.const 8) - ) - ) - (set_local $3 - (i32.eq - (i32.and - (tee_local $1 - (i32.add - (get_local $14) - (i32.const 8) - ) - ) - (i32.const 7) - ) - (i32.const 0) - ) - ) - (i32.store - (i32.const 200) - (tee_local $1 - (i32.add - (get_local $14) - (tee_local $3 - (select - (i32.const 0) - (i32.and - (i32.sub - (i32.const 0) - (get_local $1) + (i32.and + (i32.sub + (i32.const 0) + (tee_local $4 + (i32.add + (get_local $2) + (i32.const 8) + ) ) - (i32.const 7) ) - (get_local $3) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) ) ) ) ) - (i32.store - (i32.const 188) - (tee_local $3 - (i32.sub - (i32.add - (get_local $19) - (i32.const -40) - ) - (get_local $3) - ) - ) - ) - (i32.store offset=4 - (get_local $1) - (i32.or - (get_local $3) - (i32.const 1) - ) - ) - (i32.store offset=4 - (i32.add - (get_local $1) - (get_local $3) - ) - (i32.const 40) - ) - (i32.store - (i32.const 204) - (i32.load - (i32.const 664) - ) - ) - (i32.store - (tee_local $3 + ) + (i32.store + (i32.const 188) + (tee_local $4 + (i32.sub (i32.add - (get_local $5) - (i32.const 4) + (get_local $1) + (i32.const -40) ) + (get_local $4) ) - (i32.const 27) ) - (i32.store + ) + (i32.store offset=4 + (get_local $5) + (i32.or (get_local $4) - (i32.load - (i32.const 624) - ) + (i32.const 1) ) - (i32.store offset=4 + ) + (i32.store offset=4 + (i32.add + (get_local $5) (get_local $4) - (i32.load - (i32.const 628) - ) ) - (i32.store offset=8 - (get_local $4) - (i32.load - (i32.const 632) - ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) ) - (i32.store offset=12 - (get_local $4) - (i32.load - (i32.const 636) + ) + (i32.store + (tee_local $4 + (i32.add + (get_local $9) + (i32.const 4) ) ) - (i32.store + (i32.const 27) + ) + (i32.store + (get_local $8) + (i32.load (i32.const 624) - (get_local $14) ) - (i32.store + ) + (i32.store offset=4 + (get_local $8) + (i32.load (i32.const 628) - (get_local $19) ) - (i32.store + ) + (i32.store offset=8 + (get_local $8) + (i32.load + (i32.const 632) + ) + ) + (i32.store offset=12 + (get_local $8) + (i32.load (i32.const 636) - (i32.const 0) ) + ) + (i32.store + (i32.const 624) + (get_local $2) + ) + (i32.store + (i32.const 628) + (get_local $1) + ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 632) + (get_local $8) + ) + (set_local $1 + (i32.add + (get_local $9) + (i32.const 24) + ) + ) + (loop $while-in$76 (i32.store - (i32.const 632) - (get_local $4) + (tee_local $1 + (i32.add + (get_local $1) + (i32.const 4) + ) + ) + (i32.const 7) ) - (set_local $1 - (i32.add - (get_local $5) - (i32.const 24) + (br_if $while-in$76 + (i32.lt_u + (i32.add + (get_local $1) + (i32.const 4) + ) + (get_local $3) ) ) - (loop $while-in$76 - (block $while-out$75 - (i32.store - (tee_local $1 - (i32.add - (get_local $1) - (i32.const 4) - ) + ) + (if + (i32.ne + (get_local $9) + (get_local $7) + ) + (block + (i32.store + (get_local $4) + (i32.and + (i32.load + (get_local $4) ) - (i32.const 7) + (i32.const -2) ) - (br_if $while-out$75 - (i32.ge_u - (i32.add - (get_local $1) - (i32.const 4) + ) + (i32.store offset=4 + (get_local $7) + (i32.or + (tee_local $5 + (i32.sub + (get_local $9) + (get_local $7) ) - (get_local $2) ) + (i32.const 1) ) - (br $while-in$76) ) - ) - (if - (i32.ne + (i32.store + (get_local $9) (get_local $5) - (get_local $0) ) - (block - (i32.store - (get_local $3) - (i32.and - (i32.load - (get_local $3) - ) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $0) - (i32.or - (tee_local $3 - (i32.sub - (get_local $5) - (get_local $0) - ) - ) - (i32.const 1) - ) - ) - (i32.store + (set_local $2 + (i32.shr_u (get_local $5) - (get_local $3) + (i32.const 3) ) - (set_local $2 - (i32.shr_u - (get_local $3) - (i32.const 3) - ) + ) + (if + (i32.lt_u + (get_local $5) + (i32.const 256) ) - (if - (i32.lt_u - (get_local $3) - (i32.const 256) + (block + (set_local $1 + (i32.add + (i32.const 216) + (i32.shl + (i32.shl + (get_local $2) + (i32.const 1) + ) + (i32.const 2) + ) + ) ) - (block - (set_local $4 - (i32.add - (i32.const 216) + (if + (i32.and + (tee_local $3 + (i32.load + (i32.const 176) + ) + ) + (tee_local $2 (i32.shl - (i32.shl - (get_local $2) - (i32.const 1) - ) - (i32.const 2) + (i32.const 1) + (get_local $2) ) ) ) (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 176) - ) - ) - (tee_local $2 - (i32.shl - (i32.const 1) - (get_local $2) + (i32.lt_u + (tee_local $2 + (i32.load + (tee_local $3 + (i32.add + (get_local $1) + (i32.const 8) + ) ) ) ) - (i32.const 0) + (i32.load + (i32.const 192) + ) ) + (call_import $_abort) (block - (i32.store - (i32.const 176) - (i32.or - (get_local $1) - (get_local $2) - ) - ) - (set_local $9 - (i32.add - (get_local $4) - (i32.const 8) - ) + (set_local $23 + (get_local $3) ) - (set_local $20 - (get_local $4) + (set_local $18 + (get_local $2) ) ) - (if - (i32.lt_u - (tee_local $2 - (i32.load - (tee_local $1 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - ) - ) - (i32.load - (i32.const 192) - ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $3) + (get_local $2) ) - (call_import $_abort) - (block - (set_local $9 - (get_local $1) - ) - (set_local $20 - (get_local $2) - ) + ) + (set_local $23 + (i32.add + (get_local $1) + (i32.const 8) ) ) + (set_local $18 + (get_local $1) + ) ) - (i32.store - (get_local $9) - (get_local $0) - ) - (i32.store offset=12 - (get_local $20) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $20) - ) - (i32.store offset=12 - (get_local $0) - (get_local $4) - ) - (br $do-once$44) ) + (i32.store + (get_local $23) + (get_local $7) + ) + (i32.store offset=12 + (get_local $18) + (get_local $7) + ) + (i32.store offset=8 + (get_local $7) + (get_local $18) + ) + (i32.store offset=12 + (get_local $7) + (get_local $1) + ) + (br $do-once$44) ) - (set_local $4 - (i32.add - (i32.const 480) - (i32.shl - (tee_local $2 + ) + (set_local $2 + (i32.add + (i32.const 480) + (i32.shl + (tee_local $3 + (if + (tee_local $1 + (i32.shr_u + (get_local $5) + (i32.const 8) + ) + ) (if - (i32.eq - (tee_local $1 - (i32.shr_u - (get_local $3) - (i32.const 8) - ) - ) - (i32.const 0) + (i32.gt_u + (get_local $5) + (i32.const 16777215) ) - (i32.const 0) - (if - (i32.gt_u - (get_local $3) - (i32.const 16777215) - ) - (i32.const 31) - (block - (set_local $2 - (i32.shl + (i32.const 31) + (i32.or + (i32.and + (i32.shr_u + (get_local $5) + (i32.add (tee_local $1 (i32.add (i32.sub @@ -15075,10 +13316,10 @@ (i32.and (i32.shr_u (i32.add - (tee_local $4 + (tee_local $1 (i32.shl (get_local $1) - (tee_local $1 + (tee_local $3 (i32.and (i32.shr_u (i32.add @@ -15099,15 +13340,15 @@ (i32.const 4) ) ) - (get_local $1) + (get_local $3) ) - (tee_local $1 + (tee_local $2 (i32.and (i32.shr_u (i32.add - (tee_local $2 + (tee_local $1 (i32.shl - (get_local $4) + (get_local $1) (get_local $2) ) ) @@ -15122,158 +13363,143 @@ ) (i32.shr_u (i32.shl - (get_local $2) (get_local $1) + (get_local $2) ) (i32.const 15) ) ) ) - (i32.const 1) + (i32.const 7) ) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $3) - (i32.add - (get_local $1) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $2) - ) + (i32.const 1) + ) + (i32.shl + (get_local $1) + (i32.const 1) ) ) ) + (i32.const 0) ) - (i32.const 2) ) + (i32.const 2) ) ) - (i32.store offset=28 - (get_local $0) - (get_local $2) - ) - (i32.store offset=20 - (get_local $0) - (i32.const 0) - ) - (i32.store - (get_local $8) - (i32.const 0) - ) - (if - (i32.eq - (i32.and - (tee_local $1 - (i32.load - (i32.const 180) - ) - ) - (tee_local $8 - (i32.shl - (i32.const 1) - (get_local $2) - ) + ) + (i32.store offset=28 + (get_local $7) + (get_local $3) + ) + (i32.store offset=20 + (get_local $7) + (i32.const 0) + ) + (i32.store + (get_local $6) + (i32.const 0) + ) + (if + (i32.eqz + (i32.and + (tee_local $4 + (i32.load + (i32.const 180) ) ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $1) - (get_local $8) + (tee_local $1 + (i32.shl + (i32.const 1) + (get_local $3) ) ) - (i32.store - (get_local $4) - (get_local $0) - ) - (i32.store offset=24 - (get_local $0) + ) + ) + (block + (i32.store + (i32.const 180) + (i32.or (get_local $4) + (get_local $1) ) - (i32.store offset=12 - (get_local $0) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $0) - ) - (br $do-once$44) ) + (i32.store + (get_local $2) + (get_local $7) + ) + (i32.store offset=24 + (get_local $7) + (get_local $2) + ) + (i32.store offset=12 + (get_local $7) + (get_local $7) + ) + (i32.store offset=8 + (get_local $7) + (get_local $7) + ) + (br $do-once$44) ) - (set_local $2 - (i32.shl - (get_local $3) - (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 31) + ) + (set_local $3 + (i32.shl + (get_local $5) + (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) + ) ) ) - (set_local $4 - (i32.load - (get_local $4) - ) + ) + (set_local $1 + (i32.load + (get_local $2) ) - (loop $while-in$78 - (block $while-out$77 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $4) + ) + (block $jumpthreading$outer$8 + (block $jumpthreading$inner$8 + (block $jumpthreading$inner$7 + (loop $while-in$78 + (br_if $jumpthreading$inner$8 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $1) + ) + (i32.const -8) ) - (i32.const -8) + (get_local $5) ) - (get_local $3) ) - (block - (set_local $35 - (get_local $4) - ) - (set_local $11 - (i32.const 307) + (set_local $2 + (i32.shl + (get_local $3) + (i32.const 1) ) - (br $while-out$77) - ) - ) - (set_local $8 - (i32.shl - (get_local $2) - (i32.const 1) ) - ) - (if - (i32.eq - (tee_local $1 + (if + (tee_local $4 (i32.load - (tee_local $2 + (tee_local $3 (i32.add (i32.add - (get_local $4) + (get_local $1) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $2) + (get_local $3) (i32.const 31) ) (i32.const 2) @@ -15282,40 +13508,30 @@ ) ) ) - (i32.const 0) - ) - (block - (set_local $46 - (get_local $4) - ) - (set_local $41 - (get_local $2) - ) - (set_local $11 - (i32.const 304) - ) - (br $while-out$77) - ) - (block - (set_local $2 - (get_local $8) + (block + (set_local $3 + (get_local $2) + ) + (set_local $1 + (get_local $4) + ) + (br $while-in$78) ) - (set_local $4 - (get_local $1) + (block + (set_local $2 + (get_local $1) + ) + (set_local $1 + (get_local $3) + ) + (br $jumpthreading$inner$7) ) ) ) - (br $while-in$78) - ) - ) - (if - (i32.eq - (get_local $11) - (i32.const 304) ) (if (i32.lt_u - (get_local $41) + (get_local $1) (i32.load (i32.const 192) ) @@ -15323,136 +13539,271 @@ (call_import $_abort) (block (i32.store - (get_local $41) - (get_local $0) + (get_local $1) + (get_local $7) ) (i32.store offset=24 - (get_local $0) - (get_local $46) + (get_local $7) + (get_local $2) ) (i32.store offset=12 - (get_local $0) - (get_local $0) + (get_local $7) + (get_local $7) ) (i32.store offset=8 - (get_local $0) - (get_local $0) + (get_local $7) + (get_local $7) ) + (br $do-once$44) ) ) - (if - (i32.eq - (get_local $11) - (i32.const 307) - ) - (if - (i32.and - (i32.ge_u - (tee_local $1 - (i32.load - (tee_local $4 - (i32.add - (get_local $35) - (i32.const 8) - ) - ) - ) - ) + (br $jumpthreading$outer$8) + ) + (if + (i32.and + (i32.ge_u + (tee_local $4 + (i32.load (tee_local $2 - (i32.load - (i32.const 192) + (i32.add + (get_local $1) + (i32.const 8) ) ) ) - (i32.ge_u - (get_local $35) - (get_local $2) - ) ) - (block - (i32.store offset=12 - (get_local $1) - (get_local $0) - ) - (i32.store - (get_local $4) - (get_local $0) - ) - (i32.store offset=8 - (get_local $0) - (get_local $1) - ) - (i32.store offset=12 - (get_local $0) - (get_local $35) - ) - (i32.store offset=24 - (get_local $0) - (i32.const 0) + (tee_local $3 + (i32.load + (i32.const 192) ) ) - (call_import $_abort) + ) + (i32.ge_u + (get_local $1) + (get_local $3) + ) + ) + (block + (i32.store offset=12 + (get_local $4) + (get_local $7) + ) + (i32.store + (get_local $2) + (get_local $7) + ) + (i32.store offset=8 + (get_local $7) + (get_local $4) + ) + (i32.store offset=12 + (get_local $7) + (get_local $1) + ) + (i32.store offset=24 + (get_local $7) + (i32.const 0) ) ) + (call_import $_abort) ) ) ) ) ) - ) - (if - (i32.gt_u - (tee_local $0 + (block + (if + (i32.or + (i32.eqz + (tee_local $3 + (i32.load + (i32.const 192) + ) + ) + ) + (i32.lt_u + (get_local $2) + (get_local $3) + ) + ) + (i32.store + (i32.const 192) + (get_local $2) + ) + ) + (i32.store + (i32.const 624) + (get_local $2) + ) + (i32.store + (i32.const 628) + (get_local $1) + ) + (i32.store + (i32.const 636) + (i32.const 0) + ) + (i32.store + (i32.const 212) (i32.load - (i32.const 188) + (i32.const 648) ) ) - (get_local $6) - ) - (block (i32.store - (i32.const 188) - (tee_local $2 - (i32.sub - (get_local $0) - (get_local $6) + (i32.const 208) + (i32.const -1) + ) + (set_local $3 + (i32.const 0) + ) + (loop $while-in$47 + (i32.store offset=12 + (tee_local $4 + (i32.add + (i32.const 216) + (i32.shl + (i32.shl + (get_local $3) + (i32.const 1) + ) + (i32.const 2) + ) + ) + ) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + (br_if $while-in$47 + (i32.ne + (tee_local $3 + (i32.add + (get_local $3) + (i32.const 1) + ) + ) + (i32.const 32) ) ) ) (i32.store (i32.const 200) - (tee_local $1 + (tee_local $3 (i32.add - (tee_local $0 - (i32.load - (i32.const 200) + (get_local $2) + (tee_local $2 + (select + (i32.and + (i32.sub + (i32.const 0) + (tee_local $2 + (i32.add + (get_local $2) + (i32.const 8) + ) + ) + ) + (i32.const 7) + ) + (i32.const 0) + (i32.and + (get_local $2) + (i32.const 7) + ) ) ) - (get_local $6) + ) + ) + ) + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (i32.add + (get_local $1) + (i32.const -40) + ) + (get_local $2) ) ) ) (i32.store offset=4 - (get_local $1) + (get_local $3) (i32.or - (get_local $2) + (get_local $1) (i32.const 1) ) ) (i32.store offset=4 - (get_local $0) - (i32.or - (get_local $6) - (i32.const 3) + (i32.add + (get_local $3) + (get_local $1) + ) + (i32.const 40) + ) + (i32.store + (i32.const 204) + (i32.load + (i32.const 664) + ) + ) + ) + ) + ) + (if + (i32.gt_u + (tee_local $1 + (i32.load + (i32.const 188) + ) + ) + (get_local $0) + ) + (block + (i32.store + (i32.const 188) + (tee_local $1 + (i32.sub + (get_local $1) + (get_local $0) ) ) - (return + ) + (i32.store + (i32.const 200) + (tee_local $2 (i32.add + (tee_local $3 + (i32.load + (i32.const 200) + ) + ) (get_local $0) - (i32.const 8) ) ) ) + (i32.store offset=4 + (get_local $2) + (i32.or + (get_local $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (get_local $3) + (i32.or + (get_local $0) + (i32.const 3) + ) + ) + (return + (i32.add + (get_local $3) + (i32.const 8) + ) + ) ) ) ) @@ -15478,13 +13829,9 @@ (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i32) (if - (i32.eq + (i32.eqz (get_local $0) - (i32.const 0) ) (return) ) @@ -15496,7 +13843,7 @@ (i32.const -8) ) ) - (tee_local $1 + (tee_local $11 (i32.load (i32.const 192) ) @@ -15506,9 +13853,9 @@ ) (if (i32.eq - (tee_local $8 + (tee_local $10 (i32.and - (tee_local $0 + (tee_local $3 (i32.load (i32.add (get_local $0) @@ -15523,12 +13870,12 @@ ) (call_import $_abort) ) - (set_local $9 + (set_local $6 (i32.add (get_local $2) - (tee_local $7 + (tee_local $0 (i32.and - (get_local $0) + (get_local $3) (i32.const -8) ) ) @@ -15536,50 +13883,54 @@ ) (block $do-once$0 (if - (i32.eq - (i32.and + (i32.and + (get_local $3) + (i32.const 1) + ) + (block + (set_local $4 + (get_local $2) + ) + (set_local $1 (get_local $0) - (i32.const 1) ) - (i32.const 0) ) (block - (set_local $0 + (set_local $8 (i32.load (get_local $2) ) ) (if - (i32.eq - (get_local $8) - (i32.const 0) + (i32.eqz + (get_local $10) ) (return) ) - (set_local $12 + (set_local $3 (i32.add + (get_local $8) (get_local $0) - (get_local $7) ) ) (if (i32.lt_u - (tee_local $4 + (tee_local $0 (i32.add (get_local $2) (i32.sub (i32.const 0) - (get_local $0) + (get_local $8) ) ) ) - (get_local $1) + (get_local $11) ) (call_import $_abort) ) (if (i32.eq - (get_local $4) + (get_local $0) (i32.load (i32.const 196) ) @@ -15588,11 +13939,11 @@ (if (i32.ne (i32.and - (tee_local $0 + (tee_local $1 (i32.load - (tee_local $1 + (tee_local $4 (i32.add - (get_local $9) + (get_local $6) (i32.const 4) ) ) @@ -15603,73 +13954,73 @@ (i32.const 3) ) (block - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) ) (i32.store (i32.const 184) - (get_local $12) + (get_local $3) ) (i32.store - (get_local $1) + (get_local $4) (i32.and - (get_local $0) + (get_local $1) (i32.const -2) ) ) (i32.store offset=4 - (get_local $4) + (get_local $0) (i32.or - (get_local $12) + (get_local $3) (i32.const 1) ) ) (i32.store (i32.add - (get_local $4) - (get_local $12) + (get_local $0) + (get_local $3) ) - (get_local $12) + (get_local $3) ) (return) ) ) - (set_local $7 + (set_local $10 (i32.shr_u - (get_local $0) + (get_local $8) (i32.const 3) ) ) (if (i32.lt_u - (get_local $0) + (get_local $8) (i32.const 256) ) (block (set_local $2 (i32.load offset=12 - (get_local $4) + (get_local $0) ) ) (if (i32.ne - (tee_local $0 + (tee_local $4 (i32.load offset=8 - (get_local $4) + (get_local $0) ) ) - (tee_local $8 + (tee_local $1 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $7) + (get_local $10) (i32.const 1) ) (i32.const 2) @@ -15680,17 +14031,17 @@ (block (if (i32.lt_u - (get_local $0) - (get_local $1) + (get_local $4) + (get_local $11) ) (call_import $_abort) ) (if (i32.ne (i32.load offset=12 - (get_local $0) + (get_local $4) ) - (get_local $4) + (get_local $0) ) (call_import $_abort) ) @@ -15699,7 +14050,7 @@ (if (i32.eq (get_local $2) - (get_local $0) + (get_local $4) ) (block (i32.store @@ -15711,17 +14062,17 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $7) + (get_local $10) ) (i32.const -1) ) ) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) @@ -15729,9 +14080,9 @@ (if (i32.eq (get_local $2) - (get_local $8) + (get_local $1) ) - (set_local $13 + (set_local $5 (i32.add (get_local $2) (i32.const 8) @@ -15741,7 +14092,7 @@ (if (i32.lt_u (get_local $2) - (get_local $1) + (get_local $11) ) (call_import $_abort) ) @@ -15755,9 +14106,9 @@ ) ) ) - (get_local $4) + (get_local $0) ) - (set_local $13 + (set_local $5 (get_local $1) ) (call_import $_abort) @@ -15765,47 +14116,47 @@ ) ) (i32.store offset=12 - (get_local $0) + (get_local $4) (get_local $2) ) (i32.store - (get_local $13) - (get_local $0) - ) - (set_local $3 + (get_local $5) (get_local $4) ) - (set_local $10 - (get_local $12) + (set_local $4 + (get_local $0) + ) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) ) - (set_local $8 + (set_local $12 (i32.load offset=24 - (get_local $4) + (get_local $0) ) ) (block $do-once$2 (if (i32.eq - (tee_local $0 + (tee_local $2 (i32.load offset=12 - (get_local $4) + (get_local $0) ) ) - (get_local $4) + (get_local $0) ) (block (if - (i32.eq - (tee_local $0 + (i32.eqz + (tee_local $2 (i32.load - (tee_local $7 + (tee_local $5 (i32.add - (tee_local $13 + (tee_local $8 (i32.add - (get_local $4) + (get_local $0) (i32.const 16) ) ) @@ -15814,101 +14165,80 @@ ) ) ) - (i32.const 0) ) (if - (i32.eq - (tee_local $0 - (i32.load - (get_local $13) - ) + (tee_local $2 + (i32.load + (get_local $8) ) - (i32.const 0) ) - (block - (set_local $5 - (i32.const 0) - ) - (br $do-once$2) + (set_local $5 + (get_local $8) ) (block - (set_local $2 - (get_local $0) - ) (set_local $7 - (get_local $13) + (i32.const 0) ) + (br $do-once$2) ) ) - (set_local $2 - (get_local $0) - ) ) (loop $while-in$5 - (block $while-out$4 - (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) + (if + (tee_local $8 + (i32.load + (tee_local $10 + (i32.add + (get_local $2) + (i32.const 20) ) ) - (i32.const 0) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $7 - (get_local $13) - ) - (br $while-in$5) + ) + (block + (set_local $2 + (get_local $8) ) + (set_local $5 + (get_local $10) + ) + (br $while-in$5) ) - (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $13 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) + ) + (if + (tee_local $8 + (i32.load + (tee_local $10 + (i32.add + (get_local $2) + (i32.const 16) ) ) - (i32.const 0) ) - (br $while-out$4) - (block - (set_local $2 - (get_local $0) - ) - (set_local $7 - (get_local $13) - ) + ) + (block + (set_local $2 + (get_local $8) ) + (set_local $5 + (get_local $10) + ) + (br $while-in$5) ) - (br $while-in$5) ) ) (if (i32.lt_u - (get_local $7) - (get_local $1) + (get_local $5) + (get_local $11) ) (call_import $_abort) (block (i32.store - (get_local $7) + (get_local $5) (i32.const 0) ) - (set_local $5 + (set_local $7 (get_local $2) ) ) @@ -15917,52 +14247,52 @@ (block (if (i32.lt_u - (tee_local $2 + (tee_local $5 (i32.load offset=8 - (get_local $4) + (get_local $0) ) ) - (get_local $1) + (get_local $11) ) (call_import $_abort) ) (if (i32.ne (i32.load - (tee_local $1 + (tee_local $8 (i32.add - (get_local $2) + (get_local $5) (i32.const 12) ) ) ) - (get_local $4) + (get_local $0) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $7 + (tee_local $10 (i32.add - (get_local $0) + (get_local $2) (i32.const 8) ) ) ) - (get_local $4) + (get_local $0) ) (block (i32.store - (get_local $1) - (get_local $0) + (get_local $8) + (get_local $2) ) (i32.store - (get_local $7) - (get_local $2) + (get_local $10) + (get_local $5) ) - (set_local $5 - (get_local $0) + (set_local $7 + (get_local $2) ) ) (call_import $_abort) @@ -15971,30 +14301,19 @@ ) ) (if - (i32.eq - (get_local $8) - (i32.const 0) - ) - (block - (set_local $3 - (get_local $4) - ) - (set_local $10 - (get_local $12) - ) - ) + (get_local $12) (block (if (i32.eq - (get_local $4) + (get_local $0) (i32.load - (tee_local $1 + (tee_local $5 (i32.add (i32.const 480) (i32.shl - (tee_local $0 + (tee_local $2 (i32.load offset=28 - (get_local $4) + (get_local $0) ) ) (i32.const 2) @@ -16005,13 +14324,12 @@ ) (block (i32.store - (get_local $1) (get_local $5) + (get_local $7) ) (if - (i32.eq - (get_local $5) - (i32.const 0) + (i32.eqz + (get_local $7) ) (block (i32.store @@ -16023,17 +14341,17 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $0) + (get_local $2) ) (i32.const -1) ) ) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) @@ -16042,7 +14360,7 @@ (block (if (i32.lt_u - (get_local $8) + (get_local $12) (i32.load (i32.const 192) ) @@ -16052,35 +14370,34 @@ (if (i32.eq (i32.load - (tee_local $0 + (tee_local $2 (i32.add - (get_local $8) + (get_local $12) (i32.const 16) ) ) ) - (get_local $4) + (get_local $0) ) (i32.store - (get_local $0) - (get_local $5) + (get_local $2) + (get_local $7) ) (i32.store offset=20 - (get_local $8) - (get_local $5) + (get_local $12) + (get_local $7) ) ) (if - (i32.eq - (get_local $5) - (i32.const 0) + (i32.eqz + (get_local $7) ) (block - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) (br $do-once$0) ) @@ -16089,8 +14406,8 @@ ) (if (i32.lt_u - (get_local $5) - (tee_local $0 + (get_local $7) + (tee_local $2 (i32.load (i32.const 192) ) @@ -16099,61 +14416,47 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $5) - (get_local $8) + (get_local $7) + (get_local $12) ) (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $2 - (i32.add - (get_local $4) - (i32.const 16) - ) + (tee_local $5 + (i32.load + (tee_local $8 + (i32.add + (get_local $0) + (i32.const 16) ) ) ) - (i32.const 0) ) (if (i32.lt_u - (get_local $1) - (get_local $0) + (get_local $5) + (get_local $2) ) (call_import $_abort) (block (i32.store offset=16 + (get_local $7) (get_local $5) - (get_local $1) ) (i32.store offset=24 - (get_local $1) (get_local $5) + (get_local $7) ) ) ) ) (if - (i32.eq - (tee_local $0 - (i32.load offset=4 - (get_local $2) - ) - ) - (i32.const 0) - ) - (block - (set_local $3 - (get_local $4) - ) - (set_local $10 - (get_local $12) + (tee_local $2 + (i32.load offset=4 + (get_local $8) ) ) (if (i32.lt_u - (get_local $0) + (get_local $2) (i32.load (i32.const 192) ) @@ -16161,50 +14464,58 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $5) - (get_local $0) + (get_local $7) + (get_local $2) ) (i32.store offset=24 - (get_local $0) - (get_local $5) + (get_local $2) + (get_local $7) ) - (set_local $3 - (get_local $4) + (set_local $4 + (get_local $0) ) - (set_local $10 - (get_local $12) + (set_local $1 + (get_local $3) ) ) ) + (block + (set_local $4 + (get_local $0) + ) + (set_local $1 + (get_local $3) + ) + ) + ) + ) + (block + (set_local $4 + (get_local $0) + ) + (set_local $1 + (get_local $3) ) ) - ) - ) - (block - (set_local $3 - (get_local $2) - ) - (set_local $10 - (get_local $7) ) ) ) ) (if (i32.ge_u - (get_local $3) - (get_local $9) + (get_local $4) + (get_local $6) ) (call_import $_abort) ) (if - (i32.eq + (i32.eqz (i32.and (tee_local $0 (i32.load - (tee_local $1 + (tee_local $3 (i32.add - (get_local $9) + (get_local $6) (i32.const 4) ) ) @@ -16212,22 +14523,41 @@ ) (i32.const 1) ) - (i32.const 0) ) (call_import $_abort) ) (if - (i32.eq - (i32.and - (get_local $0) - (i32.const 2) + (i32.and + (get_local $0) + (i32.const 2) + ) + (block + (i32.store + (get_local $3) + (i32.and + (get_local $0) + (i32.const -2) + ) + ) + (i32.store offset=4 + (get_local $4) + (i32.or + (get_local $1) + (i32.const 1) + ) + ) + (i32.store + (i32.add + (get_local $4) + (get_local $1) + ) + (get_local $1) ) - (i32.const 0) ) (block (if (i32.eq - (get_local $9) + (get_local $6) (i32.load (i32.const 200) ) @@ -16240,16 +14570,16 @@ (i32.load (i32.const 188) ) - (get_local $10) + (get_local $1) ) ) ) (i32.store (i32.const 200) - (get_local $3) + (get_local $4) ) (i32.store offset=4 - (get_local $3) + (get_local $4) (i32.or (get_local $0) (i32.const 1) @@ -16257,7 +14587,7 @@ ) (if (i32.ne - (get_local $3) + (get_local $4) (i32.load (i32.const 196) ) @@ -16277,7 +14607,7 @@ ) (if (i32.eq - (get_local $9) + (get_local $6) (i32.load (i32.const 196) ) @@ -16290,16 +14620,16 @@ (i32.load (i32.const 184) ) - (get_local $10) + (get_local $1) ) ) ) (i32.store (i32.const 196) - (get_local $3) + (get_local $4) ) (i32.store offset=4 - (get_local $3) + (get_local $4) (i32.or (get_local $0) (i32.const 1) @@ -16307,7 +14637,7 @@ ) (i32.store (i32.add - (get_local $3) + (get_local $4) (get_local $0) ) (get_local $0) @@ -16315,16 +14645,16 @@ (return) ) ) - (set_local $5 + (set_local $2 (i32.add (i32.and (get_local $0) (i32.const -8) ) - (get_local $10) + (get_local $1) ) ) - (set_local $8 + (set_local $5 (i32.shr_u (get_local $0) (i32.const 3) @@ -16337,24 +14667,24 @@ (i32.const 256) ) (block - (set_local $1 + (set_local $3 (i32.load offset=12 - (get_local $9) + (get_local $6) ) ) (if (i32.ne - (tee_local $0 + (tee_local $1 (i32.load offset=8 - (get_local $9) + (get_local $6) ) ) - (tee_local $2 + (tee_local $0 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $8) + (get_local $5) (i32.const 1) ) (i32.const 2) @@ -16365,7 +14695,7 @@ (block (if (i32.lt_u - (get_local $0) + (get_local $1) (i32.load (i32.const 192) ) @@ -16375,9 +14705,9 @@ (if (i32.ne (i32.load offset=12 - (get_local $0) + (get_local $1) ) - (get_local $9) + (get_local $6) ) (call_import $_abort) ) @@ -16385,8 +14715,8 @@ ) (if (i32.eq + (get_local $3) (get_local $1) - (get_local $0) ) (block (i32.store @@ -16398,7 +14728,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $8) + (get_local $5) ) (i32.const -1) ) @@ -16409,19 +14739,19 @@ ) (if (i32.eq - (get_local $1) - (get_local $2) + (get_local $3) + (get_local $0) ) - (set_local $16 + (set_local $14 (i32.add - (get_local $1) + (get_local $3) (i32.const 8) ) ) (block (if (i32.lt_u - (get_local $1) + (get_local $3) (i32.load (i32.const 192) ) @@ -16431,57 +14761,57 @@ (if (i32.eq (i32.load - (tee_local $2 + (tee_local $0 (i32.add - (get_local $1) + (get_local $3) (i32.const 8) ) ) ) - (get_local $9) + (get_local $6) ) - (set_local $16 - (get_local $2) + (set_local $14 + (get_local $0) ) (call_import $_abort) ) ) ) (i32.store offset=12 - (get_local $0) (get_local $1) + (get_local $3) ) (i32.store - (get_local $16) - (get_local $0) + (get_local $14) + (get_local $1) ) ) (block - (set_local $0 + (set_local $7 (i32.load offset=24 - (get_local $9) + (get_local $6) ) ) (block $do-once$10 (if (i32.eq - (tee_local $1 + (tee_local $0 (i32.load offset=12 - (get_local $9) + (get_local $6) ) ) - (get_local $9) + (get_local $6) ) (block (if - (i32.eq - (tee_local $1 + (i32.eqz + (tee_local $0 (i32.load - (tee_local $8 + (tee_local $1 (i32.add - (tee_local $7 + (tee_local $3 (i32.add - (get_local $9) + (get_local $6) (i32.const 16) ) ) @@ -16490,92 +14820,71 @@ ) ) ) - (i32.const 0) ) (if - (i32.eq - (tee_local $1 - (i32.load - (get_local $7) - ) + (tee_local $0 + (i32.load + (get_local $3) ) - (i32.const 0) + ) + (set_local $1 + (get_local $3) ) (block - (set_local $11 + (set_local $9 (i32.const 0) ) (br $do-once$10) ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $8 - (get_local $7) - ) - ) - ) - (set_local $2 - (get_local $1) ) ) (loop $while-in$13 - (block $while-out$12 - (if - (i32.ne - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add - (get_local $2) - (i32.const 20) - ) - ) + (if + (tee_local $3 + (i32.load + (tee_local $5 + (i32.add + (get_local $0) + (i32.const 20) ) ) - (i32.const 0) ) - (block - (set_local $2 - (get_local $1) - ) - (set_local $8 - (get_local $7) - ) - (br $while-in$13) + ) + (block + (set_local $0 + (get_local $3) + ) + (set_local $1 + (get_local $5) ) + (br $while-in$13) ) - (if - (i32.eq - (tee_local $1 - (i32.load - (tee_local $7 - (i32.add - (get_local $2) - (i32.const 16) - ) - ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $5 + (i32.add + (get_local $0) + (i32.const 16) ) ) - (i32.const 0) ) - (br $while-out$12) - (block - (set_local $2 - (get_local $1) - ) - (set_local $8 - (get_local $7) - ) + ) + (block + (set_local $0 + (get_local $3) + ) + (set_local $1 + (get_local $5) ) + (br $while-in$13) ) - (br $while-in$13) ) ) (if (i32.lt_u - (get_local $8) + (get_local $1) (i32.load (i32.const 192) ) @@ -16583,11 +14892,11 @@ (call_import $_abort) (block (i32.store - (get_local $8) + (get_local $1) (i32.const 0) ) - (set_local $11 - (get_local $2) + (set_local $9 + (get_local $0) ) ) ) @@ -16595,9 +14904,9 @@ (block (if (i32.lt_u - (tee_local $2 + (tee_local $1 (i32.load offset=8 - (get_local $9) + (get_local $6) ) ) (i32.load @@ -16609,41 +14918,41 @@ (if (i32.ne (i32.load - (tee_local $8 + (tee_local $3 (i32.add - (get_local $2) + (get_local $1) (i32.const 12) ) ) ) - (get_local $9) + (get_local $6) ) (call_import $_abort) ) (if (i32.eq (i32.load - (tee_local $7 + (tee_local $5 (i32.add - (get_local $1) + (get_local $0) (i32.const 8) ) ) ) - (get_local $9) + (get_local $6) ) (block (i32.store - (get_local $8) - (get_local $1) + (get_local $3) + (get_local $0) ) (i32.store - (get_local $7) - (get_local $2) - ) - (set_local $11 + (get_local $5) (get_local $1) ) + (set_local $9 + (get_local $0) + ) ) (call_import $_abort) ) @@ -16651,22 +14960,19 @@ ) ) (if - (i32.ne - (get_local $0) - (i32.const 0) - ) + (get_local $7) (block (if (i32.eq - (get_local $9) + (get_local $6) (i32.load - (tee_local $2 + (tee_local $1 (i32.add (i32.const 480) (i32.shl - (tee_local $1 + (tee_local $0 (i32.load offset=28 - (get_local $9) + (get_local $6) ) ) (i32.const 2) @@ -16677,13 +14983,12 @@ ) (block (i32.store - (get_local $2) - (get_local $11) + (get_local $1) + (get_local $9) ) (if - (i32.eq - (get_local $11) - (i32.const 0) + (i32.eqz + (get_local $9) ) (block (i32.store @@ -16695,7 +15000,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $1) + (get_local $0) ) (i32.const -1) ) @@ -16708,7 +15013,7 @@ (block (if (i32.lt_u - (get_local $0) + (get_local $7) (i32.load (i32.const 192) ) @@ -16718,36 +15023,35 @@ (if (i32.eq (i32.load - (tee_local $1 + (tee_local $0 (i32.add - (get_local $0) + (get_local $7) (i32.const 16) ) ) ) - (get_local $9) + (get_local $6) ) (i32.store - (get_local $1) - (get_local $11) + (get_local $0) + (get_local $9) ) (i32.store offset=20 - (get_local $0) - (get_local $11) + (get_local $7) + (get_local $9) ) ) (br_if $do-once$8 - (i32.eq - (get_local $11) - (i32.const 0) + (i32.eqz + (get_local $9) ) ) ) ) (if (i32.lt_u - (get_local $11) - (tee_local $1 + (get_local $9) + (tee_local $0 (i32.load (i32.const 192) ) @@ -16756,49 +15060,43 @@ (call_import $_abort) ) (i32.store offset=24 - (get_local $11) - (get_local $0) + (get_local $9) + (get_local $7) ) (if - (i32.ne - (tee_local $0 - (i32.load - (tee_local $2 - (i32.add - (get_local $9) - (i32.const 16) - ) + (tee_local $1 + (i32.load + (tee_local $3 + (i32.add + (get_local $6) + (i32.const 16) ) ) ) - (i32.const 0) ) (if (i32.lt_u - (get_local $0) (get_local $1) + (get_local $0) ) (call_import $_abort) (block (i32.store offset=16 - (get_local $11) - (get_local $0) + (get_local $9) + (get_local $1) ) (i32.store offset=24 - (get_local $0) - (get_local $11) + (get_local $1) + (get_local $9) ) ) ) ) (if - (i32.ne - (tee_local $0 - (i32.load offset=4 - (get_local $2) - ) + (tee_local $0 + (i32.load offset=4 + (get_local $3) ) - (i32.const 0) ) (if (i32.lt_u @@ -16810,12 +15108,12 @@ (call_import $_abort) (block (i32.store offset=20 - (get_local $11) + (get_local $9) (get_local $0) ) (i32.store offset=24 (get_local $0) - (get_local $11) + (get_local $9) ) ) ) @@ -16826,22 +15124,22 @@ ) ) (i32.store offset=4 - (get_local $3) + (get_local $4) (i32.or - (get_local $5) + (get_local $2) (i32.const 1) ) ) (i32.store (i32.add - (get_local $3) - (get_local $5) + (get_local $4) + (get_local $2) ) - (get_local $5) + (get_local $2) ) (if (i32.eq - (get_local $3) + (get_local $4) (i32.load (i32.const 196) ) @@ -16849,57 +15147,34 @@ (block (i32.store (i32.const 184) - (get_local $5) + (get_local $2) ) (return) ) - ) - ) - (block - (i32.store - (get_local $1) - (i32.and - (get_local $0) - (i32.const -2) - ) - ) - (i32.store offset=4 - (get_local $3) - (i32.or - (get_local $10) - (i32.const 1) - ) - ) - (i32.store - (i32.add - (get_local $3) - (get_local $10) + (set_local $1 + (get_local $2) ) - (get_local $10) - ) - (set_local $5 - (get_local $10) ) ) ) - (set_local $1 + (set_local $2 (i32.shr_u - (get_local $5) + (get_local $1) (i32.const 3) ) ) (if (i32.lt_u - (get_local $5) + (get_local $1) (i32.const 256) ) (block - (set_local $2 + (set_local $3 (i32.add (i32.const 216) (i32.shl (i32.shl - (get_local $1) + (get_local $2) (i32.const 1) ) (i32.const 2) @@ -16907,39 +15182,18 @@ ) ) (if - (i32.eq - (i32.and - (tee_local $0 - (i32.load - (i32.const 176) - ) - ) - (tee_local $1 - (i32.shl - (i32.const 1) - (get_local $1) - ) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 176) - (i32.or - (get_local $0) - (get_local $1) + (i32.and + (tee_local $0 + (i32.load + (i32.const 176) ) ) - (set_local $6 - (i32.add + (tee_local $1 + (i32.shl + (i32.const 1) (get_local $2) - (i32.const 8) ) ) - (set_local $14 - (get_local $2) - ) ) (if (i32.lt_u @@ -16947,7 +15201,7 @@ (i32.load (tee_local $0 (i32.add - (get_local $2) + (get_local $3) (i32.const 8) ) ) @@ -16959,141 +15213,151 @@ ) (call_import $_abort) (block - (set_local $6 + (set_local $15 (get_local $0) ) - (set_local $14 + (set_local $13 + (get_local $1) + ) + ) + ) + (block + (i32.store + (i32.const 176) + (i32.or + (get_local $0) (get_local $1) ) ) + (set_local $15 + (i32.add + (get_local $3) + (i32.const 8) + ) + ) + (set_local $13 + (get_local $3) + ) ) ) (i32.store - (get_local $6) - (get_local $3) + (get_local $15) + (get_local $4) ) (i32.store offset=12 - (get_local $14) - (get_local $3) + (get_local $13) + (get_local $4) ) (i32.store offset=8 - (get_local $3) - (get_local $14) + (get_local $4) + (get_local $13) ) (i32.store offset=12 + (get_local $4) (get_local $3) - (get_local $2) ) (return) ) ) - (set_local $1 + (set_local $5 (i32.add (i32.const 480) (i32.shl - (tee_local $6 + (tee_local $3 (if - (i32.eq - (tee_local $0 - (i32.shr_u - (get_local $5) - (i32.const 8) - ) + (tee_local $0 + (i32.shr_u + (get_local $1) + (i32.const 8) ) - (i32.const 0) ) - (i32.const 0) (if (i32.gt_u - (get_local $5) + (get_local $1) (i32.const 16777215) ) (i32.const 31) - (block - (set_local $6 - (i32.shl - (tee_local $0 - (i32.add - (i32.sub - (i32.const 14) - (i32.or + (i32.or + (i32.and + (i32.shr_u + (get_local $1) + (i32.add + (tee_local $0 + (i32.add + (i32.sub + (i32.const 14) (i32.or - (tee_local $6 - (i32.and - (i32.shr_u - (i32.add - (tee_local $1 - (i32.shl - (get_local $0) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (get_local $0) - (i32.const 1048320) + (i32.or + (tee_local $3 + (i32.and + (i32.shr_u + (i32.add + (tee_local $2 + (i32.shl + (get_local $0) + (tee_local $0 + (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 $0) ) - (get_local $0) - ) - (tee_local $0 - (i32.and - (i32.shr_u - (i32.add - (tee_local $6 - (i32.shl - (get_local $1) - (get_local $6) + (tee_local $0 + (i32.and + (i32.shr_u + (i32.add + (tee_local $3 + (i32.shl + (get_local $2) + (get_local $3) + ) ) + (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 $6) - (get_local $0) + (i32.shr_u + (i32.shl + (get_local $3) + (get_local $0) + ) + (i32.const 15) ) - (i32.const 15) ) ) + (i32.const 7) ) - (i32.const 1) ) + (i32.const 1) ) - (i32.or - (i32.and - (i32.shr_u - (get_local $5) - (i32.add - (get_local $0) - (i32.const 7) - ) - ) - (i32.const 1) - ) - (get_local $6) + (i32.shl + (get_local $0) + (i32.const 1) ) ) ) + (i32.const 0) ) ) (i32.const 2) @@ -17101,19 +15365,19 @@ ) ) (i32.store offset=28 + (get_local $4) (get_local $3) - (get_local $6) ) (i32.store offset=20 - (get_local $3) + (get_local $4) (i32.const 0) ) (i32.store offset=16 - (get_local $3) + (get_local $4) (i32.const 0) ) - (if - (i32.eq + (block $do-once$16 + (if (i32.and (tee_local $0 (i32.load @@ -17123,217 +15387,163 @@ (tee_local $2 (i32.shl (i32.const 1) - (get_local $6) - ) - ) - ) - (i32.const 0) - ) - (block - (i32.store - (i32.const 180) - (i32.or - (get_local $0) - (get_local $2) - ) - ) - (i32.store - (get_local $1) - (get_local $3) - ) - (i32.store offset=24 - (get_local $3) - (get_local $1) - ) - (i32.store offset=12 - (get_local $3) - (get_local $3) - ) - (i32.store offset=8 - (get_local $3) - (get_local $3) - ) - ) - (block - (set_local $6 - (i32.shl - (get_local $5) - (select - (i32.const 0) - (i32.sub - (i32.const 25) - (i32.shr_u - (get_local $6) - (i32.const 1) - ) - ) - (i32.eq - (get_local $6) - (i32.const 31) - ) + (get_local $3) ) ) ) - (set_local $1 - (i32.load - (get_local $1) - ) - ) - (loop $while-in$19 - (block $while-out$18 - (if - (i32.eq - (i32.and - (i32.load offset=4 - (get_local $1) + (block + (set_local $2 + (i32.shl + (get_local $1) + (select + (i32.const 0) + (i32.sub + (i32.const 25) + (i32.shr_u + (get_local $3) + (i32.const 1) ) - (i32.const -8) - ) - (get_local $5) - ) - (block - (set_local $15 - (get_local $1) ) - (set_local $0 - (i32.const 130) + (i32.eq + (get_local $3) + (i32.const 31) ) - (br $while-out$18) ) ) - (set_local $2 - (i32.shl - (get_local $6) - (i32.const 1) - ) + ) + (set_local $0 + (i32.load + (get_local $5) ) - (if - (i32.eq - (tee_local $0 - (i32.load - (tee_local $6 - (i32.add - (i32.add - (get_local $1) - (i32.const 16) + ) + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (block $jumpthreading$inner$0 + (loop $while-in$19 + (br_if $jumpthreading$inner$1 + (i32.eq + (i32.and + (i32.load offset=4 + (get_local $0) ) - (i32.shl - (i32.shr_u - (get_local $6) - (i32.const 31) + (i32.const -8) + ) + (get_local $1) + ) + ) + (set_local $5 + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (br_if $jumpthreading$inner$0 + (i32.eqz + (tee_local $3 + (i32.load + (tee_local $2 + (i32.add + (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 $5) + ) + (set_local $0 + (get_local $3) + ) + (br $while-in$19) + ) ) - (i32.const 0) - ) - (block - (set_local $18 - (get_local $1) - ) - (set_local $17 - (get_local $6) - ) - (set_local $0 - (i32.const 127) - ) - (br $while-out$18) ) - (block - (set_local $6 + (if + (i32.lt_u (get_local $2) + (i32.load + (i32.const 192) + ) ) - (set_local $1 - (get_local $0) + (call_import $_abort) + (block + (i32.store + (get_local $2) + (get_local $4) + ) + (i32.store offset=24 + (get_local $4) + (get_local $0) + ) + (i32.store offset=12 + (get_local $4) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + (br $do-once$16) ) ) - ) - (br $while-in$19) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 127) - ) - (if - (i32.lt_u - (get_local $17) - (i32.load - (i32.const 192) - ) - ) - (call_import $_abort) - (block - (i32.store - (get_local $17) - (get_local $3) - ) - (i32.store offset=24 - (get_local $3) - (get_local $18) - ) - (i32.store offset=12 - (get_local $3) - (get_local $3) - ) - (i32.store offset=8 - (get_local $3) - (get_local $3) - ) - ) - ) - (if - (i32.eq - (get_local $0) - (i32.const 130) + (br $jumpthreading$outer$1) ) (if (i32.and (i32.ge_u - (tee_local $0 + (tee_local $1 (i32.load - (tee_local $1 + (tee_local $2 (i32.add - (get_local $15) + (get_local $0) (i32.const 8) ) ) ) ) - (tee_local $6 + (tee_local $3 (i32.load (i32.const 192) ) ) ) (i32.ge_u - (get_local $15) - (get_local $6) + (get_local $0) + (get_local $3) ) ) (block (i32.store offset=12 - (get_local $0) - (get_local $3) + (get_local $1) + (get_local $4) ) (i32.store - (get_local $1) - (get_local $3) + (get_local $2) + (get_local $4) ) (i32.store offset=8 - (get_local $3) - (get_local $0) + (get_local $4) + (get_local $1) ) (i32.store offset=12 - (get_local $3) - (get_local $15) + (get_local $4) + (get_local $0) ) (i32.store offset=24 - (get_local $3) + (get_local $4) (i32.const 0) ) ) @@ -17341,6 +15551,31 @@ ) ) ) + (block + (i32.store + (i32.const 180) + (i32.or + (get_local $0) + (get_local $2) + ) + ) + (i32.store + (get_local $5) + (get_local $4) + ) + (i32.store offset=24 + (get_local $4) + (get_local $5) + ) + (i32.store offset=12 + (get_local $4) + (get_local $4) + ) + (i32.store offset=8 + (get_local $4) + (get_local $4) + ) + ) ) ) (i32.store @@ -17355,37 +15590,25 @@ ) ) (if - (i32.eq - (get_local $0) - (i32.const 0) - ) - (set_local $6 + (get_local $0) + (return) + (set_local $0 (i32.const 632) ) - (return) ) (loop $while-in$21 - (block $while-out$20 - (set_local $0 - (i32.eq - (tee_local $6 - (i32.load - (get_local $6) - ) + (set_local $0 + (i32.add + (tee_local $1 + (i32.load + (get_local $0) ) - (i32.const 0) - ) - ) - (set_local $6 - (i32.add - (get_local $6) - (i32.const 8) ) + (i32.const 8) ) - (br_if $while-out$20 - (get_local $0) - ) - (br $while-in$21) + ) + (br_if $while-in$21 + (get_local $1) ) ) (i32.store @@ -17501,70 +15724,70 @@ ) ) (loop $while-in$1 - (block $while-out$0 - (br_if $while-out$0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $3) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (br $while-in$1) ) - (br $while-in$1) ) ) ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.ge_s - (get_local $0) - (get_local $6) - ) - ) - (i32.store + (if + (i32.lt_s (get_local $0) - (get_local $5) + (get_local $6) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.ge_s - (get_local $0) - (get_local $4) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $4) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (i32.sub @@ -17719,9 +15942,8 @@ ) ) (if - (i32.eq + (i32.eqz (get_local $2) - (i32.const 0) ) (return (get_local $3) @@ -17755,75 +15977,75 @@ ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.lt_s - (get_local $2) - (i32.const 4) - ) - ) - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) + (if + (i32.ge_s + (get_local $2) + (i32.const 4) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (i32.load + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 4) + ) ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.le_s - (get_local $2) - (i32.const 0) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_s - (get_local $1) - ) + (if + (i32.gt_s + (get_local $2) + (i32.const 0) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (i32.load8_s + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (get_local $3) @@ -17975,140 +16197,147 @@ ) (func $___divdi3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - (call $_i64Subtract - (i32.xor - (call $___udivmoddi4 - (call $_i64Subtract - (i32.xor - (tee_local $4 - (i32.or - (i32.shr_s + (local $5 i32) + (local $6 i32) + (set_local $6 + (call $_i64Subtract + (i32.xor + (tee_local $4 + (i32.or + (i32.shr_s + (get_local $1) + (i32.const 31) + ) + (i32.shl + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s (get_local $1) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - ) - (i32.const 1) + (i32.const 0) ) ) + (i32.const 1) ) - (get_local $0) ) - (i32.xor - (tee_local $0 - (i32.or - (i32.shr_s - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - ) - (i32.const 31) + ) + (get_local $0) + ) + (i32.xor + (tee_local $0 + (i32.or + (i32.shr_s + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $1) + (i32.const 0) ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $1) - (i32.const 0) - ) - ) - (i32.const 1) + ) + (i32.const 31) + ) + (i32.shl + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $1) + (i32.const 0) ) ) + (i32.const 1) ) - (get_local $1) ) - (get_local $4) - (get_local $0) ) + (get_local $1) + ) + (get_local $4) + (get_local $0) + ) + ) + (set_local $5 + (i32.xor + (tee_local $1 + (i32.or + (i32.shr_s + (get_local $3) + (i32.const 31) + ) + (i32.shl + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $3) + (i32.const 0) + ) + ) + (i32.const 1) + ) + ) + ) + (get_local $4) + ) + ) + (set_local $0 + (i32.xor + (tee_local $4 + (i32.or + (i32.shr_s + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $3) + (i32.const 0) + ) + ) + (i32.const 31) + ) + (i32.shl + (select + (i32.const -1) + (i32.const 0) + (i32.lt_s + (get_local $3) + (i32.const 0) + ) + ) + (i32.const 1) + ) + ) + ) + (get_local $0) + ) + ) + (call $_i64Subtract + (i32.xor + (call $___udivmoddi4 + (get_local $6) (get_global $tempRet0) (call $_i64Subtract (i32.xor - (tee_local $1 - (i32.or - (i32.shr_s - (get_local $3) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - ) + (get_local $1) (get_local $2) ) (i32.xor - (tee_local $2 - (i32.or - (i32.shr_s - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $3) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - ) + (get_local $4) (get_local $3) ) (get_local $1) - (get_local $2) + (get_local $4) ) (get_global $tempRet0) (i32.const 0) ) - (tee_local $1 - (i32.xor - (get_local $1) - (get_local $4) - ) - ) + (get_local $5) ) (i32.xor (get_global $tempRet0) - (tee_local $0 - (i32.xor - (get_local $2) - (get_local $0) - ) - ) + (get_local $0) ) - (get_local $1) + (get_local $5) (get_local $0) ) ) @@ -18262,15 +16491,9 @@ (get_local $5) ) ) - (set_local $1 - (get_global $tempRet0) - ) (set_global $STACKTOP (get_local $6) ) - (set_global $tempRet0 - (get_local $1) - ) (get_local $0) ) (func $___muldi3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) @@ -18355,962 +16578,61 @@ (get_local $0) ) ) - (func $___udivmoddi4 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - (local $14 i32) - (set_local $8 - (get_local $0) - ) - (set_local $5 - (get_local $2) - ) - (set_local $7 - (tee_local $14 - (get_local $3) - ) - ) - (if - (i32.eq - (tee_local $6 - (tee_local $9 - (get_local $1) - ) - ) - (i32.const 0) - ) - (block - (set_local $2 - (i32.ne - (get_local $4) - (i32.const 0) - ) + (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32) + (local $x64 i64) + (local $y64 i64) + (set_local $x64 + (i64.or + (i64.extend_u/i32 + (get_local $xl) ) - (if - (i32.eq - (get_local $7) - (i32.const 0) - ) - (block - (if - (get_local $2) - (block - (i32.store - (get_local $4) - (i32.rem_u - (get_local $8) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.div_u - (get_local $8) - (get_local $5) - ) - ) - ) - (block - (if - (i32.eqz - (get_local $2) - ) - (block - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (i32.store - (get_local $4) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) + (i64.shl + (i64.extend_u/i32 + (get_local $xh) ) + (i64.const 32) ) ) ) - (set_local $10 - (i32.eq - (get_local $7) - (i32.const 0) - ) - ) - (block $do-once$0 - (if - (i32.eq - (get_local $5) - (i32.const 0) + (set_local $y64 + (i64.or + (i64.extend_u/i32 + (get_local $yl) ) - (block - (if - (get_local $10) - (block - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.rem_u - (get_local $6) - (get_local $5) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.div_u - (get_local $6) - (get_local $5) - ) - ) - ) - ) - (if - (i32.eq - (get_local $8) - (i32.const 0) - ) - (block - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.const 0) - ) - (i32.store offset=4 - (get_local $4) - (i32.rem_u - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.div_u - (get_local $6) - (get_local $7) - ) - ) - ) - ) - (if - (i32.eq - (i32.and - (tee_local $5 - (i32.sub - (get_local $7) - (i32.const 1) - ) - ) - (get_local $7) - ) - (i32.const 0) - ) - (block - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (i32.and - (get_local $5) - (get_local $6) - ) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.shr_u - (get_local $6) - (i32.ctz - (get_local $7) - ) - ) - ) - ) - ) - (if - (i32.le_u - (tee_local $5 - (i32.sub - (i32.clz - (get_local $7) - ) - (i32.clz - (get_local $6) - ) - ) - ) - (i32.const 30) - ) - (block - (set_local $12 - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - (set_local $11 - (i32.or - (i32.shl - (get_local $6) - (tee_local $1 - (i32.sub - (i32.const 31) - (get_local $5) - ) - ) - ) - (i32.shr_u - (get_local $8) - (get_local $0) - ) - ) - ) - (set_local $13 - (i32.shr_u - (get_local $6) - (get_local $0) - ) - ) - (set_local $10 - (i32.const 0) - ) - (set_local $0 - (i32.shl - (get_local $8) - (get_local $1) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (block - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $9) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) + (i64.shl + (i64.extend_u/i32 + (get_local $yh) ) - ) - (block - (if - (i32.eqz - (get_local $10) - ) - (block - (if - (i32.le_u - (tee_local $5 - (i32.sub - (i32.clz - (get_local $7) - ) - (i32.clz - (get_local $6) - ) - ) - ) - (i32.const 31) - ) - (block - (set_local $12 - (tee_local $0 - (i32.add - (get_local $5) - (i32.const 1) - ) - ) - ) - (set_local $11 - (i32.or - (i32.and - (i32.shr_u - (get_local $8) - (get_local $0) - ) - (tee_local $9 - (i32.shr_s - (i32.sub - (get_local $5) - (i32.const 31) - ) - (i32.const 31) - ) - ) - ) - (i32.shl - (get_local $6) - (tee_local $1 - (i32.sub - (i32.const 31) - (get_local $5) - ) - ) - ) - ) - ) - (set_local $13 - (i32.and - (i32.shr_u - (get_local $6) - (get_local $0) - ) - (get_local $9) - ) - ) - (set_local $10 - (i32.const 0) - ) - (set_local $0 - (i32.shl - (get_local $8) - (get_local $1) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $4) - (i32.const 0) - ) - (block - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.or - (get_local $9) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - (set_global $tempRet0 - (i32.const 0) - ) - (return - (i32.const 0) - ) - ) - ) - (if - (i32.ne - (i32.and - (tee_local $7 - (i32.sub - (get_local $5) - (i32.const 1) - ) - ) - (get_local $5) - ) - (i32.const 0) - ) - (block - (set_local $1 - (i32.sub - (i32.const 64) - (tee_local $0 - (i32.sub - (i32.add - (i32.clz - (get_local $5) - ) - (i32.const 33) - ) - (i32.clz - (get_local $6) - ) - ) - ) - ) - ) - (set_local $5 - (i32.shr_s - (tee_local $9 - (i32.sub - (i32.const 32) - (get_local $0) - ) - ) - (i32.const 31) - ) - ) - (set_local $10 - (i32.shr_s - (tee_local $7 - (i32.sub - (get_local $0) - (i32.const 32) - ) - ) - (i32.const 31) - ) - ) - (set_local $12 - (get_local $0) - ) - (set_local $11 - (i32.or - (i32.and - (i32.shr_s - (i32.sub - (get_local $9) - (i32.const 1) - ) - (i32.const 31) - ) - (i32.shr_u - (get_local $6) - (get_local $7) - ) - ) - (i32.and - (i32.or - (i32.shl - (get_local $6) - (get_local $9) - ) - (i32.shr_u - (get_local $8) - (get_local $0) - ) - ) - (get_local $10) - ) - ) - ) - (set_local $13 - (i32.and - (get_local $10) - (i32.shr_u - (get_local $6) - (get_local $0) - ) - ) - ) - (set_local $10 - (i32.and - (i32.shl - (get_local $8) - (get_local $1) - ) - (get_local $5) - ) - ) - (set_local $0 - (i32.or - (i32.and - (i32.or - (i32.shl - (get_local $6) - (get_local $1) - ) - (i32.shr_u - (get_local $8) - (get_local $7) - ) - ) - (get_local $5) - ) - (i32.and - (i32.shl - (get_local $8) - (get_local $9) - ) - (i32.shr_s - (i32.sub - (get_local $0) - (i32.const 33) - ) - (i32.const 31) - ) - ) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.and - (get_local $7) - (get_local $8) - ) - ) - (i32.store offset=4 - (get_local $4) - (i32.const 0) - ) - ) - ) - (if - (i32.eq - (get_local $5) - (i32.const 1) - ) - (block - (set_global $tempRet0 - (i32.or - (get_local $9) - (i32.and - (get_local $1) - (i32.const 0) - ) - ) - ) - (return - (i32.or - (i32.const 0) - (i32.and - (get_local $0) - (i32.const -1) - ) - ) - ) - ) - (block - (set_global $tempRet0 - (i32.or - (i32.const 0) - (i32.shr_u - (get_local $6) - (tee_local $0 - (i32.ctz - (get_local $5) - ) - ) - ) - ) - ) - (return - (i32.or - (i32.shl - (get_local $6) - (i32.sub - (i32.const 32) - (get_local $0) - ) - ) - (i32.shr_u - (get_local $8) - (get_local $0) - ) - ) - ) - ) - ) - ) - ) - ) - (set_local $0 - (if - (i32.eq - (get_local $12) - (i32.const 0) - ) - (block - (set_local $6 - (get_local $0) - ) - (set_local $1 - (i32.const 0) - ) - (i32.const 0) - ) - (block - (set_local $3 - (call $_i64Add - (tee_local $1 - (i32.or - (i32.const 0) - (i32.and - (get_local $2) - (i32.const -1) - ) - ) - ) - (tee_local $2 - (i32.or - (get_local $14) - (i32.and - (get_local $3) - (i32.const 0) - ) - ) - ) - (i32.const -1) - (i32.const -1) - ) - ) - (set_local $8 - (get_global $tempRet0) - ) - (set_local $9 - (get_local $0) - ) - (set_local $0 - (i32.const 0) - ) - (loop $while-in$3 - (block $while-out$2 - (set_local $6 - (i32.or - (i32.shr_u - (get_local $10) - (i32.const 31) - ) - (i32.shl - (get_local $9) - (i32.const 1) - ) - ) - ) - (set_local $10 - (i32.or - (get_local $0) - (i32.shl - (get_local $10) - (i32.const 1) - ) - ) - ) - (drop - (call $_i64Subtract - (get_local $3) - (get_local $8) - (tee_local $0 - (i32.or - (i32.const 0) - (i32.or - (i32.shl - (get_local $11) - (i32.const 1) - ) - (i32.shr_u - (get_local $9) - (i32.const 31) - ) - ) - ) - ) - (tee_local $9 - (i32.or - (i32.shr_u - (get_local $11) - (i32.const 31) - ) - (i32.shl - (get_local $13) - (i32.const 1) - ) - ) - ) - ) - ) - (set_local $7 - (i32.and - (tee_local $14 - (i32.or - (i32.shr_s - (tee_local $5 - (get_global $tempRet0) - ) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - ) - (i32.const 1) - ) - ) - (set_local $11 - (call $_i64Subtract - (get_local $0) - (get_local $9) - (i32.and - (get_local $14) - (get_local $1) - ) - (i32.and - (i32.or - (i32.shr_s - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (i32.const 31) - ) - (i32.shl - (select - (i32.const -1) - (i32.const 0) - (i32.lt_s - (get_local $5) - (i32.const 0) - ) - ) - (i32.const 1) - ) - ) - (get_local $2) - ) - ) - ) - (set_local $13 - (get_global $tempRet0) - ) - (if - (i32.eq - (tee_local $12 - (i32.sub - (get_local $12) - (i32.const 1) - ) - ) - (i32.const 0) - ) - (br $while-out$2) - (block - (set_local $9 - (get_local $6) - ) - (set_local $0 - (get_local $7) - ) - ) - ) - (br $while-in$3) - ) - ) - (set_local $1 - (i32.const 0) - ) - (get_local $7) + (i64.const 32) ) ) ) - (set_local $3 - (i32.or - (get_local $6) - (tee_local $2 - (i32.const 0) + (if + (get_local $r) + (i64.store + (get_local $r) + (i64.rem_u + (get_local $x64) + (get_local $y64) ) ) ) - (if - (i32.ne - (get_local $4) - (i32.const 0) - ) - (block - (i32.store - (get_local $4) - (i32.or - (i32.const 0) - (get_local $11) - ) - ) - (i32.store offset=4 - (get_local $4) - (get_local $13) - ) + (set_local $x64 + (i64.div_u + (get_local $x64) + (get_local $y64) ) ) (set_global $tempRet0 - (i32.or - (i32.or - (i32.or - (i32.shr_u - (i32.or - (i32.const 0) - (get_local $10) - ) - (i32.const 31) - ) - (i32.shl - (get_local $3) - (i32.const 1) - ) - ) - (i32.and - (i32.or - (i32.shl - (get_local $2) - (i32.const 1) - ) - (i32.shr_u - (get_local $10) - (i32.const 31) - ) - ) - (i32.const 0) - ) + (i32.wrap/i64 + (i64.shr_u + (get_local $x64) + (i64.const 32) ) - (get_local $1) ) ) - (i32.or - (i32.and - (i32.or - (i32.shl - (get_local $10) - (i32.const 1) - ) - (i32.const 0) - ) - (i32.const -2) - ) - (get_local $0) + (i32.wrap/i64 + (get_local $x64) ) ) (func $dynCall_ii (param $0 i32) (param $1 i32) (result i32) diff --git a/test/emcc_hello_world.fromasm.imprecise.no-opts b/test/emcc_hello_world.fromasm.imprecise.no-opts index 45f19f21c..d7bbe58e8 100644 --- a/test/emcc_hello_world.fromasm.imprecise.no-opts +++ b/test/emcc_hello_world.fromasm.imprecise.no-opts @@ -6156,10 +6156,12 @@ ) (if (get_local $$tobool$i) - (call $___fwritex - (get_local $$incdec$ptr169275) - (get_local $$sub$ptr$sub) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$incdec$ptr169275) + (get_local $$sub$ptr$sub) + (get_local $$f) + ) ) ) ) @@ -9623,10 +9625,12 @@ ) (if (get_local $$tobool$i$419$i) - (call $___fwritex - (get_local $$prefix$0$add$ptr65$i) - (get_local $$add67$i) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$prefix$0$add$ptr65$i) + (get_local $$add67$i) + (get_local $$f) + ) ) ) (set_local $$xor167$i @@ -9667,10 +9671,12 @@ ) (if (get_local $$tobool$i$425$i) - (call $___fwritex - (get_local $$buf$i) - (get_local $$sub$ptr$sub172$i) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$buf$i) + (get_local $$sub$ptr$sub172$i) + (get_local $$f) + ) ) ) (set_local $$sub$ptr$rhs$cast174$i @@ -9720,10 +9726,12 @@ ) (if (get_local $$tobool$i$431$i) - (call $___fwritex - (get_local $$incdec$ptr115$i) - (get_local $$sub$ptr$sub175$i) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$incdec$ptr115$i) + (get_local $$sub$ptr$sub175$i) + (get_local $$f) + ) ) ) (set_local $$xor186$i @@ -12090,10 +12098,12 @@ ) (if (get_local $$tobool$i$437$i) - (call $___fwritex - (get_local $$prefix$0$i) - (get_local $$pl$0$i) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$prefix$0$i) + (get_local $$pl$0$i) + (get_local $$f) + ) ) ) (set_local $$xor655$i @@ -12650,10 +12660,12 @@ ) (if (get_local $$tobool$i$461$i) - (call $___fwritex - (get_local $$s753$0$i) - (i32.const 1) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$s753$0$i) + (i32.const 1) + (get_local $$f) + ) ) ) (set_local $$cmp777$i @@ -13082,10 +13094,12 @@ ) (if (get_local $$tobool$i$413$i) - (call $___fwritex - (get_local $$s35$0$i) - (i32.const 3) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$s35$0$i) + (i32.const 3) + (get_local $$f) + ) ) ) (set_local $$xor$i @@ -13839,10 +13853,12 @@ ) (if (get_local $$tobool$i$232) - (call $___fwritex - (get_local $$mb) - (get_local $$call411) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$mb) + (get_local $$call411) + (get_local $$f) + ) ) ) (set_local $$cmp404 @@ -14170,10 +14186,12 @@ ) (if (get_local $$tobool$i$245) - (call $___fwritex - (get_local $$prefix$2) - (get_local $$pl$2) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$prefix$2) + (get_local $$pl$2) + (get_local $$f) + ) ) ) (set_local $$xor449 @@ -14215,10 +14233,12 @@ ) (if (get_local $$tobool$i$217) - (call $___fwritex - (get_local $$a$2) - (get_local $$sub$ptr$sub433) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$a$2) + (get_local $$sub$ptr$sub433) + (get_local $$f) + ) ) ) (set_local $$xor457 @@ -31428,1303 +31448,61 @@ ) ) ) - (func $___udivmoddi4 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (param $$rem i32) (result i32) - (local $$n_sroa_0_0_extract_trunc i32) - (local $$n_sroa_1_4_extract_shift$0 i32) - (local $$n_sroa_1_4_extract_trunc i32) - (local $$d_sroa_0_0_extract_trunc i32) - (local $$d_sroa_1_4_extract_shift$0 i32) - (local $$d_sroa_1_4_extract_trunc i32) - (local $$4 i32) - (local $$17 i32) - (local $$37 i32) - (local $$49 i32) - (local $$51 i32) - (local $$57 i32) - (local $$58 i32) - (local $$66 i32) - (local $$78 i32) - (local $$86 i32) - (local $$88 i32) - (local $$89 i32) - (local $$91 i32) - (local $$92 i32) - (local $$95 i32) - (local $$105 i32) - (local $$117 i32) - (local $$119 i32) - (local $$125 i32) - (local $$126 i32) - (local $$130 i32) - (local $$q_sroa_1_1_ph i32) - (local $$q_sroa_0_1_ph i32) - (local $$r_sroa_1_1_ph i32) - (local $$r_sroa_0_1_ph i32) - (local $$sr_1_ph i32) - (local $$d_sroa_0_0_insert_insert99$0 i32) - (local $$d_sroa_0_0_insert_insert99$1 i32) - (local $$137$0 i32) - (local $$137$1 i32) - (local $$carry_0203 i32) - (local $$sr_1202 i32) - (local $$r_sroa_0_1201 i32) - (local $$r_sroa_1_1200 i32) - (local $$q_sroa_0_1199 i32) - (local $$q_sroa_1_1198 i32) - (local $$147 i32) - (local $$149 i32) - (local $$r_sroa_0_0_insert_insert42$0 i32) - (local $$r_sroa_0_0_insert_insert42$1 i32) - (local $$150$1 i32) - (local $$151$0 i32) - (local $$152 i32) - (local $$154$0 i32) - (local $$r_sroa_0_0_extract_trunc i32) - (local $$r_sroa_1_4_extract_trunc i32) - (local $$155 i32) - (local $$carry_0_lcssa$0 i32) - (local $$carry_0_lcssa$1 i32) - (local $$r_sroa_0_1_lcssa i32) - (local $$r_sroa_1_1_lcssa i32) - (local $$q_sroa_0_1_lcssa i32) - (local $$q_sroa_1_1_lcssa i32) - (local $$q_sroa_0_0_insert_ext75$0 i32) - (local $$q_sroa_0_0_insert_ext75$1 i32) - (local $$q_sroa_0_0_insert_insert77$1 i32) - (local $$_0$0 i32) - (local $$_0$1 i32) - (set_local $$n_sroa_0_0_extract_trunc - (get_local $$a$0) - ) - (set_local $$n_sroa_1_4_extract_shift$0 - (get_local $$a$1) - ) - (set_local $$n_sroa_1_4_extract_trunc - (get_local $$n_sroa_1_4_extract_shift$0) - ) - (set_local $$d_sroa_0_0_extract_trunc - (get_local $$b$0) - ) - (set_local $$d_sroa_1_4_extract_shift$0 - (get_local $$b$1) - ) - (set_local $$d_sroa_1_4_extract_trunc - (get_local $$d_sroa_1_4_extract_shift$0) - ) - (if - (i32.eq - (get_local $$n_sroa_1_4_extract_trunc) - (i32.const 0) - ) - (block - (set_local $$4 - (i32.ne - (get_local $$rem) - (i32.const 0) - ) + (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32) + (local $x64 i64) + (local $y64 i64) + (set_local $x64 + (i64.or + (i64.extend_u/i32 + (get_local $xl) ) - (if - (i32.eq - (get_local $$d_sroa_1_4_extract_trunc) - (i32.const 0) - ) - (block - (if - (get_local $$4) - (block - (i32.store - (get_local $$rem) - (i32.rem_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.const 0) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.div_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - (block - (if - (i32.eqz - (get_local $$4) - ) - (block - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (i32.store - (get_local $$rem) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) + (i64.shl + (i64.extend_u/i32 + (get_local $xh) ) + (i64.const 32) ) ) ) - (set_local $$17 - (i32.eq - (get_local $$d_sroa_1_4_extract_trunc) - (i32.const 0) - ) - ) - (block $do-once$0 - (if - (i32.eq - (get_local $$d_sroa_0_0_extract_trunc) - (i32.const 0) + (set_local $y64 + (i64.or + (i64.extend_u/i32 + (get_local $yl) ) - (block - (if - (get_local $$17) - (block - (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.rem_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.const 0) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.div_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $$n_sroa_0_0_extract_trunc) - (i32.const 0) - ) - (block - (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.rem_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.div_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (set_local $$37 - (i32.sub - (get_local $$d_sroa_1_4_extract_trunc) - (i32.const 1) - ) - ) - (if - (i32.eq - (i32.and - (get_local $$37) - (get_local $$d_sroa_1_4_extract_trunc) - ) - (i32.const 0) - ) - (block - (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.or - (i32.const 0) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.or - (i32.and - (get_local $$37) - (get_local $$n_sroa_1_4_extract_trunc) - ) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (i32.ctz - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (set_local $$49 - (i32.clz - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - (set_local $$51 - (i32.sub - (get_local $$49) - (i32.clz - (get_local $$n_sroa_1_4_extract_trunc) - ) - ) - ) - (if - (i32.le_u - (get_local $$51) - (i32.const 30) - ) - (block - (set_local $$57 - (i32.add - (get_local $$51) - (i32.const 1) - ) - ) - (set_local $$58 - (i32.sub - (i32.const 31) - (get_local $$51) - ) - ) - (set_local $$sr_1_ph - (get_local $$57) - ) - (set_local $$r_sroa_0_1_ph - (i32.or - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$58) - ) - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$57) - ) - ) - ) - (set_local $$r_sroa_1_1_ph - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$57) - ) - ) - (set_local $$q_sroa_0_1_ph - (i32.const 0) - ) - (set_local $$q_sroa_1_1_ph - (i32.shl - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$58) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $$rem) - (i32.const 0) - ) - (block - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (i32.store - (get_local $$rem) - (i32.or - (i32.const 0) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.or - (get_local $$n_sroa_1_4_extract_shift$0) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) + (i64.shl + (i64.extend_u/i32 + (get_local $yh) ) + (i64.const 32) ) - (block - (if - (i32.eqz - (get_local $$17) - ) - (block - (set_local $$117 - (i32.clz - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - (set_local $$119 - (i32.sub - (get_local $$117) - (i32.clz - (get_local $$n_sroa_1_4_extract_trunc) - ) - ) - ) - (if - (i32.le_u - (get_local $$119) - (i32.const 31) - ) - (block - (set_local $$125 - (i32.add - (get_local $$119) - (i32.const 1) - ) - ) - (set_local $$126 - (i32.sub - (i32.const 31) - (get_local $$119) - ) - ) - (set_local $$130 - (i32.shr_s - (i32.sub - (get_local $$119) - (i32.const 31) - ) - (i32.const 31) - ) - ) - (set_local $$sr_1_ph - (get_local $$125) - ) - (set_local $$r_sroa_0_1_ph - (i32.or - (i32.and - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$125) - ) - (get_local $$130) - ) - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$126) - ) - ) - ) - (set_local $$r_sroa_1_1_ph - (i32.and - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$125) - ) - (get_local $$130) - ) - ) - (set_local $$q_sroa_0_1_ph - (i32.const 0) - ) - (set_local $$q_sroa_1_1_ph - (i32.shl - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$126) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $$rem) - (i32.const 0) - ) - (block - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (i32.store - (get_local $$rem) - (i32.or - (i32.const 0) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.or - (get_local $$n_sroa_1_4_extract_shift$0) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (set_local $$66 - (i32.sub - (get_local $$d_sroa_0_0_extract_trunc) - (i32.const 1) - ) - ) - (if - (i32.ne - (i32.and - (get_local $$66) - (get_local $$d_sroa_0_0_extract_trunc) - ) - (i32.const 0) - ) - (block - (set_local $$86 - (i32.add - (i32.clz - (get_local $$d_sroa_0_0_extract_trunc) - ) - (i32.const 33) - ) - ) - (set_local $$88 - (i32.sub - (get_local $$86) - (i32.clz - (get_local $$n_sroa_1_4_extract_trunc) - ) - ) - ) - (set_local $$89 - (i32.sub - (i32.const 64) - (get_local $$88) - ) - ) - (set_local $$91 - (i32.sub - (i32.const 32) - (get_local $$88) - ) - ) - (set_local $$92 - (i32.shr_s - (get_local $$91) - (i32.const 31) - ) - ) - (set_local $$95 - (i32.sub - (get_local $$88) - (i32.const 32) - ) - ) - (set_local $$105 - (i32.shr_s - (get_local $$95) - (i32.const 31) - ) - ) - (set_local $$sr_1_ph - (get_local $$88) - ) - (set_local $$r_sroa_0_1_ph - (i32.or - (i32.and - (i32.shr_s - (i32.sub - (get_local $$91) - (i32.const 1) - ) - (i32.const 31) - ) - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$95) - ) - ) - (i32.and - (i32.or - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$91) - ) - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$88) - ) - ) - (get_local $$105) - ) - ) - ) - (set_local $$r_sroa_1_1_ph - (i32.and - (get_local $$105) - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$88) - ) - ) - ) - (set_local $$q_sroa_0_1_ph - (i32.and - (i32.shl - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$89) - ) - (get_local $$92) - ) - ) - (set_local $$q_sroa_1_1_ph - (i32.or - (i32.and - (i32.or - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$89) - ) - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$95) - ) - ) - (get_local $$92) - ) - (i32.and - (i32.shl - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$91) - ) - (i32.shr_s - (i32.sub - (get_local $$88) - (i32.const 33) - ) - (i32.const 31) - ) - ) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.and - (get_local $$66) - (get_local $$n_sroa_0_0_extract_trunc) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.const 0) - ) - ) - ) - (if - (i32.eq - (get_local $$d_sroa_0_0_extract_trunc) - (i32.const 1) - ) - (block - (set_local $$_0$1 - (i32.or - (get_local $$n_sroa_1_4_extract_shift$0) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - ) - (set_local $$_0$0 - (i32.or - (i32.const 0) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - (block - (set_local $$78 - (i32.ctz - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (set_local $$_0$1 - (i32.or - (i32.const 0) - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$78) - ) - ) - ) - (set_local $$_0$0 - (i32.or - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (i32.sub - (i32.const 32) - (get_local $$78) - ) - ) - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$78) - ) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $$sr_1_ph) - (i32.const 0) - ) - (block - (set_local $$q_sroa_1_1_lcssa - (get_local $$q_sroa_1_1_ph) - ) - (set_local $$q_sroa_0_1_lcssa - (get_local $$q_sroa_0_1_ph) - ) - (set_local $$r_sroa_1_1_lcssa - (get_local $$r_sroa_1_1_ph) - ) - (set_local $$r_sroa_0_1_lcssa - (get_local $$r_sroa_0_1_ph) - ) - (set_local $$carry_0_lcssa$1 - (i32.const 0) - ) - (set_local $$carry_0_lcssa$0 - (i32.const 0) - ) - ) - (block - (set_local $$d_sroa_0_0_insert_insert99$0 - (i32.or - (i32.const 0) - (i32.and - (get_local $$b$0) - (i32.const -1) - ) - ) - ) - (set_local $$d_sroa_0_0_insert_insert99$1 - (i32.or - (get_local $$d_sroa_1_4_extract_shift$0) - (i32.and - (get_local $$b$1) - (i32.const 0) - ) - ) - ) - (set_local $$137$0 - (call $_i64Add - (get_local $$d_sroa_0_0_insert_insert99$0) - (get_local $$d_sroa_0_0_insert_insert99$1) - (i32.const -1) - (i32.const -1) - ) - ) - (set_local $$137$1 - (get_global $tempRet0) - ) - (set_local $$q_sroa_1_1198 - (get_local $$q_sroa_1_1_ph) - ) - (set_local $$q_sroa_0_1199 - (get_local $$q_sroa_0_1_ph) - ) - (set_local $$r_sroa_1_1200 - (get_local $$r_sroa_1_1_ph) - ) - (set_local $$r_sroa_0_1201 - (get_local $$r_sroa_0_1_ph) - ) - (set_local $$sr_1202 - (get_local $$sr_1_ph) - ) - (set_local $$carry_0203 - (i32.const 0) - ) - (loop $while-in$3 - (block $while-out$2 - (set_local $$147 - (i32.or - (i32.shr_u - (get_local $$q_sroa_0_1199) - (i32.const 31) - ) - (i32.shl - (get_local $$q_sroa_1_1198) - (i32.const 1) - ) - ) - ) - (set_local $$149 - (i32.or - (get_local $$carry_0203) - (i32.shl - (get_local $$q_sroa_0_1199) - (i32.const 1) - ) - ) - ) - (set_local $$r_sroa_0_0_insert_insert42$0 - (i32.or - (i32.const 0) - (i32.or - (i32.shl - (get_local $$r_sroa_0_1201) - (i32.const 1) - ) - (i32.shr_u - (get_local $$q_sroa_1_1198) - (i32.const 31) - ) - ) - ) - ) - (set_local $$r_sroa_0_0_insert_insert42$1 - (i32.or - (i32.shr_u - (get_local $$r_sroa_0_1201) - (i32.const 31) - ) - (i32.shl - (get_local $$r_sroa_1_1200) - (i32.const 1) - ) - ) - ) - (drop - (call $_i64Subtract - (get_local $$137$0) - (get_local $$137$1) - (get_local $$r_sroa_0_0_insert_insert42$0) - (get_local $$r_sroa_0_0_insert_insert42$1) - ) - ) - (set_local $$150$1 - (get_global $tempRet0) - ) - (set_local $$151$0 - (i32.or - (i32.shr_s - (get_local $$150$1) - (i32.const 31) - ) - (i32.shl - (if - (i32.lt_s - (get_local $$150$1) - (i32.const 0) - ) - (i32.const -1) - (i32.const 0) - ) - (i32.const 1) - ) - ) - ) - (set_local $$152 - (i32.and - (get_local $$151$0) - (i32.const 1) - ) - ) - (set_local $$154$0 - (call $_i64Subtract - (get_local $$r_sroa_0_0_insert_insert42$0) - (get_local $$r_sroa_0_0_insert_insert42$1) - (i32.and - (get_local $$151$0) - (get_local $$d_sroa_0_0_insert_insert99$0) - ) - (i32.and - (i32.or - (i32.shr_s - (if - (i32.lt_s - (get_local $$150$1) - (i32.const 0) - ) - (i32.const -1) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.shl - (if - (i32.lt_s - (get_local $$150$1) - (i32.const 0) - ) - (i32.const -1) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (get_local $$d_sroa_0_0_insert_insert99$1) - ) - ) - ) - (set_local $$r_sroa_0_0_extract_trunc - (get_local $$154$0) - ) - (set_local $$r_sroa_1_4_extract_trunc - (get_global $tempRet0) - ) - (set_local $$155 - (i32.sub - (get_local $$sr_1202) - (i32.const 1) - ) - ) - (if - (i32.eq - (get_local $$155) - (i32.const 0) - ) - (br $while-out$2) - (block - (set_local $$q_sroa_1_1198 - (get_local $$147) - ) - (set_local $$q_sroa_0_1199 - (get_local $$149) - ) - (set_local $$r_sroa_1_1200 - (get_local $$r_sroa_1_4_extract_trunc) - ) - (set_local $$r_sroa_0_1201 - (get_local $$r_sroa_0_0_extract_trunc) - ) - (set_local $$sr_1202 - (get_local $$155) - ) - (set_local $$carry_0203 - (get_local $$152) - ) - ) - ) - (br $while-in$3) - ) - ) - (set_local $$q_sroa_1_1_lcssa - (get_local $$147) - ) - (set_local $$q_sroa_0_1_lcssa - (get_local $$149) - ) - (set_local $$r_sroa_1_1_lcssa - (get_local $$r_sroa_1_4_extract_trunc) - ) - (set_local $$r_sroa_0_1_lcssa - (get_local $$r_sroa_0_0_extract_trunc) - ) - (set_local $$carry_0_lcssa$1 - (i32.const 0) - ) - (set_local $$carry_0_lcssa$0 - (get_local $$152) - ) - ) - ) - (set_local $$q_sroa_0_0_insert_ext75$0 - (get_local $$q_sroa_0_1_lcssa) - ) - (set_local $$q_sroa_0_0_insert_ext75$1 - (i32.const 0) - ) - (set_local $$q_sroa_0_0_insert_insert77$1 - (i32.or - (get_local $$q_sroa_1_1_lcssa) - (get_local $$q_sroa_0_0_insert_ext75$1) ) ) (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.or - (i32.const 0) - (get_local $$r_sroa_0_1_lcssa) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (get_local $$r_sroa_1_1_lcssa) + (get_local $r) + (i64.store + (get_local $r) + (i64.rem_u + (get_local $x64) + (get_local $y64) ) ) ) - (set_local $$_0$1 - (i32.or - (i32.or - (i32.or - (i32.shr_u - (i32.or - (i32.const 0) - (get_local $$q_sroa_0_0_insert_ext75$0) - ) - (i32.const 31) - ) - (i32.shl - (get_local $$q_sroa_0_0_insert_insert77$1) - (i32.const 1) - ) - ) - (i32.and - (i32.or - (i32.shl - (get_local $$q_sroa_0_0_insert_ext75$1) - (i32.const 1) - ) - (i32.shr_u - (get_local $$q_sroa_0_0_insert_ext75$0) - (i32.const 31) - ) - ) - (i32.const 0) - ) - ) - (get_local $$carry_0_lcssa$1) + (set_local $x64 + (i64.div_u + (get_local $x64) + (get_local $y64) ) ) - (set_local $$_0$0 - (i32.or - (i32.and - (i32.or - (i32.shl - (get_local $$q_sroa_0_0_insert_ext75$0) - (i32.const 1) - ) - (i32.shr_u - (i32.const 0) - (i32.const 31) - ) - ) - (i32.const -2) + (set_global $tempRet0 + (i32.wrap/i64 + (i64.shr_u + (get_local $x64) + (i64.const 32) ) - (get_local $$carry_0_lcssa$0) ) ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) + (i32.wrap/i64 + (get_local $x64) ) ) (func $dynCall_ii (param $index i32) (param $a1 i32) (result i32) diff --git a/test/emcc_hello_world.fromasm.no-opts b/test/emcc_hello_world.fromasm.no-opts index ea2bb8801..0231444cc 100644 --- a/test/emcc_hello_world.fromasm.no-opts +++ b/test/emcc_hello_world.fromasm.no-opts @@ -6162,10 +6162,12 @@ ) (if (get_local $$tobool$i) - (call $___fwritex - (get_local $$incdec$ptr169275) - (get_local $$sub$ptr$sub) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$incdec$ptr169275) + (get_local $$sub$ptr$sub) + (get_local $$f) + ) ) ) ) @@ -9629,10 +9631,12 @@ ) (if (get_local $$tobool$i$419$i) - (call $___fwritex - (get_local $$prefix$0$add$ptr65$i) - (get_local $$add67$i) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$prefix$0$add$ptr65$i) + (get_local $$add67$i) + (get_local $$f) + ) ) ) (set_local $$xor167$i @@ -9673,10 +9677,12 @@ ) (if (get_local $$tobool$i$425$i) - (call $___fwritex - (get_local $$buf$i) - (get_local $$sub$ptr$sub172$i) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$buf$i) + (get_local $$sub$ptr$sub172$i) + (get_local $$f) + ) ) ) (set_local $$sub$ptr$rhs$cast174$i @@ -9726,10 +9732,12 @@ ) (if (get_local $$tobool$i$431$i) - (call $___fwritex - (get_local $$incdec$ptr115$i) - (get_local $$sub$ptr$sub175$i) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$incdec$ptr115$i) + (get_local $$sub$ptr$sub175$i) + (get_local $$f) + ) ) ) (set_local $$xor186$i @@ -12096,10 +12104,12 @@ ) (if (get_local $$tobool$i$437$i) - (call $___fwritex - (get_local $$prefix$0$i) - (get_local $$pl$0$i) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$prefix$0$i) + (get_local $$pl$0$i) + (get_local $$f) + ) ) ) (set_local $$xor655$i @@ -12656,10 +12666,12 @@ ) (if (get_local $$tobool$i$461$i) - (call $___fwritex - (get_local $$s753$0$i) - (i32.const 1) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$s753$0$i) + (i32.const 1) + (get_local $$f) + ) ) ) (set_local $$cmp777$i @@ -13088,10 +13100,12 @@ ) (if (get_local $$tobool$i$413$i) - (call $___fwritex - (get_local $$s35$0$i) - (i32.const 3) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$s35$0$i) + (i32.const 3) + (get_local $$f) + ) ) ) (set_local $$xor$i @@ -13845,10 +13859,12 @@ ) (if (get_local $$tobool$i$232) - (call $___fwritex - (get_local $$mb) - (get_local $$call411) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$mb) + (get_local $$call411) + (get_local $$f) + ) ) ) (set_local $$cmp404 @@ -14176,10 +14192,12 @@ ) (if (get_local $$tobool$i$245) - (call $___fwritex - (get_local $$prefix$2) - (get_local $$pl$2) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$prefix$2) + (get_local $$pl$2) + (get_local $$f) + ) ) ) (set_local $$xor449 @@ -14221,10 +14239,12 @@ ) (if (get_local $$tobool$i$217) - (call $___fwritex - (get_local $$a$2) - (get_local $$sub$ptr$sub433) - (get_local $$f) + (drop + (call $___fwritex + (get_local $$a$2) + (get_local $$sub$ptr$sub433) + (get_local $$f) + ) ) ) (set_local $$xor457 @@ -31434,1303 +31454,61 @@ ) ) ) - (func $___udivmoddi4 (param $$a$0 i32) (param $$a$1 i32) (param $$b$0 i32) (param $$b$1 i32) (param $$rem i32) (result i32) - (local $$n_sroa_0_0_extract_trunc i32) - (local $$n_sroa_1_4_extract_shift$0 i32) - (local $$n_sroa_1_4_extract_trunc i32) - (local $$d_sroa_0_0_extract_trunc i32) - (local $$d_sroa_1_4_extract_shift$0 i32) - (local $$d_sroa_1_4_extract_trunc i32) - (local $$4 i32) - (local $$17 i32) - (local $$37 i32) - (local $$49 i32) - (local $$51 i32) - (local $$57 i32) - (local $$58 i32) - (local $$66 i32) - (local $$78 i32) - (local $$86 i32) - (local $$88 i32) - (local $$89 i32) - (local $$91 i32) - (local $$92 i32) - (local $$95 i32) - (local $$105 i32) - (local $$117 i32) - (local $$119 i32) - (local $$125 i32) - (local $$126 i32) - (local $$130 i32) - (local $$q_sroa_1_1_ph i32) - (local $$q_sroa_0_1_ph i32) - (local $$r_sroa_1_1_ph i32) - (local $$r_sroa_0_1_ph i32) - (local $$sr_1_ph i32) - (local $$d_sroa_0_0_insert_insert99$0 i32) - (local $$d_sroa_0_0_insert_insert99$1 i32) - (local $$137$0 i32) - (local $$137$1 i32) - (local $$carry_0203 i32) - (local $$sr_1202 i32) - (local $$r_sroa_0_1201 i32) - (local $$r_sroa_1_1200 i32) - (local $$q_sroa_0_1199 i32) - (local $$q_sroa_1_1198 i32) - (local $$147 i32) - (local $$149 i32) - (local $$r_sroa_0_0_insert_insert42$0 i32) - (local $$r_sroa_0_0_insert_insert42$1 i32) - (local $$150$1 i32) - (local $$151$0 i32) - (local $$152 i32) - (local $$154$0 i32) - (local $$r_sroa_0_0_extract_trunc i32) - (local $$r_sroa_1_4_extract_trunc i32) - (local $$155 i32) - (local $$carry_0_lcssa$0 i32) - (local $$carry_0_lcssa$1 i32) - (local $$r_sroa_0_1_lcssa i32) - (local $$r_sroa_1_1_lcssa i32) - (local $$q_sroa_0_1_lcssa i32) - (local $$q_sroa_1_1_lcssa i32) - (local $$q_sroa_0_0_insert_ext75$0 i32) - (local $$q_sroa_0_0_insert_ext75$1 i32) - (local $$q_sroa_0_0_insert_insert77$1 i32) - (local $$_0$0 i32) - (local $$_0$1 i32) - (set_local $$n_sroa_0_0_extract_trunc - (get_local $$a$0) - ) - (set_local $$n_sroa_1_4_extract_shift$0 - (get_local $$a$1) - ) - (set_local $$n_sroa_1_4_extract_trunc - (get_local $$n_sroa_1_4_extract_shift$0) - ) - (set_local $$d_sroa_0_0_extract_trunc - (get_local $$b$0) - ) - (set_local $$d_sroa_1_4_extract_shift$0 - (get_local $$b$1) - ) - (set_local $$d_sroa_1_4_extract_trunc - (get_local $$d_sroa_1_4_extract_shift$0) - ) - (if - (i32.eq - (get_local $$n_sroa_1_4_extract_trunc) - (i32.const 0) - ) - (block - (set_local $$4 - (i32.ne - (get_local $$rem) - (i32.const 0) - ) + (func $___udivmoddi4 (param $xl i32) (param $xh i32) (param $yl i32) (param $yh i32) (param $r i32) (result i32) + (local $x64 i64) + (local $y64 i64) + (set_local $x64 + (i64.or + (i64.extend_u/i32 + (get_local $xl) ) - (if - (i32.eq - (get_local $$d_sroa_1_4_extract_trunc) - (i32.const 0) - ) - (block - (if - (get_local $$4) - (block - (i32.store - (get_local $$rem) - (call_import $i32u-rem - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.const 0) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (call_import $i32u-div - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - (block - (if - (i32.eqz - (get_local $$4) - ) - (block - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (i32.store - (get_local $$rem) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) + (i64.shl + (i64.extend_u/i32 + (get_local $xh) ) + (i64.const 32) ) ) ) - (set_local $$17 - (i32.eq - (get_local $$d_sroa_1_4_extract_trunc) - (i32.const 0) - ) - ) - (block $do-once$0 - (if - (i32.eq - (get_local $$d_sroa_0_0_extract_trunc) - (i32.const 0) + (set_local $y64 + (i64.or + (i64.extend_u/i32 + (get_local $yl) ) - (block - (if - (get_local $$17) - (block - (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (call_import $i32u-rem - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.const 0) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (call_import $i32u-div - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (if - (i32.eq - (get_local $$n_sroa_0_0_extract_trunc) - (i32.const 0) - ) - (block - (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.const 0) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (call_import $i32u-rem - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (call_import $i32u-div - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (set_local $$37 - (i32.sub - (get_local $$d_sroa_1_4_extract_trunc) - (i32.const 1) - ) - ) - (if - (i32.eq - (i32.and - (get_local $$37) - (get_local $$d_sroa_1_4_extract_trunc) - ) - (i32.const 0) - ) - (block - (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.or - (i32.const 0) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.or - (i32.and - (get_local $$37) - (get_local $$n_sroa_1_4_extract_trunc) - ) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (i32.ctz - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (set_local $$49 - (i32.clz - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - (set_local $$51 - (i32.sub - (get_local $$49) - (i32.clz - (get_local $$n_sroa_1_4_extract_trunc) - ) - ) - ) - (if - (i32.le_u - (get_local $$51) - (i32.const 30) - ) - (block - (set_local $$57 - (i32.add - (get_local $$51) - (i32.const 1) - ) - ) - (set_local $$58 - (i32.sub - (i32.const 31) - (get_local $$51) - ) - ) - (set_local $$sr_1_ph - (get_local $$57) - ) - (set_local $$r_sroa_0_1_ph - (i32.or - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$58) - ) - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$57) - ) - ) - ) - (set_local $$r_sroa_1_1_ph - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$57) - ) - ) - (set_local $$q_sroa_0_1_ph - (i32.const 0) - ) - (set_local $$q_sroa_1_1_ph - (i32.shl - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$58) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $$rem) - (i32.const 0) - ) - (block - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (i32.store - (get_local $$rem) - (i32.or - (i32.const 0) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.or - (get_local $$n_sroa_1_4_extract_shift$0) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) + (i64.shl + (i64.extend_u/i32 + (get_local $yh) ) + (i64.const 32) ) - (block - (if - (i32.eqz - (get_local $$17) - ) - (block - (set_local $$117 - (i32.clz - (get_local $$d_sroa_1_4_extract_trunc) - ) - ) - (set_local $$119 - (i32.sub - (get_local $$117) - (i32.clz - (get_local $$n_sroa_1_4_extract_trunc) - ) - ) - ) - (if - (i32.le_u - (get_local $$119) - (i32.const 31) - ) - (block - (set_local $$125 - (i32.add - (get_local $$119) - (i32.const 1) - ) - ) - (set_local $$126 - (i32.sub - (i32.const 31) - (get_local $$119) - ) - ) - (set_local $$130 - (i32.shr_s - (i32.sub - (get_local $$119) - (i32.const 31) - ) - (i32.const 31) - ) - ) - (set_local $$sr_1_ph - (get_local $$125) - ) - (set_local $$r_sroa_0_1_ph - (i32.or - (i32.and - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$125) - ) - (get_local $$130) - ) - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$126) - ) - ) - ) - (set_local $$r_sroa_1_1_ph - (i32.and - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$125) - ) - (get_local $$130) - ) - ) - (set_local $$q_sroa_0_1_ph - (i32.const 0) - ) - (set_local $$q_sroa_1_1_ph - (i32.shl - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$126) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.eq - (get_local $$rem) - (i32.const 0) - ) - (block - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (i32.store - (get_local $$rem) - (i32.or - (i32.const 0) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.or - (get_local $$n_sroa_1_4_extract_shift$0) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - ) - (set_local $$_0$1 - (i32.const 0) - ) - (set_local $$_0$0 - (i32.const 0) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - (set_local $$66 - (i32.sub - (get_local $$d_sroa_0_0_extract_trunc) - (i32.const 1) - ) - ) - (if - (i32.ne - (i32.and - (get_local $$66) - (get_local $$d_sroa_0_0_extract_trunc) - ) - (i32.const 0) - ) - (block - (set_local $$86 - (i32.add - (i32.clz - (get_local $$d_sroa_0_0_extract_trunc) - ) - (i32.const 33) - ) - ) - (set_local $$88 - (i32.sub - (get_local $$86) - (i32.clz - (get_local $$n_sroa_1_4_extract_trunc) - ) - ) - ) - (set_local $$89 - (i32.sub - (i32.const 64) - (get_local $$88) - ) - ) - (set_local $$91 - (i32.sub - (i32.const 32) - (get_local $$88) - ) - ) - (set_local $$92 - (i32.shr_s - (get_local $$91) - (i32.const 31) - ) - ) - (set_local $$95 - (i32.sub - (get_local $$88) - (i32.const 32) - ) - ) - (set_local $$105 - (i32.shr_s - (get_local $$95) - (i32.const 31) - ) - ) - (set_local $$sr_1_ph - (get_local $$88) - ) - (set_local $$r_sroa_0_1_ph - (i32.or - (i32.and - (i32.shr_s - (i32.sub - (get_local $$91) - (i32.const 1) - ) - (i32.const 31) - ) - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$95) - ) - ) - (i32.and - (i32.or - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$91) - ) - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$88) - ) - ) - (get_local $$105) - ) - ) - ) - (set_local $$r_sroa_1_1_ph - (i32.and - (get_local $$105) - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$88) - ) - ) - ) - (set_local $$q_sroa_0_1_ph - (i32.and - (i32.shl - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$89) - ) - (get_local $$92) - ) - ) - (set_local $$q_sroa_1_1_ph - (i32.or - (i32.and - (i32.or - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$89) - ) - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$95) - ) - ) - (get_local $$92) - ) - (i32.and - (i32.shl - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$91) - ) - (i32.shr_s - (i32.sub - (get_local $$88) - (i32.const 33) - ) - (i32.const 31) - ) - ) - ) - ) - (br $do-once$0) - ) - ) - (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.and - (get_local $$66) - (get_local $$n_sroa_0_0_extract_trunc) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (i32.const 0) - ) - ) - ) - (if - (i32.eq - (get_local $$d_sroa_0_0_extract_trunc) - (i32.const 1) - ) - (block - (set_local $$_0$1 - (i32.or - (get_local $$n_sroa_1_4_extract_shift$0) - (i32.and - (get_local $$a$1) - (i32.const 0) - ) - ) - ) - (set_local $$_0$0 - (i32.or - (i32.const 0) - (i32.and - (get_local $$a$0) - (i32.const -1) - ) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - (block - (set_local $$78 - (i32.ctz - (get_local $$d_sroa_0_0_extract_trunc) - ) - ) - (set_local $$_0$1 - (i32.or - (i32.const 0) - (i32.shr_u - (get_local $$n_sroa_1_4_extract_trunc) - (get_local $$78) - ) - ) - ) - (set_local $$_0$0 - (i32.or - (i32.shl - (get_local $$n_sroa_1_4_extract_trunc) - (i32.sub - (i32.const 32) - (get_local $$78) - ) - ) - (i32.shr_u - (get_local $$n_sroa_0_0_extract_trunc) - (get_local $$78) - ) - ) - ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) - ) - ) - ) - ) - ) - ) - (if - (i32.eq - (get_local $$sr_1_ph) - (i32.const 0) - ) - (block - (set_local $$q_sroa_1_1_lcssa - (get_local $$q_sroa_1_1_ph) - ) - (set_local $$q_sroa_0_1_lcssa - (get_local $$q_sroa_0_1_ph) - ) - (set_local $$r_sroa_1_1_lcssa - (get_local $$r_sroa_1_1_ph) - ) - (set_local $$r_sroa_0_1_lcssa - (get_local $$r_sroa_0_1_ph) - ) - (set_local $$carry_0_lcssa$1 - (i32.const 0) - ) - (set_local $$carry_0_lcssa$0 - (i32.const 0) - ) - ) - (block - (set_local $$d_sroa_0_0_insert_insert99$0 - (i32.or - (i32.const 0) - (i32.and - (get_local $$b$0) - (i32.const -1) - ) - ) - ) - (set_local $$d_sroa_0_0_insert_insert99$1 - (i32.or - (get_local $$d_sroa_1_4_extract_shift$0) - (i32.and - (get_local $$b$1) - (i32.const 0) - ) - ) - ) - (set_local $$137$0 - (call $_i64Add - (get_local $$d_sroa_0_0_insert_insert99$0) - (get_local $$d_sroa_0_0_insert_insert99$1) - (i32.const -1) - (i32.const -1) - ) - ) - (set_local $$137$1 - (get_global $tempRet0) - ) - (set_local $$q_sroa_1_1198 - (get_local $$q_sroa_1_1_ph) - ) - (set_local $$q_sroa_0_1199 - (get_local $$q_sroa_0_1_ph) - ) - (set_local $$r_sroa_1_1200 - (get_local $$r_sroa_1_1_ph) - ) - (set_local $$r_sroa_0_1201 - (get_local $$r_sroa_0_1_ph) - ) - (set_local $$sr_1202 - (get_local $$sr_1_ph) - ) - (set_local $$carry_0203 - (i32.const 0) - ) - (loop $while-in$3 - (block $while-out$2 - (set_local $$147 - (i32.or - (i32.shr_u - (get_local $$q_sroa_0_1199) - (i32.const 31) - ) - (i32.shl - (get_local $$q_sroa_1_1198) - (i32.const 1) - ) - ) - ) - (set_local $$149 - (i32.or - (get_local $$carry_0203) - (i32.shl - (get_local $$q_sroa_0_1199) - (i32.const 1) - ) - ) - ) - (set_local $$r_sroa_0_0_insert_insert42$0 - (i32.or - (i32.const 0) - (i32.or - (i32.shl - (get_local $$r_sroa_0_1201) - (i32.const 1) - ) - (i32.shr_u - (get_local $$q_sroa_1_1198) - (i32.const 31) - ) - ) - ) - ) - (set_local $$r_sroa_0_0_insert_insert42$1 - (i32.or - (i32.shr_u - (get_local $$r_sroa_0_1201) - (i32.const 31) - ) - (i32.shl - (get_local $$r_sroa_1_1200) - (i32.const 1) - ) - ) - ) - (drop - (call $_i64Subtract - (get_local $$137$0) - (get_local $$137$1) - (get_local $$r_sroa_0_0_insert_insert42$0) - (get_local $$r_sroa_0_0_insert_insert42$1) - ) - ) - (set_local $$150$1 - (get_global $tempRet0) - ) - (set_local $$151$0 - (i32.or - (i32.shr_s - (get_local $$150$1) - (i32.const 31) - ) - (i32.shl - (if - (i32.lt_s - (get_local $$150$1) - (i32.const 0) - ) - (i32.const -1) - (i32.const 0) - ) - (i32.const 1) - ) - ) - ) - (set_local $$152 - (i32.and - (get_local $$151$0) - (i32.const 1) - ) - ) - (set_local $$154$0 - (call $_i64Subtract - (get_local $$r_sroa_0_0_insert_insert42$0) - (get_local $$r_sroa_0_0_insert_insert42$1) - (i32.and - (get_local $$151$0) - (get_local $$d_sroa_0_0_insert_insert99$0) - ) - (i32.and - (i32.or - (i32.shr_s - (if - (i32.lt_s - (get_local $$150$1) - (i32.const 0) - ) - (i32.const -1) - (i32.const 0) - ) - (i32.const 31) - ) - (i32.shl - (if - (i32.lt_s - (get_local $$150$1) - (i32.const 0) - ) - (i32.const -1) - (i32.const 0) - ) - (i32.const 1) - ) - ) - (get_local $$d_sroa_0_0_insert_insert99$1) - ) - ) - ) - (set_local $$r_sroa_0_0_extract_trunc - (get_local $$154$0) - ) - (set_local $$r_sroa_1_4_extract_trunc - (get_global $tempRet0) - ) - (set_local $$155 - (i32.sub - (get_local $$sr_1202) - (i32.const 1) - ) - ) - (if - (i32.eq - (get_local $$155) - (i32.const 0) - ) - (br $while-out$2) - (block - (set_local $$q_sroa_1_1198 - (get_local $$147) - ) - (set_local $$q_sroa_0_1199 - (get_local $$149) - ) - (set_local $$r_sroa_1_1200 - (get_local $$r_sroa_1_4_extract_trunc) - ) - (set_local $$r_sroa_0_1201 - (get_local $$r_sroa_0_0_extract_trunc) - ) - (set_local $$sr_1202 - (get_local $$155) - ) - (set_local $$carry_0203 - (get_local $$152) - ) - ) - ) - (br $while-in$3) - ) - ) - (set_local $$q_sroa_1_1_lcssa - (get_local $$147) - ) - (set_local $$q_sroa_0_1_lcssa - (get_local $$149) - ) - (set_local $$r_sroa_1_1_lcssa - (get_local $$r_sroa_1_4_extract_trunc) - ) - (set_local $$r_sroa_0_1_lcssa - (get_local $$r_sroa_0_0_extract_trunc) - ) - (set_local $$carry_0_lcssa$1 - (i32.const 0) - ) - (set_local $$carry_0_lcssa$0 - (get_local $$152) - ) - ) - ) - (set_local $$q_sroa_0_0_insert_ext75$0 - (get_local $$q_sroa_0_1_lcssa) - ) - (set_local $$q_sroa_0_0_insert_ext75$1 - (i32.const 0) - ) - (set_local $$q_sroa_0_0_insert_insert77$1 - (i32.or - (get_local $$q_sroa_1_1_lcssa) - (get_local $$q_sroa_0_0_insert_ext75$1) ) ) (if - (i32.ne - (get_local $$rem) - (i32.const 0) - ) - (block - (i32.store - (get_local $$rem) - (i32.or - (i32.const 0) - (get_local $$r_sroa_0_1_lcssa) - ) - ) - (i32.store - (i32.add - (get_local $$rem) - (i32.const 4) - ) - (get_local $$r_sroa_1_1_lcssa) + (get_local $r) + (i64.store + (get_local $r) + (i64.rem_u + (get_local $x64) + (get_local $y64) ) ) ) - (set_local $$_0$1 - (i32.or - (i32.or - (i32.or - (i32.shr_u - (i32.or - (i32.const 0) - (get_local $$q_sroa_0_0_insert_ext75$0) - ) - (i32.const 31) - ) - (i32.shl - (get_local $$q_sroa_0_0_insert_insert77$1) - (i32.const 1) - ) - ) - (i32.and - (i32.or - (i32.shl - (get_local $$q_sroa_0_0_insert_ext75$1) - (i32.const 1) - ) - (i32.shr_u - (get_local $$q_sroa_0_0_insert_ext75$0) - (i32.const 31) - ) - ) - (i32.const 0) - ) - ) - (get_local $$carry_0_lcssa$1) + (set_local $x64 + (i64.div_u + (get_local $x64) + (get_local $y64) ) ) - (set_local $$_0$0 - (i32.or - (i32.and - (i32.or - (i32.shl - (get_local $$q_sroa_0_0_insert_ext75$0) - (i32.const 1) - ) - (i32.shr_u - (i32.const 0) - (i32.const 31) - ) - ) - (i32.const -2) + (set_global $tempRet0 + (i32.wrap/i64 + (i64.shr_u + (get_local $x64) + (i64.const 32) ) - (get_local $$carry_0_lcssa$0) ) ) - (return - (block - (block - (set_global $tempRet0 - (get_local $$_0$1) - ) - (drop - (get_global $tempRet0) - ) - ) - (get_local $$_0$0) - ) + (i32.wrap/i64 + (get_local $x64) ) ) (func $dynCall_ii (param $index i32) (param $a1 i32) (result i32) diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt index 6544f9f33..9f1021b30 100644 --- a/test/example/c-api-kitchen-sink.txt +++ b/test/example/c-api-kitchen-sink.txt @@ -408,7 +408,9 @@ BinaryenFloat64: 4 ) (if (i32.const 4) - (i32.const 5) + (drop + (i32.const 5) + ) ) (drop (loop $in @@ -1102,11 +1104,10 @@ optimized: (call_import $check (i32.const 1) ) - (if + (br_if $shape$0$continue (i32.const 10) - (br $shape$0$continue) - (br $block$3$break) ) + (br $block$3$break) ) ) (call_import $check @@ -1129,11 +1130,10 @@ optimized: (call_import $check (i32.const 2) ) - (if + (br_if $block$4$break (i32.const -6) - (br $block$4$break) - (br $shape$1$continue) ) + (br $shape$1$continue) ) ) (call_import $check @@ -1999,7 +1999,9 @@ int main() { ) (if (i32.const 4) - (i32.const 5) + (drop + (i32.const 5) + ) ) (drop (loop $in @@ -3157,11 +3159,10 @@ optimized: (call_import $check (i32.const 1) ) - (if + (br_if $shape$0$continue (i32.const 10) - (br $shape$0$continue) - (br $block$3$break) ) + (br $block$3$break) ) ) (call_import $check @@ -3184,11 +3185,10 @@ optimized: (call_import $check (i32.const 2) ) - (if + (br_if $block$4$break (i32.const -6) - (br $block$4$break) - (br $shape$1$continue) ) + (br $shape$1$continue) ) ) (call_import $check diff --git a/test/example/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt index b37814f89..022bcc2e3 100644 --- a/test/example/c-api-kitchen-sink.txt.txt +++ b/test/example/c-api-kitchen-sink.txt.txt @@ -403,7 +403,9 @@ ) (if (i32.const 4) - (i32.const 5) + (drop + (i32.const 5) + ) ) (drop (loop $in @@ -1095,11 +1097,10 @@ (call_import $check (i32.const 1) ) - (if + (br_if $shape$0$continue (i32.const 10) - (br $shape$0$continue) - (br $block$3$break) ) + (br $block$3$break) ) ) (call_import $check @@ -1122,11 +1123,10 @@ (call_import $check (i32.const 2) ) - (if + (br_if $block$4$break (i32.const -6) - (br $block$4$break) - (br $shape$1$continue) ) + (br $shape$1$continue) ) ) (call_import $check diff --git a/test/example/relooper-fuzz.txt b/test/example/relooper-fuzz.txt index 151360306..5db33f21e 100644 --- a/test/example/relooper-fuzz.txt +++ b/test/example/relooper-fuzz.txt @@ -449,15 +449,9 @@ (i32.const 0) ) (if - (i32.eq - (i32.rem_u - (call $check) - (i32.const 2) - ) - (i32.const 0) - ) - (set_local $0 - (i32.const 6) + (i32.rem_u + (call $check) + (i32.const 2) ) (block (call_import $print @@ -467,6 +461,9 @@ (call $check) ) ) + (set_local $0 + (i32.const 6) + ) ) (loop $shape$3$continue (if @@ -481,52 +478,46 @@ (call_import $print (i32.const 5) ) - (if - (i32.eq + (br_if $shape$3$continue + (i32.eqz (i32.rem_u (call $check) (i32.const 2) ) - (i32.const 0) - ) - (br $shape$3$continue) - (block - (set_local $0 - (i32.const 6) - ) - (br $shape$3$continue) ) ) + (set_local $0 + (i32.const 6) + ) + (br $shape$3$continue) ) ) (call_import $print (i32.const 4) ) - (if - (i32.eq + (br_if $shape$3$continue + (i32.eqz (i32.rem_u (tee_local $1 (call $check) ) (i32.const 3) ) - (i32.const 0) ) - (br $shape$3$continue) - (if - (i32.eq - (i32.rem_u - (get_local $1) - (i32.const 3) - ) - (i32.const 1) + ) + (if + (i32.eq + (i32.rem_u + (get_local $1) + (i32.const 3) ) - (block - (set_local $0 - (i32.const 6) - ) - (br $shape$3$continue) + (i32.const 1) + ) + (block + (set_local $0 + (i32.const 6) ) + (br $shape$3$continue) ) ) (call_import $print diff --git a/test/example/relooper-fuzz1.txt b/test/example/relooper-fuzz1.txt index be8130228..b4ad8b5a1 100644 --- a/test/example/relooper-fuzz1.txt +++ b/test/example/relooper-fuzz1.txt @@ -438,14 +438,11 @@ (i32.const 0) ) (if - (i32.ne - (i32.rem_u - (tee_local $0 - (call $check) - ) - (i32.const 4) + (i32.rem_u + (tee_local $0 + (call $check) ) - (i32.const 0) + (i32.const 4) ) (if (i32.eq @@ -460,12 +457,9 @@ (i32.const 7) ) (br_if $block$10$break - (i32.ne - (i32.rem_u - (call $check) - (i32.const 3) - ) - (i32.const 0) + (i32.rem_u + (call $check) + (i32.const 3) ) ) ) @@ -476,12 +470,9 @@ (i32.const 2) ) (br_if $block$10$break - (i32.ne - (i32.rem_u - (call $check) - (i32.const 2) - ) - (i32.const 0) + (i32.rem_u + (call $check) + (i32.const 2) ) ) ) diff --git a/test/memorygrowth.fromasm b/test/memorygrowth.fromasm index c0cce359a..70ef836b0 100644 --- a/test/memorygrowth.fromasm +++ b/test/memorygrowth.fromasm @@ -131,7 +131,8 @@ (local $52 i32) (local $53 i32) (local $54 i32) - (set_local $31 + (local $55 i32) + (set_local $25 (get_global $r) ) (set_global $r @@ -140,8 +141,8 @@ (i32.const 16) ) ) - (set_local $15 - (get_local $31) + (set_local $13 + (get_local $25) ) (block $do-once$0 (if @@ -152,16 +153,16 @@ (block (if (i32.and - (tee_local $12 + (tee_local $5 (i32.shr_u - (tee_local $16 + (tee_local $6 (i32.load (i32.const 1208) ) ) - (tee_local $2 + (tee_local $0 (i32.shr_u - (tee_local $14 + (tee_local $2 (select (i32.const 16) (i32.and @@ -185,15 +186,15 @@ (i32.const 3) ) (block - (set_local $11 + (set_local $7 (i32.load - (tee_local $27 + (tee_local $5 (i32.add - (tee_local $29 + (tee_local $2 (i32.load - (tee_local $25 + (tee_local $4 (i32.add - (tee_local $5 + (tee_local $8 (i32.add (i32.const 1248) (i32.shl @@ -202,12 +203,12 @@ (i32.add (i32.xor (i32.and - (get_local $12) + (get_local $5) (i32.const 1) ) (i32.const 1) ) - (get_local $2) + (get_local $0) ) ) (i32.const 1) @@ -228,13 +229,13 @@ ) (if (i32.eq - (get_local $5) - (get_local $11) + (get_local $8) + (get_local $7) ) (i32.store (i32.const 1208) (i32.and - (get_local $16) + (get_local $6) (i32.xor (i32.shl (i32.const 1) @@ -247,7 +248,7 @@ (block (if (i32.lt_u - (get_local $11) + (get_local $7) (i32.load (i32.const 1224) ) @@ -257,23 +258,23 @@ (if (i32.eq (i32.load - (tee_local $19 + (tee_local $17 (i32.add - (get_local $11) + (get_local $7) (i32.const 12) ) ) ) - (get_local $29) + (get_local $2) ) (block (i32.store - (get_local $19) - (get_local $5) + (get_local $17) + (get_local $8) ) (i32.store - (get_local $25) - (get_local $11) + (get_local $4) + (get_local $7) ) ) (call_import $qa) @@ -281,9 +282,9 @@ ) ) (i32.store offset=4 - (get_local $29) + (get_local $2) (i32.or - (tee_local $11 + (tee_local $7 (i32.shl (get_local $0) (i32.const 3) @@ -293,34 +294,34 @@ ) ) (i32.store - (tee_local $25 + (tee_local $4 (i32.add (i32.add - (get_local $29) - (get_local $11) + (get_local $2) + (get_local $7) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $25) + (get_local $4) ) (i32.const 1) ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return - (get_local $27) + (get_local $5) ) ) ) (if (i32.gt_u - (get_local $14) - (tee_local $25 + (get_local $2) + (tee_local $4 (i32.load (i32.const 1216) ) @@ -328,37 +329,37 @@ ) (block (if - (get_local $12) + (get_local $5) (block - (set_local $5 + (set_local $8 (i32.and (i32.shr_u - (tee_local $11 + (tee_local $7 (i32.add (i32.and - (tee_local $5 + (tee_local $8 (i32.and (i32.shl - (get_local $12) - (get_local $2) + (get_local $5) + (get_local $0) ) (i32.or - (tee_local $11 + (tee_local $7 (i32.shl (i32.const 2) - (get_local $2) + (get_local $0) ) ) (i32.sub (i32.const 0) - (get_local $11) + (get_local $7) ) ) ) ) (i32.sub (i32.const 0) - (get_local $5) + (get_local $8) ) ) (i32.const -1) @@ -369,32 +370,32 @@ (i32.const 16) ) ) - (set_local $5 + (set_local $8 (i32.load - (tee_local $19 + (tee_local $17 (i32.add - (tee_local $8 + (tee_local $10 (i32.load - (tee_local $0 + (tee_local $15 (i32.add (tee_local $3 (i32.add (i32.const 1248) (i32.shl (i32.shl - (tee_local $7 + (tee_local $9 (i32.add (i32.or (i32.or (i32.or (i32.or - (tee_local $11 + (tee_local $7 (i32.and (i32.shr_u - (tee_local $19 + (tee_local $17 (i32.shr_u - (get_local $11) - (get_local $5) + (get_local $7) + (get_local $8) ) ) (i32.const 5) @@ -402,15 +403,15 @@ (i32.const 8) ) ) - (get_local $5) + (get_local $8) ) - (tee_local $19 + (tee_local $17 (i32.and (i32.shr_u - (tee_local $8 + (tee_local $10 (i32.shr_u - (get_local $19) - (get_local $11) + (get_local $17) + (get_local $7) ) ) (i32.const 2) @@ -419,13 +420,13 @@ ) ) ) - (tee_local $8 + (tee_local $10 (i32.and (i32.shr_u (tee_local $3 (i32.shr_u - (get_local $8) - (get_local $19) + (get_local $10) + (get_local $17) ) ) (i32.const 1) @@ -437,10 +438,10 @@ (tee_local $3 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $15 (i32.shr_u (get_local $3) - (get_local $8) + (get_local $10) ) ) (i32.const 1) @@ -450,7 +451,7 @@ ) ) (i32.shr_u - (get_local $0) + (get_local $15) (get_local $3) ) ) @@ -474,30 +475,30 @@ (if (i32.eq (get_local $3) - (get_local $5) + (get_local $8) ) (block (i32.store (i32.const 1208) (i32.and - (get_local $16) + (get_local $6) (i32.xor (i32.shl (i32.const 1) - (get_local $7) + (get_local $9) ) (i32.const -1) ) ) ) - (set_local $39 - (get_local $25) + (set_local $34 + (get_local $4) ) ) (block (if (i32.lt_u - (get_local $5) + (get_local $8) (i32.load (i32.const 1224) ) @@ -507,25 +508,25 @@ (if (i32.eq (i32.load - (tee_local $11 + (tee_local $7 (i32.add - (get_local $5) + (get_local $8) (i32.const 12) ) ) ) - (get_local $8) + (get_local $10) ) (block (i32.store - (get_local $11) + (get_local $7) (get_local $3) ) (i32.store - (get_local $0) - (get_local $5) + (get_local $15) + (get_local $8) ) - (set_local $39 + (set_local $34 (i32.load (i32.const 1216) ) @@ -536,27 +537,27 @@ ) ) (i32.store offset=4 - (get_local $8) + (get_local $10) (i32.or - (get_local $14) + (get_local $2) (i32.const 3) ) ) (i32.store offset=4 - (tee_local $0 + (tee_local $15 (i32.add - (get_local $8) - (get_local $14) + (get_local $10) + (get_local $2) ) ) (i32.or - (tee_local $5 + (tee_local $8 (i32.sub (i32.shl - (get_local $7) + (get_local $9) (i32.const 3) ) - (get_local $14) + (get_local $2) ) ) (i32.const 1) @@ -564,27 +565,27 @@ ) (i32.store (i32.add - (get_local $0) - (get_local $5) + (get_local $15) + (get_local $8) ) - (get_local $5) + (get_local $8) ) (if - (get_local $39) + (get_local $34) (block (set_local $3 (i32.load (i32.const 1228) ) ) - (set_local $16 + (set_local $6 (i32.add (i32.const 1248) (i32.shl (i32.shl - (tee_local $25 + (tee_local $4 (i32.shr_u - (get_local $39) + (get_local $34) (i32.const 3) ) ) @@ -596,25 +597,25 @@ ) (if (i32.and - (tee_local $2 + (tee_local $0 (i32.load (i32.const 1208) ) ) - (tee_local $12 + (tee_local $5 (i32.shl (i32.const 1) - (get_local $25) + (get_local $4) ) ) ) (if (i32.lt_u - (tee_local $2 + (tee_local $0 (i32.load - (tee_local $12 + (tee_local $5 (i32.add - (get_local $16) + (get_local $6) (i32.const 8) ) ) @@ -626,11 +627,11 @@ ) (call_import $qa) (block - (set_local $44 - (get_local $12) + (set_local $41 + (get_local $5) ) - (set_local $29 - (get_local $2) + (set_local $27 + (get_local $0) ) ) ) @@ -638,72 +639,72 @@ (i32.store (i32.const 1208) (i32.or - (get_local $2) - (get_local $12) + (get_local $0) + (get_local $5) ) ) - (set_local $44 + (set_local $41 (i32.add - (get_local $16) + (get_local $6) (i32.const 8) ) ) - (set_local $29 - (get_local $16) + (set_local $27 + (get_local $6) ) ) ) (i32.store - (get_local $44) + (get_local $41) (get_local $3) ) (i32.store offset=12 - (get_local $29) + (get_local $27) (get_local $3) ) (i32.store offset=8 (get_local $3) - (get_local $29) + (get_local $27) ) (i32.store offset=12 (get_local $3) - (get_local $16) + (get_local $6) ) ) ) (i32.store (i32.const 1216) - (get_local $5) + (get_local $8) ) (i32.store (i32.const 1228) - (get_local $0) + (get_local $15) ) (set_global $r - (get_local $31) + (get_local $25) ) (return - (get_local $19) + (get_local $17) ) ) ) (if - (tee_local $0 + (tee_local $15 (i32.load (i32.const 1212) ) ) (block - (set_local $0 + (set_local $15 (i32.and (i32.shr_u - (tee_local $5 + (tee_local $8 (i32.add (i32.and - (get_local $0) + (get_local $15) (i32.sub (i32.const 0) - (get_local $0) + (get_local $15) ) ) (i32.const -1) @@ -714,11 +715,11 @@ (i32.const 16) ) ) - (set_local $2 + (set_local $0 (i32.sub (i32.and (i32.load offset=4 - (tee_local $25 + (tee_local $4 (i32.load (i32.add (i32.shl @@ -727,13 +728,13 @@ (i32.or (i32.or (i32.or - (tee_local $5 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $16 + (tee_local $6 (i32.shr_u - (get_local $5) - (get_local $0) + (get_local $8) + (get_local $15) ) ) (i32.const 5) @@ -741,15 +742,15 @@ (i32.const 8) ) ) - (get_local $0) + (get_local $15) ) - (tee_local $16 + (tee_local $6 (i32.and (i32.shr_u (tee_local $3 (i32.shr_u - (get_local $16) - (get_local $5) + (get_local $6) + (get_local $8) ) ) (i32.const 2) @@ -761,10 +762,10 @@ (tee_local $3 (i32.and (i32.shr_u - (tee_local $2 + (tee_local $0 (i32.shr_u (get_local $3) - (get_local $16) + (get_local $6) ) ) (i32.const 1) @@ -773,12 +774,12 @@ ) ) ) - (tee_local $2 + (tee_local $0 (i32.and (i32.shr_u - (tee_local $12 + (tee_local $5 (i32.shr_u - (get_local $2) + (get_local $0) (get_local $3) ) ) @@ -789,8 +790,8 @@ ) ) (i32.shr_u - (get_local $12) - (get_local $2) + (get_local $5) + (get_local $0) ) ) (i32.const 2) @@ -802,77 +803,77 @@ ) (i32.const -8) ) - (get_local $14) + (get_local $2) ) ) - (set_local $12 - (get_local $25) + (set_local $5 + (get_local $4) ) (set_local $3 - (get_local $25) + (get_local $4) ) (loop $while-in$7 (block $while-out$6 (if - (tee_local $25 + (tee_local $4 (i32.load offset=16 - (get_local $12) + (get_local $5) ) ) - (set_local $0 - (get_local $25) + (set_local $7 + (get_local $4) ) (if - (tee_local $16 + (tee_local $6 (i32.load offset=20 - (get_local $12) + (get_local $5) ) ) - (set_local $0 - (get_local $16) + (set_local $7 + (get_local $6) ) (block - (set_local $32 - (get_local $2) + (set_local $7 + (get_local $0) ) - (set_local $26 + (set_local $1 (get_local $3) ) (br $while-out$6) ) ) ) - (set_local $16 + (set_local $6 (i32.lt_u - (tee_local $25 + (tee_local $4 (i32.sub (i32.and (i32.load offset=4 - (get_local $0) + (get_local $7) ) (i32.const -8) ) - (get_local $14) + (get_local $2) ) ) - (get_local $2) + (get_local $0) ) ) - (set_local $2 + (set_local $0 (select - (get_local $25) - (get_local $2) - (get_local $16) + (get_local $4) + (get_local $0) + (get_local $6) ) ) - (set_local $12 - (get_local $0) + (set_local $5 + (get_local $7) ) (set_local $3 (select - (get_local $0) + (get_local $7) (get_local $3) - (get_local $16) + (get_local $6) ) ) (br $while-in$7) @@ -880,7 +881,7 @@ ) (if (i32.lt_u - (get_local $26) + (get_local $1) (tee_local $3 (i32.load (i32.const 1224) @@ -891,72 +892,66 @@ ) (if (i32.ge_u - (get_local $26) - (tee_local $12 + (get_local $1) + (tee_local $5 (i32.add - (get_local $26) - (get_local $14) + (get_local $1) + (get_local $2) ) ) ) (call_import $qa) ) - (set_local $2 + (set_local $0 (i32.load offset=24 - (get_local $26) + (get_local $1) ) ) (block $do-once$8 (if (i32.eq - (tee_local $19 + (tee_local $17 (i32.load offset=12 - (get_local $26) + (get_local $1) ) ) - (get_local $26) + (get_local $1) ) (block (if - (tee_local $7 + (tee_local $9 (i32.load - (tee_local $8 + (tee_local $10 (i32.add - (get_local $26) + (get_local $1) (i32.const 20) ) ) ) ) (block - (set_local $11 - (get_local $7) + (set_local $4 + (get_local $9) ) - (set_local $0 - (get_local $8) + (set_local $6 + (get_local $10) ) ) (if - (tee_local $25 - (i32.load - (tee_local $16 - (i32.add - (get_local $26) - (i32.const 16) + (i32.eqz + (tee_local $4 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 16) + ) ) ) ) ) (block - (set_local $11 - (get_local $25) - ) - (set_local $0 - (get_local $16) - ) - ) - (block - (set_local $27 + (set_local $23 (i32.const 0) ) (br $do-once$8) @@ -964,65 +959,62 @@ ) ) (loop $while-in$11 - (block $while-out$10 - (if - (tee_local $7 - (i32.load - (tee_local $8 - (i32.add - (get_local $11) - (i32.const 20) - ) + (if + (tee_local $9 + (i32.load + (tee_local $10 + (i32.add + (get_local $4) + (i32.const 20) ) ) ) - (block - (set_local $11 - (get_local $7) - ) - (set_local $0 - (get_local $8) - ) - (br $while-in$11) + ) + (block + (set_local $4 + (get_local $9) ) + (set_local $6 + (get_local $10) + ) + (br $while-in$11) ) - (if - (tee_local $7 - (i32.load - (tee_local $8 - (i32.add - (get_local $11) - (i32.const 16) - ) + ) + (if + (tee_local $9 + (i32.load + (tee_local $10 + (i32.add + (get_local $4) + (i32.const 16) ) ) ) - (block - (set_local $11 - (get_local $7) - ) - (set_local $0 - (get_local $8) - ) + ) + (block + (set_local $4 + (get_local $9) ) - (br $while-out$10) + (set_local $6 + (get_local $10) + ) + (br $while-in$11) ) - (br $while-in$11) ) ) (if (i32.lt_u - (get_local $0) + (get_local $6) (get_local $3) ) (call_import $qa) (block (i32.store - (get_local $0) + (get_local $6) (i32.const 0) ) - (set_local $27 - (get_local $11) + (set_local $23 + (get_local $4) ) ) ) @@ -1030,9 +1022,9 @@ (block (if (i32.lt_u - (tee_local $8 + (tee_local $10 (i32.load offset=8 - (get_local $26) + (get_local $1) ) ) (get_local $3) @@ -1042,40 +1034,40 @@ (if (i32.ne (i32.load - (tee_local $7 + (tee_local $9 (i32.add - (get_local $8) + (get_local $10) (i32.const 12) ) ) ) - (get_local $26) + (get_local $1) ) (call_import $qa) ) (if (i32.eq (i32.load - (tee_local $16 + (tee_local $6 (i32.add - (get_local $19) + (get_local $17) (i32.const 8) ) ) ) - (get_local $26) + (get_local $1) ) (block (i32.store - (get_local $7) - (get_local $19) + (get_local $9) + (get_local $17) ) (i32.store - (get_local $16) - (get_local $8) + (get_local $6) + (get_local $10) ) - (set_local $27 - (get_local $19) + (set_local $23 + (get_local $17) ) ) (call_import $qa) @@ -1085,19 +1077,19 @@ ) (block $do-once$12 (if - (get_local $2) + (get_local $0) (block (if (i32.eq - (get_local $26) + (get_local $1) (i32.load (tee_local $3 (i32.add (i32.const 1512) (i32.shl - (tee_local $19 + (tee_local $17 (i32.load offset=28 - (get_local $26) + (get_local $1) ) ) (i32.const 2) @@ -1109,11 +1101,11 @@ (block (i32.store (get_local $3) - (get_local $27) + (get_local $23) ) (if (i32.eqz - (get_local $27) + (get_local $23) ) (block (i32.store @@ -1125,7 +1117,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $19) + (get_local $17) ) (i32.const -1) ) @@ -1138,7 +1130,7 @@ (block (if (i32.lt_u - (get_local $2) + (get_local $0) (i32.load (i32.const 1224) ) @@ -1148,35 +1140,35 @@ (if (i32.eq (i32.load - (tee_local $19 + (tee_local $17 (i32.add - (get_local $2) + (get_local $0) (i32.const 16) ) ) ) - (get_local $26) + (get_local $1) ) (i32.store - (get_local $19) - (get_local $27) + (get_local $17) + (get_local $23) ) (i32.store offset=20 - (get_local $2) - (get_local $27) + (get_local $0) + (get_local $23) ) ) (br_if $do-once$12 (i32.eqz - (get_local $27) + (get_local $23) ) ) ) ) (if (i32.lt_u - (get_local $27) - (tee_local $19 + (get_local $23) + (tee_local $17 (i32.load (i32.const 1224) ) @@ -1185,29 +1177,29 @@ (call_import $qa) ) (i32.store offset=24 - (get_local $27) - (get_local $2) + (get_local $23) + (get_local $0) ) (if (tee_local $3 (i32.load offset=16 - (get_local $26) + (get_local $1) ) ) (if (i32.lt_u (get_local $3) - (get_local $19) + (get_local $17) ) (call_import $qa) (block (i32.store offset=16 - (get_local $27) + (get_local $23) (get_local $3) ) (i32.store offset=24 (get_local $3) - (get_local $27) + (get_local $23) ) ) ) @@ -1215,7 +1207,7 @@ (if (tee_local $3 (i32.load offset=20 - (get_local $26) + (get_local $1) ) ) (if @@ -1228,12 +1220,12 @@ (call_import $qa) (block (i32.store offset=20 - (get_local $27) + (get_local $23) (get_local $3) ) (i32.store offset=24 (get_local $3) - (get_local $27) + (get_local $23) ) ) ) @@ -1243,17 +1235,17 @@ ) (if (i32.lt_u - (get_local $32) + (get_local $7) (i32.const 16) ) (block (i32.store offset=4 - (get_local $26) + (get_local $1) (i32.or - (tee_local $2 + (tee_local $0 (i32.add - (get_local $32) - (get_local $14) + (get_local $7) + (get_local $2) ) ) (i32.const 3) @@ -1263,8 +1255,8 @@ (tee_local $3 (i32.add (i32.add - (get_local $26) - (get_local $2) + (get_local $1) + (get_local $0) ) (i32.const 4) ) @@ -1279,25 +1271,25 @@ ) (block (i32.store offset=4 - (get_local $26) + (get_local $1) (i32.or - (get_local $14) + (get_local $2) (i32.const 3) ) ) (i32.store offset=4 - (get_local $12) + (get_local $5) (i32.or - (get_local $32) + (get_local $7) (i32.const 1) ) ) (i32.store (i32.add - (get_local $12) - (get_local $32) + (get_local $5) + (get_local $7) ) - (get_local $32) + (get_local $7) ) (if (tee_local $3 @@ -1306,7 +1298,7 @@ ) ) (block - (set_local $2 + (set_local $0 (i32.load (i32.const 1228) ) @@ -1316,7 +1308,7 @@ (i32.const 1248) (i32.shl (i32.shl - (tee_local $19 + (tee_local $17 (i32.shr_u (get_local $3) (i32.const 3) @@ -1330,23 +1322,23 @@ ) (if (i32.and - (tee_local $8 + (tee_local $10 (i32.load (i32.const 1208) ) ) - (tee_local $16 + (tee_local $6 (i32.shl (i32.const 1) - (get_local $19) + (get_local $17) ) ) ) (if (i32.lt_u - (tee_local $8 + (tee_local $10 (i32.load - (tee_local $16 + (tee_local $6 (i32.add (get_local $3) (i32.const 8) @@ -1360,11 +1352,11 @@ ) (call_import $qa) (block - (set_local $34 - (get_local $16) + (set_local $42 + (get_local $6) ) - (set_local $4 - (get_local $8) + (set_local $35 + (get_local $10) ) ) ) @@ -1372,66 +1364,66 @@ (i32.store (i32.const 1208) (i32.or - (get_local $8) - (get_local $16) + (get_local $10) + (get_local $6) ) ) - (set_local $34 + (set_local $42 (i32.add (get_local $3) (i32.const 8) ) ) - (set_local $4 + (set_local $35 (get_local $3) ) ) ) (i32.store - (get_local $34) - (get_local $2) + (get_local $42) + (get_local $0) ) (i32.store offset=12 - (get_local $4) - (get_local $2) + (get_local $35) + (get_local $0) ) (i32.store offset=8 - (get_local $2) - (get_local $4) + (get_local $0) + (get_local $35) ) (i32.store offset=12 - (get_local $2) + (get_local $0) (get_local $3) ) ) ) (i32.store (i32.const 1216) - (get_local $32) + (get_local $7) ) (i32.store (i32.const 1228) - (get_local $12) + (get_local $5) ) ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $26) + (get_local $1) (i32.const 8) ) ) ) - (set_local $18 - (get_local $14) + (set_local $6 + (get_local $2) ) ) ) - (set_local $18 - (get_local $14) + (set_local $6 + (get_local $2) ) ) ) @@ -1440,11 +1432,11 @@ (get_local $0) (i32.const -65) ) - (set_local $18 + (set_local $6 (i32.const -1) ) (block - (set_local $2 + (set_local $0 (i32.and (tee_local $3 (i32.add @@ -1456,27 +1448,27 @@ ) ) (if - (tee_local $8 + (tee_local $10 (i32.load (i32.const 1212) ) ) (block - (set_local $16 + (set_local $6 (i32.sub (i32.const 0) - (get_local $2) + (get_local $0) ) ) (block $label$break$a (if - (tee_local $0 + (tee_local $15 (i32.load (i32.add (i32.shl - (tee_local $34 + (tee_local $27 (if - (tee_local $19 + (tee_local $17 (i32.shr_u (get_local $3) (i32.const 8) @@ -1484,33 +1476,33 @@ ) (if (i32.gt_u - (get_local $2) + (get_local $0) (i32.const 16777215) ) (i32.const 31) (i32.or (i32.and (i32.shr_u - (get_local $2) + (get_local $0) (i32.add - (tee_local $0 + (tee_local $15 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $19 + (tee_local $17 (i32.and (i32.shr_u (i32.add - (tee_local $7 + (tee_local $9 (i32.shl - (get_local $19) + (get_local $17) (tee_local $3 (i32.and (i32.shr_u (i32.add - (get_local $19) + (get_local $17) (i32.const 1048320) ) (i32.const 16) @@ -1529,14 +1521,14 @@ ) (get_local $3) ) - (tee_local $7 + (tee_local $9 (i32.and (i32.shr_u (i32.add - (tee_local $25 + (tee_local $4 (i32.shl - (get_local $7) - (get_local $19) + (get_local $9) + (get_local $17) ) ) (i32.const 245760) @@ -1550,8 +1542,8 @@ ) (i32.shr_u (i32.shl - (get_local $25) - (get_local $7) + (get_local $4) + (get_local $9) ) (i32.const 15) ) @@ -1563,7 +1555,7 @@ (i32.const 1) ) (i32.shl - (get_local $0) + (get_local $15) (i32.const 1) ) ) @@ -1578,123 +1570,112 @@ ) ) (block - (set_local $7 - (get_local $16) + (set_local $9 + (get_local $6) ) - (set_local $25 + (set_local $4 (i32.const 0) ) (set_local $3 (i32.shl - (get_local $2) + (get_local $0) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $34) + (get_local $27) (i32.const 1) ) ) (i32.eq - (get_local $34) + (get_local $27) (i32.const 31) ) ) ) ) - (set_local $19 - (get_local $0) + (set_local $17 + (get_local $15) ) - (set_local $5 + (set_local $8 (i32.const 0) ) (loop $while-in$18 - (block $while-out$17 - (if - (i32.lt_u - (tee_local $29 - (i32.sub - (tee_local $27 - (i32.and - (i32.load offset=4 - (get_local $19) - ) - (i32.const -8) + (if + (i32.lt_u + (tee_local $2 + (i32.sub + (tee_local $5 + (i32.and + (i32.load offset=4 + (get_local $17) ) + (i32.const -8) ) - (get_local $2) ) + (get_local $0) ) - (get_local $7) ) - (if - (i32.eq - (get_local $27) + (get_local $9) + ) + (if + (i32.eq + (get_local $5) + (get_local $0) + ) + (block + (set_local $29 (get_local $2) ) - (block - (set_local $36 - (get_local $29) - ) - (set_local $18 - (get_local $19) - ) - (set_local $17 - (get_local $19) - ) - (set_local $7 - (i32.const 90) - ) - (br $label$break$a) + (set_local $28 + (get_local $17) ) - (block - (set_local $4 - (get_local $29) - ) - (set_local $0 - (get_local $19) - ) + (set_local $32 + (get_local $17) ) + (set_local $9 + (i32.const 90) + ) + (br $label$break$a) ) (block - (set_local $4 - (get_local $7) + (set_local $9 + (get_local $2) ) - (set_local $0 - (get_local $5) + (set_local $8 + (get_local $17) ) ) ) - (set_local $27 - (select - (get_local $25) - (tee_local $29 - (i32.load offset=20 - (get_local $19) - ) + ) + (set_local $5 + (select + (get_local $4) + (tee_local $2 + (i32.load offset=20 + (get_local $17) ) - (i32.or - (i32.eq - (get_local $29) - (i32.const 0) - ) - (i32.eq - (get_local $29) - (tee_local $19 - (i32.load + ) + (i32.or + (i32.eqz + (get_local $2) + ) + (i32.eq + (get_local $2) + (tee_local $17 + (i32.load + (i32.add (i32.add - (i32.add - (get_local $19) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $3) - (i32.const 31) - ) - (i32.const 2) + (get_local $17) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $3) + (i32.const 31) ) + (i32.const 2) ) ) ) @@ -1702,67 +1683,59 @@ ) ) ) - (if - (tee_local $29 - (i32.eq - (get_local $19) - (i32.const 0) - ) + ) + (if + (tee_local $2 + (i32.eqz + (get_local $17) ) - (block - (set_local $40 - (get_local $4) - ) - (set_local $12 - (get_local $27) - ) - (set_local $38 - (get_local $0) - ) - (set_local $7 - (i32.const 86) - ) - (br $while-out$17) + ) + (block + (set_local $36 + (get_local $9) ) - (block - (set_local $7 - (get_local $4) - ) - (set_local $25 - (get_local $27) - ) - (set_local $3 - (i32.shl - (get_local $3) - (i32.xor - (i32.and - (get_local $29) - (i32.const 1) - ) + (set_local $37 + (get_local $5) + ) + (set_local $33 + (get_local $8) + ) + (set_local $9 + (i32.const 86) + ) + ) + (block + (set_local $4 + (get_local $5) + ) + (set_local $3 + (i32.shl + (get_local $3) + (i32.xor + (i32.and + (get_local $2) (i32.const 1) ) + (i32.const 1) ) ) - (set_local $5 - (get_local $0) - ) ) + (br $while-in$18) ) - (br $while-in$18) ) ) ) (block - (set_local $40 - (get_local $16) + (set_local $36 + (get_local $6) ) - (set_local $12 + (set_local $37 (i32.const 0) ) - (set_local $38 + (set_local $33 (i32.const 0) ) - (set_local $7 + (set_local $9 (i32.const 86) ) ) @@ -1770,60 +1743,58 @@ ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 86) ) (if - (tee_local $0 + (tee_local $2 (if (i32.and - (i32.eq - (get_local $12) - (i32.const 0) + (i32.eqz + (get_local $37) ) - (i32.eq - (get_local $38) - (i32.const 0) + (i32.eqz + (get_local $33) ) ) (block (if (i32.eqz - (tee_local $16 + (tee_local $6 (i32.and - (get_local $8) + (get_local $10) (i32.or - (tee_local $0 + (tee_local $15 (i32.shl (i32.const 2) - (get_local $34) + (get_local $27) ) ) (i32.sub (i32.const 0) - (get_local $0) + (get_local $15) ) ) ) ) ) (block - (set_local $18 - (get_local $2) + (set_local $6 + (get_local $0) ) (br $do-once$0) ) ) - (set_local $16 + (set_local $6 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $15 (i32.add (i32.and - (get_local $16) + (get_local $6) (i32.sub (i32.const 0) - (get_local $16) + (get_local $6) ) ) (i32.const -1) @@ -1842,13 +1813,13 @@ (i32.or (i32.or (i32.or - (tee_local $0 + (tee_local $15 (i32.and (i32.shr_u - (tee_local $14 + (tee_local $2 (i32.shr_u - (get_local $0) - (get_local $16) + (get_local $15) + (get_local $6) ) ) (i32.const 5) @@ -1856,15 +1827,15 @@ (i32.const 8) ) ) - (get_local $16) + (get_local $6) ) - (tee_local $14 + (tee_local $2 (i32.and (i32.shr_u - (tee_local $12 + (tee_local $5 (i32.shr_u - (get_local $14) - (get_local $0) + (get_local $2) + (get_local $15) ) ) (i32.const 2) @@ -1873,13 +1844,13 @@ ) ) ) - (tee_local $12 + (tee_local $5 (i32.and (i32.shr_u - (tee_local $5 + (tee_local $8 (i32.shr_u - (get_local $12) - (get_local $14) + (get_local $5) + (get_local $2) ) ) (i32.const 1) @@ -1888,13 +1859,13 @@ ) ) ) - (tee_local $5 + (tee_local $8 (i32.and (i32.shr_u (tee_local $3 (i32.shr_u + (get_local $8) (get_local $5) - (get_local $12) ) ) (i32.const 1) @@ -1905,7 +1876,7 @@ ) (i32.shr_u (get_local $3) - (get_local $5) + (get_local $8) ) ) (i32.const 2) @@ -1914,137 +1885,134 @@ ) ) ) - (get_local $12) + (get_local $37) ) ) (block - (set_local $36 - (get_local $40) + (set_local $29 + (get_local $36) ) - (set_local $18 - (get_local $0) + (set_local $28 + (get_local $2) ) - (set_local $17 - (get_local $38) + (set_local $32 + (get_local $33) ) - (set_local $7 + (set_local $9 (i32.const 90) ) ) (block - (set_local $22 - (get_local $40) + (set_local $16 + (get_local $36) ) - (set_local $9 - (get_local $38) + (set_local $11 + (get_local $33) ) ) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 90) ) (loop $while-in$20 - (block $while-out$19 - (set_local $7 - (i32.const 0) - ) - (set_local $3 - (i32.lt_u - (tee_local $5 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $18) - ) - (i32.const -8) + (set_local $9 + (i32.const 0) + ) + (set_local $3 + (i32.lt_u + (tee_local $8 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $28) ) - (get_local $2) + (i32.const -8) ) + (get_local $0) ) - (get_local $36) ) + (get_local $29) ) - (set_local $12 - (select + ) + (set_local $5 + (select + (get_local $8) + (get_local $29) + (get_local $3) + ) + ) + (set_local $8 + (select + (get_local $28) + (get_local $32) + (get_local $3) + ) + ) + (if + (tee_local $3 + (i32.load offset=16 + (get_local $28) + ) + ) + (block + (set_local $29 (get_local $5) - (get_local $36) + ) + (set_local $28 (get_local $3) ) + (set_local $32 + (get_local $8) + ) + (br $while-in$20) ) - (set_local $5 - (select - (get_local $18) - (get_local $17) - (get_local $3) + ) + (if + (tee_local $28 + (i32.load offset=20 + (get_local $28) ) ) - (if - (tee_local $3 - (i32.load offset=16 - (get_local $18) - ) + (block + (set_local $29 + (get_local $5) ) - (block - (set_local $36 - (get_local $12) - ) - (set_local $18 - (get_local $3) - ) - (set_local $17 - (get_local $5) - ) - (br $while-in$20) + (set_local $32 + (get_local $8) ) + (br $while-in$20) ) - (if - (tee_local $18 - (i32.load offset=20 - (get_local $18) - ) - ) - (block - (set_local $36 - (get_local $12) - ) - (set_local $17 - (get_local $5) - ) + (block + (set_local $16 + (get_local $5) ) - (block - (set_local $22 - (get_local $12) - ) - (set_local $9 - (get_local $5) - ) - (br $while-out$19) + (set_local $11 + (get_local $8) ) ) - (br $while-in$20) ) ) ) (if - (get_local $9) + (get_local $11) (if (i32.lt_u - (get_local $22) + (get_local $16) (i32.sub (i32.load (i32.const 1216) ) - (get_local $2) + (get_local $0) ) ) (block (if (i32.lt_u - (get_local $9) - (tee_local $8 + (get_local $11) + (tee_local $10 (i32.load (i32.const 1224) ) @@ -2054,19 +2022,19 @@ ) (if (i32.ge_u - (get_local $9) - (tee_local $5 + (get_local $11) + (tee_local $8 (i32.add - (get_local $9) - (get_local $2) + (get_local $11) + (get_local $0) ) ) ) (call_import $qa) ) - (set_local $12 + (set_local $5 (i32.load offset=24 - (get_local $9) + (get_local $11) ) ) (block $do-once$21 @@ -2074,47 +2042,47 @@ (i32.eq (tee_local $3 (i32.load offset=12 - (get_local $9) + (get_local $11) ) ) - (get_local $9) + (get_local $11) ) (block (if - (tee_local $16 + (tee_local $6 (i32.load - (tee_local $14 + (tee_local $2 (i32.add - (get_local $9) + (get_local $11) (i32.const 20) ) ) ) ) (block - (set_local $11 - (get_local $16) + (set_local $4 + (get_local $6) ) - (set_local $0 - (get_local $14) + (set_local $3 + (get_local $2) ) ) (if - (tee_local $25 + (tee_local $4 (i32.load - (tee_local $0 + (tee_local $15 (i32.add - (get_local $9) + (get_local $11) (i32.const 16) ) ) ) ) - (set_local $11 - (get_local $25) + (set_local $3 + (get_local $15) ) (block - (set_local $20 + (set_local $22 (i32.const 0) ) (br $do-once$21) @@ -2122,65 +2090,62 @@ ) ) (loop $while-in$24 - (block $while-out$23 - (if - (tee_local $16 - (i32.load - (tee_local $14 - (i32.add - (get_local $11) - (i32.const 20) - ) + (if + (tee_local $6 + (i32.load + (tee_local $2 + (i32.add + (get_local $4) + (i32.const 20) ) ) ) - (block - (set_local $11 - (get_local $16) - ) - (set_local $0 - (get_local $14) - ) - (br $while-in$24) + ) + (block + (set_local $4 + (get_local $6) ) + (set_local $3 + (get_local $2) + ) + (br $while-in$24) ) - (if - (tee_local $16 - (i32.load - (tee_local $14 - (i32.add - (get_local $11) - (i32.const 16) - ) + ) + (if + (tee_local $6 + (i32.load + (tee_local $2 + (i32.add + (get_local $4) + (i32.const 16) ) ) ) - (block - (set_local $11 - (get_local $16) - ) - (set_local $0 - (get_local $14) - ) + ) + (block + (set_local $4 + (get_local $6) ) - (br $while-out$23) + (set_local $3 + (get_local $2) + ) + (br $while-in$24) ) - (br $while-in$24) ) ) (if (i32.lt_u - (get_local $0) - (get_local $8) + (get_local $3) + (get_local $10) ) (call_import $qa) (block (i32.store - (get_local $0) + (get_local $3) (i32.const 0) ) - (set_local $20 - (get_local $11) + (set_local $22 + (get_local $4) ) ) ) @@ -2188,51 +2153,51 @@ (block (if (i32.lt_u - (tee_local $14 + (tee_local $2 (i32.load offset=8 - (get_local $9) + (get_local $11) ) ) - (get_local $8) + (get_local $10) ) (call_import $qa) ) (if (i32.ne (i32.load - (tee_local $16 + (tee_local $6 (i32.add - (get_local $14) + (get_local $2) (i32.const 12) ) ) ) - (get_local $9) + (get_local $11) ) (call_import $qa) ) (if (i32.eq (i32.load - (tee_local $0 + (tee_local $15 (i32.add (get_local $3) (i32.const 8) ) ) ) - (get_local $9) + (get_local $11) ) (block (i32.store - (get_local $16) + (get_local $6) (get_local $3) ) (i32.store - (get_local $0) - (get_local $14) + (get_local $15) + (get_local $2) ) - (set_local $20 + (set_local $22 (get_local $3) ) ) @@ -2243,19 +2208,19 @@ ) (block $do-once$25 (if - (get_local $12) + (get_local $5) (block (if (i32.eq - (get_local $9) + (get_local $11) (i32.load - (tee_local $8 + (tee_local $10 (i32.add (i32.const 1512) (i32.shl (tee_local $3 (i32.load offset=28 - (get_local $9) + (get_local $11) ) ) (i32.const 2) @@ -2266,12 +2231,12 @@ ) (block (i32.store - (get_local $8) - (get_local $20) + (get_local $10) + (get_local $22) ) (if (i32.eqz - (get_local $20) + (get_local $22) ) (block (i32.store @@ -2296,7 +2261,7 @@ (block (if (i32.lt_u - (get_local $12) + (get_local $5) (i32.load (i32.const 1224) ) @@ -2308,32 +2273,32 @@ (i32.load (tee_local $3 (i32.add - (get_local $12) + (get_local $5) (i32.const 16) ) ) ) - (get_local $9) + (get_local $11) ) (i32.store (get_local $3) - (get_local $20) + (get_local $22) ) (i32.store offset=20 - (get_local $12) - (get_local $20) + (get_local $5) + (get_local $22) ) ) (br_if $do-once$25 (i32.eqz - (get_local $20) + (get_local $22) ) ) ) ) (if (i32.lt_u - (get_local $20) + (get_local $22) (tee_local $3 (i32.load (i32.const 1224) @@ -2343,42 +2308,42 @@ (call_import $qa) ) (i32.store offset=24 - (get_local $20) - (get_local $12) + (get_local $22) + (get_local $5) ) (if - (tee_local $8 + (tee_local $10 (i32.load offset=16 - (get_local $9) + (get_local $11) ) ) (if (i32.lt_u - (get_local $8) + (get_local $10) (get_local $3) ) (call_import $qa) (block (i32.store offset=16 - (get_local $20) - (get_local $8) + (get_local $22) + (get_local $10) ) (i32.store offset=24 - (get_local $8) - (get_local $20) + (get_local $10) + (get_local $22) ) ) ) ) (if - (tee_local $8 + (tee_local $10 (i32.load offset=20 - (get_local $9) + (get_local $11) ) ) (if (i32.lt_u - (get_local $8) + (get_local $10) (i32.load (i32.const 1224) ) @@ -2386,12 +2351,12 @@ (call_import $qa) (block (i32.store offset=20 - (get_local $20) - (get_local $8) + (get_local $22) + (get_local $10) ) (i32.store offset=24 - (get_local $8) - (get_local $20) + (get_local $10) + (get_local $22) ) ) ) @@ -2402,35 +2367,35 @@ (block $do-once$29 (if (i32.lt_u - (get_local $22) + (get_local $16) (i32.const 16) ) (block (i32.store offset=4 - (get_local $9) + (get_local $11) (i32.or - (tee_local $12 + (tee_local $5 (i32.add - (get_local $22) - (get_local $2) + (get_local $16) + (get_local $0) ) ) (i32.const 3) ) ) (i32.store - (tee_local $8 + (tee_local $10 (i32.add (i32.add - (get_local $9) - (get_local $12) + (get_local $11) + (get_local $5) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $8) + (get_local $10) ) (i32.const 1) ) @@ -2438,44 +2403,44 @@ ) (block (i32.store offset=4 - (get_local $9) + (get_local $11) (i32.or - (get_local $2) + (get_local $0) (i32.const 3) ) ) (i32.store offset=4 - (get_local $5) + (get_local $8) (i32.or - (get_local $22) + (get_local $16) (i32.const 1) ) ) (i32.store (i32.add - (get_local $5) - (get_local $22) + (get_local $8) + (get_local $16) ) - (get_local $22) + (get_local $16) ) - (set_local $8 + (set_local $10 (i32.shr_u - (get_local $22) + (get_local $16) (i32.const 3) ) ) (if (i32.lt_u - (get_local $22) + (get_local $16) (i32.const 256) ) (block - (set_local $12 + (set_local $5 (i32.add (i32.const 1248) (i32.shl (i32.shl - (get_local $8) + (get_local $10) (i32.const 1) ) (i32.const 2) @@ -2489,10 +2454,10 @@ (i32.const 1208) ) ) - (tee_local $14 + (tee_local $2 (i32.shl (i32.const 1) - (get_local $8) + (get_local $10) ) ) ) @@ -2500,9 +2465,9 @@ (i32.lt_u (tee_local $3 (i32.load - (tee_local $14 + (tee_local $2 (i32.add - (get_local $12) + (get_local $5) (i32.const 8) ) ) @@ -2514,10 +2479,10 @@ ) (call_import $qa) (block - (set_local $23 - (get_local $14) + (set_local $19 + (get_local $2) ) - (set_local $13 + (set_local $7 (get_local $3) ) ) @@ -2527,80 +2492,80 @@ (i32.const 1208) (i32.or (get_local $3) - (get_local $14) + (get_local $2) ) ) - (set_local $23 + (set_local $19 (i32.add - (get_local $12) + (get_local $5) (i32.const 8) ) ) - (set_local $13 - (get_local $12) + (set_local $7 + (get_local $5) ) ) ) (i32.store - (get_local $23) - (get_local $5) + (get_local $19) + (get_local $8) ) (i32.store offset=12 - (get_local $13) - (get_local $5) + (get_local $7) + (get_local $8) ) (i32.store offset=8 - (get_local $5) - (get_local $13) + (get_local $8) + (get_local $7) ) (i32.store offset=12 + (get_local $8) (get_local $5) - (get_local $12) ) (br $do-once$29) ) ) - (set_local $0 + (set_local $15 (i32.add (i32.const 1512) (i32.shl - (tee_local $20 + (tee_local $3 (if - (tee_local $12 + (tee_local $5 (i32.shr_u - (get_local $22) + (get_local $16) (i32.const 8) ) ) (if (i32.gt_u - (get_local $22) + (get_local $16) (i32.const 16777215) ) (i32.const 31) (i32.or (i32.and (i32.shr_u - (get_local $22) + (get_local $16) (i32.add - (tee_local $0 + (tee_local $15 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $12 + (tee_local $5 (i32.and (i32.shr_u (i32.add - (tee_local $14 + (tee_local $2 (i32.shl - (get_local $12) + (get_local $5) (tee_local $3 (i32.and (i32.shr_u (i32.add - (get_local $12) + (get_local $5) (i32.const 1048320) ) (i32.const 16) @@ -2619,14 +2584,14 @@ ) (get_local $3) ) - (tee_local $14 + (tee_local $2 (i32.and (i32.shr_u (i32.add - (tee_local $8 + (tee_local $10 (i32.shl - (get_local $14) - (get_local $12) + (get_local $2) + (get_local $5) ) ) (i32.const 245760) @@ -2640,8 +2605,8 @@ ) (i32.shr_u (i32.shl - (get_local $8) - (get_local $14) + (get_local $10) + (get_local $2) ) (i32.const 15) ) @@ -2653,7 +2618,7 @@ (i32.const 1) ) (i32.shl - (get_local $0) + (get_local $15) (i32.const 1) ) ) @@ -2666,34 +2631,34 @@ ) ) (i32.store offset=28 - (get_local $5) - (get_local $20) + (get_local $8) + (get_local $3) ) (i32.store offset=4 - (tee_local $14 + (tee_local $2 (i32.add - (get_local $5) + (get_local $8) (i32.const 16) ) ) (i32.const 0) ) (i32.store - (get_local $14) + (get_local $2) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $14 + (tee_local $2 (i32.load (i32.const 1212) ) ) - (tee_local $8 + (tee_local $10 (i32.shl (i32.const 1) - (get_local $20) + (get_local $3) ) ) ) @@ -2702,51 +2667,51 @@ (i32.store (i32.const 1212) (i32.or - (get_local $14) - (get_local $8) + (get_local $2) + (get_local $10) ) ) (i32.store - (get_local $0) - (get_local $5) + (get_local $15) + (get_local $8) ) (i32.store offset=24 - (get_local $5) - (get_local $0) + (get_local $8) + (get_local $15) ) (i32.store offset=12 - (get_local $5) - (get_local $5) + (get_local $8) + (get_local $8) ) (i32.store offset=8 - (get_local $5) - (get_local $5) + (get_local $8) + (get_local $8) ) (br $do-once$29) ) ) - (set_local $8 + (set_local $10 (i32.shl - (get_local $22) + (get_local $16) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $20) + (get_local $3) (i32.const 1) ) ) (i32.eq - (get_local $20) + (get_local $3) (i32.const 31) ) ) ) ) - (set_local $14 + (set_local $2 (i32.load - (get_local $0) + (get_local $15) ) ) (loop $while-in$32 @@ -2755,17 +2720,17 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $14) + (get_local $2) ) (i32.const -8) ) - (get_local $22) + (get_local $16) ) (block - (set_local $21 - (get_local $14) + (set_local $18 + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 148) ) (br $while-out$31) @@ -2774,15 +2739,15 @@ (if (tee_local $3 (i32.load - (tee_local $0 + (tee_local $15 (i32.add (i32.add - (get_local $14) + (get_local $2) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $8) + (get_local $10) (i32.const 31) ) (i32.const 2) @@ -2792,40 +2757,39 @@ ) ) (block - (set_local $8 + (set_local $10 (i32.shl - (get_local $8) + (get_local $10) (i32.const 1) ) ) - (set_local $14 + (set_local $2 (get_local $3) ) + (br $while-in$32) ) (block - (set_local $6 - (get_local $0) + (set_local $21 + (get_local $15) ) - (set_local $24 - (get_local $14) + (set_local $14 + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 145) ) - (br $while-out$31) ) ) - (br $while-in$32) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 145) ) (if (i32.lt_u - (get_local $6) + (get_local $21) (i32.load (i32.const 1224) ) @@ -2833,36 +2797,36 @@ (call_import $qa) (block (i32.store - (get_local $6) - (get_local $5) + (get_local $21) + (get_local $8) ) (i32.store offset=24 - (get_local $5) - (get_local $24) + (get_local $8) + (get_local $14) ) (i32.store offset=12 - (get_local $5) - (get_local $5) + (get_local $8) + (get_local $8) ) (i32.store offset=8 - (get_local $5) - (get_local $5) + (get_local $8) + (get_local $8) ) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 148) ) (if (i32.and (i32.ge_u - (tee_local $8 + (tee_local $10 (i32.load - (tee_local $14 + (tee_local $2 (i32.add - (get_local $21) + (get_local $18) (i32.const 8) ) ) @@ -2875,29 +2839,29 @@ ) ) (i32.ge_u - (get_local $21) + (get_local $18) (get_local $3) ) ) (block (i32.store offset=12 + (get_local $10) (get_local $8) - (get_local $5) ) (i32.store - (get_local $14) - (get_local $5) + (get_local $2) + (get_local $8) ) (i32.store offset=8 - (get_local $5) (get_local $8) + (get_local $10) ) (i32.store offset=12 - (get_local $5) - (get_local $21) + (get_local $8) + (get_local $18) ) (i32.store offset=24 - (get_local $5) + (get_local $8) (i32.const 0) ) ) @@ -2909,26 +2873,26 @@ ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $9) + (get_local $11) (i32.const 8) ) ) ) - (set_local $18 - (get_local $2) + (set_local $6 + (get_local $0) ) ) - (set_local $18 - (get_local $2) + (set_local $6 + (get_local $0) ) ) ) - (set_local $18 - (get_local $2) + (set_local $6 + (get_local $0) ) ) ) @@ -2937,25 +2901,25 @@ ) (if (i32.ge_u - (tee_local $9 + (tee_local $11 (i32.load (i32.const 1216) ) ) - (get_local $18) + (get_local $6) ) (block - (set_local $24 + (set_local $14 (i32.load (i32.const 1228) ) ) (if (i32.gt_u - (tee_local $21 + (tee_local $18 (i32.sub - (get_local $9) - (get_local $18) + (get_local $11) + (get_local $6) ) ) (i32.const 15) @@ -2963,35 +2927,35 @@ (block (i32.store (i32.const 1228) - (tee_local $6 + (tee_local $21 (i32.add - (get_local $24) - (get_local $18) + (get_local $14) + (get_local $6) ) ) ) (i32.store (i32.const 1216) - (get_local $21) + (get_local $18) ) (i32.store offset=4 - (get_local $6) + (get_local $21) (i32.or - (get_local $21) + (get_local $18) (i32.const 1) ) ) (i32.store (i32.add - (get_local $6) (get_local $21) + (get_local $18) ) - (get_local $21) + (get_local $18) ) (i32.store offset=4 - (get_local $24) + (get_local $14) (i32.or - (get_local $18) + (get_local $6) (i32.const 3) ) ) @@ -3006,25 +2970,25 @@ (i32.const 0) ) (i32.store offset=4 - (get_local $24) + (get_local $14) (i32.or - (get_local $9) + (get_local $11) (i32.const 3) ) ) (i32.store - (tee_local $21 + (tee_local $18 (i32.add (i32.add - (get_local $24) - (get_local $9) + (get_local $14) + (get_local $11) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $21) + (get_local $18) ) (i32.const 1) ) @@ -3032,11 +2996,11 @@ ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $24) + (get_local $14) (i32.const 8) ) ) @@ -3044,56 +3008,56 @@ ) (if (i32.gt_u - (tee_local $24 + (tee_local $14 (i32.load (i32.const 1220) ) ) - (get_local $18) + (get_local $6) ) (block (i32.store (i32.const 1220) - (tee_local $21 + (tee_local $18 (i32.sub - (get_local $24) - (get_local $18) + (get_local $14) + (get_local $6) ) ) ) (i32.store (i32.const 1232) - (tee_local $9 + (tee_local $11 (i32.add - (tee_local $24 + (tee_local $14 (i32.load (i32.const 1232) ) ) - (get_local $18) + (get_local $6) ) ) ) (i32.store offset=4 - (get_local $9) + (get_local $11) (i32.or - (get_local $21) + (get_local $18) (i32.const 1) ) ) (i32.store offset=4 - (get_local $24) + (get_local $14) (i32.or - (get_local $18) + (get_local $6) (i32.const 3) ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $24) + (get_local $14) (i32.const 8) ) ) @@ -3131,11 +3095,11 @@ (i32.const 0) ) (i32.store - (get_local $15) - (tee_local $24 + (get_local $13) + (tee_local $14 (i32.xor (i32.and - (get_local $15) + (get_local $13) (i32.const -16) ) (i32.const 1431655768) @@ -3144,48 +3108,48 @@ ) (i32.store (i32.const 1680) - (get_local $24) + (get_local $14) ) ) ) - (set_local $24 + (set_local $14 (i32.add - (get_local $18) + (get_local $6) (i32.const 48) ) ) (if (i32.le_u - (tee_local $15 + (tee_local $13 (i32.and - (tee_local $9 + (tee_local $11 (i32.add - (tee_local $15 + (tee_local $13 (i32.load (i32.const 1688) ) ) - (tee_local $21 + (tee_local $18 (i32.add - (get_local $18) + (get_local $6) (i32.const 47) ) ) ) ) - (tee_local $6 + (tee_local $21 (i32.sub (i32.const 0) - (get_local $15) + (get_local $13) ) ) ) ) - (get_local $18) + (get_local $6) ) (block (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.const 0) @@ -3193,7 +3157,7 @@ ) ) (if - (tee_local $22 + (tee_local $16 (i32.load (i32.const 1648) ) @@ -3201,26 +3165,26 @@ (if (i32.or (i32.le_u - (tee_local $13 + (tee_local $7 (i32.add - (tee_local $20 + (tee_local $3 (i32.load (i32.const 1640) ) ) - (get_local $15) + (get_local $13) ) ) - (get_local $20) + (get_local $3) ) (i32.gt_u - (get_local $13) - (get_local $22) + (get_local $7) + (get_local $16) ) ) (block (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.const 0) @@ -3230,7 +3194,7 @@ ) (if (i32.eq - (tee_local $7 + (tee_local $9 (block $label$break$b (if (i32.and @@ -3243,90 +3207,85 @@ (block (block $label$break$c (if - (tee_local $22 + (tee_local $16 (i32.load (i32.const 1232) ) ) (block - (set_local $13 + (set_local $7 (i32.const 1656) ) (loop $while-in$36 (block $while-out$35 (if (i32.le_u - (tee_local $20 + (tee_local $3 (i32.load - (get_local $13) + (get_local $7) ) ) - (get_local $22) + (get_local $16) ) (if (i32.gt_u (i32.add - (get_local $20) + (get_local $3) (i32.load - (tee_local $23 + (tee_local $19 (i32.add - (get_local $13) + (get_local $7) (i32.const 4) ) ) ) ) - (get_local $22) + (get_local $16) ) (block (set_local $0 - (get_local $13) + (get_local $7) ) - (set_local $17 - (get_local $23) + (set_local $5 + (get_local $19) ) (br $while-out$35) ) ) ) - (if - (i32.eqz - (tee_local $13 - (i32.load offset=8 - (get_local $13) - ) - ) - ) - (block - (set_local $7 - (i32.const 171) + (br_if $while-in$36 + (tee_local $7 + (i32.load offset=8 + (get_local $7) ) - (br $label$break$c) ) ) - (br $while-in$36) + (set_local $9 + (i32.const 171) + ) + (br $label$break$c) ) ) (if (i32.lt_u - (tee_local $13 + (tee_local $7 (i32.and (i32.sub - (get_local $9) + (get_local $11) (i32.load (i32.const 1220) ) ) - (get_local $6) + (get_local $21) ) ) (i32.const 2147483647) ) (if (i32.eq - (tee_local $23 + (tee_local $19 (call_import $ta - (get_local $13) + (get_local $7) ) ) (i32.add @@ -3334,21 +3293,21 @@ (get_local $0) ) (i32.load - (get_local $17) + (get_local $5) ) ) ) (if (i32.ne - (get_local $23) + (get_local $19) (i32.const -1) ) (block - (set_local $28 - (get_local $23) + (set_local $20 + (get_local $19) ) - (set_local $33 - (get_local $13) + (set_local $26 + (get_local $7) ) (br $label$break$b (i32.const 191) @@ -3356,20 +3315,20 @@ ) ) (block - (set_local $10 - (get_local $23) + (set_local $12 + (get_local $19) ) (set_local $1 - (get_local $13) + (get_local $7) ) - (set_local $7 + (set_local $9 (i32.const 181) ) ) ) ) ) - (set_local $7 + (set_local $9 (i32.const 171) ) ) @@ -3377,12 +3336,12 @@ (block $do-once$37 (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 171) ) (if (i32.ne - (tee_local $22 + (tee_local $16 (call_import $ta (i32.const 0) ) @@ -3390,12 +3349,12 @@ (i32.const -1) ) (block - (set_local $6 + (set_local $2 (if (i32.and - (tee_local $23 + (tee_local $19 (i32.add - (tee_local $13 + (tee_local $7 (i32.load (i32.const 1684) ) @@ -3403,53 +3362,53 @@ (i32.const -1) ) ) - (tee_local $2 - (get_local $22) + (tee_local $0 + (get_local $16) ) ) (i32.add (i32.sub - (get_local $15) - (get_local $2) + (get_local $13) + (get_local $0) ) (i32.and (i32.add - (get_local $23) - (get_local $2) + (get_local $19) + (get_local $0) ) (i32.sub (i32.const 0) - (get_local $13) + (get_local $7) ) ) ) - (get_local $15) + (get_local $13) ) ) - (set_local $2 + (set_local $0 (i32.add - (tee_local $13 + (tee_local $7 (i32.load (i32.const 1640) ) ) - (get_local $6) + (get_local $2) ) ) (if (i32.and (i32.gt_u + (get_local $2) (get_local $6) - (get_local $18) ) (i32.lt_u - (get_local $6) + (get_local $2) (i32.const 2147483647) ) ) (block (if - (tee_local $23 + (tee_local $19 (i32.load (i32.const 1648) ) @@ -3457,44 +3416,44 @@ (br_if $do-once$37 (i32.or (i32.le_u - (get_local $2) - (get_local $13) + (get_local $0) + (get_local $7) ) (i32.gt_u - (get_local $2) - (get_local $23) + (get_local $0) + (get_local $19) ) ) ) ) (if (i32.eq - (tee_local $23 + (tee_local $19 (call_import $ta - (get_local $6) + (get_local $2) ) ) - (get_local $22) + (get_local $16) ) (block - (set_local $28 - (get_local $22) + (set_local $20 + (get_local $16) ) - (set_local $33 - (get_local $6) + (set_local $26 + (get_local $2) ) (br $label$break$b (i32.const 191) ) ) (block - (set_local $10 - (get_local $23) + (set_local $12 + (get_local $19) ) (set_local $1 - (get_local $6) + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 181) ) ) @@ -3508,11 +3467,11 @@ (block $label$break$d (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 181) ) (block - (set_local $23 + (set_local $19 (i32.sub (i32.const 0) (get_local $1) @@ -3521,7 +3480,7 @@ (if (i32.and (i32.gt_u - (get_local $24) + (get_local $14) (get_local $1) ) (i32.and @@ -3530,21 +3489,21 @@ (i32.const 2147483647) ) (i32.ne - (get_local $10) + (get_local $12) (i32.const -1) ) ) ) (if (i32.lt_u - (tee_local $2 + (tee_local $0 (i32.and (i32.add (i32.sub - (get_local $21) + (get_local $18) (get_local $1) ) - (tee_local $22 + (tee_local $16 (i32.load (i32.const 1688) ) @@ -3552,7 +3511,7 @@ ) (i32.sub (i32.const 0) - (get_local $22) + (get_local $16) ) ) ) @@ -3561,21 +3520,21 @@ (if (i32.eq (call_import $ta - (get_local $2) + (get_local $0) ) (i32.const -1) ) (block (drop (call_import $ta - (get_local $23) + (get_local $19) ) ) (br $label$break$d) ) (set_local $4 (i32.add - (get_local $2) + (get_local $0) (get_local $1) ) ) @@ -3590,14 +3549,14 @@ ) (if (i32.ne - (get_local $10) + (get_local $12) (i32.const -1) ) (block - (set_local $28 - (get_local $10) + (set_local $20 + (get_local $12) ) - (set_local $33 + (set_local $26 (get_local $4) ) (br $label$break$b @@ -3626,7 +3585,7 @@ ) (if (i32.lt_u - (get_local $15) + (get_local $13) (i32.const 2147483647) ) (if @@ -3634,10 +3593,10 @@ (i32.lt_u (tee_local $4 (call_import $ta - (get_local $15) + (get_local $13) ) ) - (tee_local $15 + (tee_local $13 (call_import $ta (i32.const 0) ) @@ -3649,32 +3608,32 @@ (i32.const -1) ) (i32.ne - (get_local $15) + (get_local $13) (i32.const -1) ) ) ) (if (i32.gt_u - (tee_local $10 + (tee_local $12 (i32.sub - (get_local $15) + (get_local $13) (get_local $4) ) ) (i32.add - (get_local $18) + (get_local $6) (i32.const 40) ) ) (block - (set_local $28 + (set_local $20 (get_local $4) ) - (set_local $33 - (get_local $10) + (set_local $26 + (get_local $12) ) - (set_local $7 + (set_local $9 (i32.const 191) ) ) @@ -3684,36 +3643,36 @@ ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 191) ) (block (i32.store (i32.const 1640) - (tee_local $10 + (tee_local $12 (i32.add (i32.load (i32.const 1640) ) - (get_local $33) + (get_local $26) ) ) ) (if (i32.gt_u - (get_local $10) + (get_local $12) (i32.load (i32.const 1644) ) ) (i32.store (i32.const 1644) - (get_local $10) + (get_local $12) ) ) (block $do-once$42 (if - (tee_local $10 + (tee_local $12 (i32.load (i32.const 1232) ) @@ -3726,16 +3685,16 @@ (block $do-out$46 (if (i32.eq - (get_local $28) + (get_local $20) (i32.add (tee_local $4 (i32.load (get_local $1) ) ) - (tee_local $21 + (tee_local $18 (i32.load - (tee_local $15 + (tee_local $13 (i32.add (get_local $1) (i32.const 4) @@ -3746,19 +3705,19 @@ ) ) (block - (set_local $50 + (set_local $49 (get_local $4) ) + (set_local $50 + (get_local $13) + ) (set_local $51 - (get_local $15) + (get_local $18) ) (set_local $52 - (get_local $21) - ) - (set_local $35 (get_local $1) ) - (set_local $7 + (set_local $9 (i32.const 201) ) (br $do-out$46) @@ -3778,14 +3737,14 @@ ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 201) ) (if (i32.eqz (i32.and (i32.load offset=12 - (get_local $35) + (get_local $52) ) (i32.const 8) ) @@ -3793,56 +3752,53 @@ (if (i32.and (i32.lt_u - (get_local $10) - (get_local $28) + (get_local $12) + (get_local $20) ) (i32.ge_u - (get_local $10) - (get_local $50) + (get_local $12) + (get_local $49) ) ) (block (i32.store - (get_local $51) + (get_local $50) (i32.add - (get_local $52) - (get_local $33) + (get_local $51) + (get_local $26) ) ) (set_local $1 (i32.add - (get_local $10) - (tee_local $21 + (get_local $12) + (tee_local $18 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $10) + (get_local $12) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) ) - (set_local $15 + (set_local $13 (i32.add (i32.sub - (get_local $33) - (get_local $21) + (get_local $26) + (get_local $18) ) (i32.load (i32.const 1220) @@ -3855,19 +3811,19 @@ ) (i32.store (i32.const 1220) - (get_local $15) + (get_local $13) ) (i32.store offset=4 (get_local $1) (i32.or - (get_local $15) + (get_local $13) (i32.const 1) ) ) (i32.store offset=4 (i32.add (get_local $1) - (get_local $15) + (get_local $13) ) (i32.const 40) ) @@ -3882,11 +3838,11 @@ ) ) ) - (set_local $35 + (set_local $8 (if (i32.lt_u - (get_local $28) - (tee_local $15 + (get_local $20) + (tee_local $13 (i32.load (i32.const 1224) ) @@ -3895,17 +3851,17 @@ (block (i32.store (i32.const 1224) - (get_local $28) + (get_local $20) ) - (get_local $28) + (get_local $20) ) - (get_local $15) + (get_local $13) ) ) - (set_local $15 + (set_local $13 (i32.add - (get_local $28) - (get_local $33) + (get_local $20) + (get_local $26) ) ) (set_local $1 @@ -3918,63 +3874,57 @@ (i32.load (get_local $1) ) - (get_local $15) + (get_local $13) ) (block (set_local $53 (get_local $1) ) - (set_local $45 + (set_local $43 (get_local $1) ) - (set_local $7 + (set_local $9 (i32.const 209) ) (br $while-out$48) ) ) - (if - (i32.eqz - (tee_local $1 - (i32.load offset=8 - (get_local $1) - ) - ) - ) - (block - (set_local $37 - (i32.const 1656) + (br_if $while-in$49 + (tee_local $1 + (i32.load offset=8 + (get_local $1) ) - (br $while-out$48) ) ) - (br $while-in$49) + (set_local $30 + (i32.const 1656) + ) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 209) ) (if (i32.and (i32.load offset=12 - (get_local $45) + (get_local $43) ) (i32.const 8) ) - (set_local $37 + (set_local $30 (i32.const 1656) ) (block (i32.store (get_local $53) - (get_local $28) + (get_local $20) ) (i32.store (tee_local $1 (i32.add - (get_local $45) + (get_local $43) (i32.const 4) ) ) @@ -3982,82 +3932,76 @@ (i32.load (get_local $1) ) - (get_local $33) + (get_local $26) ) ) - (set_local $21 + (set_local $18 (i32.add - (get_local $28) + (get_local $20) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $28) + (get_local $20) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) (set_local $4 (i32.add - (get_local $15) + (get_local $13) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $15) + (get_local $13) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) (set_local $1 (i32.add - (get_local $21) (get_local $18) + (get_local $6) ) ) - (set_local $24 + (set_local $14 (i32.sub (i32.sub (get_local $4) - (get_local $21) + (get_local $18) ) - (get_local $18) + (get_local $6) ) ) (i32.store offset=4 - (get_local $21) + (get_local $18) (i32.or - (get_local $18) + (get_local $6) (i32.const 3) ) ) @@ -4065,17 +4009,17 @@ (if (i32.eq (get_local $4) - (get_local $10) + (get_local $12) ) (block (i32.store (i32.const 1220) - (tee_local $6 + (tee_local $2 (i32.add (i32.load (i32.const 1220) ) - (get_local $24) + (get_local $14) ) ) ) @@ -4086,7 +4030,7 @@ (i32.store offset=4 (get_local $1) (i32.or - (get_local $6) + (get_local $2) (i32.const 1) ) ) @@ -4102,12 +4046,12 @@ (block (i32.store (i32.const 1216) - (tee_local $6 + (tee_local $2 (i32.add (i32.load (i32.const 1216) ) - (get_local $24) + (get_local $14) ) ) ) @@ -4118,16 +4062,16 @@ (i32.store offset=4 (get_local $1) (i32.or - (get_local $6) + (get_local $2) (i32.const 1) ) ) (i32.store (i32.add (get_local $1) - (get_local $6) + (get_local $2) ) - (get_local $6) + (get_local $2) ) (br $do-once$50) ) @@ -4138,7 +4082,7 @@ (if (i32.eq (i32.and - (tee_local $6 + (tee_local $2 (i32.load offset=4 (get_local $4) ) @@ -4148,26 +4092,26 @@ (i32.const 1) ) (block - (set_local $17 + (set_local $5 (i32.and - (get_local $6) + (get_local $2) (i32.const -8) ) ) (set_local $0 (i32.shr_u - (get_local $6) + (get_local $2) (i32.const 3) ) ) (block $label$break$e (if (i32.lt_u - (get_local $6) + (get_local $2) (i32.const 256) ) (block - (set_local $9 + (set_local $11 (i32.load offset=12 (get_local $4) ) @@ -4175,12 +4119,12 @@ (block $do-once$53 (if (i32.ne - (tee_local $6 + (tee_local $21 (i32.load offset=8 (get_local $4) ) ) - (tee_local $23 + (tee_local $19 (i32.add (i32.const 1248) (i32.shl @@ -4196,15 +4140,15 @@ (block (if (i32.lt_u - (get_local $6) - (get_local $35) + (get_local $21) + (get_local $8) ) (call_import $qa) ) (br_if $do-once$53 (i32.eq (i32.load offset=12 - (get_local $6) + (get_local $21) ) (get_local $4) ) @@ -4215,8 +4159,8 @@ ) (if (i32.eq - (get_local $9) - (get_local $6) + (get_local $11) + (get_local $21) ) (block (i32.store @@ -4240,29 +4184,29 @@ (block $do-once$55 (if (i32.eq - (get_local $9) - (get_local $23) + (get_local $11) + (get_local $19) ) - (set_local $46 + (set_local $44 (i32.add - (get_local $9) + (get_local $11) (i32.const 8) ) ) (block (if (i32.lt_u - (get_local $9) - (get_local $35) + (get_local $11) + (get_local $8) ) (call_import $qa) ) (if (i32.eq (i32.load - (tee_local $2 + (tee_local $0 (i32.add - (get_local $9) + (get_local $11) (i32.const 8) ) ) @@ -4270,8 +4214,8 @@ (get_local $4) ) (block - (set_local $46 - (get_local $2) + (set_local $44 + (get_local $0) ) (br $do-once$55) ) @@ -4281,16 +4225,16 @@ ) ) (i32.store offset=12 - (get_local $6) - (get_local $9) + (get_local $21) + (get_local $11) ) (i32.store - (get_local $46) - (get_local $6) + (get_local $44) + (get_local $21) ) ) (block - (set_local $23 + (set_local $19 (i32.load offset=24 (get_local $4) ) @@ -4298,7 +4242,7 @@ (block $do-once$57 (if (i32.eq - (tee_local $2 + (tee_local $0 (i32.load offset=12 (get_local $4) ) @@ -4307,11 +4251,11 @@ ) (block (if - (tee_local $20 + (tee_local $3 (i32.load - (tee_local $13 + (tee_local $7 (i32.add - (tee_local $22 + (tee_local $16 (i32.add (get_local $4) (i32.const 16) @@ -4323,29 +4267,24 @@ ) ) (block - (set_local $11 - (get_local $20) - ) (set_local $0 - (get_local $13) + (get_local $3) + ) + (set_local $16 + (get_local $7) ) ) (if - (tee_local $20 + (tee_local $22 (i32.load - (get_local $22) + (get_local $16) ) ) - (block - (set_local $11 - (get_local $20) - ) - (set_local $0 - (get_local $22) - ) + (set_local $0 + (get_local $22) ) (block - (set_local $30 + (set_local $24 (i32.const 0) ) (br $do-once$57) @@ -4353,65 +4292,62 @@ ) ) (loop $while-in$60 - (block $while-out$59 - (if - (tee_local $20 - (i32.load - (tee_local $13 - (i32.add - (get_local $11) - (i32.const 20) - ) + (if + (tee_local $3 + (i32.load + (tee_local $7 + (i32.add + (get_local $0) + (i32.const 20) ) ) ) - (block - (set_local $11 - (get_local $20) - ) - (set_local $0 - (get_local $13) - ) - (br $while-in$60) + ) + (block + (set_local $0 + (get_local $3) + ) + (set_local $16 + (get_local $7) ) + (br $while-in$60) ) - (if - (tee_local $20 - (i32.load - (tee_local $13 - (i32.add - (get_local $11) - (i32.const 16) - ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $7 + (i32.add + (get_local $0) + (i32.const 16) ) ) ) - (block - (set_local $11 - (get_local $20) - ) - (set_local $0 - (get_local $13) - ) + ) + (block + (set_local $0 + (get_local $3) + ) + (set_local $16 + (get_local $7) ) - (br $while-out$59) + (br $while-in$60) ) - (br $while-in$60) ) ) (if (i32.lt_u - (get_local $0) - (get_local $35) + (get_local $16) + (get_local $8) ) (call_import $qa) (block (i32.store - (get_local $0) + (get_local $16) (i32.const 0) ) - (set_local $30 - (get_local $11) + (set_local $24 + (get_local $0) ) ) ) @@ -4419,21 +4355,21 @@ (block (if (i32.lt_u - (tee_local $13 + (tee_local $7 (i32.load offset=8 (get_local $4) ) ) - (get_local $35) + (get_local $8) ) (call_import $qa) ) (if (i32.ne (i32.load - (tee_local $20 + (tee_local $3 (i32.add - (get_local $13) + (get_local $7) (i32.const 12) ) ) @@ -4445,9 +4381,9 @@ (if (i32.eq (i32.load - (tee_local $22 + (tee_local $16 (i32.add - (get_local $2) + (get_local $0) (i32.const 8) ) ) @@ -4456,15 +4392,15 @@ ) (block (i32.store - (get_local $20) - (get_local $2) + (get_local $3) + (get_local $0) ) (i32.store - (get_local $22) - (get_local $13) + (get_local $16) + (get_local $7) ) - (set_local $30 - (get_local $2) + (set_local $24 + (get_local $0) ) ) (call_import $qa) @@ -4474,7 +4410,7 @@ ) (br_if $label$break$e (i32.eqz - (get_local $23) + (get_local $19) ) ) (block $do-once$61 @@ -4482,11 +4418,11 @@ (i32.eq (get_local $4) (i32.load - (tee_local $6 + (tee_local $21 (i32.add (i32.const 1512) (i32.shl - (tee_local $2 + (tee_local $0 (i32.load offset=28 (get_local $4) ) @@ -4499,11 +4435,11 @@ ) (block (i32.store - (get_local $6) - (get_local $30) + (get_local $21) + (get_local $24) ) (br_if $do-once$61 - (get_local $30) + (get_local $24) ) (i32.store (i32.const 1212) @@ -4514,7 +4450,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $2) + (get_local $0) ) (i32.const -1) ) @@ -4525,7 +4461,7 @@ (block (if (i32.lt_u - (get_local $23) + (get_local $19) (i32.load (i32.const 1224) ) @@ -4535,9 +4471,9 @@ (if (i32.eq (i32.load - (tee_local $9 + (tee_local $11 (i32.add - (get_local $23) + (get_local $19) (i32.const 16) ) ) @@ -4545,17 +4481,17 @@ (get_local $4) ) (i32.store - (get_local $9) - (get_local $30) + (get_local $11) + (get_local $24) ) (i32.store offset=20 - (get_local $23) - (get_local $30) + (get_local $19) + (get_local $24) ) ) (br_if $label$break$e (i32.eqz - (get_local $30) + (get_local $24) ) ) ) @@ -4563,8 +4499,8 @@ ) (if (i32.lt_u - (get_local $30) - (tee_local $2 + (get_local $24) + (tee_local $0 (i32.load (i32.const 1224) ) @@ -4573,13 +4509,13 @@ (call_import $qa) ) (i32.store offset=24 - (get_local $30) - (get_local $23) + (get_local $24) + (get_local $19) ) (if - (tee_local $9 + (tee_local $11 (i32.load - (tee_local $6 + (tee_local $21 (i32.add (get_local $4) (i32.const 16) @@ -4589,34 +4525,34 @@ ) (if (i32.lt_u - (get_local $9) - (get_local $2) + (get_local $11) + (get_local $0) ) (call_import $qa) (block (i32.store offset=16 - (get_local $30) - (get_local $9) + (get_local $24) + (get_local $11) ) (i32.store offset=24 - (get_local $9) - (get_local $30) + (get_local $11) + (get_local $24) ) ) ) ) (br_if $label$break$e (i32.eqz - (tee_local $9 + (tee_local $11 (i32.load offset=4 - (get_local $6) + (get_local $21) ) ) ) ) (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.load (i32.const 1224) ) @@ -4624,35 +4560,30 @@ (call_import $qa) (block (i32.store offset=20 - (get_local $30) - (get_local $9) + (get_local $24) + (get_local $11) ) (i32.store offset=24 - (get_local $9) - (get_local $30) + (get_local $11) + (get_local $24) ) ) ) ) ) ) - (set_local $11 + (set_local $14 (i32.add - (get_local $17) - (get_local $24) + (get_local $5) + (get_local $14) ) ) (i32.add (get_local $4) - (get_local $17) - ) - ) - (block - (set_local $11 - (get_local $24) + (get_local $5) ) - (get_local $4) ) + (get_local $4) ) (i32.const 4) ) @@ -4667,30 +4598,30 @@ (i32.store offset=4 (get_local $1) (i32.or - (get_local $11) + (get_local $14) (i32.const 1) ) ) (i32.store (i32.add (get_local $1) - (get_local $11) + (get_local $14) ) - (get_local $11) + (get_local $14) ) (set_local $0 (i32.shr_u - (get_local $11) + (get_local $14) (i32.const 3) ) ) (if (i32.lt_u - (get_local $11) + (get_local $14) (i32.const 256) ) (block - (set_local $6 + (set_local $2 (i32.add (i32.const 1248) (i32.shl @@ -4705,12 +4636,12 @@ (block $do-once$65 (if (i32.and - (tee_local $9 + (tee_local $11 (i32.load (i32.const 1208) ) ) - (tee_local $2 + (tee_local $0 (i32.shl (i32.const 1) (get_local $0) @@ -4720,11 +4651,11 @@ (block (if (i32.ge_u - (tee_local $23 + (tee_local $19 (i32.load (tee_local $0 (i32.add - (get_local $6) + (get_local $2) (i32.const 8) ) ) @@ -4735,11 +4666,11 @@ ) ) (block - (set_local $47 + (set_local $45 (get_local $0) ) - (set_local $41 - (get_local $23) + (set_local $38 + (get_local $19) ) (br $do-once$65) ) @@ -4750,51 +4681,51 @@ (i32.store (i32.const 1208) (i32.or - (get_local $9) - (get_local $2) + (get_local $11) + (get_local $0) ) ) - (set_local $47 + (set_local $45 (i32.add - (get_local $6) + (get_local $2) (i32.const 8) ) ) - (set_local $41 - (get_local $6) + (set_local $38 + (get_local $2) ) ) ) ) (i32.store - (get_local $47) + (get_local $45) (get_local $1) ) (i32.store offset=12 - (get_local $41) + (get_local $38) (get_local $1) ) (i32.store offset=8 (get_local $1) - (get_local $41) + (get_local $38) ) (i32.store offset=12 (get_local $1) - (get_local $6) + (get_local $2) ) (br $do-once$50) ) ) - (set_local $2 + (set_local $0 (i32.add (i32.const 1512) (i32.shl - (tee_local $0 + (tee_local $6 (block $do-once$67 (if - (tee_local $2 + (tee_local $0 (i32.shr_u - (get_local $11) + (get_local $14) (i32.const 8) ) ) @@ -4802,33 +4733,33 @@ (br_if $do-once$67 (i32.const 31) (i32.gt_u - (get_local $11) + (get_local $14) (i32.const 16777215) ) ) (i32.or (i32.and (i32.shr_u - (get_local $11) + (get_local $14) (i32.add - (tee_local $13 + (tee_local $7 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $23 + (tee_local $19 (i32.and (i32.shr_u (i32.add - (tee_local $17 + (tee_local $5 (i32.shl - (get_local $2) - (tee_local $9 + (get_local $0) + (tee_local $11 (i32.and (i32.shr_u (i32.add - (get_local $2) + (get_local $0) (i32.const 1048320) ) (i32.const 16) @@ -4845,16 +4776,16 @@ (i32.const 4) ) ) - (get_local $9) + (get_local $11) ) - (tee_local $17 + (tee_local $5 (i32.and (i32.shr_u (i32.add (tee_local $0 (i32.shl - (get_local $17) - (get_local $23) + (get_local $5) + (get_local $19) ) ) (i32.const 245760) @@ -4869,7 +4800,7 @@ (i32.shr_u (i32.shl (get_local $0) - (get_local $17) + (get_local $5) ) (i32.const 15) ) @@ -4881,7 +4812,7 @@ (i32.const 1) ) (i32.shl - (get_local $13) + (get_local $7) (i32.const 1) ) ) @@ -4896,10 +4827,10 @@ ) (i32.store offset=28 (get_local $1) - (get_local $0) + (get_local $6) ) (i32.store offset=4 - (tee_local $6 + (tee_local $2 (i32.add (get_local $1) (i32.const 16) @@ -4908,21 +4839,21 @@ (i32.const 0) ) (i32.store - (get_local $6) + (get_local $2) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $6 + (tee_local $2 (i32.load (i32.const 1212) ) ) - (tee_local $13 + (tee_local $7 (i32.shl (i32.const 1) - (get_local $0) + (get_local $6) ) ) ) @@ -4931,17 +4862,17 @@ (i32.store (i32.const 1212) (i32.or - (get_local $6) - (get_local $13) + (get_local $2) + (get_local $7) ) ) (i32.store - (get_local $2) + (get_local $0) (get_local $1) ) (i32.store offset=24 (get_local $1) - (get_local $2) + (get_local $0) ) (i32.store offset=12 (get_local $1) @@ -4954,28 +4885,28 @@ (br $do-once$50) ) ) - (set_local $13 + (set_local $7 (i32.shl - (get_local $11) + (get_local $14) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $0) + (get_local $6) (i32.const 1) ) ) (i32.eq - (get_local $0) + (get_local $6) (i32.const 31) ) ) ) ) - (set_local $6 + (set_local $2 (i32.load - (get_local $2) + (get_local $0) ) ) (loop $while-in$70 @@ -4984,34 +4915,34 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $6) + (get_local $2) ) (i32.const -8) ) - (get_local $11) + (get_local $14) ) (block - (set_local $42 - (get_local $6) + (set_local $39 + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 279) ) (br $while-out$69) ) ) (if - (tee_local $17 + (tee_local $5 (i32.load - (tee_local $2 + (tee_local $0 (i32.add (i32.add - (get_local $6) + (get_local $2) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $13) + (get_local $7) (i32.const 31) ) (i32.const 2) @@ -5021,40 +4952,39 @@ ) ) (block - (set_local $13 + (set_local $7 (i32.shl - (get_local $13) + (get_local $7) (i32.const 1) ) ) - (set_local $6 - (get_local $17) + (set_local $2 + (get_local $5) ) + (br $while-in$70) ) (block - (set_local $48 - (get_local $2) + (set_local $46 + (get_local $0) ) (set_local $54 - (get_local $6) + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 276) ) - (br $while-out$69) ) ) - (br $while-in$70) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 276) ) (if (i32.lt_u - (get_local $48) + (get_local $46) (i32.load (i32.const 1224) ) @@ -5062,7 +4992,7 @@ (call_import $qa) (block (i32.store - (get_local $48) + (get_local $46) (get_local $1) ) (i32.store offset=24 @@ -5081,49 +5011,49 @@ ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 279) ) (if (i32.and (i32.ge_u - (tee_local $13 + (tee_local $7 (i32.load - (tee_local $6 + (tee_local $2 (i32.add - (get_local $42) + (get_local $39) (i32.const 8) ) ) ) ) - (tee_local $17 + (tee_local $5 (i32.load (i32.const 1224) ) ) ) (i32.ge_u - (get_local $42) - (get_local $17) + (get_local $39) + (get_local $5) ) ) (block (i32.store offset=12 - (get_local $13) + (get_local $7) (get_local $1) ) (i32.store - (get_local $6) + (get_local $2) (get_local $1) ) (i32.store offset=8 (get_local $1) - (get_local $13) + (get_local $7) ) (i32.store offset=12 (get_local $1) - (get_local $42) + (get_local $39) ) (i32.store offset=24 (get_local $1) @@ -5138,11 +5068,11 @@ ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $21) + (get_local $18) (i32.const 8) ) ) @@ -5155,42 +5085,42 @@ (i32.le_u (tee_local $1 (i32.load - (get_local $37) + (get_local $30) ) ) - (get_local $10) + (get_local $12) ) (if (i32.gt_u - (tee_local $24 + (tee_local $14 (i32.add (get_local $1) (i32.load offset=4 - (get_local $37) + (get_local $30) ) ) ) - (get_local $10) + (get_local $12) ) (block (set_local $0 - (get_local $24) + (get_local $14) ) (br $while-out$71) ) ) ) - (set_local $37 + (set_local $30 (i32.load offset=8 - (get_local $37) + (get_local $30) ) ) (br $while-in$72) ) ) - (set_local $24 + (set_local $14 (i32.add - (tee_local $21 + (tee_local $18 (i32.add (get_local $0) (i32.const -47) @@ -5201,36 +5131,33 @@ ) (set_local $1 (i32.add - (tee_local $21 + (tee_local $18 (select - (get_local $10) + (get_local $12) (tee_local $1 (i32.add - (get_local $21) + (get_local $18) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (get_local $24) + (get_local $14) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $24) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $14) + (i32.const 7) ) ) ) ) (i32.lt_u (get_local $1) - (tee_local $24 + (tee_local $14 (i32.add - (get_local $10) + (get_local $12) (i32.const 16) ) ) @@ -5244,28 +5171,25 @@ (i32.const 1232) (tee_local $4 (i32.add - (get_local $28) - (tee_local $15 + (get_local $20) + (tee_local $13 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $4 (i32.add - (get_local $28) + (get_local $20) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $4) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) ) ) @@ -5274,27 +5198,27 @@ ) (i32.store (i32.const 1220) - (tee_local $13 + (tee_local $7 (i32.sub (i32.add - (get_local $33) + (get_local $26) (i32.const -40) ) - (get_local $15) + (get_local $13) ) ) ) (i32.store offset=4 (get_local $4) (i32.or - (get_local $13) + (get_local $7) (i32.const 1) ) ) (i32.store offset=4 (i32.add (get_local $4) - (get_local $13) + (get_local $7) ) (i32.const 40) ) @@ -5305,9 +5229,9 @@ ) ) (i32.store - (tee_local $13 + (tee_local $7 (i32.add - (get_local $21) + (get_local $18) (i32.const 4) ) ) @@ -5339,11 +5263,11 @@ ) (i32.store (i32.const 1656) - (get_local $28) + (get_local $20) ) (i32.store (i32.const 1660) - (get_local $33) + (get_local $26) ) (i32.store (i32.const 1668) @@ -5355,7 +5279,7 @@ ) (set_local $1 (i32.add - (get_local $21) + (get_local $18) (i32.const 24) ) ) @@ -5381,33 +5305,33 @@ ) (if (i32.ne - (get_local $21) - (get_local $10) + (get_local $18) + (get_local $12) ) (block (i32.store - (get_local $13) + (get_local $7) (i32.and (i32.load - (get_local $13) + (get_local $7) ) (i32.const -2) ) ) (i32.store offset=4 - (get_local $10) + (get_local $12) (i32.or (tee_local $1 (i32.sub - (get_local $21) - (get_local $10) + (get_local $18) + (get_local $12) ) ) (i32.const 1) ) ) (i32.store - (get_local $21) + (get_local $18) (get_local $1) ) (set_local $4 @@ -5422,7 +5346,7 @@ (i32.const 256) ) (block - (set_local $15 + (set_local $13 (i32.add (i32.const 1248) (i32.shl @@ -5436,12 +5360,12 @@ ) (if (i32.and - (tee_local $6 + (tee_local $2 (i32.load (i32.const 1208) ) ) - (tee_local $17 + (tee_local $5 (i32.shl (i32.const 1) (get_local $4) @@ -5450,11 +5374,11 @@ ) (if (i32.lt_u - (tee_local $6 + (tee_local $2 (i32.load - (tee_local $17 + (tee_local $5 (i32.add - (get_local $15) + (get_local $13) (i32.const 8) ) ) @@ -5466,11 +5390,11 @@ ) (call_import $qa) (block - (set_local $49 - (get_local $17) + (set_local $47 + (get_local $5) ) - (set_local $43 - (get_local $6) + (set_local $40 + (get_local $2) ) ) ) @@ -5478,47 +5402,47 @@ (i32.store (i32.const 1208) (i32.or - (get_local $6) - (get_local $17) + (get_local $2) + (get_local $5) ) ) - (set_local $49 + (set_local $47 (i32.add - (get_local $15) + (get_local $13) (i32.const 8) ) ) - (set_local $43 - (get_local $15) + (set_local $40 + (get_local $13) ) ) ) (i32.store - (get_local $49) - (get_local $10) + (get_local $47) + (get_local $12) ) (i32.store offset=12 - (get_local $43) - (get_local $10) + (get_local $40) + (get_local $12) ) (i32.store offset=8 - (get_local $10) - (get_local $43) + (get_local $12) + (get_local $40) ) (i32.store offset=12 - (get_local $10) - (get_local $15) + (get_local $12) + (get_local $13) ) (br $do-once$42) ) ) - (set_local $2 + (set_local $0 (i32.add (i32.const 1512) (i32.shl - (tee_local $0 + (tee_local $2 (if - (tee_local $15 + (tee_local $13 (i32.shr_u (get_local $1) (i32.const 8) @@ -5535,24 +5459,24 @@ (i32.shr_u (get_local $1) (i32.add - (tee_local $2 + (tee_local $0 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $15 + (tee_local $13 (i32.and (i32.shr_u (i32.add - (tee_local $17 + (tee_local $5 (i32.shl - (get_local $15) - (tee_local $6 + (get_local $13) + (tee_local $2 (i32.and (i32.shr_u (i32.add - (get_local $15) + (get_local $13) (i32.const 1048320) ) (i32.const 16) @@ -5569,16 +5493,16 @@ (i32.const 4) ) ) - (get_local $6) + (get_local $2) ) - (tee_local $17 + (tee_local $5 (i32.and (i32.shr_u (i32.add (tee_local $4 (i32.shl - (get_local $17) - (get_local $15) + (get_local $5) + (get_local $13) ) ) (i32.const 245760) @@ -5593,7 +5517,7 @@ (i32.shr_u (i32.shl (get_local $4) - (get_local $17) + (get_local $5) ) (i32.const 15) ) @@ -5605,7 +5529,7 @@ (i32.const 1) ) (i32.shl - (get_local $2) + (get_local $0) (i32.const 1) ) ) @@ -5618,21 +5542,21 @@ ) ) (i32.store offset=28 - (get_local $10) - (get_local $0) + (get_local $12) + (get_local $2) ) (i32.store offset=20 - (get_local $10) + (get_local $12) (i32.const 0) ) (i32.store - (get_local $24) + (get_local $14) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $17 + (tee_local $5 (i32.load (i32.const 1212) ) @@ -5640,7 +5564,7 @@ (tee_local $4 (i32.shl (i32.const 1) - (get_local $0) + (get_local $2) ) ) ) @@ -5649,25 +5573,25 @@ (i32.store (i32.const 1212) (i32.or - (get_local $17) + (get_local $5) (get_local $4) ) ) (i32.store - (get_local $2) - (get_local $10) + (get_local $0) + (get_local $12) ) (i32.store offset=24 - (get_local $10) - (get_local $2) + (get_local $12) + (get_local $0) ) (i32.store offset=12 - (get_local $10) - (get_local $10) + (get_local $12) + (get_local $12) ) (i32.store offset=8 - (get_local $10) - (get_local $10) + (get_local $12) + (get_local $12) ) (br $do-once$42) ) @@ -5680,20 +5604,20 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $0) + (get_local $2) (i32.const 1) ) ) (i32.eq - (get_local $0) + (get_local $2) (i32.const 31) ) ) ) ) - (set_local $17 + (set_local $5 (i32.load - (get_local $2) + (get_local $0) ) ) (loop $while-in$76 @@ -5702,29 +5626,29 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $17) + (get_local $5) ) (i32.const -8) ) (get_local $1) ) (block - (set_local $32 - (get_local $17) + (set_local $31 + (get_local $5) ) - (set_local $7 + (set_local $9 (i32.const 305) ) (br $while-out$75) ) ) (if - (tee_local $6 + (tee_local $2 (i32.load - (tee_local $2 + (tee_local $0 (i32.add (i32.add - (get_local $17) + (get_local $5) (i32.const 16) ) (i32.shl @@ -5745,34 +5669,33 @@ (i32.const 1) ) ) - (set_local $17 - (get_local $6) + (set_local $5 + (get_local $2) ) + (br $while-in$76) ) (block - (set_local $26 - (get_local $2) + (set_local $48 + (get_local $0) ) - (set_local $11 - (get_local $17) + (set_local $55 + (get_local $5) ) - (set_local $7 + (set_local $9 (i32.const 302) ) - (br $while-out$75) ) ) - (br $while-in$76) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 302) ) (if (i32.lt_u - (get_local $26) + (get_local $48) (i32.load (i32.const 1224) ) @@ -5780,26 +5703,26 @@ (call_import $qa) (block (i32.store - (get_local $26) - (get_local $10) + (get_local $48) + (get_local $12) ) (i32.store offset=24 - (get_local $10) - (get_local $11) + (get_local $12) + (get_local $55) ) (i32.store offset=12 - (get_local $10) - (get_local $10) + (get_local $12) + (get_local $12) ) (i32.store offset=8 - (get_local $10) - (get_local $10) + (get_local $12) + (get_local $12) ) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 305) ) (if @@ -5807,9 +5730,9 @@ (i32.ge_u (tee_local $4 (i32.load - (tee_local $17 + (tee_local $5 (i32.add - (get_local $32) + (get_local $31) (i32.const 8) ) ) @@ -5822,29 +5745,29 @@ ) ) (i32.ge_u - (get_local $32) + (get_local $31) (get_local $1) ) ) (block (i32.store offset=12 (get_local $4) - (get_local $10) + (get_local $12) ) (i32.store - (get_local $17) - (get_local $10) + (get_local $5) + (get_local $12) ) (i32.store offset=8 - (get_local $10) + (get_local $12) (get_local $4) ) (i32.store offset=12 - (get_local $10) - (get_local $32) + (get_local $12) + (get_local $31) ) (i32.store offset=24 - (get_local $10) + (get_local $12) (i32.const 0) ) ) @@ -5858,31 +5781,30 @@ (block (if (i32.or - (i32.eq + (i32.eqz (tee_local $4 (i32.load (i32.const 1224) ) ) - (i32.const 0) ) (i32.lt_u - (get_local $28) + (get_local $20) (get_local $4) ) ) (i32.store (i32.const 1224) - (get_local $28) + (get_local $20) ) ) (i32.store (i32.const 1656) - (get_local $28) + (get_local $20) ) (i32.store (i32.const 1660) - (get_local $33) + (get_local $26) ) (i32.store (i32.const 1668) @@ -5903,7 +5825,7 @@ ) (loop $do-in$45 (i32.store offset=12 - (tee_local $15 + (tee_local $13 (i32.add (i32.const 1248) (i32.shl @@ -5915,11 +5837,11 @@ ) ) ) - (get_local $15) + (get_local $13) ) (i32.store offset=8 - (get_local $15) - (get_local $15) + (get_local $13) + (get_local $13) ) (br_if $do-in$45 (i32.ne @@ -5937,28 +5859,25 @@ (i32.const 1232) (tee_local $4 (i32.add - (get_local $28) - (tee_local $15 + (get_local $20) + (tee_local $13 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $4 (i32.add - (get_local $28) + (get_local $20) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $4) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) ) ) @@ -5970,10 +5889,10 @@ (tee_local $1 (i32.sub (i32.add - (get_local $33) + (get_local $26) (i32.const -40) ) - (get_local $15) + (get_local $13) ) ) ) @@ -6002,56 +5921,56 @@ ) (if (i32.gt_u - (tee_local $10 + (tee_local $12 (i32.load (i32.const 1220) ) ) - (get_local $18) + (get_local $6) ) (block (i32.store (i32.const 1220) - (tee_local $32 + (tee_local $31 (i32.sub - (get_local $10) - (get_local $18) + (get_local $12) + (get_local $6) ) ) ) (i32.store (i32.const 1232) - (tee_local $7 + (tee_local $9 (i32.add - (tee_local $10 + (tee_local $12 (i32.load (i32.const 1232) ) ) - (get_local $18) + (get_local $6) ) ) ) (i32.store offset=4 - (get_local $7) + (get_local $9) (i32.or - (get_local $32) + (get_local $31) (i32.const 1) ) ) (i32.store offset=4 - (get_local $10) + (get_local $12) (i32.or - (get_local $18) + (get_local $6) (i32.const 3) ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $10) + (get_local $12) (i32.const 8) ) ) @@ -6064,7 +5983,7 @@ (i32.const 12) ) (set_global $r - (get_local $31) + (get_local $25) ) (i32.const 0) ) @@ -6114,7 +6033,7 @@ (i32.eq (tee_local $0 (i32.and - (tee_local $9 + (tee_local $3 (i32.load (i32.add (get_local $0) @@ -6129,12 +6048,12 @@ ) (call_import $qa) ) - (set_local $7 + (set_local $8 (i32.add (get_local $1) (tee_local $5 (i32.and - (get_local $9) + (get_local $3) (i32.const -8) ) ) @@ -6143,19 +6062,19 @@ (block $do-once$0 (if (i32.and - (get_local $9) + (get_local $3) (i32.const 1) ) (block (set_local $2 (get_local $1) ) - (set_local $8 + (set_local $7 (get_local $5) ) ) (block - (set_local $9 + (set_local $11 (i32.load (get_local $1) ) @@ -6168,7 +6087,7 @@ ) (set_local $5 (i32.add - (get_local $9) + (get_local $11) (get_local $5) ) ) @@ -6179,7 +6098,7 @@ (get_local $1) (i32.sub (i32.const 0) - (get_local $9) + (get_local $11) ) ) ) @@ -6202,7 +6121,7 @@ (i32.load (tee_local $1 (i32.add - (get_local $7) + (get_local $8) (i32.const 4) ) ) @@ -6216,7 +6135,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) @@ -6252,13 +6171,13 @@ ) (set_local $6 (i32.shr_u - (get_local $9) + (get_local $11) (i32.const 3) ) ) (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.const 256) ) (block @@ -6269,12 +6188,12 @@ ) (if (i32.ne - (tee_local $9 + (tee_local $11 (i32.load offset=8 (get_local $0) ) ) - (tee_local $4 + (tee_local $3 (i32.add (i32.const 1248) (i32.shl @@ -6290,7 +6209,7 @@ (block (if (i32.lt_u - (get_local $9) + (get_local $11) (get_local $14) ) (call_import $qa) @@ -6298,7 +6217,7 @@ (if (i32.ne (i32.load offset=12 - (get_local $9) + (get_local $11) ) (get_local $0) ) @@ -6309,7 +6228,7 @@ (if (i32.eq (get_local $1) - (get_local $9) + (get_local $11) ) (block (i32.store @@ -6330,7 +6249,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) @@ -6339,9 +6258,9 @@ (if (i32.eq (get_local $1) - (get_local $4) + (get_local $3) ) - (set_local $11 + (set_local $10 (i32.add (get_local $1) (i32.const 8) @@ -6358,7 +6277,7 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $3 (i32.add (get_local $1) (i32.const 8) @@ -6367,31 +6286,31 @@ ) (get_local $0) ) - (set_local $11 - (get_local $4) + (set_local $10 + (get_local $3) ) (call_import $qa) ) ) ) (i32.store offset=12 - (get_local $9) + (get_local $11) (get_local $1) ) (i32.store + (get_local $10) (get_local $11) - (get_local $9) ) (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) ) ) - (set_local $9 + (set_local $11 (i32.load offset=24 (get_local $0) ) @@ -6408,11 +6327,11 @@ ) (block (if - (tee_local $11 + (tee_local $10 (i32.load (tee_local $6 (i32.add - (tee_local $4 + (tee_local $3 (i32.add (get_local $0) (i32.const 16) @@ -6425,9 +6344,9 @@ ) (block (set_local $1 - (get_local $11) + (get_local $10) ) - (set_local $4 + (set_local $3 (get_local $6) ) ) @@ -6435,12 +6354,12 @@ (i32.eqz (tee_local $1 (i32.load - (get_local $4) + (get_local $3) ) ) ) (block - (set_local $3 + (set_local $4 (i32.const 0) ) (br $do-once$2) @@ -6448,72 +6367,69 @@ ) ) (loop $while-in$5 - (block $while-out$4 - (if - (tee_local $11 - (i32.load - (tee_local $6 - (i32.add - (get_local $1) - (i32.const 20) - ) + (if + (tee_local $10 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 20) ) ) ) - (block - (set_local $1 - (get_local $11) - ) - (set_local $4 - (get_local $6) - ) - (br $while-in$5) + ) + (block + (set_local $1 + (get_local $10) + ) + (set_local $3 + (get_local $6) ) + (br $while-in$5) ) - (if - (tee_local $11 - (i32.load - (tee_local $6 - (i32.add - (get_local $1) - (i32.const 16) - ) + ) + (if + (tee_local $10 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 16) ) ) ) - (block - (set_local $1 - (get_local $11) - ) - (set_local $4 - (get_local $6) - ) + ) + (block + (set_local $1 + (get_local $10) ) - (block - (set_local $6 - (get_local $1) - ) - (set_local $10 - (get_local $4) - ) - (br $while-out$4) + (set_local $3 + (get_local $6) + ) + (br $while-in$5) + ) + (block + (set_local $6 + (get_local $1) + ) + (set_local $9 + (get_local $3) ) ) - (br $while-in$5) ) ) (if (i32.lt_u - (get_local $10) + (get_local $9) (get_local $14) ) (call_import $qa) (block (i32.store - (get_local $10) + (get_local $9) (i32.const 0) ) - (set_local $3 + (set_local $4 (get_local $6) ) ) @@ -6534,7 +6450,7 @@ (if (i32.ne (i32.load - (tee_local $11 + (tee_local $10 (i32.add (get_local $6) (i32.const 12) @@ -6548,7 +6464,7 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $3 (i32.add (get_local $1) (i32.const 8) @@ -6559,14 +6475,14 @@ ) (block (i32.store - (get_local $11) + (get_local $10) (get_local $1) ) (i32.store - (get_local $4) + (get_local $3) (get_local $6) ) - (set_local $3 + (set_local $4 (get_local $1) ) ) @@ -6576,7 +6492,7 @@ ) ) (if - (get_local $9) + (get_local $11) (block (if (i32.eq @@ -6600,11 +6516,11 @@ (block (i32.store (get_local $6) - (get_local $3) + (get_local $4) ) (if (i32.eqz - (get_local $3) + (get_local $4) ) (block (i32.store @@ -6625,7 +6541,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) @@ -6635,7 +6551,7 @@ (block (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.load (i32.const 1224) ) @@ -6647,7 +6563,7 @@ (i32.load (tee_local $1 (i32.add - (get_local $9) + (get_local $11) (i32.const 16) ) ) @@ -6656,22 +6572,22 @@ ) (i32.store (get_local $1) - (get_local $3) + (get_local $4) ) (i32.store offset=20 - (get_local $9) - (get_local $3) + (get_local $11) + (get_local $4) ) ) (if (i32.eqz - (get_local $3) + (get_local $4) ) (block (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) @@ -6681,7 +6597,7 @@ ) (if (i32.lt_u - (get_local $3) + (get_local $4) (tee_local $1 (i32.load (i32.const 1224) @@ -6691,11 +6607,11 @@ (call_import $qa) ) (i32.store offset=24 - (get_local $3) - (get_local $9) + (get_local $4) + (get_local $11) ) (if - (tee_local $4 + (tee_local $3 (i32.load (tee_local $6 (i32.add @@ -6707,31 +6623,31 @@ ) (if (i32.lt_u - (get_local $4) + (get_local $3) (get_local $1) ) (call_import $qa) (block (i32.store offset=16 - (get_local $3) (get_local $4) + (get_local $3) ) (i32.store offset=24 - (get_local $4) (get_local $3) + (get_local $4) ) ) ) ) (if - (tee_local $4 + (tee_local $3 (i32.load offset=4 (get_local $6) ) ) (if (i32.lt_u - (get_local $4) + (get_local $3) (i32.load (i32.const 1224) ) @@ -6739,17 +6655,17 @@ (call_import $qa) (block (i32.store offset=20 - (get_local $3) (get_local $4) + (get_local $3) ) (i32.store offset=24 - (get_local $4) (get_local $3) + (get_local $4) ) (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) ) @@ -6758,7 +6674,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) ) @@ -6768,7 +6684,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) ) @@ -6779,7 +6695,7 @@ (if (i32.ge_u (get_local $2) - (get_local $7) + (get_local $8) ) (call_import $qa) ) @@ -6790,7 +6706,7 @@ (i32.load (tee_local $5 (i32.add - (get_local $7) + (get_local $8) (i32.const 4) ) ) @@ -6817,25 +6733,25 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $8) + (get_local $7) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $8) + (get_local $7) ) - (get_local $8) + (get_local $7) ) (set_local $0 - (get_local $8) + (get_local $7) ) ) (block (if (i32.eq - (get_local $7) + (get_local $8) (i32.load (i32.const 1232) ) @@ -6843,12 +6759,12 @@ (block (i32.store (i32.const 1220) - (tee_local $3 + (tee_local $4 (i32.add (i32.load (i32.const 1220) ) - (get_local $8) + (get_local $7) ) ) ) @@ -6859,7 +6775,7 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $3) + (get_local $4) (i32.const 1) ) ) @@ -6885,7 +6801,7 @@ ) (if (i32.eq - (get_local $7) + (get_local $8) (i32.load (i32.const 1228) ) @@ -6893,12 +6809,12 @@ (block (i32.store (i32.const 1216) - (tee_local $3 + (tee_local $4 (i32.add (i32.load (i32.const 1216) ) - (get_local $8) + (get_local $7) ) ) ) @@ -6909,27 +6825,27 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $3) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $3) + (get_local $4) ) - (get_local $3) + (get_local $4) ) (return) ) ) - (set_local $3 + (set_local $4 (i32.add (i32.and (get_local $1) (i32.const -8) ) - (get_local $8) + (get_local $7) ) ) (set_local $14 @@ -6945,19 +6861,19 @@ (i32.const 256) ) (block - (set_local $10 + (set_local $9 (i32.load offset=12 - (get_local $7) + (get_local $8) ) ) (if (i32.ne (tee_local $6 (i32.load offset=8 - (get_local $7) + (get_local $8) ) ) - (tee_local $4 + (tee_local $3 (i32.add (i32.const 1248) (i32.shl @@ -6985,7 +6901,7 @@ (i32.load offset=12 (get_local $6) ) - (get_local $7) + (get_local $8) ) (call_import $qa) ) @@ -6993,7 +6909,7 @@ ) (if (i32.eq - (get_local $10) + (get_local $9) (get_local $6) ) (block @@ -7017,19 +6933,19 @@ ) (if (i32.eq - (get_local $10) - (get_local $4) + (get_local $9) + (get_local $3) ) (set_local $17 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) (block (if (i32.lt_u - (get_local $10) + (get_local $9) (i32.load (i32.const 1224) ) @@ -7039,17 +6955,17 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $3 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) ) - (get_local $7) + (get_local $8) ) (set_local $17 - (get_local $4) + (get_local $3) ) (call_import $qa) ) @@ -7057,7 +6973,7 @@ ) (i32.store offset=12 (get_local $6) - (get_local $10) + (get_local $9) ) (i32.store (get_local $17) @@ -7067,28 +6983,28 @@ (block (set_local $6 (i32.load offset=24 - (get_local $7) + (get_local $8) ) ) (block $do-once$10 (if (i32.eq - (tee_local $10 + (tee_local $9 (i32.load offset=12 - (get_local $7) + (get_local $8) ) ) - (get_local $7) + (get_local $8) ) (block (if - (tee_local $11 + (tee_local $10 (i32.load (tee_local $1 (i32.add - (tee_local $4 + (tee_local $3 (i32.add - (get_local $7) + (get_local $8) (i32.const 16) ) ) @@ -7099,9 +7015,9 @@ ) (block (set_local $0 - (get_local $11) + (get_local $10) ) - (set_local $4 + (set_local $3 (get_local $1) ) ) @@ -7109,7 +7025,7 @@ (i32.eqz (tee_local $0 (i32.load - (get_local $4) + (get_local $3) ) ) ) @@ -7122,55 +7038,52 @@ ) ) (loop $while-in$13 - (block $while-out$12 - (if - (tee_local $11 - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 20) - ) + (if + (tee_local $10 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 20) ) ) ) - (block - (set_local $0 - (get_local $11) - ) - (set_local $4 - (get_local $1) - ) - (br $while-in$13) + ) + (block + (set_local $0 + (get_local $10) ) + (set_local $3 + (get_local $1) + ) + (br $while-in$13) ) - (if - (tee_local $11 - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 16) - ) + ) + (if + (tee_local $10 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 16) ) ) ) - (block - (set_local $0 - (get_local $11) - ) - (set_local $4 - (get_local $1) - ) + ) + (block + (set_local $0 + (get_local $10) ) - (br $while-out$12) + (set_local $3 + (get_local $1) + ) + (br $while-in$13) ) - (br $while-in$13) ) ) (if (i32.lt_u - (get_local $4) + (get_local $3) (i32.load (i32.const 1224) ) @@ -7178,7 +7091,7 @@ (call_import $qa) (block (i32.store - (get_local $4) + (get_local $3) (i32.const 0) ) (set_local $12 @@ -7192,7 +7105,7 @@ (i32.lt_u (tee_local $1 (i32.load offset=8 - (get_local $7) + (get_local $8) ) ) (i32.load @@ -7204,40 +7117,40 @@ (if (i32.ne (i32.load - (tee_local $11 + (tee_local $10 (i32.add (get_local $1) (i32.const 12) ) ) ) - (get_local $7) + (get_local $8) ) (call_import $qa) ) (if (i32.eq (i32.load - (tee_local $4 + (tee_local $3 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) ) - (get_local $7) + (get_local $8) ) (block (i32.store - (get_local $11) (get_local $10) + (get_local $9) ) (i32.store - (get_local $4) + (get_local $3) (get_local $1) ) (set_local $12 - (get_local $10) + (get_local $9) ) ) (call_import $qa) @@ -7250,15 +7163,15 @@ (block (if (i32.eq - (get_local $7) + (get_local $8) (i32.load (tee_local $5 (i32.add (i32.const 1512) (i32.shl - (tee_local $10 + (tee_local $9 (i32.load offset=28 - (get_local $7) + (get_local $8) ) ) (i32.const 2) @@ -7286,7 +7199,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $10) + (get_local $9) ) (i32.const -1) ) @@ -7309,17 +7222,17 @@ (if (i32.eq (i32.load - (tee_local $10 + (tee_local $9 (i32.add (get_local $6) (i32.const 16) ) ) ) - (get_local $7) + (get_local $8) ) (i32.store - (get_local $10) + (get_local $9) (get_local $12) ) (i32.store offset=20 @@ -7337,7 +7250,7 @@ (if (i32.lt_u (get_local $12) - (tee_local $10 + (tee_local $9 (i32.load (i32.const 1224) ) @@ -7354,7 +7267,7 @@ (i32.load (tee_local $5 (i32.add - (get_local $7) + (get_local $8) (i32.const 16) ) ) @@ -7363,7 +7276,7 @@ (if (i32.lt_u (get_local $0) - (get_local $10) + (get_local $9) ) (call_import $qa) (block @@ -7412,16 +7325,16 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $3) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $3) + (get_local $4) ) - (get_local $3) + (get_local $4) ) (if (i32.eq @@ -7433,17 +7346,17 @@ (block (i32.store (i32.const 1216) - (get_local $3) + (get_local $4) ) (return) ) (set_local $0 - (get_local $3) + (get_local $4) ) ) ) ) - (set_local $8 + (set_local $7 (i32.shr_u (get_local $0) (i32.const 3) @@ -7460,7 +7373,7 @@ (i32.const 1248) (i32.shl (i32.shl - (get_local $8) + (get_local $7) (i32.const 1) ) (i32.const 2) @@ -7474,10 +7387,10 @@ (i32.const 1208) ) ) - (tee_local $3 + (tee_local $4 (i32.shl (i32.const 1) - (get_local $8) + (get_local $7) ) ) ) @@ -7485,7 +7398,7 @@ (i32.lt_u (tee_local $5 (i32.load - (tee_local $3 + (tee_local $4 (i32.add (get_local $1) (i32.const 8) @@ -7500,7 +7413,7 @@ (call_import $qa) (block (set_local $15 - (get_local $3) + (get_local $4) ) (set_local $13 (get_local $5) @@ -7512,7 +7425,7 @@ (i32.const 1208) (i32.or (get_local $5) - (get_local $3) + (get_local $4) ) ) (set_local $15 @@ -7545,11 +7458,11 @@ (return) ) ) - (set_local $3 + (set_local $4 (i32.add (i32.const 1512) (i32.shl - (tee_local $1 + (tee_local $7 (if (tee_local $1 (i32.shr_u @@ -7568,7 +7481,7 @@ (i32.shr_u (get_local $0) (i32.add - (tee_local $3 + (tee_local $4 (i32.add (i32.sub (i32.const 14) @@ -7638,7 +7551,7 @@ (i32.const 1) ) (i32.shl - (get_local $3) + (get_local $4) (i32.const 1) ) ) @@ -7652,7 +7565,7 @@ ) (i32.store offset=28 (get_local $2) - (get_local $1) + (get_local $7) ) (i32.store offset=20 (get_local $2) @@ -7672,7 +7585,7 @@ (tee_local $5 (i32.shl (i32.const 1) - (get_local $1) + (get_local $7) ) ) ) @@ -7685,12 +7598,12 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $1) + (get_local $7) (i32.const 1) ) ) (i32.eq - (get_local $1) + (get_local $7) (i32.const 31) ) ) @@ -7698,7 +7611,7 @@ ) (set_local $1 (i32.load - (get_local $3) + (get_local $4) ) ) (loop $while-in$19 @@ -7726,7 +7639,7 @@ (if (tee_local $12 (i32.load - (tee_local $8 + (tee_local $7 (i32.add (i32.add (get_local $1) @@ -7753,10 +7666,11 @@ (set_local $1 (get_local $12) ) + (br $while-in$19) ) (block (set_local $18 - (get_local $8) + (get_local $7) ) (set_local $19 (get_local $1) @@ -7764,10 +7678,8 @@ (set_local $0 (i32.const 127) ) - (br $while-out$18) ) ) - (br $while-in$19) ) ) (if @@ -7867,12 +7779,12 @@ ) ) (i32.store - (get_local $3) + (get_local $4) (get_local $2) ) (i32.store offset=24 (get_local $2) - (get_local $3) + (get_local $4) ) (i32.store offset=12 (get_local $2) @@ -7903,22 +7815,21 @@ ) ) (loop $while-in$21 - (block $while-out$20 - (if - (tee_local $2 - (i32.load - (get_local $0) - ) + (if + (tee_local $2 + (i32.load + (get_local $0) ) + ) + (block (set_local $0 (i32.add (get_local $2) (i32.const 8) ) ) - (br $while-out$20) + (br $while-in$21) ) - (br $while-in$21) ) ) (i32.store @@ -7942,8 +7853,7 @@ (local $15 i32) (local $16 i32) (local $17 i32) - (local $18 i32) - (set_local $11 + (set_local $10 (get_global $r) ) (set_global $r @@ -7952,25 +7862,25 @@ (i32.const 48) ) ) - (set_local $12 + (set_local $11 (i32.add - (get_local $11) + (get_local $10) (i32.const 16) ) ) - (set_local $13 - (get_local $11) + (set_local $12 + (get_local $10) ) (i32.store - (tee_local $3 + (tee_local $4 (i32.add - (get_local $11) + (get_local $10) (i32.const 32) ) ) - (tee_local $8 + (tee_local $7 (i32.load - (tee_local $9 + (tee_local $8 (i32.add (get_local $0) (i32.const 28) @@ -7980,27 +7890,27 @@ ) ) (i32.store offset=4 - (get_local $3) - (tee_local $10 + (get_local $4) + (tee_local $9 (i32.sub (i32.load - (tee_local $14 + (tee_local $13 (i32.add (get_local $0) (i32.const 20) ) ) ) - (get_local $8) + (get_local $7) ) ) ) (i32.store offset=8 - (get_local $3) + (get_local $4) (get_local $1) ) (i32.store offset=12 - (get_local $3) + (get_local $4) (get_local $2) ) (set_local $1 @@ -8009,21 +7919,21 @@ (i32.const 60) ) ) - (set_local $8 + (set_local $7 (i32.add (get_local $0) (i32.const 44) ) ) - (set_local $4 - (get_local $3) + (set_local $5 + (get_local $4) ) - (set_local $3 + (set_local $4 (i32.const 2) ) - (set_local $5 + (set_local $3 (i32.add - (get_local $10) + (get_local $9) (get_local $2) ) ) @@ -8031,7 +7941,7 @@ (block $while-out$0 (if (i32.eq - (get_local $5) + (get_local $3) (tee_local $6 (if (i32.load @@ -8043,51 +7953,51 @@ (get_local $0) ) (i32.store - (get_local $13) + (get_local $12) (i32.load (get_local $1) ) ) (i32.store offset=4 - (get_local $13) - (get_local $4) + (get_local $12) + (get_local $5) ) (i32.store offset=8 - (get_local $13) - (get_local $3) + (get_local $12) + (get_local $4) ) - (set_local $10 + (set_local $9 (call $Pa (call_import $ya (i32.const 146) - (get_local $13) + (get_local $12) ) ) ) (call_import $oa (i32.const 0) ) - (get_local $10) + (get_local $9) ) (block (i32.store - (get_local $12) + (get_local $11) (i32.load (get_local $1) ) ) (i32.store offset=4 - (get_local $12) - (get_local $4) + (get_local $11) + (get_local $5) ) (i32.store offset=8 - (get_local $12) - (get_local $3) + (get_local $11) + (get_local $4) ) (call $Pa (call_import $ya (i32.const 146) - (get_local $12) + (get_local $11) ) ) ) @@ -8107,130 +8017,125 @@ (i32.const 0) ) (block + (set_local $16 + (get_local $5) + ) (set_local $17 (get_local $4) ) - (set_local $18 - (get_local $3) - ) (set_local $1 (i32.const 8) ) - (br $while-out$0) ) - ) - (set_local $10 - (i32.sub - (get_local $5) - (get_local $6) - ) - ) - (set_local $3 - (if - (i32.gt_u - (get_local $6) - (tee_local $5 - (i32.load offset=4 - (get_local $4) - ) + (block + (set_local $9 + (i32.sub + (get_local $3) + (get_local $6) ) ) - (block - (i32.store - (get_local $9) - (tee_local $7 - (i32.load - (get_local $8) - ) - ) - ) - (i32.store - (get_local $14) - (get_local $7) - ) - (set_local $6 - (i32.sub + (set_local $5 + (if + (i32.gt_u (get_local $6) - (get_local $5) - ) - ) - (set_local $7 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $15 - (i32.add - (get_local $3) - (i32.const -1) - ) - ) - (i32.load offset=12 - (get_local $4) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 2) - ) - (block - (i32.store - (get_local $9) - (i32.add - (i32.load - (get_local $9) + (tee_local $14 + (i32.load offset=4 + (get_local $5) ) - (get_local $6) ) ) - (set_local $7 - (get_local $4) + (block + (i32.store + (get_local $8) + (tee_local $3 + (i32.load + (get_local $7) + ) + ) + ) + (i32.store + (get_local $13) + (get_local $3) + ) + (set_local $6 + (i32.sub + (get_local $6) + (get_local $14) + ) + ) + (set_local $3 + (i32.add + (get_local $5) + (i32.const 8) + ) + ) + (set_local $4 + (i32.add + (get_local $4) + (i32.const -1) + ) + ) + (i32.load offset=12 + (get_local $5) + ) ) - (set_local $15 - (i32.const 2) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $8) + (i32.add + (i32.load + (get_local $8) + ) + (get_local $6) + ) + ) + (set_local $3 + (get_local $5) + ) + (set_local $4 + (i32.const 2) + ) + (get_local $14) + ) + (block + (set_local $3 + (get_local $5) + ) + (get_local $14) + ) ) - (get_local $5) ) - (block - (set_local $7 - (get_local $4) - ) - (set_local $15 + ) + (i32.store + (get_local $3) + (i32.add + (i32.load (get_local $3) ) + (get_local $6) + ) + ) + (i32.store offset=4 + (get_local $3) + (i32.sub (get_local $5) + (get_local $6) ) ) - ) - ) - (i32.store - (get_local $7) - (i32.add - (i32.load - (get_local $7) + (set_local $5 + (get_local $3) ) - (get_local $6) - ) - ) - (i32.store offset=4 - (get_local $7) - (i32.sub - (get_local $3) - (get_local $6) + (set_local $3 + (get_local $9) + ) + (br $while-in$1) ) ) - (set_local $4 - (get_local $7) - ) - (set_local $3 - (get_local $15) - ) - (set_local $5 - (get_local $10) - ) - (br $while-in$1) ) ) (if @@ -8242,9 +8147,9 @@ (i32.store offset=16 (get_local $0) (i32.add - (tee_local $5 + (tee_local $3 (i32.load - (get_local $8) + (get_local $7) ) ) (i32.load offset=48 @@ -8253,16 +8158,16 @@ ) ) (i32.store - (get_local $9) - (tee_local $8 - (get_local $5) + (get_local $8) + (tee_local $7 + (get_local $3) ) ) (i32.store - (get_local $14) - (get_local $8) + (get_local $13) + (get_local $7) ) - (set_local $16 + (set_local $15 (get_local $2) ) ) @@ -8277,11 +8182,11 @@ (i32.const 0) ) (i32.store - (get_local $9) + (get_local $8) (i32.const 0) ) (i32.store - (get_local $14) + (get_local $13) (i32.const 0) ) (i32.store @@ -8293,17 +8198,17 @@ (i32.const 32) ) ) - (set_local $16 + (set_local $15 (select (i32.const 0) (i32.sub (get_local $2) (i32.load offset=4 - (get_local $17) + (get_local $16) ) ) (i32.eq - (get_local $18) + (get_local $17) (i32.const 2) ) ) @@ -8312,9 +8217,9 @@ ) ) (set_global $r - (get_local $11) + (get_local $10) ) - (get_local $16) + (get_local $15) ) (func $Wa (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8334,10 +8239,10 @@ ) ) (block - (set_local $7 + (set_local $6 (get_local $5) ) - (set_local $6 + (set_local $7 (i32.const 5) ) ) @@ -8349,12 +8254,12 @@ (i32.const 0) ) (block - (set_local $7 + (set_local $6 (i32.load (get_local $3) ) ) - (set_local $6 + (set_local $7 (i32.const 5) ) ) @@ -8363,11 +8268,11 @@ (block $label$break$a (if (i32.eq - (get_local $6) + (get_local $7) (i32.const 5) ) (block - (set_local $6 + (set_local $4 (tee_local $3 (i32.load (tee_local $5 @@ -8382,7 +8287,7 @@ (if (i32.lt_u (i32.sub - (get_local $7) + (get_local $6) (get_local $3) ) (get_local $1) @@ -8407,7 +8312,7 @@ (br $label$break$a) ) ) - (set_local $0 + (set_local $1 (block $label$break$b (if (i32.gt_s @@ -8421,57 +8326,48 @@ (get_local $1) ) (loop $while-in$3 - (block $while-out$2 - (if - (i32.eqz - (get_local $3) + (if + (i32.eqz + (get_local $3) + ) + (block + (set_local $2 + (i32.const 0) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $3 - (i32.const 0) - ) - (br $label$break$b - (get_local $1) - ) + (br $label$break$b + (get_local $1) ) ) - (if - (i32.eq - (i32.load8_s - (i32.add - (get_local $0) - (tee_local $7 - (i32.add - (get_local $3) - (i32.const -1) - ) + ) + (if + (i32.ne + (i32.load8_s + (i32.add + (get_local $0) + (tee_local $6 + (i32.add + (get_local $3) + (i32.const -1) ) ) ) - (i32.const 10) - ) - (block - (set_local $4 - (get_local $3) - ) - (br $while-out$2) ) + (i32.const 10) + ) + (block (set_local $3 - (get_local $7) + (get_local $6) ) + (br $while-in$3) ) - (br $while-in$3) ) ) - (br_if $label$break$a + (if (i32.lt_u (call_indirect $FUNCSIG$iiii (get_local $2) (get_local $0) - (get_local $4) + (get_local $3) (i32.add (i32.and (i32.load offset=36 @@ -8482,33 +8378,36 @@ (i32.const 2) ) ) - (get_local $4) + (get_local $3) + ) + (block + (set_local $4 + (get_local $3) + ) + (br $label$break$a) ) ) - (set_local $2 + (set_local $0 (i32.add (get_local $0) - (get_local $4) + (get_local $3) ) ) - (set_local $6 + (set_local $4 (i32.load (get_local $5) ) ) - (set_local $3 - (get_local $4) + (set_local $2 + (get_local $3) ) (i32.sub (get_local $1) - (get_local $4) + (get_local $3) ) ) (block (set_local $2 - (get_local $0) - ) - (set_local $3 (i32.const 0) ) (get_local $1) @@ -8518,9 +8417,9 @@ ) (drop (call $jb - (get_local $6) - (get_local $2) + (get_local $4) (get_local $0) + (get_local $1) ) ) (i32.store @@ -8529,13 +8428,13 @@ (i32.load (get_local $5) ) - (get_local $0) + (get_local $1) ) ) (set_local $4 (i32.add - (get_local $3) - (get_local $0) + (get_local $2) + (get_local $1) ) ) ) @@ -8562,53 +8461,47 @@ (get_local $3) ) (loop $while-in$2 - (block $while-out$1 - (if - (i32.eqz - (i32.load8_s - (get_local $0) - ) + (if + (i32.eqz + (i32.load8_s + (get_local $0) ) - (block - (set_local $5 - (get_local $4) - ) - (br $label$break$a) + ) + (block + (set_local $5 + (get_local $4) ) + (br $label$break$a) ) - (if - (i32.eqz - (i32.and - (tee_local $4 - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) + ) + (br_if $while-in$2 + (i32.and + (tee_local $4 + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) ) - (i32.const 3) ) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $1 - (i32.const 4) - ) - (br $while-out$1) - ) + (i32.const 3) + ) + ) + (block + (set_local $1 + (get_local $0) + ) + (set_local $2 + (i32.const 4) ) - (br $while-in$2) ) ) ) (block - (set_local $2 + (set_local $1 (get_local $0) ) - (set_local $1 + (set_local $2 (i32.const 4) ) ) @@ -8616,49 +8509,51 @@ ) (if (i32.eq - (get_local $1) + (get_local $2) (i32.const 4) ) (block - (set_local $1 - (get_local $2) + (set_local $2 + (get_local $1) ) (loop $while-in$4 - (block $while-out$3 - (if - (i32.and - (i32.xor - (i32.and - (tee_local $2 - (i32.load - (get_local $1) - ) + (if + (i32.and + (i32.xor + (i32.and + (tee_local $1 + (i32.load + (get_local $2) ) - (i32.const -2139062144) ) (i32.const -2139062144) ) - (i32.add - (get_local $2) - (i32.const -16843009) - ) + (i32.const -2139062144) ) - (br $while-out$3) - (set_local $1 + (i32.add + (get_local $1) + (i32.const -16843009) + ) + ) + (set_local $0 + (get_local $2) + ) + (block + (set_local $2 (i32.add - (get_local $1) + (get_local $2) (i32.const 4) ) ) + (br $while-in$4) ) - (br $while-in$4) ) ) (if (i32.shr_s (i32.shl (i32.and - (get_local $2) + (get_local $1) (i32.const 255) ) (i32.const 24) @@ -8666,32 +8561,31 @@ (i32.const 24) ) (block - (set_local $2 - (get_local $1) + (set_local $1 + (get_local $0) ) (loop $while-in$6 - (block $while-out$5 - (if - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $2) - (i32.const 1) - ) + (if + (i32.load8_s + (tee_local $0 + (i32.add + (get_local $1) + (i32.const 1) ) ) - (set_local $2 - (get_local $1) + ) + (block + (set_local $1 + (get_local $0) ) - (br $while-out$5) + (br $while-in$6) ) - (br $while-in$6) ) ) ) ) (set_local $5 - (get_local $1) + (get_local $0) ) ) ) @@ -8721,11 +8615,10 @@ ) ) (set_local $2 - (i32.eq + (i32.eqz (call $Ya (get_local $0) ) - (i32.const 0) ) ) (set_local $1 @@ -8775,70 +8668,62 @@ (get_local $0) ) (loop $while-in$3 - (block $while-out$2 - (set_local $0 - (if - (i32.gt_s - (i32.load offset=76 - (get_local $1) - ) - (i32.const -1) - ) - (call $Ya + (set_local $0 + (if + (i32.gt_s + (i32.load offset=76 (get_local $1) ) - (i32.const 0) - ) - ) - (set_local $2 - (if - (i32.gt_u - (i32.load offset=20 - (get_local $1) - ) - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.or - (call $$a - (get_local $1) - ) - (get_local $2) - ) - (get_local $2) + (i32.const -1) ) - ) - (if - (get_local $0) - (call $Ta + (call $Ya (get_local $1) ) + (i32.const 0) ) + ) + (set_local $2 (if - (i32.eqz - (tee_local $1 - (i32.load offset=56 - (get_local $1) - ) + (i32.gt_u + (i32.load offset=20 + (get_local $1) + ) + (i32.load offset=28 + (get_local $1) ) ) - (block - (set_local $0 - (get_local $2) + (i32.or + (call $$a + (get_local $1) ) - (br $while-out$2) + (get_local $2) + ) + (get_local $2) + ) + ) + (if + (get_local $0) + (call $Ta + (get_local $1) + ) + ) + (br_if $while-in$3 + (tee_local $1 + (i32.load offset=56 + (get_local $1) ) ) - (br $while-in$3) ) ) ) + (set_local $2 + (get_local $0) + ) ) (call_import $xa (i32.const 1188) ) - (get_local $0) + (get_local $2) ) ) ) @@ -9080,21 +8965,23 @@ ) ) ) - (call_indirect $FUNCSIG$iiii - (get_local $0) - (i32.sub - (get_local $2) - (get_local $6) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load offset=40 - (get_local $0) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $0) + (i32.sub + (get_local $2) + (get_local $6) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load offset=40 + (get_local $0) + ) + (i32.const 3) ) - (i32.const 3) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -9201,75 +9088,75 @@ ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.lt_s - (get_local $2) - (i32.const 4) - ) - ) - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) + (if + (i32.ge_s + (get_local $2) + (i32.const 4) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (i32.load + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 4) + ) ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.le_s - (get_local $2) - (i32.const 0) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_s - (get_local $1) - ) + (if + (i32.gt_s + (get_local $2) + (i32.const 0) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (i32.load8_s + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (get_local $3) @@ -9344,70 +9231,70 @@ ) ) (loop $while-in$1 - (block $while-out$0 - (br_if $while-out$0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $3) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $while-in$1) ) - (br $while-in$1) ) ) ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.ge_s - (get_local $0) - (get_local $6) - ) - ) - (i32.store + (if + (i32.lt_s (get_local $0) - (get_local $5) + (get_local $6) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.ge_s - (get_local $0) - (get_local $4) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $4) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (i32.sub @@ -9612,11 +9499,10 @@ ) (block (set_local $5 - (i32.eq + (i32.eqz (call $Ya (get_local $3) ) - (i32.const 0) ) ) (set_local $0 diff --git a/test/memorygrowth.fromasm.imprecise b/test/memorygrowth.fromasm.imprecise index aea127692..4e4891a8d 100644 --- a/test/memorygrowth.fromasm.imprecise +++ b/test/memorygrowth.fromasm.imprecise @@ -129,7 +129,8 @@ (local $52 i32) (local $53 i32) (local $54 i32) - (set_local $31 + (local $55 i32) + (set_local $25 (get_global $r) ) (set_global $r @@ -138,8 +139,8 @@ (i32.const 16) ) ) - (set_local $15 - (get_local $31) + (set_local $13 + (get_local $25) ) (block $do-once$0 (if @@ -150,16 +151,16 @@ (block (if (i32.and - (tee_local $12 + (tee_local $5 (i32.shr_u - (tee_local $16 + (tee_local $6 (i32.load (i32.const 1208) ) ) - (tee_local $2 + (tee_local $0 (i32.shr_u - (tee_local $14 + (tee_local $2 (select (i32.const 16) (i32.and @@ -183,15 +184,15 @@ (i32.const 3) ) (block - (set_local $11 + (set_local $7 (i32.load - (tee_local $27 + (tee_local $5 (i32.add - (tee_local $29 + (tee_local $2 (i32.load - (tee_local $25 + (tee_local $4 (i32.add - (tee_local $5 + (tee_local $8 (i32.add (i32.const 1248) (i32.shl @@ -200,12 +201,12 @@ (i32.add (i32.xor (i32.and - (get_local $12) + (get_local $5) (i32.const 1) ) (i32.const 1) ) - (get_local $2) + (get_local $0) ) ) (i32.const 1) @@ -226,13 +227,13 @@ ) (if (i32.eq - (get_local $5) - (get_local $11) + (get_local $8) + (get_local $7) ) (i32.store (i32.const 1208) (i32.and - (get_local $16) + (get_local $6) (i32.xor (i32.shl (i32.const 1) @@ -245,7 +246,7 @@ (block (if (i32.lt_u - (get_local $11) + (get_local $7) (i32.load (i32.const 1224) ) @@ -255,23 +256,23 @@ (if (i32.eq (i32.load - (tee_local $19 + (tee_local $17 (i32.add - (get_local $11) + (get_local $7) (i32.const 12) ) ) ) - (get_local $29) + (get_local $2) ) (block (i32.store - (get_local $19) - (get_local $5) + (get_local $17) + (get_local $8) ) (i32.store - (get_local $25) - (get_local $11) + (get_local $4) + (get_local $7) ) ) (call_import $qa) @@ -279,9 +280,9 @@ ) ) (i32.store offset=4 - (get_local $29) + (get_local $2) (i32.or - (tee_local $11 + (tee_local $7 (i32.shl (get_local $0) (i32.const 3) @@ -291,34 +292,34 @@ ) ) (i32.store - (tee_local $25 + (tee_local $4 (i32.add (i32.add - (get_local $29) - (get_local $11) + (get_local $2) + (get_local $7) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $25) + (get_local $4) ) (i32.const 1) ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return - (get_local $27) + (get_local $5) ) ) ) (if (i32.gt_u - (get_local $14) - (tee_local $25 + (get_local $2) + (tee_local $4 (i32.load (i32.const 1216) ) @@ -326,37 +327,37 @@ ) (block (if - (get_local $12) + (get_local $5) (block - (set_local $5 + (set_local $8 (i32.and (i32.shr_u - (tee_local $11 + (tee_local $7 (i32.add (i32.and - (tee_local $5 + (tee_local $8 (i32.and (i32.shl - (get_local $12) - (get_local $2) + (get_local $5) + (get_local $0) ) (i32.or - (tee_local $11 + (tee_local $7 (i32.shl (i32.const 2) - (get_local $2) + (get_local $0) ) ) (i32.sub (i32.const 0) - (get_local $11) + (get_local $7) ) ) ) ) (i32.sub (i32.const 0) - (get_local $5) + (get_local $8) ) ) (i32.const -1) @@ -367,32 +368,32 @@ (i32.const 16) ) ) - (set_local $5 + (set_local $8 (i32.load - (tee_local $19 + (tee_local $17 (i32.add - (tee_local $8 + (tee_local $10 (i32.load - (tee_local $0 + (tee_local $15 (i32.add (tee_local $3 (i32.add (i32.const 1248) (i32.shl (i32.shl - (tee_local $7 + (tee_local $9 (i32.add (i32.or (i32.or (i32.or (i32.or - (tee_local $11 + (tee_local $7 (i32.and (i32.shr_u - (tee_local $19 + (tee_local $17 (i32.shr_u - (get_local $11) - (get_local $5) + (get_local $7) + (get_local $8) ) ) (i32.const 5) @@ -400,15 +401,15 @@ (i32.const 8) ) ) - (get_local $5) + (get_local $8) ) - (tee_local $19 + (tee_local $17 (i32.and (i32.shr_u - (tee_local $8 + (tee_local $10 (i32.shr_u - (get_local $19) - (get_local $11) + (get_local $17) + (get_local $7) ) ) (i32.const 2) @@ -417,13 +418,13 @@ ) ) ) - (tee_local $8 + (tee_local $10 (i32.and (i32.shr_u (tee_local $3 (i32.shr_u - (get_local $8) - (get_local $19) + (get_local $10) + (get_local $17) ) ) (i32.const 1) @@ -435,10 +436,10 @@ (tee_local $3 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $15 (i32.shr_u (get_local $3) - (get_local $8) + (get_local $10) ) ) (i32.const 1) @@ -448,7 +449,7 @@ ) ) (i32.shr_u - (get_local $0) + (get_local $15) (get_local $3) ) ) @@ -472,30 +473,30 @@ (if (i32.eq (get_local $3) - (get_local $5) + (get_local $8) ) (block (i32.store (i32.const 1208) (i32.and - (get_local $16) + (get_local $6) (i32.xor (i32.shl (i32.const 1) - (get_local $7) + (get_local $9) ) (i32.const -1) ) ) ) - (set_local $39 - (get_local $25) + (set_local $34 + (get_local $4) ) ) (block (if (i32.lt_u - (get_local $5) + (get_local $8) (i32.load (i32.const 1224) ) @@ -505,25 +506,25 @@ (if (i32.eq (i32.load - (tee_local $11 + (tee_local $7 (i32.add - (get_local $5) + (get_local $8) (i32.const 12) ) ) ) - (get_local $8) + (get_local $10) ) (block (i32.store - (get_local $11) + (get_local $7) (get_local $3) ) (i32.store - (get_local $0) - (get_local $5) + (get_local $15) + (get_local $8) ) - (set_local $39 + (set_local $34 (i32.load (i32.const 1216) ) @@ -534,27 +535,27 @@ ) ) (i32.store offset=4 - (get_local $8) + (get_local $10) (i32.or - (get_local $14) + (get_local $2) (i32.const 3) ) ) (i32.store offset=4 - (tee_local $0 + (tee_local $15 (i32.add - (get_local $8) - (get_local $14) + (get_local $10) + (get_local $2) ) ) (i32.or - (tee_local $5 + (tee_local $8 (i32.sub (i32.shl - (get_local $7) + (get_local $9) (i32.const 3) ) - (get_local $14) + (get_local $2) ) ) (i32.const 1) @@ -562,27 +563,27 @@ ) (i32.store (i32.add - (get_local $0) - (get_local $5) + (get_local $15) + (get_local $8) ) - (get_local $5) + (get_local $8) ) (if - (get_local $39) + (get_local $34) (block (set_local $3 (i32.load (i32.const 1228) ) ) - (set_local $16 + (set_local $6 (i32.add (i32.const 1248) (i32.shl (i32.shl - (tee_local $25 + (tee_local $4 (i32.shr_u - (get_local $39) + (get_local $34) (i32.const 3) ) ) @@ -594,25 +595,25 @@ ) (if (i32.and - (tee_local $2 + (tee_local $0 (i32.load (i32.const 1208) ) ) - (tee_local $12 + (tee_local $5 (i32.shl (i32.const 1) - (get_local $25) + (get_local $4) ) ) ) (if (i32.lt_u - (tee_local $2 + (tee_local $0 (i32.load - (tee_local $12 + (tee_local $5 (i32.add - (get_local $16) + (get_local $6) (i32.const 8) ) ) @@ -624,11 +625,11 @@ ) (call_import $qa) (block - (set_local $44 - (get_local $12) + (set_local $41 + (get_local $5) ) - (set_local $29 - (get_local $2) + (set_local $27 + (get_local $0) ) ) ) @@ -636,72 +637,72 @@ (i32.store (i32.const 1208) (i32.or - (get_local $2) - (get_local $12) + (get_local $0) + (get_local $5) ) ) - (set_local $44 + (set_local $41 (i32.add - (get_local $16) + (get_local $6) (i32.const 8) ) ) - (set_local $29 - (get_local $16) + (set_local $27 + (get_local $6) ) ) ) (i32.store - (get_local $44) + (get_local $41) (get_local $3) ) (i32.store offset=12 - (get_local $29) + (get_local $27) (get_local $3) ) (i32.store offset=8 (get_local $3) - (get_local $29) + (get_local $27) ) (i32.store offset=12 (get_local $3) - (get_local $16) + (get_local $6) ) ) ) (i32.store (i32.const 1216) - (get_local $5) + (get_local $8) ) (i32.store (i32.const 1228) - (get_local $0) + (get_local $15) ) (set_global $r - (get_local $31) + (get_local $25) ) (return - (get_local $19) + (get_local $17) ) ) ) (if - (tee_local $0 + (tee_local $15 (i32.load (i32.const 1212) ) ) (block - (set_local $0 + (set_local $15 (i32.and (i32.shr_u - (tee_local $5 + (tee_local $8 (i32.add (i32.and - (get_local $0) + (get_local $15) (i32.sub (i32.const 0) - (get_local $0) + (get_local $15) ) ) (i32.const -1) @@ -712,11 +713,11 @@ (i32.const 16) ) ) - (set_local $2 + (set_local $0 (i32.sub (i32.and (i32.load offset=4 - (tee_local $25 + (tee_local $4 (i32.load (i32.add (i32.shl @@ -725,13 +726,13 @@ (i32.or (i32.or (i32.or - (tee_local $5 + (tee_local $8 (i32.and (i32.shr_u - (tee_local $16 + (tee_local $6 (i32.shr_u - (get_local $5) - (get_local $0) + (get_local $8) + (get_local $15) ) ) (i32.const 5) @@ -739,15 +740,15 @@ (i32.const 8) ) ) - (get_local $0) + (get_local $15) ) - (tee_local $16 + (tee_local $6 (i32.and (i32.shr_u (tee_local $3 (i32.shr_u - (get_local $16) - (get_local $5) + (get_local $6) + (get_local $8) ) ) (i32.const 2) @@ -759,10 +760,10 @@ (tee_local $3 (i32.and (i32.shr_u - (tee_local $2 + (tee_local $0 (i32.shr_u (get_local $3) - (get_local $16) + (get_local $6) ) ) (i32.const 1) @@ -771,12 +772,12 @@ ) ) ) - (tee_local $2 + (tee_local $0 (i32.and (i32.shr_u - (tee_local $12 + (tee_local $5 (i32.shr_u - (get_local $2) + (get_local $0) (get_local $3) ) ) @@ -787,8 +788,8 @@ ) ) (i32.shr_u - (get_local $12) - (get_local $2) + (get_local $5) + (get_local $0) ) ) (i32.const 2) @@ -800,77 +801,77 @@ ) (i32.const -8) ) - (get_local $14) + (get_local $2) ) ) - (set_local $12 - (get_local $25) + (set_local $5 + (get_local $4) ) (set_local $3 - (get_local $25) + (get_local $4) ) (loop $while-in$7 (block $while-out$6 (if - (tee_local $25 + (tee_local $4 (i32.load offset=16 - (get_local $12) + (get_local $5) ) ) - (set_local $0 - (get_local $25) + (set_local $7 + (get_local $4) ) (if - (tee_local $16 + (tee_local $6 (i32.load offset=20 - (get_local $12) + (get_local $5) ) ) - (set_local $0 - (get_local $16) + (set_local $7 + (get_local $6) ) (block - (set_local $32 - (get_local $2) + (set_local $7 + (get_local $0) ) - (set_local $26 + (set_local $1 (get_local $3) ) (br $while-out$6) ) ) ) - (set_local $16 + (set_local $6 (i32.lt_u - (tee_local $25 + (tee_local $4 (i32.sub (i32.and (i32.load offset=4 - (get_local $0) + (get_local $7) ) (i32.const -8) ) - (get_local $14) + (get_local $2) ) ) - (get_local $2) + (get_local $0) ) ) - (set_local $2 + (set_local $0 (select - (get_local $25) - (get_local $2) - (get_local $16) + (get_local $4) + (get_local $0) + (get_local $6) ) ) - (set_local $12 - (get_local $0) + (set_local $5 + (get_local $7) ) (set_local $3 (select - (get_local $0) + (get_local $7) (get_local $3) - (get_local $16) + (get_local $6) ) ) (br $while-in$7) @@ -878,7 +879,7 @@ ) (if (i32.lt_u - (get_local $26) + (get_local $1) (tee_local $3 (i32.load (i32.const 1224) @@ -889,72 +890,66 @@ ) (if (i32.ge_u - (get_local $26) - (tee_local $12 + (get_local $1) + (tee_local $5 (i32.add - (get_local $26) - (get_local $14) + (get_local $1) + (get_local $2) ) ) ) (call_import $qa) ) - (set_local $2 + (set_local $0 (i32.load offset=24 - (get_local $26) + (get_local $1) ) ) (block $do-once$8 (if (i32.eq - (tee_local $19 + (tee_local $17 (i32.load offset=12 - (get_local $26) + (get_local $1) ) ) - (get_local $26) + (get_local $1) ) (block (if - (tee_local $7 + (tee_local $9 (i32.load - (tee_local $8 + (tee_local $10 (i32.add - (get_local $26) + (get_local $1) (i32.const 20) ) ) ) ) (block - (set_local $11 - (get_local $7) + (set_local $4 + (get_local $9) ) - (set_local $0 - (get_local $8) + (set_local $6 + (get_local $10) ) ) (if - (tee_local $25 - (i32.load - (tee_local $16 - (i32.add - (get_local $26) - (i32.const 16) + (i32.eqz + (tee_local $4 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 16) + ) ) ) ) ) (block - (set_local $11 - (get_local $25) - ) - (set_local $0 - (get_local $16) - ) - ) - (block - (set_local $27 + (set_local $23 (i32.const 0) ) (br $do-once$8) @@ -962,65 +957,62 @@ ) ) (loop $while-in$11 - (block $while-out$10 - (if - (tee_local $7 - (i32.load - (tee_local $8 - (i32.add - (get_local $11) - (i32.const 20) - ) + (if + (tee_local $9 + (i32.load + (tee_local $10 + (i32.add + (get_local $4) + (i32.const 20) ) ) ) - (block - (set_local $11 - (get_local $7) - ) - (set_local $0 - (get_local $8) - ) - (br $while-in$11) + ) + (block + (set_local $4 + (get_local $9) ) + (set_local $6 + (get_local $10) + ) + (br $while-in$11) ) - (if - (tee_local $7 - (i32.load - (tee_local $8 - (i32.add - (get_local $11) - (i32.const 16) - ) + ) + (if + (tee_local $9 + (i32.load + (tee_local $10 + (i32.add + (get_local $4) + (i32.const 16) ) ) ) - (block - (set_local $11 - (get_local $7) - ) - (set_local $0 - (get_local $8) - ) + ) + (block + (set_local $4 + (get_local $9) ) - (br $while-out$10) + (set_local $6 + (get_local $10) + ) + (br $while-in$11) ) - (br $while-in$11) ) ) (if (i32.lt_u - (get_local $0) + (get_local $6) (get_local $3) ) (call_import $qa) (block (i32.store - (get_local $0) + (get_local $6) (i32.const 0) ) - (set_local $27 - (get_local $11) + (set_local $23 + (get_local $4) ) ) ) @@ -1028,9 +1020,9 @@ (block (if (i32.lt_u - (tee_local $8 + (tee_local $10 (i32.load offset=8 - (get_local $26) + (get_local $1) ) ) (get_local $3) @@ -1040,40 +1032,40 @@ (if (i32.ne (i32.load - (tee_local $7 + (tee_local $9 (i32.add - (get_local $8) + (get_local $10) (i32.const 12) ) ) ) - (get_local $26) + (get_local $1) ) (call_import $qa) ) (if (i32.eq (i32.load - (tee_local $16 + (tee_local $6 (i32.add - (get_local $19) + (get_local $17) (i32.const 8) ) ) ) - (get_local $26) + (get_local $1) ) (block (i32.store - (get_local $7) - (get_local $19) + (get_local $9) + (get_local $17) ) (i32.store - (get_local $16) - (get_local $8) + (get_local $6) + (get_local $10) ) - (set_local $27 - (get_local $19) + (set_local $23 + (get_local $17) ) ) (call_import $qa) @@ -1083,19 +1075,19 @@ ) (block $do-once$12 (if - (get_local $2) + (get_local $0) (block (if (i32.eq - (get_local $26) + (get_local $1) (i32.load (tee_local $3 (i32.add (i32.const 1512) (i32.shl - (tee_local $19 + (tee_local $17 (i32.load offset=28 - (get_local $26) + (get_local $1) ) ) (i32.const 2) @@ -1107,11 +1099,11 @@ (block (i32.store (get_local $3) - (get_local $27) + (get_local $23) ) (if (i32.eqz - (get_local $27) + (get_local $23) ) (block (i32.store @@ -1123,7 +1115,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $19) + (get_local $17) ) (i32.const -1) ) @@ -1136,7 +1128,7 @@ (block (if (i32.lt_u - (get_local $2) + (get_local $0) (i32.load (i32.const 1224) ) @@ -1146,35 +1138,35 @@ (if (i32.eq (i32.load - (tee_local $19 + (tee_local $17 (i32.add - (get_local $2) + (get_local $0) (i32.const 16) ) ) ) - (get_local $26) + (get_local $1) ) (i32.store - (get_local $19) - (get_local $27) + (get_local $17) + (get_local $23) ) (i32.store offset=20 - (get_local $2) - (get_local $27) + (get_local $0) + (get_local $23) ) ) (br_if $do-once$12 (i32.eqz - (get_local $27) + (get_local $23) ) ) ) ) (if (i32.lt_u - (get_local $27) - (tee_local $19 + (get_local $23) + (tee_local $17 (i32.load (i32.const 1224) ) @@ -1183,29 +1175,29 @@ (call_import $qa) ) (i32.store offset=24 - (get_local $27) - (get_local $2) + (get_local $23) + (get_local $0) ) (if (tee_local $3 (i32.load offset=16 - (get_local $26) + (get_local $1) ) ) (if (i32.lt_u (get_local $3) - (get_local $19) + (get_local $17) ) (call_import $qa) (block (i32.store offset=16 - (get_local $27) + (get_local $23) (get_local $3) ) (i32.store offset=24 (get_local $3) - (get_local $27) + (get_local $23) ) ) ) @@ -1213,7 +1205,7 @@ (if (tee_local $3 (i32.load offset=20 - (get_local $26) + (get_local $1) ) ) (if @@ -1226,12 +1218,12 @@ (call_import $qa) (block (i32.store offset=20 - (get_local $27) + (get_local $23) (get_local $3) ) (i32.store offset=24 (get_local $3) - (get_local $27) + (get_local $23) ) ) ) @@ -1241,17 +1233,17 @@ ) (if (i32.lt_u - (get_local $32) + (get_local $7) (i32.const 16) ) (block (i32.store offset=4 - (get_local $26) + (get_local $1) (i32.or - (tee_local $2 + (tee_local $0 (i32.add - (get_local $32) - (get_local $14) + (get_local $7) + (get_local $2) ) ) (i32.const 3) @@ -1261,8 +1253,8 @@ (tee_local $3 (i32.add (i32.add - (get_local $26) - (get_local $2) + (get_local $1) + (get_local $0) ) (i32.const 4) ) @@ -1277,25 +1269,25 @@ ) (block (i32.store offset=4 - (get_local $26) + (get_local $1) (i32.or - (get_local $14) + (get_local $2) (i32.const 3) ) ) (i32.store offset=4 - (get_local $12) + (get_local $5) (i32.or - (get_local $32) + (get_local $7) (i32.const 1) ) ) (i32.store (i32.add - (get_local $12) - (get_local $32) + (get_local $5) + (get_local $7) ) - (get_local $32) + (get_local $7) ) (if (tee_local $3 @@ -1304,7 +1296,7 @@ ) ) (block - (set_local $2 + (set_local $0 (i32.load (i32.const 1228) ) @@ -1314,7 +1306,7 @@ (i32.const 1248) (i32.shl (i32.shl - (tee_local $19 + (tee_local $17 (i32.shr_u (get_local $3) (i32.const 3) @@ -1328,23 +1320,23 @@ ) (if (i32.and - (tee_local $8 + (tee_local $10 (i32.load (i32.const 1208) ) ) - (tee_local $16 + (tee_local $6 (i32.shl (i32.const 1) - (get_local $19) + (get_local $17) ) ) ) (if (i32.lt_u - (tee_local $8 + (tee_local $10 (i32.load - (tee_local $16 + (tee_local $6 (i32.add (get_local $3) (i32.const 8) @@ -1358,11 +1350,11 @@ ) (call_import $qa) (block - (set_local $34 - (get_local $16) + (set_local $42 + (get_local $6) ) - (set_local $4 - (get_local $8) + (set_local $35 + (get_local $10) ) ) ) @@ -1370,66 +1362,66 @@ (i32.store (i32.const 1208) (i32.or - (get_local $8) - (get_local $16) + (get_local $10) + (get_local $6) ) ) - (set_local $34 + (set_local $42 (i32.add (get_local $3) (i32.const 8) ) ) - (set_local $4 + (set_local $35 (get_local $3) ) ) ) (i32.store - (get_local $34) - (get_local $2) + (get_local $42) + (get_local $0) ) (i32.store offset=12 - (get_local $4) - (get_local $2) + (get_local $35) + (get_local $0) ) (i32.store offset=8 - (get_local $2) - (get_local $4) + (get_local $0) + (get_local $35) ) (i32.store offset=12 - (get_local $2) + (get_local $0) (get_local $3) ) ) ) (i32.store (i32.const 1216) - (get_local $32) + (get_local $7) ) (i32.store (i32.const 1228) - (get_local $12) + (get_local $5) ) ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $26) + (get_local $1) (i32.const 8) ) ) ) - (set_local $18 - (get_local $14) + (set_local $6 + (get_local $2) ) ) ) - (set_local $18 - (get_local $14) + (set_local $6 + (get_local $2) ) ) ) @@ -1438,11 +1430,11 @@ (get_local $0) (i32.const -65) ) - (set_local $18 + (set_local $6 (i32.const -1) ) (block - (set_local $2 + (set_local $0 (i32.and (tee_local $3 (i32.add @@ -1454,27 +1446,27 @@ ) ) (if - (tee_local $8 + (tee_local $10 (i32.load (i32.const 1212) ) ) (block - (set_local $16 + (set_local $6 (i32.sub (i32.const 0) - (get_local $2) + (get_local $0) ) ) (block $label$break$a (if - (tee_local $0 + (tee_local $15 (i32.load (i32.add (i32.shl - (tee_local $34 + (tee_local $27 (if - (tee_local $19 + (tee_local $17 (i32.shr_u (get_local $3) (i32.const 8) @@ -1482,33 +1474,33 @@ ) (if (i32.gt_u - (get_local $2) + (get_local $0) (i32.const 16777215) ) (i32.const 31) (i32.or (i32.and (i32.shr_u - (get_local $2) + (get_local $0) (i32.add - (tee_local $0 + (tee_local $15 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $19 + (tee_local $17 (i32.and (i32.shr_u (i32.add - (tee_local $7 + (tee_local $9 (i32.shl - (get_local $19) + (get_local $17) (tee_local $3 (i32.and (i32.shr_u (i32.add - (get_local $19) + (get_local $17) (i32.const 1048320) ) (i32.const 16) @@ -1527,14 +1519,14 @@ ) (get_local $3) ) - (tee_local $7 + (tee_local $9 (i32.and (i32.shr_u (i32.add - (tee_local $25 + (tee_local $4 (i32.shl - (get_local $7) - (get_local $19) + (get_local $9) + (get_local $17) ) ) (i32.const 245760) @@ -1548,8 +1540,8 @@ ) (i32.shr_u (i32.shl - (get_local $25) - (get_local $7) + (get_local $4) + (get_local $9) ) (i32.const 15) ) @@ -1561,7 +1553,7 @@ (i32.const 1) ) (i32.shl - (get_local $0) + (get_local $15) (i32.const 1) ) ) @@ -1576,123 +1568,112 @@ ) ) (block - (set_local $7 - (get_local $16) + (set_local $9 + (get_local $6) ) - (set_local $25 + (set_local $4 (i32.const 0) ) (set_local $3 (i32.shl - (get_local $2) + (get_local $0) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $34) + (get_local $27) (i32.const 1) ) ) (i32.eq - (get_local $34) + (get_local $27) (i32.const 31) ) ) ) ) - (set_local $19 - (get_local $0) + (set_local $17 + (get_local $15) ) - (set_local $5 + (set_local $8 (i32.const 0) ) (loop $while-in$18 - (block $while-out$17 - (if - (i32.lt_u - (tee_local $29 - (i32.sub - (tee_local $27 - (i32.and - (i32.load offset=4 - (get_local $19) - ) - (i32.const -8) + (if + (i32.lt_u + (tee_local $2 + (i32.sub + (tee_local $5 + (i32.and + (i32.load offset=4 + (get_local $17) ) + (i32.const -8) ) - (get_local $2) ) + (get_local $0) ) - (get_local $7) ) - (if - (i32.eq - (get_local $27) + (get_local $9) + ) + (if + (i32.eq + (get_local $5) + (get_local $0) + ) + (block + (set_local $29 (get_local $2) ) - (block - (set_local $36 - (get_local $29) - ) - (set_local $18 - (get_local $19) - ) - (set_local $17 - (get_local $19) - ) - (set_local $7 - (i32.const 90) - ) - (br $label$break$a) + (set_local $28 + (get_local $17) ) - (block - (set_local $4 - (get_local $29) - ) - (set_local $0 - (get_local $19) - ) + (set_local $32 + (get_local $17) ) + (set_local $9 + (i32.const 90) + ) + (br $label$break$a) ) (block - (set_local $4 - (get_local $7) + (set_local $9 + (get_local $2) ) - (set_local $0 - (get_local $5) + (set_local $8 + (get_local $17) ) ) ) - (set_local $27 - (select - (get_local $25) - (tee_local $29 - (i32.load offset=20 - (get_local $19) - ) + ) + (set_local $5 + (select + (get_local $4) + (tee_local $2 + (i32.load offset=20 + (get_local $17) ) - (i32.or - (i32.eq - (get_local $29) - (i32.const 0) - ) - (i32.eq - (get_local $29) - (tee_local $19 - (i32.load + ) + (i32.or + (i32.eqz + (get_local $2) + ) + (i32.eq + (get_local $2) + (tee_local $17 + (i32.load + (i32.add (i32.add - (i32.add - (get_local $19) - (i32.const 16) - ) - (i32.shl - (i32.shr_u - (get_local $3) - (i32.const 31) - ) - (i32.const 2) + (get_local $17) + (i32.const 16) + ) + (i32.shl + (i32.shr_u + (get_local $3) + (i32.const 31) ) + (i32.const 2) ) ) ) @@ -1700,67 +1681,59 @@ ) ) ) - (if - (tee_local $29 - (i32.eq - (get_local $19) - (i32.const 0) - ) + ) + (if + (tee_local $2 + (i32.eqz + (get_local $17) ) - (block - (set_local $40 - (get_local $4) - ) - (set_local $12 - (get_local $27) - ) - (set_local $38 - (get_local $0) - ) - (set_local $7 - (i32.const 86) - ) - (br $while-out$17) + ) + (block + (set_local $36 + (get_local $9) ) - (block - (set_local $7 - (get_local $4) - ) - (set_local $25 - (get_local $27) - ) - (set_local $3 - (i32.shl - (get_local $3) - (i32.xor - (i32.and - (get_local $29) - (i32.const 1) - ) + (set_local $37 + (get_local $5) + ) + (set_local $33 + (get_local $8) + ) + (set_local $9 + (i32.const 86) + ) + ) + (block + (set_local $4 + (get_local $5) + ) + (set_local $3 + (i32.shl + (get_local $3) + (i32.xor + (i32.and + (get_local $2) (i32.const 1) ) + (i32.const 1) ) ) - (set_local $5 - (get_local $0) - ) ) + (br $while-in$18) ) - (br $while-in$18) ) ) ) (block - (set_local $40 - (get_local $16) + (set_local $36 + (get_local $6) ) - (set_local $12 + (set_local $37 (i32.const 0) ) - (set_local $38 + (set_local $33 (i32.const 0) ) - (set_local $7 + (set_local $9 (i32.const 86) ) ) @@ -1768,60 +1741,58 @@ ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 86) ) (if - (tee_local $0 + (tee_local $2 (if (i32.and - (i32.eq - (get_local $12) - (i32.const 0) + (i32.eqz + (get_local $37) ) - (i32.eq - (get_local $38) - (i32.const 0) + (i32.eqz + (get_local $33) ) ) (block (if (i32.eqz - (tee_local $16 + (tee_local $6 (i32.and - (get_local $8) + (get_local $10) (i32.or - (tee_local $0 + (tee_local $15 (i32.shl (i32.const 2) - (get_local $34) + (get_local $27) ) ) (i32.sub (i32.const 0) - (get_local $0) + (get_local $15) ) ) ) ) ) (block - (set_local $18 - (get_local $2) + (set_local $6 + (get_local $0) ) (br $do-once$0) ) ) - (set_local $16 + (set_local $6 (i32.and (i32.shr_u - (tee_local $0 + (tee_local $15 (i32.add (i32.and - (get_local $16) + (get_local $6) (i32.sub (i32.const 0) - (get_local $16) + (get_local $6) ) ) (i32.const -1) @@ -1840,13 +1811,13 @@ (i32.or (i32.or (i32.or - (tee_local $0 + (tee_local $15 (i32.and (i32.shr_u - (tee_local $14 + (tee_local $2 (i32.shr_u - (get_local $0) - (get_local $16) + (get_local $15) + (get_local $6) ) ) (i32.const 5) @@ -1854,15 +1825,15 @@ (i32.const 8) ) ) - (get_local $16) + (get_local $6) ) - (tee_local $14 + (tee_local $2 (i32.and (i32.shr_u - (tee_local $12 + (tee_local $5 (i32.shr_u - (get_local $14) - (get_local $0) + (get_local $2) + (get_local $15) ) ) (i32.const 2) @@ -1871,13 +1842,13 @@ ) ) ) - (tee_local $12 + (tee_local $5 (i32.and (i32.shr_u - (tee_local $5 + (tee_local $8 (i32.shr_u - (get_local $12) - (get_local $14) + (get_local $5) + (get_local $2) ) ) (i32.const 1) @@ -1886,13 +1857,13 @@ ) ) ) - (tee_local $5 + (tee_local $8 (i32.and (i32.shr_u (tee_local $3 (i32.shr_u + (get_local $8) (get_local $5) - (get_local $12) ) ) (i32.const 1) @@ -1903,7 +1874,7 @@ ) (i32.shr_u (get_local $3) - (get_local $5) + (get_local $8) ) ) (i32.const 2) @@ -1912,137 +1883,134 @@ ) ) ) - (get_local $12) + (get_local $37) ) ) (block - (set_local $36 - (get_local $40) + (set_local $29 + (get_local $36) ) - (set_local $18 - (get_local $0) + (set_local $28 + (get_local $2) ) - (set_local $17 - (get_local $38) + (set_local $32 + (get_local $33) ) - (set_local $7 + (set_local $9 (i32.const 90) ) ) (block - (set_local $22 - (get_local $40) + (set_local $16 + (get_local $36) ) - (set_local $9 - (get_local $38) + (set_local $11 + (get_local $33) ) ) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 90) ) (loop $while-in$20 - (block $while-out$19 - (set_local $7 - (i32.const 0) - ) - (set_local $3 - (i32.lt_u - (tee_local $5 - (i32.sub - (i32.and - (i32.load offset=4 - (get_local $18) - ) - (i32.const -8) + (set_local $9 + (i32.const 0) + ) + (set_local $3 + (i32.lt_u + (tee_local $8 + (i32.sub + (i32.and + (i32.load offset=4 + (get_local $28) ) - (get_local $2) + (i32.const -8) ) + (get_local $0) ) - (get_local $36) ) + (get_local $29) ) - (set_local $12 - (select + ) + (set_local $5 + (select + (get_local $8) + (get_local $29) + (get_local $3) + ) + ) + (set_local $8 + (select + (get_local $28) + (get_local $32) + (get_local $3) + ) + ) + (if + (tee_local $3 + (i32.load offset=16 + (get_local $28) + ) + ) + (block + (set_local $29 (get_local $5) - (get_local $36) + ) + (set_local $28 (get_local $3) ) + (set_local $32 + (get_local $8) + ) + (br $while-in$20) ) - (set_local $5 - (select - (get_local $18) - (get_local $17) - (get_local $3) + ) + (if + (tee_local $28 + (i32.load offset=20 + (get_local $28) ) ) - (if - (tee_local $3 - (i32.load offset=16 - (get_local $18) - ) + (block + (set_local $29 + (get_local $5) ) - (block - (set_local $36 - (get_local $12) - ) - (set_local $18 - (get_local $3) - ) - (set_local $17 - (get_local $5) - ) - (br $while-in$20) + (set_local $32 + (get_local $8) ) + (br $while-in$20) ) - (if - (tee_local $18 - (i32.load offset=20 - (get_local $18) - ) - ) - (block - (set_local $36 - (get_local $12) - ) - (set_local $17 - (get_local $5) - ) + (block + (set_local $16 + (get_local $5) ) - (block - (set_local $22 - (get_local $12) - ) - (set_local $9 - (get_local $5) - ) - (br $while-out$19) + (set_local $11 + (get_local $8) ) ) - (br $while-in$20) ) ) ) (if - (get_local $9) + (get_local $11) (if (i32.lt_u - (get_local $22) + (get_local $16) (i32.sub (i32.load (i32.const 1216) ) - (get_local $2) + (get_local $0) ) ) (block (if (i32.lt_u - (get_local $9) - (tee_local $8 + (get_local $11) + (tee_local $10 (i32.load (i32.const 1224) ) @@ -2052,19 +2020,19 @@ ) (if (i32.ge_u - (get_local $9) - (tee_local $5 + (get_local $11) + (tee_local $8 (i32.add - (get_local $9) - (get_local $2) + (get_local $11) + (get_local $0) ) ) ) (call_import $qa) ) - (set_local $12 + (set_local $5 (i32.load offset=24 - (get_local $9) + (get_local $11) ) ) (block $do-once$21 @@ -2072,47 +2040,47 @@ (i32.eq (tee_local $3 (i32.load offset=12 - (get_local $9) + (get_local $11) ) ) - (get_local $9) + (get_local $11) ) (block (if - (tee_local $16 + (tee_local $6 (i32.load - (tee_local $14 + (tee_local $2 (i32.add - (get_local $9) + (get_local $11) (i32.const 20) ) ) ) ) (block - (set_local $11 - (get_local $16) + (set_local $4 + (get_local $6) ) - (set_local $0 - (get_local $14) + (set_local $3 + (get_local $2) ) ) (if - (tee_local $25 + (tee_local $4 (i32.load - (tee_local $0 + (tee_local $15 (i32.add - (get_local $9) + (get_local $11) (i32.const 16) ) ) ) ) - (set_local $11 - (get_local $25) + (set_local $3 + (get_local $15) ) (block - (set_local $20 + (set_local $22 (i32.const 0) ) (br $do-once$21) @@ -2120,65 +2088,62 @@ ) ) (loop $while-in$24 - (block $while-out$23 - (if - (tee_local $16 - (i32.load - (tee_local $14 - (i32.add - (get_local $11) - (i32.const 20) - ) + (if + (tee_local $6 + (i32.load + (tee_local $2 + (i32.add + (get_local $4) + (i32.const 20) ) ) ) - (block - (set_local $11 - (get_local $16) - ) - (set_local $0 - (get_local $14) - ) - (br $while-in$24) + ) + (block + (set_local $4 + (get_local $6) ) + (set_local $3 + (get_local $2) + ) + (br $while-in$24) ) - (if - (tee_local $16 - (i32.load - (tee_local $14 - (i32.add - (get_local $11) - (i32.const 16) - ) + ) + (if + (tee_local $6 + (i32.load + (tee_local $2 + (i32.add + (get_local $4) + (i32.const 16) ) ) ) - (block - (set_local $11 - (get_local $16) - ) - (set_local $0 - (get_local $14) - ) + ) + (block + (set_local $4 + (get_local $6) ) - (br $while-out$23) + (set_local $3 + (get_local $2) + ) + (br $while-in$24) ) - (br $while-in$24) ) ) (if (i32.lt_u - (get_local $0) - (get_local $8) + (get_local $3) + (get_local $10) ) (call_import $qa) (block (i32.store - (get_local $0) + (get_local $3) (i32.const 0) ) - (set_local $20 - (get_local $11) + (set_local $22 + (get_local $4) ) ) ) @@ -2186,51 +2151,51 @@ (block (if (i32.lt_u - (tee_local $14 + (tee_local $2 (i32.load offset=8 - (get_local $9) + (get_local $11) ) ) - (get_local $8) + (get_local $10) ) (call_import $qa) ) (if (i32.ne (i32.load - (tee_local $16 + (tee_local $6 (i32.add - (get_local $14) + (get_local $2) (i32.const 12) ) ) ) - (get_local $9) + (get_local $11) ) (call_import $qa) ) (if (i32.eq (i32.load - (tee_local $0 + (tee_local $15 (i32.add (get_local $3) (i32.const 8) ) ) ) - (get_local $9) + (get_local $11) ) (block (i32.store - (get_local $16) + (get_local $6) (get_local $3) ) (i32.store - (get_local $0) - (get_local $14) + (get_local $15) + (get_local $2) ) - (set_local $20 + (set_local $22 (get_local $3) ) ) @@ -2241,19 +2206,19 @@ ) (block $do-once$25 (if - (get_local $12) + (get_local $5) (block (if (i32.eq - (get_local $9) + (get_local $11) (i32.load - (tee_local $8 + (tee_local $10 (i32.add (i32.const 1512) (i32.shl (tee_local $3 (i32.load offset=28 - (get_local $9) + (get_local $11) ) ) (i32.const 2) @@ -2264,12 +2229,12 @@ ) (block (i32.store - (get_local $8) - (get_local $20) + (get_local $10) + (get_local $22) ) (if (i32.eqz - (get_local $20) + (get_local $22) ) (block (i32.store @@ -2294,7 +2259,7 @@ (block (if (i32.lt_u - (get_local $12) + (get_local $5) (i32.load (i32.const 1224) ) @@ -2306,32 +2271,32 @@ (i32.load (tee_local $3 (i32.add - (get_local $12) + (get_local $5) (i32.const 16) ) ) ) - (get_local $9) + (get_local $11) ) (i32.store (get_local $3) - (get_local $20) + (get_local $22) ) (i32.store offset=20 - (get_local $12) - (get_local $20) + (get_local $5) + (get_local $22) ) ) (br_if $do-once$25 (i32.eqz - (get_local $20) + (get_local $22) ) ) ) ) (if (i32.lt_u - (get_local $20) + (get_local $22) (tee_local $3 (i32.load (i32.const 1224) @@ -2341,42 +2306,42 @@ (call_import $qa) ) (i32.store offset=24 - (get_local $20) - (get_local $12) + (get_local $22) + (get_local $5) ) (if - (tee_local $8 + (tee_local $10 (i32.load offset=16 - (get_local $9) + (get_local $11) ) ) (if (i32.lt_u - (get_local $8) + (get_local $10) (get_local $3) ) (call_import $qa) (block (i32.store offset=16 - (get_local $20) - (get_local $8) + (get_local $22) + (get_local $10) ) (i32.store offset=24 - (get_local $8) - (get_local $20) + (get_local $10) + (get_local $22) ) ) ) ) (if - (tee_local $8 + (tee_local $10 (i32.load offset=20 - (get_local $9) + (get_local $11) ) ) (if (i32.lt_u - (get_local $8) + (get_local $10) (i32.load (i32.const 1224) ) @@ -2384,12 +2349,12 @@ (call_import $qa) (block (i32.store offset=20 - (get_local $20) - (get_local $8) + (get_local $22) + (get_local $10) ) (i32.store offset=24 - (get_local $8) - (get_local $20) + (get_local $10) + (get_local $22) ) ) ) @@ -2400,35 +2365,35 @@ (block $do-once$29 (if (i32.lt_u - (get_local $22) + (get_local $16) (i32.const 16) ) (block (i32.store offset=4 - (get_local $9) + (get_local $11) (i32.or - (tee_local $12 + (tee_local $5 (i32.add - (get_local $22) - (get_local $2) + (get_local $16) + (get_local $0) ) ) (i32.const 3) ) ) (i32.store - (tee_local $8 + (tee_local $10 (i32.add (i32.add - (get_local $9) - (get_local $12) + (get_local $11) + (get_local $5) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $8) + (get_local $10) ) (i32.const 1) ) @@ -2436,44 +2401,44 @@ ) (block (i32.store offset=4 - (get_local $9) + (get_local $11) (i32.or - (get_local $2) + (get_local $0) (i32.const 3) ) ) (i32.store offset=4 - (get_local $5) + (get_local $8) (i32.or - (get_local $22) + (get_local $16) (i32.const 1) ) ) (i32.store (i32.add - (get_local $5) - (get_local $22) + (get_local $8) + (get_local $16) ) - (get_local $22) + (get_local $16) ) - (set_local $8 + (set_local $10 (i32.shr_u - (get_local $22) + (get_local $16) (i32.const 3) ) ) (if (i32.lt_u - (get_local $22) + (get_local $16) (i32.const 256) ) (block - (set_local $12 + (set_local $5 (i32.add (i32.const 1248) (i32.shl (i32.shl - (get_local $8) + (get_local $10) (i32.const 1) ) (i32.const 2) @@ -2487,10 +2452,10 @@ (i32.const 1208) ) ) - (tee_local $14 + (tee_local $2 (i32.shl (i32.const 1) - (get_local $8) + (get_local $10) ) ) ) @@ -2498,9 +2463,9 @@ (i32.lt_u (tee_local $3 (i32.load - (tee_local $14 + (tee_local $2 (i32.add - (get_local $12) + (get_local $5) (i32.const 8) ) ) @@ -2512,10 +2477,10 @@ ) (call_import $qa) (block - (set_local $23 - (get_local $14) + (set_local $19 + (get_local $2) ) - (set_local $13 + (set_local $7 (get_local $3) ) ) @@ -2525,80 +2490,80 @@ (i32.const 1208) (i32.or (get_local $3) - (get_local $14) + (get_local $2) ) ) - (set_local $23 + (set_local $19 (i32.add - (get_local $12) + (get_local $5) (i32.const 8) ) ) - (set_local $13 - (get_local $12) + (set_local $7 + (get_local $5) ) ) ) (i32.store - (get_local $23) - (get_local $5) + (get_local $19) + (get_local $8) ) (i32.store offset=12 - (get_local $13) - (get_local $5) + (get_local $7) + (get_local $8) ) (i32.store offset=8 - (get_local $5) - (get_local $13) + (get_local $8) + (get_local $7) ) (i32.store offset=12 + (get_local $8) (get_local $5) - (get_local $12) ) (br $do-once$29) ) ) - (set_local $0 + (set_local $15 (i32.add (i32.const 1512) (i32.shl - (tee_local $20 + (tee_local $3 (if - (tee_local $12 + (tee_local $5 (i32.shr_u - (get_local $22) + (get_local $16) (i32.const 8) ) ) (if (i32.gt_u - (get_local $22) + (get_local $16) (i32.const 16777215) ) (i32.const 31) (i32.or (i32.and (i32.shr_u - (get_local $22) + (get_local $16) (i32.add - (tee_local $0 + (tee_local $15 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $12 + (tee_local $5 (i32.and (i32.shr_u (i32.add - (tee_local $14 + (tee_local $2 (i32.shl - (get_local $12) + (get_local $5) (tee_local $3 (i32.and (i32.shr_u (i32.add - (get_local $12) + (get_local $5) (i32.const 1048320) ) (i32.const 16) @@ -2617,14 +2582,14 @@ ) (get_local $3) ) - (tee_local $14 + (tee_local $2 (i32.and (i32.shr_u (i32.add - (tee_local $8 + (tee_local $10 (i32.shl - (get_local $14) - (get_local $12) + (get_local $2) + (get_local $5) ) ) (i32.const 245760) @@ -2638,8 +2603,8 @@ ) (i32.shr_u (i32.shl - (get_local $8) - (get_local $14) + (get_local $10) + (get_local $2) ) (i32.const 15) ) @@ -2651,7 +2616,7 @@ (i32.const 1) ) (i32.shl - (get_local $0) + (get_local $15) (i32.const 1) ) ) @@ -2664,34 +2629,34 @@ ) ) (i32.store offset=28 - (get_local $5) - (get_local $20) + (get_local $8) + (get_local $3) ) (i32.store offset=4 - (tee_local $14 + (tee_local $2 (i32.add - (get_local $5) + (get_local $8) (i32.const 16) ) ) (i32.const 0) ) (i32.store - (get_local $14) + (get_local $2) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $14 + (tee_local $2 (i32.load (i32.const 1212) ) ) - (tee_local $8 + (tee_local $10 (i32.shl (i32.const 1) - (get_local $20) + (get_local $3) ) ) ) @@ -2700,51 +2665,51 @@ (i32.store (i32.const 1212) (i32.or - (get_local $14) - (get_local $8) + (get_local $2) + (get_local $10) ) ) (i32.store - (get_local $0) - (get_local $5) + (get_local $15) + (get_local $8) ) (i32.store offset=24 - (get_local $5) - (get_local $0) + (get_local $8) + (get_local $15) ) (i32.store offset=12 - (get_local $5) - (get_local $5) + (get_local $8) + (get_local $8) ) (i32.store offset=8 - (get_local $5) - (get_local $5) + (get_local $8) + (get_local $8) ) (br $do-once$29) ) ) - (set_local $8 + (set_local $10 (i32.shl - (get_local $22) + (get_local $16) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $20) + (get_local $3) (i32.const 1) ) ) (i32.eq - (get_local $20) + (get_local $3) (i32.const 31) ) ) ) ) - (set_local $14 + (set_local $2 (i32.load - (get_local $0) + (get_local $15) ) ) (loop $while-in$32 @@ -2753,17 +2718,17 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $14) + (get_local $2) ) (i32.const -8) ) - (get_local $22) + (get_local $16) ) (block - (set_local $21 - (get_local $14) + (set_local $18 + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 148) ) (br $while-out$31) @@ -2772,15 +2737,15 @@ (if (tee_local $3 (i32.load - (tee_local $0 + (tee_local $15 (i32.add (i32.add - (get_local $14) + (get_local $2) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $8) + (get_local $10) (i32.const 31) ) (i32.const 2) @@ -2790,40 +2755,39 @@ ) ) (block - (set_local $8 + (set_local $10 (i32.shl - (get_local $8) + (get_local $10) (i32.const 1) ) ) - (set_local $14 + (set_local $2 (get_local $3) ) + (br $while-in$32) ) (block - (set_local $6 - (get_local $0) + (set_local $21 + (get_local $15) ) - (set_local $24 - (get_local $14) + (set_local $14 + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 145) ) - (br $while-out$31) ) ) - (br $while-in$32) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 145) ) (if (i32.lt_u - (get_local $6) + (get_local $21) (i32.load (i32.const 1224) ) @@ -2831,36 +2795,36 @@ (call_import $qa) (block (i32.store - (get_local $6) - (get_local $5) + (get_local $21) + (get_local $8) ) (i32.store offset=24 - (get_local $5) - (get_local $24) + (get_local $8) + (get_local $14) ) (i32.store offset=12 - (get_local $5) - (get_local $5) + (get_local $8) + (get_local $8) ) (i32.store offset=8 - (get_local $5) - (get_local $5) + (get_local $8) + (get_local $8) ) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 148) ) (if (i32.and (i32.ge_u - (tee_local $8 + (tee_local $10 (i32.load - (tee_local $14 + (tee_local $2 (i32.add - (get_local $21) + (get_local $18) (i32.const 8) ) ) @@ -2873,29 +2837,29 @@ ) ) (i32.ge_u - (get_local $21) + (get_local $18) (get_local $3) ) ) (block (i32.store offset=12 + (get_local $10) (get_local $8) - (get_local $5) ) (i32.store - (get_local $14) - (get_local $5) + (get_local $2) + (get_local $8) ) (i32.store offset=8 - (get_local $5) (get_local $8) + (get_local $10) ) (i32.store offset=12 - (get_local $5) - (get_local $21) + (get_local $8) + (get_local $18) ) (i32.store offset=24 - (get_local $5) + (get_local $8) (i32.const 0) ) ) @@ -2907,26 +2871,26 @@ ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $9) + (get_local $11) (i32.const 8) ) ) ) - (set_local $18 - (get_local $2) + (set_local $6 + (get_local $0) ) ) - (set_local $18 - (get_local $2) + (set_local $6 + (get_local $0) ) ) ) - (set_local $18 - (get_local $2) + (set_local $6 + (get_local $0) ) ) ) @@ -2935,25 +2899,25 @@ ) (if (i32.ge_u - (tee_local $9 + (tee_local $11 (i32.load (i32.const 1216) ) ) - (get_local $18) + (get_local $6) ) (block - (set_local $24 + (set_local $14 (i32.load (i32.const 1228) ) ) (if (i32.gt_u - (tee_local $21 + (tee_local $18 (i32.sub - (get_local $9) - (get_local $18) + (get_local $11) + (get_local $6) ) ) (i32.const 15) @@ -2961,35 +2925,35 @@ (block (i32.store (i32.const 1228) - (tee_local $6 + (tee_local $21 (i32.add - (get_local $24) - (get_local $18) + (get_local $14) + (get_local $6) ) ) ) (i32.store (i32.const 1216) - (get_local $21) + (get_local $18) ) (i32.store offset=4 - (get_local $6) + (get_local $21) (i32.or - (get_local $21) + (get_local $18) (i32.const 1) ) ) (i32.store (i32.add - (get_local $6) (get_local $21) + (get_local $18) ) - (get_local $21) + (get_local $18) ) (i32.store offset=4 - (get_local $24) + (get_local $14) (i32.or - (get_local $18) + (get_local $6) (i32.const 3) ) ) @@ -3004,25 +2968,25 @@ (i32.const 0) ) (i32.store offset=4 - (get_local $24) + (get_local $14) (i32.or - (get_local $9) + (get_local $11) (i32.const 3) ) ) (i32.store - (tee_local $21 + (tee_local $18 (i32.add (i32.add - (get_local $24) - (get_local $9) + (get_local $14) + (get_local $11) ) (i32.const 4) ) ) (i32.or (i32.load - (get_local $21) + (get_local $18) ) (i32.const 1) ) @@ -3030,11 +2994,11 @@ ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $24) + (get_local $14) (i32.const 8) ) ) @@ -3042,56 +3006,56 @@ ) (if (i32.gt_u - (tee_local $24 + (tee_local $14 (i32.load (i32.const 1220) ) ) - (get_local $18) + (get_local $6) ) (block (i32.store (i32.const 1220) - (tee_local $21 + (tee_local $18 (i32.sub - (get_local $24) - (get_local $18) + (get_local $14) + (get_local $6) ) ) ) (i32.store (i32.const 1232) - (tee_local $9 + (tee_local $11 (i32.add - (tee_local $24 + (tee_local $14 (i32.load (i32.const 1232) ) ) - (get_local $18) + (get_local $6) ) ) ) (i32.store offset=4 - (get_local $9) + (get_local $11) (i32.or - (get_local $21) + (get_local $18) (i32.const 1) ) ) (i32.store offset=4 - (get_local $24) + (get_local $14) (i32.or - (get_local $18) + (get_local $6) (i32.const 3) ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $24) + (get_local $14) (i32.const 8) ) ) @@ -3129,11 +3093,11 @@ (i32.const 0) ) (i32.store - (get_local $15) - (tee_local $24 + (get_local $13) + (tee_local $14 (i32.xor (i32.and - (get_local $15) + (get_local $13) (i32.const -16) ) (i32.const 1431655768) @@ -3142,48 +3106,48 @@ ) (i32.store (i32.const 1680) - (get_local $24) + (get_local $14) ) ) ) - (set_local $24 + (set_local $14 (i32.add - (get_local $18) + (get_local $6) (i32.const 48) ) ) (if (i32.le_u - (tee_local $15 + (tee_local $13 (i32.and - (tee_local $9 + (tee_local $11 (i32.add - (tee_local $15 + (tee_local $13 (i32.load (i32.const 1688) ) ) - (tee_local $21 + (tee_local $18 (i32.add - (get_local $18) + (get_local $6) (i32.const 47) ) ) ) ) - (tee_local $6 + (tee_local $21 (i32.sub (i32.const 0) - (get_local $15) + (get_local $13) ) ) ) ) - (get_local $18) + (get_local $6) ) (block (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.const 0) @@ -3191,7 +3155,7 @@ ) ) (if - (tee_local $22 + (tee_local $16 (i32.load (i32.const 1648) ) @@ -3199,26 +3163,26 @@ (if (i32.or (i32.le_u - (tee_local $13 + (tee_local $7 (i32.add - (tee_local $20 + (tee_local $3 (i32.load (i32.const 1640) ) ) - (get_local $15) + (get_local $13) ) ) - (get_local $20) + (get_local $3) ) (i32.gt_u - (get_local $13) - (get_local $22) + (get_local $7) + (get_local $16) ) ) (block (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.const 0) @@ -3228,7 +3192,7 @@ ) (if (i32.eq - (tee_local $7 + (tee_local $9 (block $label$break$b (if (i32.and @@ -3241,90 +3205,85 @@ (block (block $label$break$c (if - (tee_local $22 + (tee_local $16 (i32.load (i32.const 1232) ) ) (block - (set_local $13 + (set_local $7 (i32.const 1656) ) (loop $while-in$36 (block $while-out$35 (if (i32.le_u - (tee_local $20 + (tee_local $3 (i32.load - (get_local $13) + (get_local $7) ) ) - (get_local $22) + (get_local $16) ) (if (i32.gt_u (i32.add - (get_local $20) + (get_local $3) (i32.load - (tee_local $23 + (tee_local $19 (i32.add - (get_local $13) + (get_local $7) (i32.const 4) ) ) ) ) - (get_local $22) + (get_local $16) ) (block (set_local $0 - (get_local $13) + (get_local $7) ) - (set_local $17 - (get_local $23) + (set_local $5 + (get_local $19) ) (br $while-out$35) ) ) ) - (if - (i32.eqz - (tee_local $13 - (i32.load offset=8 - (get_local $13) - ) - ) - ) - (block - (set_local $7 - (i32.const 171) + (br_if $while-in$36 + (tee_local $7 + (i32.load offset=8 + (get_local $7) ) - (br $label$break$c) ) ) - (br $while-in$36) + (set_local $9 + (i32.const 171) + ) + (br $label$break$c) ) ) (if (i32.lt_u - (tee_local $13 + (tee_local $7 (i32.and (i32.sub - (get_local $9) + (get_local $11) (i32.load (i32.const 1220) ) ) - (get_local $6) + (get_local $21) ) ) (i32.const 2147483647) ) (if (i32.eq - (tee_local $23 + (tee_local $19 (call_import $ta - (get_local $13) + (get_local $7) ) ) (i32.add @@ -3332,21 +3291,21 @@ (get_local $0) ) (i32.load - (get_local $17) + (get_local $5) ) ) ) (if (i32.ne - (get_local $23) + (get_local $19) (i32.const -1) ) (block - (set_local $28 - (get_local $23) + (set_local $20 + (get_local $19) ) - (set_local $33 - (get_local $13) + (set_local $26 + (get_local $7) ) (br $label$break$b (i32.const 191) @@ -3354,20 +3313,20 @@ ) ) (block - (set_local $10 - (get_local $23) + (set_local $12 + (get_local $19) ) (set_local $1 - (get_local $13) + (get_local $7) ) - (set_local $7 + (set_local $9 (i32.const 181) ) ) ) ) ) - (set_local $7 + (set_local $9 (i32.const 171) ) ) @@ -3375,12 +3334,12 @@ (block $do-once$37 (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 171) ) (if (i32.ne - (tee_local $22 + (tee_local $16 (call_import $ta (i32.const 0) ) @@ -3388,12 +3347,12 @@ (i32.const -1) ) (block - (set_local $6 + (set_local $2 (if (i32.and - (tee_local $23 + (tee_local $19 (i32.add - (tee_local $13 + (tee_local $7 (i32.load (i32.const 1684) ) @@ -3401,53 +3360,53 @@ (i32.const -1) ) ) - (tee_local $2 - (get_local $22) + (tee_local $0 + (get_local $16) ) ) (i32.add (i32.sub - (get_local $15) - (get_local $2) + (get_local $13) + (get_local $0) ) (i32.and (i32.add - (get_local $23) - (get_local $2) + (get_local $19) + (get_local $0) ) (i32.sub (i32.const 0) - (get_local $13) + (get_local $7) ) ) ) - (get_local $15) + (get_local $13) ) ) - (set_local $2 + (set_local $0 (i32.add - (tee_local $13 + (tee_local $7 (i32.load (i32.const 1640) ) ) - (get_local $6) + (get_local $2) ) ) (if (i32.and (i32.gt_u + (get_local $2) (get_local $6) - (get_local $18) ) (i32.lt_u - (get_local $6) + (get_local $2) (i32.const 2147483647) ) ) (block (if - (tee_local $23 + (tee_local $19 (i32.load (i32.const 1648) ) @@ -3455,44 +3414,44 @@ (br_if $do-once$37 (i32.or (i32.le_u - (get_local $2) - (get_local $13) + (get_local $0) + (get_local $7) ) (i32.gt_u - (get_local $2) - (get_local $23) + (get_local $0) + (get_local $19) ) ) ) ) (if (i32.eq - (tee_local $23 + (tee_local $19 (call_import $ta - (get_local $6) + (get_local $2) ) ) - (get_local $22) + (get_local $16) ) (block - (set_local $28 - (get_local $22) + (set_local $20 + (get_local $16) ) - (set_local $33 - (get_local $6) + (set_local $26 + (get_local $2) ) (br $label$break$b (i32.const 191) ) ) (block - (set_local $10 - (get_local $23) + (set_local $12 + (get_local $19) ) (set_local $1 - (get_local $6) + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 181) ) ) @@ -3506,11 +3465,11 @@ (block $label$break$d (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 181) ) (block - (set_local $23 + (set_local $19 (i32.sub (i32.const 0) (get_local $1) @@ -3519,7 +3478,7 @@ (if (i32.and (i32.gt_u - (get_local $24) + (get_local $14) (get_local $1) ) (i32.and @@ -3528,21 +3487,21 @@ (i32.const 2147483647) ) (i32.ne - (get_local $10) + (get_local $12) (i32.const -1) ) ) ) (if (i32.lt_u - (tee_local $2 + (tee_local $0 (i32.and (i32.add (i32.sub - (get_local $21) + (get_local $18) (get_local $1) ) - (tee_local $22 + (tee_local $16 (i32.load (i32.const 1688) ) @@ -3550,7 +3509,7 @@ ) (i32.sub (i32.const 0) - (get_local $22) + (get_local $16) ) ) ) @@ -3559,21 +3518,21 @@ (if (i32.eq (call_import $ta - (get_local $2) + (get_local $0) ) (i32.const -1) ) (block (drop (call_import $ta - (get_local $23) + (get_local $19) ) ) (br $label$break$d) ) (set_local $4 (i32.add - (get_local $2) + (get_local $0) (get_local $1) ) ) @@ -3588,14 +3547,14 @@ ) (if (i32.ne - (get_local $10) + (get_local $12) (i32.const -1) ) (block - (set_local $28 - (get_local $10) + (set_local $20 + (get_local $12) ) - (set_local $33 + (set_local $26 (get_local $4) ) (br $label$break$b @@ -3624,7 +3583,7 @@ ) (if (i32.lt_u - (get_local $15) + (get_local $13) (i32.const 2147483647) ) (if @@ -3632,10 +3591,10 @@ (i32.lt_u (tee_local $4 (call_import $ta - (get_local $15) + (get_local $13) ) ) - (tee_local $15 + (tee_local $13 (call_import $ta (i32.const 0) ) @@ -3647,32 +3606,32 @@ (i32.const -1) ) (i32.ne - (get_local $15) + (get_local $13) (i32.const -1) ) ) ) (if (i32.gt_u - (tee_local $10 + (tee_local $12 (i32.sub - (get_local $15) + (get_local $13) (get_local $4) ) ) (i32.add - (get_local $18) + (get_local $6) (i32.const 40) ) ) (block - (set_local $28 + (set_local $20 (get_local $4) ) - (set_local $33 - (get_local $10) + (set_local $26 + (get_local $12) ) - (set_local $7 + (set_local $9 (i32.const 191) ) ) @@ -3682,36 +3641,36 @@ ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 191) ) (block (i32.store (i32.const 1640) - (tee_local $10 + (tee_local $12 (i32.add (i32.load (i32.const 1640) ) - (get_local $33) + (get_local $26) ) ) ) (if (i32.gt_u - (get_local $10) + (get_local $12) (i32.load (i32.const 1644) ) ) (i32.store (i32.const 1644) - (get_local $10) + (get_local $12) ) ) (block $do-once$42 (if - (tee_local $10 + (tee_local $12 (i32.load (i32.const 1232) ) @@ -3724,16 +3683,16 @@ (block $do-out$46 (if (i32.eq - (get_local $28) + (get_local $20) (i32.add (tee_local $4 (i32.load (get_local $1) ) ) - (tee_local $21 + (tee_local $18 (i32.load - (tee_local $15 + (tee_local $13 (i32.add (get_local $1) (i32.const 4) @@ -3744,19 +3703,19 @@ ) ) (block - (set_local $50 + (set_local $49 (get_local $4) ) + (set_local $50 + (get_local $13) + ) (set_local $51 - (get_local $15) + (get_local $18) ) (set_local $52 - (get_local $21) - ) - (set_local $35 (get_local $1) ) - (set_local $7 + (set_local $9 (i32.const 201) ) (br $do-out$46) @@ -3776,14 +3735,14 @@ ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 201) ) (if (i32.eqz (i32.and (i32.load offset=12 - (get_local $35) + (get_local $52) ) (i32.const 8) ) @@ -3791,56 +3750,53 @@ (if (i32.and (i32.lt_u - (get_local $10) - (get_local $28) + (get_local $12) + (get_local $20) ) (i32.ge_u - (get_local $10) - (get_local $50) + (get_local $12) + (get_local $49) ) ) (block (i32.store - (get_local $51) + (get_local $50) (i32.add - (get_local $52) - (get_local $33) + (get_local $51) + (get_local $26) ) ) (set_local $1 (i32.add - (get_local $10) - (tee_local $21 + (get_local $12) + (tee_local $18 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $10) + (get_local $12) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) ) - (set_local $15 + (set_local $13 (i32.add (i32.sub - (get_local $33) - (get_local $21) + (get_local $26) + (get_local $18) ) (i32.load (i32.const 1220) @@ -3853,19 +3809,19 @@ ) (i32.store (i32.const 1220) - (get_local $15) + (get_local $13) ) (i32.store offset=4 (get_local $1) (i32.or - (get_local $15) + (get_local $13) (i32.const 1) ) ) (i32.store offset=4 (i32.add (get_local $1) - (get_local $15) + (get_local $13) ) (i32.const 40) ) @@ -3880,11 +3836,11 @@ ) ) ) - (set_local $35 + (set_local $8 (if (i32.lt_u - (get_local $28) - (tee_local $15 + (get_local $20) + (tee_local $13 (i32.load (i32.const 1224) ) @@ -3893,17 +3849,17 @@ (block (i32.store (i32.const 1224) - (get_local $28) + (get_local $20) ) - (get_local $28) + (get_local $20) ) - (get_local $15) + (get_local $13) ) ) - (set_local $15 + (set_local $13 (i32.add - (get_local $28) - (get_local $33) + (get_local $20) + (get_local $26) ) ) (set_local $1 @@ -3916,63 +3872,57 @@ (i32.load (get_local $1) ) - (get_local $15) + (get_local $13) ) (block (set_local $53 (get_local $1) ) - (set_local $45 + (set_local $43 (get_local $1) ) - (set_local $7 + (set_local $9 (i32.const 209) ) (br $while-out$48) ) ) - (if - (i32.eqz - (tee_local $1 - (i32.load offset=8 - (get_local $1) - ) - ) - ) - (block - (set_local $37 - (i32.const 1656) + (br_if $while-in$49 + (tee_local $1 + (i32.load offset=8 + (get_local $1) ) - (br $while-out$48) ) ) - (br $while-in$49) + (set_local $30 + (i32.const 1656) + ) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 209) ) (if (i32.and (i32.load offset=12 - (get_local $45) + (get_local $43) ) (i32.const 8) ) - (set_local $37 + (set_local $30 (i32.const 1656) ) (block (i32.store (get_local $53) - (get_local $28) + (get_local $20) ) (i32.store (tee_local $1 (i32.add - (get_local $45) + (get_local $43) (i32.const 4) ) ) @@ -3980,82 +3930,76 @@ (i32.load (get_local $1) ) - (get_local $33) + (get_local $26) ) ) - (set_local $21 + (set_local $18 (i32.add - (get_local $28) + (get_local $20) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $28) + (get_local $20) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) (set_local $4 (i32.add - (get_local $15) + (get_local $13) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $1 (i32.add - (get_local $15) + (get_local $13) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $1) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $1) + (i32.const 7) ) ) ) ) (set_local $1 (i32.add - (get_local $21) (get_local $18) + (get_local $6) ) ) - (set_local $24 + (set_local $14 (i32.sub (i32.sub (get_local $4) - (get_local $21) + (get_local $18) ) - (get_local $18) + (get_local $6) ) ) (i32.store offset=4 - (get_local $21) + (get_local $18) (i32.or - (get_local $18) + (get_local $6) (i32.const 3) ) ) @@ -4063,17 +4007,17 @@ (if (i32.eq (get_local $4) - (get_local $10) + (get_local $12) ) (block (i32.store (i32.const 1220) - (tee_local $6 + (tee_local $2 (i32.add (i32.load (i32.const 1220) ) - (get_local $24) + (get_local $14) ) ) ) @@ -4084,7 +4028,7 @@ (i32.store offset=4 (get_local $1) (i32.or - (get_local $6) + (get_local $2) (i32.const 1) ) ) @@ -4100,12 +4044,12 @@ (block (i32.store (i32.const 1216) - (tee_local $6 + (tee_local $2 (i32.add (i32.load (i32.const 1216) ) - (get_local $24) + (get_local $14) ) ) ) @@ -4116,16 +4060,16 @@ (i32.store offset=4 (get_local $1) (i32.or - (get_local $6) + (get_local $2) (i32.const 1) ) ) (i32.store (i32.add (get_local $1) - (get_local $6) + (get_local $2) ) - (get_local $6) + (get_local $2) ) (br $do-once$50) ) @@ -4136,7 +4080,7 @@ (if (i32.eq (i32.and - (tee_local $6 + (tee_local $2 (i32.load offset=4 (get_local $4) ) @@ -4146,26 +4090,26 @@ (i32.const 1) ) (block - (set_local $17 + (set_local $5 (i32.and - (get_local $6) + (get_local $2) (i32.const -8) ) ) (set_local $0 (i32.shr_u - (get_local $6) + (get_local $2) (i32.const 3) ) ) (block $label$break$e (if (i32.lt_u - (get_local $6) + (get_local $2) (i32.const 256) ) (block - (set_local $9 + (set_local $11 (i32.load offset=12 (get_local $4) ) @@ -4173,12 +4117,12 @@ (block $do-once$53 (if (i32.ne - (tee_local $6 + (tee_local $21 (i32.load offset=8 (get_local $4) ) ) - (tee_local $23 + (tee_local $19 (i32.add (i32.const 1248) (i32.shl @@ -4194,15 +4138,15 @@ (block (if (i32.lt_u - (get_local $6) - (get_local $35) + (get_local $21) + (get_local $8) ) (call_import $qa) ) (br_if $do-once$53 (i32.eq (i32.load offset=12 - (get_local $6) + (get_local $21) ) (get_local $4) ) @@ -4213,8 +4157,8 @@ ) (if (i32.eq - (get_local $9) - (get_local $6) + (get_local $11) + (get_local $21) ) (block (i32.store @@ -4238,29 +4182,29 @@ (block $do-once$55 (if (i32.eq - (get_local $9) - (get_local $23) + (get_local $11) + (get_local $19) ) - (set_local $46 + (set_local $44 (i32.add - (get_local $9) + (get_local $11) (i32.const 8) ) ) (block (if (i32.lt_u - (get_local $9) - (get_local $35) + (get_local $11) + (get_local $8) ) (call_import $qa) ) (if (i32.eq (i32.load - (tee_local $2 + (tee_local $0 (i32.add - (get_local $9) + (get_local $11) (i32.const 8) ) ) @@ -4268,8 +4212,8 @@ (get_local $4) ) (block - (set_local $46 - (get_local $2) + (set_local $44 + (get_local $0) ) (br $do-once$55) ) @@ -4279,16 +4223,16 @@ ) ) (i32.store offset=12 - (get_local $6) - (get_local $9) + (get_local $21) + (get_local $11) ) (i32.store - (get_local $46) - (get_local $6) + (get_local $44) + (get_local $21) ) ) (block - (set_local $23 + (set_local $19 (i32.load offset=24 (get_local $4) ) @@ -4296,7 +4240,7 @@ (block $do-once$57 (if (i32.eq - (tee_local $2 + (tee_local $0 (i32.load offset=12 (get_local $4) ) @@ -4305,11 +4249,11 @@ ) (block (if - (tee_local $20 + (tee_local $3 (i32.load - (tee_local $13 + (tee_local $7 (i32.add - (tee_local $22 + (tee_local $16 (i32.add (get_local $4) (i32.const 16) @@ -4321,29 +4265,24 @@ ) ) (block - (set_local $11 - (get_local $20) - ) (set_local $0 - (get_local $13) + (get_local $3) + ) + (set_local $16 + (get_local $7) ) ) (if - (tee_local $20 + (tee_local $22 (i32.load - (get_local $22) + (get_local $16) ) ) - (block - (set_local $11 - (get_local $20) - ) - (set_local $0 - (get_local $22) - ) + (set_local $0 + (get_local $22) ) (block - (set_local $30 + (set_local $24 (i32.const 0) ) (br $do-once$57) @@ -4351,65 +4290,62 @@ ) ) (loop $while-in$60 - (block $while-out$59 - (if - (tee_local $20 - (i32.load - (tee_local $13 - (i32.add - (get_local $11) - (i32.const 20) - ) + (if + (tee_local $3 + (i32.load + (tee_local $7 + (i32.add + (get_local $0) + (i32.const 20) ) ) ) - (block - (set_local $11 - (get_local $20) - ) - (set_local $0 - (get_local $13) - ) - (br $while-in$60) + ) + (block + (set_local $0 + (get_local $3) + ) + (set_local $16 + (get_local $7) ) + (br $while-in$60) ) - (if - (tee_local $20 - (i32.load - (tee_local $13 - (i32.add - (get_local $11) - (i32.const 16) - ) + ) + (if + (tee_local $3 + (i32.load + (tee_local $7 + (i32.add + (get_local $0) + (i32.const 16) ) ) ) - (block - (set_local $11 - (get_local $20) - ) - (set_local $0 - (get_local $13) - ) + ) + (block + (set_local $0 + (get_local $3) + ) + (set_local $16 + (get_local $7) ) - (br $while-out$59) + (br $while-in$60) ) - (br $while-in$60) ) ) (if (i32.lt_u - (get_local $0) - (get_local $35) + (get_local $16) + (get_local $8) ) (call_import $qa) (block (i32.store - (get_local $0) + (get_local $16) (i32.const 0) ) - (set_local $30 - (get_local $11) + (set_local $24 + (get_local $0) ) ) ) @@ -4417,21 +4353,21 @@ (block (if (i32.lt_u - (tee_local $13 + (tee_local $7 (i32.load offset=8 (get_local $4) ) ) - (get_local $35) + (get_local $8) ) (call_import $qa) ) (if (i32.ne (i32.load - (tee_local $20 + (tee_local $3 (i32.add - (get_local $13) + (get_local $7) (i32.const 12) ) ) @@ -4443,9 +4379,9 @@ (if (i32.eq (i32.load - (tee_local $22 + (tee_local $16 (i32.add - (get_local $2) + (get_local $0) (i32.const 8) ) ) @@ -4454,15 +4390,15 @@ ) (block (i32.store - (get_local $20) - (get_local $2) + (get_local $3) + (get_local $0) ) (i32.store - (get_local $22) - (get_local $13) + (get_local $16) + (get_local $7) ) - (set_local $30 - (get_local $2) + (set_local $24 + (get_local $0) ) ) (call_import $qa) @@ -4472,7 +4408,7 @@ ) (br_if $label$break$e (i32.eqz - (get_local $23) + (get_local $19) ) ) (block $do-once$61 @@ -4480,11 +4416,11 @@ (i32.eq (get_local $4) (i32.load - (tee_local $6 + (tee_local $21 (i32.add (i32.const 1512) (i32.shl - (tee_local $2 + (tee_local $0 (i32.load offset=28 (get_local $4) ) @@ -4497,11 +4433,11 @@ ) (block (i32.store - (get_local $6) - (get_local $30) + (get_local $21) + (get_local $24) ) (br_if $do-once$61 - (get_local $30) + (get_local $24) ) (i32.store (i32.const 1212) @@ -4512,7 +4448,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $2) + (get_local $0) ) (i32.const -1) ) @@ -4523,7 +4459,7 @@ (block (if (i32.lt_u - (get_local $23) + (get_local $19) (i32.load (i32.const 1224) ) @@ -4533,9 +4469,9 @@ (if (i32.eq (i32.load - (tee_local $9 + (tee_local $11 (i32.add - (get_local $23) + (get_local $19) (i32.const 16) ) ) @@ -4543,17 +4479,17 @@ (get_local $4) ) (i32.store - (get_local $9) - (get_local $30) + (get_local $11) + (get_local $24) ) (i32.store offset=20 - (get_local $23) - (get_local $30) + (get_local $19) + (get_local $24) ) ) (br_if $label$break$e (i32.eqz - (get_local $30) + (get_local $24) ) ) ) @@ -4561,8 +4497,8 @@ ) (if (i32.lt_u - (get_local $30) - (tee_local $2 + (get_local $24) + (tee_local $0 (i32.load (i32.const 1224) ) @@ -4571,13 +4507,13 @@ (call_import $qa) ) (i32.store offset=24 - (get_local $30) - (get_local $23) + (get_local $24) + (get_local $19) ) (if - (tee_local $9 + (tee_local $11 (i32.load - (tee_local $6 + (tee_local $21 (i32.add (get_local $4) (i32.const 16) @@ -4587,34 +4523,34 @@ ) (if (i32.lt_u - (get_local $9) - (get_local $2) + (get_local $11) + (get_local $0) ) (call_import $qa) (block (i32.store offset=16 - (get_local $30) - (get_local $9) + (get_local $24) + (get_local $11) ) (i32.store offset=24 - (get_local $9) - (get_local $30) + (get_local $11) + (get_local $24) ) ) ) ) (br_if $label$break$e (i32.eqz - (tee_local $9 + (tee_local $11 (i32.load offset=4 - (get_local $6) + (get_local $21) ) ) ) ) (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.load (i32.const 1224) ) @@ -4622,35 +4558,30 @@ (call_import $qa) (block (i32.store offset=20 - (get_local $30) - (get_local $9) + (get_local $24) + (get_local $11) ) (i32.store offset=24 - (get_local $9) - (get_local $30) + (get_local $11) + (get_local $24) ) ) ) ) ) ) - (set_local $11 + (set_local $14 (i32.add - (get_local $17) - (get_local $24) + (get_local $5) + (get_local $14) ) ) (i32.add (get_local $4) - (get_local $17) - ) - ) - (block - (set_local $11 - (get_local $24) + (get_local $5) ) - (get_local $4) ) + (get_local $4) ) (i32.const 4) ) @@ -4665,30 +4596,30 @@ (i32.store offset=4 (get_local $1) (i32.or - (get_local $11) + (get_local $14) (i32.const 1) ) ) (i32.store (i32.add (get_local $1) - (get_local $11) + (get_local $14) ) - (get_local $11) + (get_local $14) ) (set_local $0 (i32.shr_u - (get_local $11) + (get_local $14) (i32.const 3) ) ) (if (i32.lt_u - (get_local $11) + (get_local $14) (i32.const 256) ) (block - (set_local $6 + (set_local $2 (i32.add (i32.const 1248) (i32.shl @@ -4703,12 +4634,12 @@ (block $do-once$65 (if (i32.and - (tee_local $9 + (tee_local $11 (i32.load (i32.const 1208) ) ) - (tee_local $2 + (tee_local $0 (i32.shl (i32.const 1) (get_local $0) @@ -4718,11 +4649,11 @@ (block (if (i32.ge_u - (tee_local $23 + (tee_local $19 (i32.load (tee_local $0 (i32.add - (get_local $6) + (get_local $2) (i32.const 8) ) ) @@ -4733,11 +4664,11 @@ ) ) (block - (set_local $47 + (set_local $45 (get_local $0) ) - (set_local $41 - (get_local $23) + (set_local $38 + (get_local $19) ) (br $do-once$65) ) @@ -4748,51 +4679,51 @@ (i32.store (i32.const 1208) (i32.or - (get_local $9) - (get_local $2) + (get_local $11) + (get_local $0) ) ) - (set_local $47 + (set_local $45 (i32.add - (get_local $6) + (get_local $2) (i32.const 8) ) ) - (set_local $41 - (get_local $6) + (set_local $38 + (get_local $2) ) ) ) ) (i32.store - (get_local $47) + (get_local $45) (get_local $1) ) (i32.store offset=12 - (get_local $41) + (get_local $38) (get_local $1) ) (i32.store offset=8 (get_local $1) - (get_local $41) + (get_local $38) ) (i32.store offset=12 (get_local $1) - (get_local $6) + (get_local $2) ) (br $do-once$50) ) ) - (set_local $2 + (set_local $0 (i32.add (i32.const 1512) (i32.shl - (tee_local $0 + (tee_local $6 (block $do-once$67 (if - (tee_local $2 + (tee_local $0 (i32.shr_u - (get_local $11) + (get_local $14) (i32.const 8) ) ) @@ -4800,33 +4731,33 @@ (br_if $do-once$67 (i32.const 31) (i32.gt_u - (get_local $11) + (get_local $14) (i32.const 16777215) ) ) (i32.or (i32.and (i32.shr_u - (get_local $11) + (get_local $14) (i32.add - (tee_local $13 + (tee_local $7 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $23 + (tee_local $19 (i32.and (i32.shr_u (i32.add - (tee_local $17 + (tee_local $5 (i32.shl - (get_local $2) - (tee_local $9 + (get_local $0) + (tee_local $11 (i32.and (i32.shr_u (i32.add - (get_local $2) + (get_local $0) (i32.const 1048320) ) (i32.const 16) @@ -4843,16 +4774,16 @@ (i32.const 4) ) ) - (get_local $9) + (get_local $11) ) - (tee_local $17 + (tee_local $5 (i32.and (i32.shr_u (i32.add (tee_local $0 (i32.shl - (get_local $17) - (get_local $23) + (get_local $5) + (get_local $19) ) ) (i32.const 245760) @@ -4867,7 +4798,7 @@ (i32.shr_u (i32.shl (get_local $0) - (get_local $17) + (get_local $5) ) (i32.const 15) ) @@ -4879,7 +4810,7 @@ (i32.const 1) ) (i32.shl - (get_local $13) + (get_local $7) (i32.const 1) ) ) @@ -4894,10 +4825,10 @@ ) (i32.store offset=28 (get_local $1) - (get_local $0) + (get_local $6) ) (i32.store offset=4 - (tee_local $6 + (tee_local $2 (i32.add (get_local $1) (i32.const 16) @@ -4906,21 +4837,21 @@ (i32.const 0) ) (i32.store - (get_local $6) + (get_local $2) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $6 + (tee_local $2 (i32.load (i32.const 1212) ) ) - (tee_local $13 + (tee_local $7 (i32.shl (i32.const 1) - (get_local $0) + (get_local $6) ) ) ) @@ -4929,17 +4860,17 @@ (i32.store (i32.const 1212) (i32.or - (get_local $6) - (get_local $13) + (get_local $2) + (get_local $7) ) ) (i32.store - (get_local $2) + (get_local $0) (get_local $1) ) (i32.store offset=24 (get_local $1) - (get_local $2) + (get_local $0) ) (i32.store offset=12 (get_local $1) @@ -4952,28 +4883,28 @@ (br $do-once$50) ) ) - (set_local $13 + (set_local $7 (i32.shl - (get_local $11) + (get_local $14) (select (i32.const 0) (i32.sub (i32.const 25) (i32.shr_u - (get_local $0) + (get_local $6) (i32.const 1) ) ) (i32.eq - (get_local $0) + (get_local $6) (i32.const 31) ) ) ) ) - (set_local $6 + (set_local $2 (i32.load - (get_local $2) + (get_local $0) ) ) (loop $while-in$70 @@ -4982,34 +4913,34 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $6) + (get_local $2) ) (i32.const -8) ) - (get_local $11) + (get_local $14) ) (block - (set_local $42 - (get_local $6) + (set_local $39 + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 279) ) (br $while-out$69) ) ) (if - (tee_local $17 + (tee_local $5 (i32.load - (tee_local $2 + (tee_local $0 (i32.add (i32.add - (get_local $6) + (get_local $2) (i32.const 16) ) (i32.shl (i32.shr_u - (get_local $13) + (get_local $7) (i32.const 31) ) (i32.const 2) @@ -5019,40 +4950,39 @@ ) ) (block - (set_local $13 + (set_local $7 (i32.shl - (get_local $13) + (get_local $7) (i32.const 1) ) ) - (set_local $6 - (get_local $17) + (set_local $2 + (get_local $5) ) + (br $while-in$70) ) (block - (set_local $48 - (get_local $2) + (set_local $46 + (get_local $0) ) (set_local $54 - (get_local $6) + (get_local $2) ) - (set_local $7 + (set_local $9 (i32.const 276) ) - (br $while-out$69) ) ) - (br $while-in$70) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 276) ) (if (i32.lt_u - (get_local $48) + (get_local $46) (i32.load (i32.const 1224) ) @@ -5060,7 +4990,7 @@ (call_import $qa) (block (i32.store - (get_local $48) + (get_local $46) (get_local $1) ) (i32.store offset=24 @@ -5079,49 +5009,49 @@ ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 279) ) (if (i32.and (i32.ge_u - (tee_local $13 + (tee_local $7 (i32.load - (tee_local $6 + (tee_local $2 (i32.add - (get_local $42) + (get_local $39) (i32.const 8) ) ) ) ) - (tee_local $17 + (tee_local $5 (i32.load (i32.const 1224) ) ) ) (i32.ge_u - (get_local $42) - (get_local $17) + (get_local $39) + (get_local $5) ) ) (block (i32.store offset=12 - (get_local $13) + (get_local $7) (get_local $1) ) (i32.store - (get_local $6) + (get_local $2) (get_local $1) ) (i32.store offset=8 (get_local $1) - (get_local $13) + (get_local $7) ) (i32.store offset=12 (get_local $1) - (get_local $42) + (get_local $39) ) (i32.store offset=24 (get_local $1) @@ -5136,11 +5066,11 @@ ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $21) + (get_local $18) (i32.const 8) ) ) @@ -5153,42 +5083,42 @@ (i32.le_u (tee_local $1 (i32.load - (get_local $37) + (get_local $30) ) ) - (get_local $10) + (get_local $12) ) (if (i32.gt_u - (tee_local $24 + (tee_local $14 (i32.add (get_local $1) (i32.load offset=4 - (get_local $37) + (get_local $30) ) ) ) - (get_local $10) + (get_local $12) ) (block (set_local $0 - (get_local $24) + (get_local $14) ) (br $while-out$71) ) ) ) - (set_local $37 + (set_local $30 (i32.load offset=8 - (get_local $37) + (get_local $30) ) ) (br $while-in$72) ) ) - (set_local $24 + (set_local $14 (i32.add - (tee_local $21 + (tee_local $18 (i32.add (get_local $0) (i32.const -47) @@ -5199,36 +5129,33 @@ ) (set_local $1 (i32.add - (tee_local $21 + (tee_local $18 (select - (get_local $10) + (get_local $12) (tee_local $1 (i32.add - (get_local $21) + (get_local $18) (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) - (get_local $24) + (get_local $14) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $24) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $14) + (i32.const 7) ) ) ) ) (i32.lt_u (get_local $1) - (tee_local $24 + (tee_local $14 (i32.add - (get_local $10) + (get_local $12) (i32.const 16) ) ) @@ -5242,28 +5169,25 @@ (i32.const 1232) (tee_local $4 (i32.add - (get_local $28) - (tee_local $15 + (get_local $20) + (tee_local $13 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $4 (i32.add - (get_local $28) + (get_local $20) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $4) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) ) ) @@ -5272,27 +5196,27 @@ ) (i32.store (i32.const 1220) - (tee_local $13 + (tee_local $7 (i32.sub (i32.add - (get_local $33) + (get_local $26) (i32.const -40) ) - (get_local $15) + (get_local $13) ) ) ) (i32.store offset=4 (get_local $4) (i32.or - (get_local $13) + (get_local $7) (i32.const 1) ) ) (i32.store offset=4 (i32.add (get_local $4) - (get_local $13) + (get_local $7) ) (i32.const 40) ) @@ -5303,9 +5227,9 @@ ) ) (i32.store - (tee_local $13 + (tee_local $7 (i32.add - (get_local $21) + (get_local $18) (i32.const 4) ) ) @@ -5337,11 +5261,11 @@ ) (i32.store (i32.const 1656) - (get_local $28) + (get_local $20) ) (i32.store (i32.const 1660) - (get_local $33) + (get_local $26) ) (i32.store (i32.const 1668) @@ -5353,7 +5277,7 @@ ) (set_local $1 (i32.add - (get_local $21) + (get_local $18) (i32.const 24) ) ) @@ -5379,33 +5303,33 @@ ) (if (i32.ne - (get_local $21) - (get_local $10) + (get_local $18) + (get_local $12) ) (block (i32.store - (get_local $13) + (get_local $7) (i32.and (i32.load - (get_local $13) + (get_local $7) ) (i32.const -2) ) ) (i32.store offset=4 - (get_local $10) + (get_local $12) (i32.or (tee_local $1 (i32.sub - (get_local $21) - (get_local $10) + (get_local $18) + (get_local $12) ) ) (i32.const 1) ) ) (i32.store - (get_local $21) + (get_local $18) (get_local $1) ) (set_local $4 @@ -5420,7 +5344,7 @@ (i32.const 256) ) (block - (set_local $15 + (set_local $13 (i32.add (i32.const 1248) (i32.shl @@ -5434,12 +5358,12 @@ ) (if (i32.and - (tee_local $6 + (tee_local $2 (i32.load (i32.const 1208) ) ) - (tee_local $17 + (tee_local $5 (i32.shl (i32.const 1) (get_local $4) @@ -5448,11 +5372,11 @@ ) (if (i32.lt_u - (tee_local $6 + (tee_local $2 (i32.load - (tee_local $17 + (tee_local $5 (i32.add - (get_local $15) + (get_local $13) (i32.const 8) ) ) @@ -5464,11 +5388,11 @@ ) (call_import $qa) (block - (set_local $49 - (get_local $17) + (set_local $47 + (get_local $5) ) - (set_local $43 - (get_local $6) + (set_local $40 + (get_local $2) ) ) ) @@ -5476,47 +5400,47 @@ (i32.store (i32.const 1208) (i32.or - (get_local $6) - (get_local $17) + (get_local $2) + (get_local $5) ) ) - (set_local $49 + (set_local $47 (i32.add - (get_local $15) + (get_local $13) (i32.const 8) ) ) - (set_local $43 - (get_local $15) + (set_local $40 + (get_local $13) ) ) ) (i32.store - (get_local $49) - (get_local $10) + (get_local $47) + (get_local $12) ) (i32.store offset=12 - (get_local $43) - (get_local $10) + (get_local $40) + (get_local $12) ) (i32.store offset=8 - (get_local $10) - (get_local $43) + (get_local $12) + (get_local $40) ) (i32.store offset=12 - (get_local $10) - (get_local $15) + (get_local $12) + (get_local $13) ) (br $do-once$42) ) ) - (set_local $2 + (set_local $0 (i32.add (i32.const 1512) (i32.shl - (tee_local $0 + (tee_local $2 (if - (tee_local $15 + (tee_local $13 (i32.shr_u (get_local $1) (i32.const 8) @@ -5533,24 +5457,24 @@ (i32.shr_u (get_local $1) (i32.add - (tee_local $2 + (tee_local $0 (i32.add (i32.sub (i32.const 14) (i32.or (i32.or - (tee_local $15 + (tee_local $13 (i32.and (i32.shr_u (i32.add - (tee_local $17 + (tee_local $5 (i32.shl - (get_local $15) - (tee_local $6 + (get_local $13) + (tee_local $2 (i32.and (i32.shr_u (i32.add - (get_local $15) + (get_local $13) (i32.const 1048320) ) (i32.const 16) @@ -5567,16 +5491,16 @@ (i32.const 4) ) ) - (get_local $6) + (get_local $2) ) - (tee_local $17 + (tee_local $5 (i32.and (i32.shr_u (i32.add (tee_local $4 (i32.shl - (get_local $17) - (get_local $15) + (get_local $5) + (get_local $13) ) ) (i32.const 245760) @@ -5591,7 +5515,7 @@ (i32.shr_u (i32.shl (get_local $4) - (get_local $17) + (get_local $5) ) (i32.const 15) ) @@ -5603,7 +5527,7 @@ (i32.const 1) ) (i32.shl - (get_local $2) + (get_local $0) (i32.const 1) ) ) @@ -5616,21 +5540,21 @@ ) ) (i32.store offset=28 - (get_local $10) - (get_local $0) + (get_local $12) + (get_local $2) ) (i32.store offset=20 - (get_local $10) + (get_local $12) (i32.const 0) ) (i32.store - (get_local $24) + (get_local $14) (i32.const 0) ) (if (i32.eqz (i32.and - (tee_local $17 + (tee_local $5 (i32.load (i32.const 1212) ) @@ -5638,7 +5562,7 @@ (tee_local $4 (i32.shl (i32.const 1) - (get_local $0) + (get_local $2) ) ) ) @@ -5647,25 +5571,25 @@ (i32.store (i32.const 1212) (i32.or - (get_local $17) + (get_local $5) (get_local $4) ) ) (i32.store - (get_local $2) - (get_local $10) + (get_local $0) + (get_local $12) ) (i32.store offset=24 - (get_local $10) - (get_local $2) + (get_local $12) + (get_local $0) ) (i32.store offset=12 - (get_local $10) - (get_local $10) + (get_local $12) + (get_local $12) ) (i32.store offset=8 - (get_local $10) - (get_local $10) + (get_local $12) + (get_local $12) ) (br $do-once$42) ) @@ -5678,20 +5602,20 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $0) + (get_local $2) (i32.const 1) ) ) (i32.eq - (get_local $0) + (get_local $2) (i32.const 31) ) ) ) ) - (set_local $17 + (set_local $5 (i32.load - (get_local $2) + (get_local $0) ) ) (loop $while-in$76 @@ -5700,29 +5624,29 @@ (i32.eq (i32.and (i32.load offset=4 - (get_local $17) + (get_local $5) ) (i32.const -8) ) (get_local $1) ) (block - (set_local $32 - (get_local $17) + (set_local $31 + (get_local $5) ) - (set_local $7 + (set_local $9 (i32.const 305) ) (br $while-out$75) ) ) (if - (tee_local $6 + (tee_local $2 (i32.load - (tee_local $2 + (tee_local $0 (i32.add (i32.add - (get_local $17) + (get_local $5) (i32.const 16) ) (i32.shl @@ -5743,34 +5667,33 @@ (i32.const 1) ) ) - (set_local $17 - (get_local $6) + (set_local $5 + (get_local $2) ) + (br $while-in$76) ) (block - (set_local $26 - (get_local $2) + (set_local $48 + (get_local $0) ) - (set_local $11 - (get_local $17) + (set_local $55 + (get_local $5) ) - (set_local $7 + (set_local $9 (i32.const 302) ) - (br $while-out$75) ) ) - (br $while-in$76) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 302) ) (if (i32.lt_u - (get_local $26) + (get_local $48) (i32.load (i32.const 1224) ) @@ -5778,26 +5701,26 @@ (call_import $qa) (block (i32.store - (get_local $26) - (get_local $10) + (get_local $48) + (get_local $12) ) (i32.store offset=24 - (get_local $10) - (get_local $11) + (get_local $12) + (get_local $55) ) (i32.store offset=12 - (get_local $10) - (get_local $10) + (get_local $12) + (get_local $12) ) (i32.store offset=8 - (get_local $10) - (get_local $10) + (get_local $12) + (get_local $12) ) ) ) (if (i32.eq - (get_local $7) + (get_local $9) (i32.const 305) ) (if @@ -5805,9 +5728,9 @@ (i32.ge_u (tee_local $4 (i32.load - (tee_local $17 + (tee_local $5 (i32.add - (get_local $32) + (get_local $31) (i32.const 8) ) ) @@ -5820,29 +5743,29 @@ ) ) (i32.ge_u - (get_local $32) + (get_local $31) (get_local $1) ) ) (block (i32.store offset=12 (get_local $4) - (get_local $10) + (get_local $12) ) (i32.store - (get_local $17) - (get_local $10) + (get_local $5) + (get_local $12) ) (i32.store offset=8 - (get_local $10) + (get_local $12) (get_local $4) ) (i32.store offset=12 - (get_local $10) - (get_local $32) + (get_local $12) + (get_local $31) ) (i32.store offset=24 - (get_local $10) + (get_local $12) (i32.const 0) ) ) @@ -5856,31 +5779,30 @@ (block (if (i32.or - (i32.eq + (i32.eqz (tee_local $4 (i32.load (i32.const 1224) ) ) - (i32.const 0) ) (i32.lt_u - (get_local $28) + (get_local $20) (get_local $4) ) ) (i32.store (i32.const 1224) - (get_local $28) + (get_local $20) ) ) (i32.store (i32.const 1656) - (get_local $28) + (get_local $20) ) (i32.store (i32.const 1660) - (get_local $33) + (get_local $26) ) (i32.store (i32.const 1668) @@ -5901,7 +5823,7 @@ ) (loop $do-in$45 (i32.store offset=12 - (tee_local $15 + (tee_local $13 (i32.add (i32.const 1248) (i32.shl @@ -5913,11 +5835,11 @@ ) ) ) - (get_local $15) + (get_local $13) ) (i32.store offset=8 - (get_local $15) - (get_local $15) + (get_local $13) + (get_local $13) ) (br_if $do-in$45 (i32.ne @@ -5935,28 +5857,25 @@ (i32.const 1232) (tee_local $4 (i32.add - (get_local $28) - (tee_local $15 + (get_local $20) + (tee_local $13 (select - (i32.const 0) (i32.and (i32.sub (i32.const 0) (tee_local $4 (i32.add - (get_local $28) + (get_local $20) (i32.const 8) ) ) ) (i32.const 7) ) - (i32.eq - (i32.and - (get_local $4) - (i32.const 7) - ) - (i32.const 0) + (i32.const 0) + (i32.and + (get_local $4) + (i32.const 7) ) ) ) @@ -5968,10 +5887,10 @@ (tee_local $1 (i32.sub (i32.add - (get_local $33) + (get_local $26) (i32.const -40) ) - (get_local $15) + (get_local $13) ) ) ) @@ -6000,56 +5919,56 @@ ) (if (i32.gt_u - (tee_local $10 + (tee_local $12 (i32.load (i32.const 1220) ) ) - (get_local $18) + (get_local $6) ) (block (i32.store (i32.const 1220) - (tee_local $32 + (tee_local $31 (i32.sub - (get_local $10) - (get_local $18) + (get_local $12) + (get_local $6) ) ) ) (i32.store (i32.const 1232) - (tee_local $7 + (tee_local $9 (i32.add - (tee_local $10 + (tee_local $12 (i32.load (i32.const 1232) ) ) - (get_local $18) + (get_local $6) ) ) ) (i32.store offset=4 - (get_local $7) + (get_local $9) (i32.or - (get_local $32) + (get_local $31) (i32.const 1) ) ) (i32.store offset=4 - (get_local $10) + (get_local $12) (i32.or - (get_local $18) + (get_local $6) (i32.const 3) ) ) (set_global $r - (get_local $31) + (get_local $25) ) (return (i32.add - (get_local $10) + (get_local $12) (i32.const 8) ) ) @@ -6062,7 +5981,7 @@ (i32.const 12) ) (set_global $r - (get_local $31) + (get_local $25) ) (i32.const 0) ) @@ -6112,7 +6031,7 @@ (i32.eq (tee_local $0 (i32.and - (tee_local $9 + (tee_local $3 (i32.load (i32.add (get_local $0) @@ -6127,12 +6046,12 @@ ) (call_import $qa) ) - (set_local $7 + (set_local $8 (i32.add (get_local $1) (tee_local $5 (i32.and - (get_local $9) + (get_local $3) (i32.const -8) ) ) @@ -6141,19 +6060,19 @@ (block $do-once$0 (if (i32.and - (get_local $9) + (get_local $3) (i32.const 1) ) (block (set_local $2 (get_local $1) ) - (set_local $8 + (set_local $7 (get_local $5) ) ) (block - (set_local $9 + (set_local $11 (i32.load (get_local $1) ) @@ -6166,7 +6085,7 @@ ) (set_local $5 (i32.add - (get_local $9) + (get_local $11) (get_local $5) ) ) @@ -6177,7 +6096,7 @@ (get_local $1) (i32.sub (i32.const 0) - (get_local $9) + (get_local $11) ) ) ) @@ -6200,7 +6119,7 @@ (i32.load (tee_local $1 (i32.add - (get_local $7) + (get_local $8) (i32.const 4) ) ) @@ -6214,7 +6133,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) @@ -6250,13 +6169,13 @@ ) (set_local $6 (i32.shr_u - (get_local $9) + (get_local $11) (i32.const 3) ) ) (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.const 256) ) (block @@ -6267,12 +6186,12 @@ ) (if (i32.ne - (tee_local $9 + (tee_local $11 (i32.load offset=8 (get_local $0) ) ) - (tee_local $4 + (tee_local $3 (i32.add (i32.const 1248) (i32.shl @@ -6288,7 +6207,7 @@ (block (if (i32.lt_u - (get_local $9) + (get_local $11) (get_local $14) ) (call_import $qa) @@ -6296,7 +6215,7 @@ (if (i32.ne (i32.load offset=12 - (get_local $9) + (get_local $11) ) (get_local $0) ) @@ -6307,7 +6226,7 @@ (if (i32.eq (get_local $1) - (get_local $9) + (get_local $11) ) (block (i32.store @@ -6328,7 +6247,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) @@ -6337,9 +6256,9 @@ (if (i32.eq (get_local $1) - (get_local $4) + (get_local $3) ) - (set_local $11 + (set_local $10 (i32.add (get_local $1) (i32.const 8) @@ -6356,7 +6275,7 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $3 (i32.add (get_local $1) (i32.const 8) @@ -6365,31 +6284,31 @@ ) (get_local $0) ) - (set_local $11 - (get_local $4) + (set_local $10 + (get_local $3) ) (call_import $qa) ) ) ) (i32.store offset=12 - (get_local $9) + (get_local $11) (get_local $1) ) (i32.store + (get_local $10) (get_local $11) - (get_local $9) ) (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) ) ) - (set_local $9 + (set_local $11 (i32.load offset=24 (get_local $0) ) @@ -6406,11 +6325,11 @@ ) (block (if - (tee_local $11 + (tee_local $10 (i32.load (tee_local $6 (i32.add - (tee_local $4 + (tee_local $3 (i32.add (get_local $0) (i32.const 16) @@ -6423,9 +6342,9 @@ ) (block (set_local $1 - (get_local $11) + (get_local $10) ) - (set_local $4 + (set_local $3 (get_local $6) ) ) @@ -6433,12 +6352,12 @@ (i32.eqz (tee_local $1 (i32.load - (get_local $4) + (get_local $3) ) ) ) (block - (set_local $3 + (set_local $4 (i32.const 0) ) (br $do-once$2) @@ -6446,72 +6365,69 @@ ) ) (loop $while-in$5 - (block $while-out$4 - (if - (tee_local $11 - (i32.load - (tee_local $6 - (i32.add - (get_local $1) - (i32.const 20) - ) + (if + (tee_local $10 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 20) ) ) ) - (block - (set_local $1 - (get_local $11) - ) - (set_local $4 - (get_local $6) - ) - (br $while-in$5) + ) + (block + (set_local $1 + (get_local $10) + ) + (set_local $3 + (get_local $6) ) + (br $while-in$5) ) - (if - (tee_local $11 - (i32.load - (tee_local $6 - (i32.add - (get_local $1) - (i32.const 16) - ) + ) + (if + (tee_local $10 + (i32.load + (tee_local $6 + (i32.add + (get_local $1) + (i32.const 16) ) ) ) - (block - (set_local $1 - (get_local $11) - ) - (set_local $4 - (get_local $6) - ) + ) + (block + (set_local $1 + (get_local $10) ) - (block - (set_local $6 - (get_local $1) - ) - (set_local $10 - (get_local $4) - ) - (br $while-out$4) + (set_local $3 + (get_local $6) + ) + (br $while-in$5) + ) + (block + (set_local $6 + (get_local $1) + ) + (set_local $9 + (get_local $3) ) ) - (br $while-in$5) ) ) (if (i32.lt_u - (get_local $10) + (get_local $9) (get_local $14) ) (call_import $qa) (block (i32.store - (get_local $10) + (get_local $9) (i32.const 0) ) - (set_local $3 + (set_local $4 (get_local $6) ) ) @@ -6532,7 +6448,7 @@ (if (i32.ne (i32.load - (tee_local $11 + (tee_local $10 (i32.add (get_local $6) (i32.const 12) @@ -6546,7 +6462,7 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $3 (i32.add (get_local $1) (i32.const 8) @@ -6557,14 +6473,14 @@ ) (block (i32.store - (get_local $11) + (get_local $10) (get_local $1) ) (i32.store - (get_local $4) + (get_local $3) (get_local $6) ) - (set_local $3 + (set_local $4 (get_local $1) ) ) @@ -6574,7 +6490,7 @@ ) ) (if - (get_local $9) + (get_local $11) (block (if (i32.eq @@ -6598,11 +6514,11 @@ (block (i32.store (get_local $6) - (get_local $3) + (get_local $4) ) (if (i32.eqz - (get_local $3) + (get_local $4) ) (block (i32.store @@ -6623,7 +6539,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) @@ -6633,7 +6549,7 @@ (block (if (i32.lt_u - (get_local $9) + (get_local $11) (i32.load (i32.const 1224) ) @@ -6645,7 +6561,7 @@ (i32.load (tee_local $1 (i32.add - (get_local $9) + (get_local $11) (i32.const 16) ) ) @@ -6654,22 +6570,22 @@ ) (i32.store (get_local $1) - (get_local $3) + (get_local $4) ) (i32.store offset=20 - (get_local $9) - (get_local $3) + (get_local $11) + (get_local $4) ) ) (if (i32.eqz - (get_local $3) + (get_local $4) ) (block (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) (br $do-once$0) @@ -6679,7 +6595,7 @@ ) (if (i32.lt_u - (get_local $3) + (get_local $4) (tee_local $1 (i32.load (i32.const 1224) @@ -6689,11 +6605,11 @@ (call_import $qa) ) (i32.store offset=24 - (get_local $3) - (get_local $9) + (get_local $4) + (get_local $11) ) (if - (tee_local $4 + (tee_local $3 (i32.load (tee_local $6 (i32.add @@ -6705,31 +6621,31 @@ ) (if (i32.lt_u - (get_local $4) + (get_local $3) (get_local $1) ) (call_import $qa) (block (i32.store offset=16 - (get_local $3) (get_local $4) + (get_local $3) ) (i32.store offset=24 - (get_local $4) (get_local $3) + (get_local $4) ) ) ) ) (if - (tee_local $4 + (tee_local $3 (i32.load offset=4 (get_local $6) ) ) (if (i32.lt_u - (get_local $4) + (get_local $3) (i32.load (i32.const 1224) ) @@ -6737,17 +6653,17 @@ (call_import $qa) (block (i32.store offset=20 - (get_local $3) (get_local $4) + (get_local $3) ) (i32.store offset=24 - (get_local $4) (get_local $3) + (get_local $4) ) (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) ) @@ -6756,7 +6672,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) ) @@ -6766,7 +6682,7 @@ (set_local $2 (get_local $0) ) - (set_local $8 + (set_local $7 (get_local $5) ) ) @@ -6777,7 +6693,7 @@ (if (i32.ge_u (get_local $2) - (get_local $7) + (get_local $8) ) (call_import $qa) ) @@ -6788,7 +6704,7 @@ (i32.load (tee_local $5 (i32.add - (get_local $7) + (get_local $8) (i32.const 4) ) ) @@ -6815,25 +6731,25 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $8) + (get_local $7) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $8) + (get_local $7) ) - (get_local $8) + (get_local $7) ) (set_local $0 - (get_local $8) + (get_local $7) ) ) (block (if (i32.eq - (get_local $7) + (get_local $8) (i32.load (i32.const 1232) ) @@ -6841,12 +6757,12 @@ (block (i32.store (i32.const 1220) - (tee_local $3 + (tee_local $4 (i32.add (i32.load (i32.const 1220) ) - (get_local $8) + (get_local $7) ) ) ) @@ -6857,7 +6773,7 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $3) + (get_local $4) (i32.const 1) ) ) @@ -6883,7 +6799,7 @@ ) (if (i32.eq - (get_local $7) + (get_local $8) (i32.load (i32.const 1228) ) @@ -6891,12 +6807,12 @@ (block (i32.store (i32.const 1216) - (tee_local $3 + (tee_local $4 (i32.add (i32.load (i32.const 1216) ) - (get_local $8) + (get_local $7) ) ) ) @@ -6907,27 +6823,27 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $3) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $3) + (get_local $4) ) - (get_local $3) + (get_local $4) ) (return) ) ) - (set_local $3 + (set_local $4 (i32.add (i32.and (get_local $1) (i32.const -8) ) - (get_local $8) + (get_local $7) ) ) (set_local $14 @@ -6943,19 +6859,19 @@ (i32.const 256) ) (block - (set_local $10 + (set_local $9 (i32.load offset=12 - (get_local $7) + (get_local $8) ) ) (if (i32.ne (tee_local $6 (i32.load offset=8 - (get_local $7) + (get_local $8) ) ) - (tee_local $4 + (tee_local $3 (i32.add (i32.const 1248) (i32.shl @@ -6983,7 +6899,7 @@ (i32.load offset=12 (get_local $6) ) - (get_local $7) + (get_local $8) ) (call_import $qa) ) @@ -6991,7 +6907,7 @@ ) (if (i32.eq - (get_local $10) + (get_local $9) (get_local $6) ) (block @@ -7015,19 +6931,19 @@ ) (if (i32.eq - (get_local $10) - (get_local $4) + (get_local $9) + (get_local $3) ) (set_local $17 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) (block (if (i32.lt_u - (get_local $10) + (get_local $9) (i32.load (i32.const 1224) ) @@ -7037,17 +6953,17 @@ (if (i32.eq (i32.load - (tee_local $4 + (tee_local $3 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) ) - (get_local $7) + (get_local $8) ) (set_local $17 - (get_local $4) + (get_local $3) ) (call_import $qa) ) @@ -7055,7 +6971,7 @@ ) (i32.store offset=12 (get_local $6) - (get_local $10) + (get_local $9) ) (i32.store (get_local $17) @@ -7065,28 +6981,28 @@ (block (set_local $6 (i32.load offset=24 - (get_local $7) + (get_local $8) ) ) (block $do-once$10 (if (i32.eq - (tee_local $10 + (tee_local $9 (i32.load offset=12 - (get_local $7) + (get_local $8) ) ) - (get_local $7) + (get_local $8) ) (block (if - (tee_local $11 + (tee_local $10 (i32.load (tee_local $1 (i32.add - (tee_local $4 + (tee_local $3 (i32.add - (get_local $7) + (get_local $8) (i32.const 16) ) ) @@ -7097,9 +7013,9 @@ ) (block (set_local $0 - (get_local $11) + (get_local $10) ) - (set_local $4 + (set_local $3 (get_local $1) ) ) @@ -7107,7 +7023,7 @@ (i32.eqz (tee_local $0 (i32.load - (get_local $4) + (get_local $3) ) ) ) @@ -7120,55 +7036,52 @@ ) ) (loop $while-in$13 - (block $while-out$12 - (if - (tee_local $11 - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 20) - ) + (if + (tee_local $10 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 20) ) ) ) - (block - (set_local $0 - (get_local $11) - ) - (set_local $4 - (get_local $1) - ) - (br $while-in$13) + ) + (block + (set_local $0 + (get_local $10) ) + (set_local $3 + (get_local $1) + ) + (br $while-in$13) ) - (if - (tee_local $11 - (i32.load - (tee_local $1 - (i32.add - (get_local $0) - (i32.const 16) - ) + ) + (if + (tee_local $10 + (i32.load + (tee_local $1 + (i32.add + (get_local $0) + (i32.const 16) ) ) ) - (block - (set_local $0 - (get_local $11) - ) - (set_local $4 - (get_local $1) - ) + ) + (block + (set_local $0 + (get_local $10) ) - (br $while-out$12) + (set_local $3 + (get_local $1) + ) + (br $while-in$13) ) - (br $while-in$13) ) ) (if (i32.lt_u - (get_local $4) + (get_local $3) (i32.load (i32.const 1224) ) @@ -7176,7 +7089,7 @@ (call_import $qa) (block (i32.store - (get_local $4) + (get_local $3) (i32.const 0) ) (set_local $12 @@ -7190,7 +7103,7 @@ (i32.lt_u (tee_local $1 (i32.load offset=8 - (get_local $7) + (get_local $8) ) ) (i32.load @@ -7202,40 +7115,40 @@ (if (i32.ne (i32.load - (tee_local $11 + (tee_local $10 (i32.add (get_local $1) (i32.const 12) ) ) ) - (get_local $7) + (get_local $8) ) (call_import $qa) ) (if (i32.eq (i32.load - (tee_local $4 + (tee_local $3 (i32.add - (get_local $10) + (get_local $9) (i32.const 8) ) ) ) - (get_local $7) + (get_local $8) ) (block (i32.store - (get_local $11) (get_local $10) + (get_local $9) ) (i32.store - (get_local $4) + (get_local $3) (get_local $1) ) (set_local $12 - (get_local $10) + (get_local $9) ) ) (call_import $qa) @@ -7248,15 +7161,15 @@ (block (if (i32.eq - (get_local $7) + (get_local $8) (i32.load (tee_local $5 (i32.add (i32.const 1512) (i32.shl - (tee_local $10 + (tee_local $9 (i32.load offset=28 - (get_local $7) + (get_local $8) ) ) (i32.const 2) @@ -7284,7 +7197,7 @@ (i32.xor (i32.shl (i32.const 1) - (get_local $10) + (get_local $9) ) (i32.const -1) ) @@ -7307,17 +7220,17 @@ (if (i32.eq (i32.load - (tee_local $10 + (tee_local $9 (i32.add (get_local $6) (i32.const 16) ) ) ) - (get_local $7) + (get_local $8) ) (i32.store - (get_local $10) + (get_local $9) (get_local $12) ) (i32.store offset=20 @@ -7335,7 +7248,7 @@ (if (i32.lt_u (get_local $12) - (tee_local $10 + (tee_local $9 (i32.load (i32.const 1224) ) @@ -7352,7 +7265,7 @@ (i32.load (tee_local $5 (i32.add - (get_local $7) + (get_local $8) (i32.const 16) ) ) @@ -7361,7 +7274,7 @@ (if (i32.lt_u (get_local $0) - (get_local $10) + (get_local $9) ) (call_import $qa) (block @@ -7410,16 +7323,16 @@ (i32.store offset=4 (get_local $2) (i32.or - (get_local $3) + (get_local $4) (i32.const 1) ) ) (i32.store (i32.add (get_local $2) - (get_local $3) + (get_local $4) ) - (get_local $3) + (get_local $4) ) (if (i32.eq @@ -7431,17 +7344,17 @@ (block (i32.store (i32.const 1216) - (get_local $3) + (get_local $4) ) (return) ) (set_local $0 - (get_local $3) + (get_local $4) ) ) ) ) - (set_local $8 + (set_local $7 (i32.shr_u (get_local $0) (i32.const 3) @@ -7458,7 +7371,7 @@ (i32.const 1248) (i32.shl (i32.shl - (get_local $8) + (get_local $7) (i32.const 1) ) (i32.const 2) @@ -7472,10 +7385,10 @@ (i32.const 1208) ) ) - (tee_local $3 + (tee_local $4 (i32.shl (i32.const 1) - (get_local $8) + (get_local $7) ) ) ) @@ -7483,7 +7396,7 @@ (i32.lt_u (tee_local $5 (i32.load - (tee_local $3 + (tee_local $4 (i32.add (get_local $1) (i32.const 8) @@ -7498,7 +7411,7 @@ (call_import $qa) (block (set_local $15 - (get_local $3) + (get_local $4) ) (set_local $13 (get_local $5) @@ -7510,7 +7423,7 @@ (i32.const 1208) (i32.or (get_local $5) - (get_local $3) + (get_local $4) ) ) (set_local $15 @@ -7543,11 +7456,11 @@ (return) ) ) - (set_local $3 + (set_local $4 (i32.add (i32.const 1512) (i32.shl - (tee_local $1 + (tee_local $7 (if (tee_local $1 (i32.shr_u @@ -7566,7 +7479,7 @@ (i32.shr_u (get_local $0) (i32.add - (tee_local $3 + (tee_local $4 (i32.add (i32.sub (i32.const 14) @@ -7636,7 +7549,7 @@ (i32.const 1) ) (i32.shl - (get_local $3) + (get_local $4) (i32.const 1) ) ) @@ -7650,7 +7563,7 @@ ) (i32.store offset=28 (get_local $2) - (get_local $1) + (get_local $7) ) (i32.store offset=20 (get_local $2) @@ -7670,7 +7583,7 @@ (tee_local $5 (i32.shl (i32.const 1) - (get_local $1) + (get_local $7) ) ) ) @@ -7683,12 +7596,12 @@ (i32.sub (i32.const 25) (i32.shr_u - (get_local $1) + (get_local $7) (i32.const 1) ) ) (i32.eq - (get_local $1) + (get_local $7) (i32.const 31) ) ) @@ -7696,7 +7609,7 @@ ) (set_local $1 (i32.load - (get_local $3) + (get_local $4) ) ) (loop $while-in$19 @@ -7724,7 +7637,7 @@ (if (tee_local $12 (i32.load - (tee_local $8 + (tee_local $7 (i32.add (i32.add (get_local $1) @@ -7751,10 +7664,11 @@ (set_local $1 (get_local $12) ) + (br $while-in$19) ) (block (set_local $18 - (get_local $8) + (get_local $7) ) (set_local $19 (get_local $1) @@ -7762,10 +7676,8 @@ (set_local $0 (i32.const 127) ) - (br $while-out$18) ) ) - (br $while-in$19) ) ) (if @@ -7865,12 +7777,12 @@ ) ) (i32.store - (get_local $3) + (get_local $4) (get_local $2) ) (i32.store offset=24 (get_local $2) - (get_local $3) + (get_local $4) ) (i32.store offset=12 (get_local $2) @@ -7901,22 +7813,21 @@ ) ) (loop $while-in$21 - (block $while-out$20 - (if - (tee_local $2 - (i32.load - (get_local $0) - ) + (if + (tee_local $2 + (i32.load + (get_local $0) ) + ) + (block (set_local $0 (i32.add (get_local $2) (i32.const 8) ) ) - (br $while-out$20) + (br $while-in$21) ) - (br $while-in$21) ) ) (i32.store @@ -7940,8 +7851,7 @@ (local $15 i32) (local $16 i32) (local $17 i32) - (local $18 i32) - (set_local $11 + (set_local $10 (get_global $r) ) (set_global $r @@ -7950,25 +7860,25 @@ (i32.const 48) ) ) - (set_local $12 + (set_local $11 (i32.add - (get_local $11) + (get_local $10) (i32.const 16) ) ) - (set_local $13 - (get_local $11) + (set_local $12 + (get_local $10) ) (i32.store - (tee_local $3 + (tee_local $4 (i32.add - (get_local $11) + (get_local $10) (i32.const 32) ) ) - (tee_local $8 + (tee_local $7 (i32.load - (tee_local $9 + (tee_local $8 (i32.add (get_local $0) (i32.const 28) @@ -7978,27 +7888,27 @@ ) ) (i32.store offset=4 - (get_local $3) - (tee_local $10 + (get_local $4) + (tee_local $9 (i32.sub (i32.load - (tee_local $14 + (tee_local $13 (i32.add (get_local $0) (i32.const 20) ) ) ) - (get_local $8) + (get_local $7) ) ) ) (i32.store offset=8 - (get_local $3) + (get_local $4) (get_local $1) ) (i32.store offset=12 - (get_local $3) + (get_local $4) (get_local $2) ) (set_local $1 @@ -8007,21 +7917,21 @@ (i32.const 60) ) ) - (set_local $8 + (set_local $7 (i32.add (get_local $0) (i32.const 44) ) ) - (set_local $4 - (get_local $3) + (set_local $5 + (get_local $4) ) - (set_local $3 + (set_local $4 (i32.const 2) ) - (set_local $5 + (set_local $3 (i32.add - (get_local $10) + (get_local $9) (get_local $2) ) ) @@ -8029,7 +7939,7 @@ (block $while-out$0 (if (i32.eq - (get_local $5) + (get_local $3) (tee_local $6 (if (i32.load @@ -8041,51 +7951,51 @@ (get_local $0) ) (i32.store - (get_local $13) + (get_local $12) (i32.load (get_local $1) ) ) (i32.store offset=4 - (get_local $13) - (get_local $4) + (get_local $12) + (get_local $5) ) (i32.store offset=8 - (get_local $13) - (get_local $3) + (get_local $12) + (get_local $4) ) - (set_local $10 + (set_local $9 (call $Pa (call_import $ya (i32.const 146) - (get_local $13) + (get_local $12) ) ) ) (call_import $oa (i32.const 0) ) - (get_local $10) + (get_local $9) ) (block (i32.store - (get_local $12) + (get_local $11) (i32.load (get_local $1) ) ) (i32.store offset=4 - (get_local $12) - (get_local $4) + (get_local $11) + (get_local $5) ) (i32.store offset=8 - (get_local $12) - (get_local $3) + (get_local $11) + (get_local $4) ) (call $Pa (call_import $ya (i32.const 146) - (get_local $12) + (get_local $11) ) ) ) @@ -8105,130 +8015,125 @@ (i32.const 0) ) (block + (set_local $16 + (get_local $5) + ) (set_local $17 (get_local $4) ) - (set_local $18 - (get_local $3) - ) (set_local $1 (i32.const 8) ) - (br $while-out$0) ) - ) - (set_local $10 - (i32.sub - (get_local $5) - (get_local $6) - ) - ) - (set_local $3 - (if - (i32.gt_u - (get_local $6) - (tee_local $5 - (i32.load offset=4 - (get_local $4) - ) + (block + (set_local $9 + (i32.sub + (get_local $3) + (get_local $6) ) ) - (block - (i32.store - (get_local $9) - (tee_local $7 - (i32.load - (get_local $8) - ) - ) - ) - (i32.store - (get_local $14) - (get_local $7) - ) - (set_local $6 - (i32.sub + (set_local $5 + (if + (i32.gt_u (get_local $6) - (get_local $5) - ) - ) - (set_local $7 - (i32.add - (get_local $4) - (i32.const 8) - ) - ) - (set_local $15 - (i32.add - (get_local $3) - (i32.const -1) - ) - ) - (i32.load offset=12 - (get_local $4) - ) - ) - (if - (i32.eq - (get_local $3) - (i32.const 2) - ) - (block - (i32.store - (get_local $9) - (i32.add - (i32.load - (get_local $9) + (tee_local $14 + (i32.load offset=4 + (get_local $5) ) - (get_local $6) ) ) - (set_local $7 - (get_local $4) + (block + (i32.store + (get_local $8) + (tee_local $3 + (i32.load + (get_local $7) + ) + ) + ) + (i32.store + (get_local $13) + (get_local $3) + ) + (set_local $6 + (i32.sub + (get_local $6) + (get_local $14) + ) + ) + (set_local $3 + (i32.add + (get_local $5) + (i32.const 8) + ) + ) + (set_local $4 + (i32.add + (get_local $4) + (i32.const -1) + ) + ) + (i32.load offset=12 + (get_local $5) + ) ) - (set_local $15 - (i32.const 2) + (if + (i32.eq + (get_local $4) + (i32.const 2) + ) + (block + (i32.store + (get_local $8) + (i32.add + (i32.load + (get_local $8) + ) + (get_local $6) + ) + ) + (set_local $3 + (get_local $5) + ) + (set_local $4 + (i32.const 2) + ) + (get_local $14) + ) + (block + (set_local $3 + (get_local $5) + ) + (get_local $14) + ) ) - (get_local $5) ) - (block - (set_local $7 - (get_local $4) - ) - (set_local $15 + ) + (i32.store + (get_local $3) + (i32.add + (i32.load (get_local $3) ) + (get_local $6) + ) + ) + (i32.store offset=4 + (get_local $3) + (i32.sub (get_local $5) + (get_local $6) ) ) - ) - ) - (i32.store - (get_local $7) - (i32.add - (i32.load - (get_local $7) + (set_local $5 + (get_local $3) ) - (get_local $6) - ) - ) - (i32.store offset=4 - (get_local $7) - (i32.sub - (get_local $3) - (get_local $6) + (set_local $3 + (get_local $9) + ) + (br $while-in$1) ) ) - (set_local $4 - (get_local $7) - ) - (set_local $3 - (get_local $15) - ) - (set_local $5 - (get_local $10) - ) - (br $while-in$1) ) ) (if @@ -8240,9 +8145,9 @@ (i32.store offset=16 (get_local $0) (i32.add - (tee_local $5 + (tee_local $3 (i32.load - (get_local $8) + (get_local $7) ) ) (i32.load offset=48 @@ -8251,16 +8156,16 @@ ) ) (i32.store - (get_local $9) - (tee_local $8 - (get_local $5) + (get_local $8) + (tee_local $7 + (get_local $3) ) ) (i32.store - (get_local $14) - (get_local $8) + (get_local $13) + (get_local $7) ) - (set_local $16 + (set_local $15 (get_local $2) ) ) @@ -8275,11 +8180,11 @@ (i32.const 0) ) (i32.store - (get_local $9) + (get_local $8) (i32.const 0) ) (i32.store - (get_local $14) + (get_local $13) (i32.const 0) ) (i32.store @@ -8291,17 +8196,17 @@ (i32.const 32) ) ) - (set_local $16 + (set_local $15 (select (i32.const 0) (i32.sub (get_local $2) (i32.load offset=4 - (get_local $17) + (get_local $16) ) ) (i32.eq - (get_local $18) + (get_local $17) (i32.const 2) ) ) @@ -8310,9 +8215,9 @@ ) ) (set_global $r - (get_local $11) + (get_local $10) ) - (get_local $16) + (get_local $15) ) (func $Wa (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8332,10 +8237,10 @@ ) ) (block - (set_local $7 + (set_local $6 (get_local $5) ) - (set_local $6 + (set_local $7 (i32.const 5) ) ) @@ -8347,12 +8252,12 @@ (i32.const 0) ) (block - (set_local $7 + (set_local $6 (i32.load (get_local $3) ) ) - (set_local $6 + (set_local $7 (i32.const 5) ) ) @@ -8361,11 +8266,11 @@ (block $label$break$a (if (i32.eq - (get_local $6) + (get_local $7) (i32.const 5) ) (block - (set_local $6 + (set_local $4 (tee_local $3 (i32.load (tee_local $5 @@ -8380,7 +8285,7 @@ (if (i32.lt_u (i32.sub - (get_local $7) + (get_local $6) (get_local $3) ) (get_local $1) @@ -8405,7 +8310,7 @@ (br $label$break$a) ) ) - (set_local $0 + (set_local $1 (block $label$break$b (if (i32.gt_s @@ -8419,57 +8324,48 @@ (get_local $1) ) (loop $while-in$3 - (block $while-out$2 - (if - (i32.eqz - (get_local $3) + (if + (i32.eqz + (get_local $3) + ) + (block + (set_local $2 + (i32.const 0) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $3 - (i32.const 0) - ) - (br $label$break$b - (get_local $1) - ) + (br $label$break$b + (get_local $1) ) ) - (if - (i32.eq - (i32.load8_s - (i32.add - (get_local $0) - (tee_local $7 - (i32.add - (get_local $3) - (i32.const -1) - ) + ) + (if + (i32.ne + (i32.load8_s + (i32.add + (get_local $0) + (tee_local $6 + (i32.add + (get_local $3) + (i32.const -1) ) ) ) - (i32.const 10) - ) - (block - (set_local $4 - (get_local $3) - ) - (br $while-out$2) ) + (i32.const 10) + ) + (block (set_local $3 - (get_local $7) + (get_local $6) ) + (br $while-in$3) ) - (br $while-in$3) ) ) - (br_if $label$break$a + (if (i32.lt_u (call_indirect $FUNCSIG$iiii (get_local $2) (get_local $0) - (get_local $4) + (get_local $3) (i32.add (i32.and (i32.load offset=36 @@ -8480,33 +8376,36 @@ (i32.const 2) ) ) - (get_local $4) + (get_local $3) + ) + (block + (set_local $4 + (get_local $3) + ) + (br $label$break$a) ) ) - (set_local $2 + (set_local $0 (i32.add (get_local $0) - (get_local $4) + (get_local $3) ) ) - (set_local $6 + (set_local $4 (i32.load (get_local $5) ) ) - (set_local $3 - (get_local $4) + (set_local $2 + (get_local $3) ) (i32.sub (get_local $1) - (get_local $4) + (get_local $3) ) ) (block (set_local $2 - (get_local $0) - ) - (set_local $3 (i32.const 0) ) (get_local $1) @@ -8516,9 +8415,9 @@ ) (drop (call $jb - (get_local $6) - (get_local $2) + (get_local $4) (get_local $0) + (get_local $1) ) ) (i32.store @@ -8527,13 +8426,13 @@ (i32.load (get_local $5) ) - (get_local $0) + (get_local $1) ) ) (set_local $4 (i32.add - (get_local $3) - (get_local $0) + (get_local $2) + (get_local $1) ) ) ) @@ -8560,53 +8459,47 @@ (get_local $3) ) (loop $while-in$2 - (block $while-out$1 - (if - (i32.eqz - (i32.load8_s - (get_local $0) - ) + (if + (i32.eqz + (i32.load8_s + (get_local $0) ) - (block - (set_local $5 - (get_local $4) - ) - (br $label$break$a) + ) + (block + (set_local $5 + (get_local $4) ) + (br $label$break$a) ) - (if - (i32.eqz - (i32.and - (tee_local $4 - (tee_local $0 - (i32.add - (get_local $0) - (i32.const 1) - ) - ) + ) + (br_if $while-in$2 + (i32.and + (tee_local $4 + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) ) - (i32.const 3) ) ) - (block - (set_local $2 - (get_local $0) - ) - (set_local $1 - (i32.const 4) - ) - (br $while-out$1) - ) + (i32.const 3) + ) + ) + (block + (set_local $1 + (get_local $0) + ) + (set_local $2 + (i32.const 4) ) - (br $while-in$2) ) ) ) (block - (set_local $2 + (set_local $1 (get_local $0) ) - (set_local $1 + (set_local $2 (i32.const 4) ) ) @@ -8614,49 +8507,51 @@ ) (if (i32.eq - (get_local $1) + (get_local $2) (i32.const 4) ) (block - (set_local $1 - (get_local $2) + (set_local $2 + (get_local $1) ) (loop $while-in$4 - (block $while-out$3 - (if - (i32.and - (i32.xor - (i32.and - (tee_local $2 - (i32.load - (get_local $1) - ) + (if + (i32.and + (i32.xor + (i32.and + (tee_local $1 + (i32.load + (get_local $2) ) - (i32.const -2139062144) ) (i32.const -2139062144) ) - (i32.add - (get_local $2) - (i32.const -16843009) - ) + (i32.const -2139062144) ) - (br $while-out$3) - (set_local $1 + (i32.add + (get_local $1) + (i32.const -16843009) + ) + ) + (set_local $0 + (get_local $2) + ) + (block + (set_local $2 (i32.add - (get_local $1) + (get_local $2) (i32.const 4) ) ) + (br $while-in$4) ) - (br $while-in$4) ) ) (if (i32.shr_s (i32.shl (i32.and - (get_local $2) + (get_local $1) (i32.const 255) ) (i32.const 24) @@ -8664,32 +8559,31 @@ (i32.const 24) ) (block - (set_local $2 - (get_local $1) + (set_local $1 + (get_local $0) ) (loop $while-in$6 - (block $while-out$5 - (if - (i32.load8_s - (tee_local $1 - (i32.add - (get_local $2) - (i32.const 1) - ) + (if + (i32.load8_s + (tee_local $0 + (i32.add + (get_local $1) + (i32.const 1) ) ) - (set_local $2 - (get_local $1) + ) + (block + (set_local $1 + (get_local $0) ) - (br $while-out$5) + (br $while-in$6) ) - (br $while-in$6) ) ) ) ) (set_local $5 - (get_local $1) + (get_local $0) ) ) ) @@ -8719,11 +8613,10 @@ ) ) (set_local $2 - (i32.eq + (i32.eqz (call $Ya (get_local $0) ) - (i32.const 0) ) ) (set_local $1 @@ -8773,70 +8666,62 @@ (get_local $0) ) (loop $while-in$3 - (block $while-out$2 - (set_local $0 - (if - (i32.gt_s - (i32.load offset=76 - (get_local $1) - ) - (i32.const -1) - ) - (call $Ya + (set_local $0 + (if + (i32.gt_s + (i32.load offset=76 (get_local $1) ) - (i32.const 0) - ) - ) - (set_local $2 - (if - (i32.gt_u - (i32.load offset=20 - (get_local $1) - ) - (i32.load offset=28 - (get_local $1) - ) - ) - (i32.or - (call $$a - (get_local $1) - ) - (get_local $2) - ) - (get_local $2) + (i32.const -1) ) - ) - (if - (get_local $0) - (call $Ta + (call $Ya (get_local $1) ) + (i32.const 0) ) + ) + (set_local $2 (if - (i32.eqz - (tee_local $1 - (i32.load offset=56 - (get_local $1) - ) + (i32.gt_u + (i32.load offset=20 + (get_local $1) + ) + (i32.load offset=28 + (get_local $1) ) ) - (block - (set_local $0 - (get_local $2) + (i32.or + (call $$a + (get_local $1) ) - (br $while-out$2) + (get_local $2) + ) + (get_local $2) + ) + ) + (if + (get_local $0) + (call $Ta + (get_local $1) + ) + ) + (br_if $while-in$3 + (tee_local $1 + (i32.load offset=56 + (get_local $1) ) ) - (br $while-in$3) ) ) ) + (set_local $2 + (get_local $0) + ) ) (call_import $xa (i32.const 1188) ) - (get_local $0) + (get_local $2) ) ) ) @@ -9078,21 +8963,23 @@ ) ) ) - (call_indirect $FUNCSIG$iiii - (get_local $0) - (i32.sub - (get_local $2) - (get_local $6) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load offset=40 - (get_local $0) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $0) + (i32.sub + (get_local $2) + (get_local $6) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load offset=40 + (get_local $0) + ) + (i32.const 3) ) - (i32.const 3) + (i32.const 2) ) - (i32.const 2) ) ) ) @@ -9199,75 +9086,75 @@ ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.lt_s - (get_local $2) - (i32.const 4) - ) - ) - (i32.store - (get_local $0) - (i32.load - (get_local $1) - ) + (if + (i32.ge_s + (get_local $2) + (i32.const 4) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (i32.load + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 4) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 4) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 4) + ) ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.le_s - (get_local $2) - (i32.const 0) - ) - ) - (i32.store8 - (get_local $0) - (i32.load8_s - (get_local $1) - ) + (if + (i32.gt_s + (get_local $2) + (i32.const 0) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (i32.load8_s + (get_local $1) + ) ) - ) - (set_local $1 - (i32.add - (get_local $1) - (i32.const 1) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.const 1) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (get_local $3) @@ -9342,70 +9229,70 @@ ) ) (loop $while-in$1 - (block $while-out$0 - (br_if $while-out$0 - (i32.ge_s - (get_local $0) - (get_local $3) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $3) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $while-in$1) ) - (br $while-in$1) ) ) ) ) (loop $while-in$3 - (block $while-out$2 - (br_if $while-out$2 - (i32.ge_s - (get_local $0) - (get_local $6) - ) - ) - (i32.store + (if + (i32.lt_s (get_local $0) - (get_local $5) + (get_local $6) ) - (set_local $0 - (i32.add + (block + (i32.store (get_local $0) - (i32.const 4) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 4) + ) ) + (br $while-in$3) ) - (br $while-in$3) ) ) ) ) (loop $while-in$5 - (block $while-out$4 - (br_if $while-out$4 - (i32.ge_s - (get_local $0) - (get_local $4) - ) - ) - (i32.store8 + (if + (i32.lt_s (get_local $0) - (get_local $1) + (get_local $4) ) - (set_local $0 - (i32.add + (block + (i32.store8 (get_local $0) - (i32.const 1) + (get_local $1) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) ) + (br $while-in$5) ) - (br $while-in$5) ) ) (i32.sub @@ -9610,11 +9497,10 @@ ) (block (set_local $5 - (i32.eq + (i32.eqz (call $Ya (get_local $3) ) - (i32.const 0) ) ) (set_local $0 diff --git a/test/memorygrowth.fromasm.imprecise.no-opts b/test/memorygrowth.fromasm.imprecise.no-opts index 347eb4392..064c1d821 100644 --- a/test/memorygrowth.fromasm.imprecise.no-opts +++ b/test/memorygrowth.fromasm.imprecise.no-opts @@ -10686,24 +10686,26 @@ (get_local $f) (get_local $h) ) - (call_indirect $FUNCSIG$iiii - (get_local $a) - (i32.sub - (get_local $f) - (get_local $h) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load - (i32.add - (get_local $a) - (i32.const 40) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $a) + (i32.sub + (get_local $f) + (get_local $h) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load + (i32.add + (get_local $a) + (i32.const 40) + ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 2) ) - (i32.const 2) ) ) ) diff --git a/test/memorygrowth.fromasm.no-opts b/test/memorygrowth.fromasm.no-opts index 9415b19e5..0639416ea 100644 --- a/test/memorygrowth.fromasm.no-opts +++ b/test/memorygrowth.fromasm.no-opts @@ -10687,24 +10687,26 @@ (get_local $f) (get_local $h) ) - (call_indirect $FUNCSIG$iiii - (get_local $a) - (i32.sub - (get_local $f) - (get_local $h) - ) - (i32.const 1) - (i32.add - (i32.and - (i32.load - (i32.add - (get_local $a) - (i32.const 40) + (drop + (call_indirect $FUNCSIG$iiii + (get_local $a) + (i32.sub + (get_local $f) + (get_local $h) + ) + (i32.const 1) + (i32.add + (i32.and + (i32.load + (i32.add + (get_local $a) + (i32.const 40) + ) ) + (i32.const 3) ) - (i32.const 3) + (i32.const 2) ) - (i32.const 2) ) ) ) diff --git a/test/passes/coalesce-locals.txt b/test/passes/coalesce-locals.txt index 3836cfadb..db7098ab6 100644 --- a/test/passes/coalesce-locals.txt +++ b/test/passes/coalesce-locals.txt @@ -881,21 +881,21 @@ (get_local $1) ) ) - (func $prefer-remove-copies1 (type $2) + (func $prefer-remove-copies2 (type $2) (local $0 i32) (local $1 i32) - (set_local $1 + (set_local $0 (i32.const 0) ) (nop) - (set_local $0 + (set_local $1 (i32.const 1) ) (drop - (get_local $0) + (get_local $1) ) (drop - (get_local $1) + (get_local $0) ) ) ) diff --git a/test/passes/coalesce-locals.wast b/test/passes/coalesce-locals.wast index 713fd7dd9..cd763af10 100644 --- a/test/passes/coalesce-locals.wast +++ b/test/passes/coalesce-locals.wast @@ -905,7 +905,7 @@ (get_local $z) ) ) - (func $prefer-remove-copies1 (type $2) + (func $prefer-remove-copies2 (type $2) (local $y i32) (local $z i32) (local $x i32) diff --git a/test/passes/optimize-instructions.txt b/test/passes/optimize-instructions.txt index e7af4848e..ca5f02849 100644 --- a/test/passes/optimize-instructions.txt +++ b/test/passes/optimize-instructions.txt @@ -166,5 +166,51 @@ (f64.const 2) ) ) + (drop + (i32.eqz + (i32.const 100) + ) + ) + (drop + (i32.eqz + (i32.const 100) + ) + ) + (drop + (i32.eqz + (i32.const 0) + ) + ) + (if + (i32.const 123) + (nop) + ) + (drop + (select + (i32.const 102) + (i32.const 101) + (get_local $i1) + ) + ) + (drop + (select + (tee_local $i1 + (i32.const 103) + ) + (tee_local $i1 + (i32.const 104) + ) + (i32.eqz + (get_local $i1) + ) + ) + ) + (drop + (select + (i32.const 0) + (i32.const 1) + (i32.const 2) + ) + ) ) ) diff --git a/test/passes/optimize-instructions.wast b/test/passes/optimize-instructions.wast index f06d99fd9..b1a7ab47e 100644 --- a/test/passes/optimize-instructions.wast +++ b/test/passes/optimize-instructions.wast @@ -192,5 +192,64 @@ ) ) ) + (drop + (i32.eq + (i32.const 100) + (i32.const 0) + ) + ) + (drop + (i32.eq + (i32.const 0) + (i32.const 100) + ) + ) + (drop + (i32.eq + (i32.const 0) + (i32.const 0) + ) + ) + (if + (i32.eqz + (i32.eqz + (i32.const 123) + ) + ) + (nop) + ) + (drop + (select + (i32.const 101) + (i32.const 102) + (i32.eqz + (get_local $i1) + ) + ) + ) + (drop + (select + (tee_local $i1 + (i32.const 103) + ) ;; these conflict + (tee_local $i1 + (i32.const 104) + ) + (i32.eqz + (get_local $i1) + ) + ) + ) + (drop + (select + (i32.const 0) + (i32.const 1) + (i32.eqz + (i32.eqz + (i32.const 2) + ) + ) + ) + ) ) ) diff --git a/test/passes/remove-unused-brs.txt b/test/passes/remove-unused-brs.txt index 1c5c8e713..94b214588 100644 --- a/test/passes/remove-unused-brs.txt +++ b/test/passes/remove-unused-brs.txt @@ -3,6 +3,7 @@ (type $0 (func (param i32))) (type $1 (func)) (type $2 (func (result i32))) + (type $3 (func (param i32 i32) (result i32))) (func $b0-yes (type $0) (param $i1 i32) (block $topmost ) @@ -108,7 +109,7 @@ (drop (i32.const 0) ) - (br_if $inner + (br_if $topmost (i32.const 1) ) ) @@ -419,4 +420,427 @@ (i32.const 1) ) ) + (func $loops (type $1) + (loop $in + (block $out + (br_if $in + (i32.eqz + (i32.const 0) + ) + ) + ) + ) + (loop $in + (br $in) + ) + (loop $loop-in1 + (block $out + (br_if $out + (i32.const 0) + ) + ) + ) + (loop $in + (block $out + (br_if $out + (i32.const 0) + ) + ) + ) + (loop $in + (nop) + ) + (loop $in + (block $out + ) + ) + (loop $in + (block $out + (br_if $out + (i32.const 0) + ) + (br_if $in + (i32.const 1) + ) + ) + ) + (loop $in + (block $out + (br_if $in + (i32.const 0) + ) + ) + ) + (loop $in + (block $out + (if + (i32.const 0) + (unreachable) + ) + (br $in) + ) + ) + (loop $in + (block $out + (br_if $in + (i32.eqz + (i32.const 0) + ) + ) + (block $block8 + (call $loops) + ) + ) + ) + (loop $in-todo + (block $out-todo + (if + (i32.const 0) + (nop) + (block + (call $loops) + (br $in-todo) + ) + ) + ) + ) + (loop $in + (block $out + (if + (i32.const 0) + (nop) + (block + (call $loops) + (br $in) + ) + ) + ) + ) + (loop $in + (block $out + (if + (i32.const 0) + (block + (call $loops) + (br $in) + ) + (nop) + ) + ) + ) + (loop $in + (block $out + (if + (i32.const 0) + (block $block15 + (drop + (i32.const 1) + ) + (call $loops) + (br $in) + ) + (nop) + ) + ) + ) + (loop $in + (block $out + (if + (i32.const 0) + (nop) + (block + (call $loops) + (drop + (i32.const 100) + ) + (br $in) + ) + ) + ) + ) + (loop $in + (block $out + (if + (i32.const 0) + (block + (call $loops) + (drop + (i32.const 101) + ) + (br $in) + ) + (nop) + ) + ) + ) + (loop $in + (block $out + (if + (i32.const 0) + (block $block22 + (drop + (i32.const 1) + ) + (call $loops) + (drop + (i32.const 102) + ) + (br $in) + ) + (nop) + ) + ) + ) + (loop $in + (block $out + (br_if $out + (i32.const 0) + ) + (call $loops) + (return) + (br $in) + ) + ) + (loop $in + (block $out + (br_if $out + (i32.const 0) + ) + (call $loops) + (br $out) + (br $in) + ) + ) + (loop $in + (block $out + (if + (i32.const 0) + (nop) + (block + (call $loops) + (drop + (block $out2 + (i32.const 1) + ) + ) + (br $in) + ) + ) + ) + ) + (loop $in + (block $out + (br_if $in + (i32.eqz + (i32.const 0) + ) + ) + ) + ) + (loop $in-todo2 + (block $out-todo2 + (if + (i32.const 0) + (nop) + (block + (call $loops) + (br $in-todo2) + ) + ) + ) + ) + (loop $in + (block $out + (br $out) + (br $in) + ) + ) + (loop $in + (block $out + (br_if $in + (i32.const 0) + ) + (br $in) + ) + ) + (loop $in-not + (block $out-not + (br_if $out-not + (i32.const -1) + ) + (br_if $out-not + (i32.const 0) + ) + (call $loops) + (br $in-not) + ) + ) + (loop $in-todo2 + (block $out-todo2 + (if + (i32.const 0) + (nop) + (block + (call $loops) + (drop + (i32.const 1) + ) + (br $in-todo2) + ) + ) + ) + ) + ) + (func $br_if_in_block (type $2) (result i32) + (block $outval + (block $in + (br_if $in + (i32.const 1) + ) + (br $in) + (drop + (i32.const 2) + ) + (br_if $in + (i32.eqz + (i32.const 3) + ) + ) + (unreachable) + (drop + (i32.const 4) + ) + (br_if $in + (i32.const 5) + ) + (unreachable) + (drop + (i32.const 6) + ) + ) + (if + (i32.const 6) + (br $outval + (i32.const 7) + ) + (i32.const 8) + ) + ) + ) + (func $threading (type $1) + (drop + (block $value-out + (block $value-in + (block $out + (block $in + (br_if $out + (i32.const 1) + ) + (br_if $out + (i32.const 2) + ) + (br $value-in + (i32.const 3) + ) + ) + ) + (i32.const 4) + ) + ) + ) + (block $stack1 + (block $stack2 + (block $stack3 + (block $stack4 + (br_if $stack1 + (i32.const 1) + ) + (unreachable) + ) + ) + ) + ) + ) + (func $if-to-br_if-conflict (type $3) (param $x i32) (param $y i32) (result i32) + (block $leave + (set_local $y + (block $out + (if + (get_local $x) + (br $out + (block $block1 + (set_local $x + (i32.const 0) + ) + (i32.const 1) + ) + ) + (br_if $leave + (i32.const 1) + ) + ) + (unreachable) + ) + ) + ) + (i32.add + (get_local $x) + (get_local $y) + ) + ) + (func $if-to-br_if-conflict2 (type $3) (param $x i32) (param $y i32) (result i32) + (block $leave + (set_local $y + (block $out + (if + (get_local $x) + (br_if $leave + (i32.const 1) + ) + (br $out + (block $block2 + (set_local $x + (i32.const 0) + ) + (i32.const 1) + ) + ) + ) + (unreachable) + ) + ) + ) + (i32.add + (get_local $x) + (get_local $y) + ) + ) + (func $if-to-br_if-value-sideeffect (type $3) (param $x i32) (param $y i32) (result i32) + (block $leave + (set_local $y + (block $out + (if + (get_local $x) + (br $out + (block $block1 + (drop + (call $if-to-br_if-value-sideeffect + (i32.const 0) + (i32.const 1) + ) + ) + (nop) + (i32.const 1) + ) + ) + ) + (unreachable) + ) + ) + ) + (i32.add + (get_local $x) + (get_local $y) + ) + ) ) diff --git a/test/passes/remove-unused-brs.wast b/test/passes/remove-unused-brs.wast index f3d20f5e0..ecbcb6caa 100644 --- a/test/passes/remove-unused-brs.wast +++ b/test/passes/remove-unused-brs.wast @@ -452,4 +452,312 @@ (i32.const 1) ) ) + (func $loops + (loop $in + (block $out + (if (i32.const 0) (br $out)) + (br $in) ;; we can conditionalize this, and then the br out can vanish + ) + ) + (loop $in + (br $in) + ) + (loop + (block $out + (if (i32.const 0) (br $out)) + (br $out) + ) + ) + (loop $in + (block $out + (if (i32.const 0) (br $out)) + (br $out) + ) + ) + (loop $in) + (loop $in + (block $out) + ) + (loop $in + (block $out + (if (i32.const 0) (br $out)) + (br_if $in (i32.const 1)) + ) + ) + (loop $in + (block $out + (if (i32.const 0) (br $in)) + (br $out) + ) + ) + (loop $in + (block $out + (if (i32.const 0) (unreachable)) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (block + (call $loops) + (br $out) + ) + ) + (br $in) + ) + ) + (loop $in-todo ;; br_if into if + (block $out-todo + (if (i32.const 0) (br $out-todo)) + (call $loops) + (br $in-todo) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (br $out) + (call $loops) + ) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (call $loops) + (br $out) + ) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (block + (drop (i32.const 1)) + (call $loops) + ) + (br $out) + ) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (br $out) + (call $loops) + ) + (drop (i32.const 100)) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (call $loops) + (br $out) + ) + (drop (i32.const 101)) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (block + (drop (i32.const 1)) + (call $loops) + ) + (br $out) + ) + (drop (i32.const 102)) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (br $out) + (call $loops) + ) + (return) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (br $out) + (call $loops) + ) + (br $out) + (br $in) + ) + ) + (loop $in + (block $out + (if (i32.const 0) + (br $out) + (call $loops) + ) + (drop + (block $out2 + (br $out2 (i32.const 1)) + ) + ) + (br $in) + ) + ) + (loop $in + (block $out + (br_if $out (i32.const 0)) + (br $in) + ) + ) + (loop $in-todo2 ;; if-ify + (block $out-todo2 + (br_if $out-todo2 (i32.const 0)) + (call $loops) + (br $in-todo2) + ) + ) + (loop $in + (block $out + (br $out) + (br $in) + ) + ) + (loop $in + (block $out + (br_if $in (i32.const 0)) + (br $in) + ) + ) + (loop $in-not ;; do NOT if-ify, the block can't be removed + (block $out-not + (br_if $out-not (i32.const -1)) + (br_if $out-not (i32.const 0)) + (call $loops) + (br $in-not) + ) + ) + (loop $in-todo2 ;; if-ify a slice with 2 things + (block $out-todo2 + (br_if $out-todo2 (i32.const 0)) + (call $loops) + (drop (i32.const 1)) + (br $in-todo2) + ) + ) + ) + (func $br_if_in_block (result i32) + (block $outval + (block $in + (if (i32.const 1) (br $in) (br $in)) + (drop (i32.const 2)) + (if (i32.const 3) (unreachable) (br $in)) + (drop (i32.const 4)) + (if (i32.const 5) (br $in) (unreachable)) + (drop (i32.const 6)) + ) + (if (i32.const 6) (br $outval (i32.const 7)) (i32.const 8)) + ) + ) + (func $threading + (drop + (block $value-out + (block $value-in + (block $out + (block $in + (if (i32.const 1) + (br $in) + ) + (br_if $in (i32.const 2)) + (br $value-in (i32.const 3)) + ) + (br $out) + ) + (i32.const 4) + ) + ) + ) + (block $stack1 + (block $stack2 + (block $stack3 + (block $stack4 + (if (i32.const 1) + (br $stack4) + ) + (unreachable) + ) + (br $stack3) + ) + (br $stack2) + ) + (br $stack1) + ) + ) + (func $if-to-br_if-conflict (param $x i32) (param $y i32) (result i32) + (block $leave + (set_local $y + (block $out + (if + (get_local $x) + (br $out + (block + (set_local $x (i32.const 0)) + (i32.const 1) + ) + ) + (br_if $leave (i32.const 1)) + ) + (unreachable) + ) + ) + ) + (i32.add (get_local $x) (get_local $y)) + ) + (func $if-to-br_if-conflict2 (param $x i32) (param $y i32) (result i32) + (block $leave + (set_local $y + (block $out + (if + (get_local $x) + (br_if $leave (i32.const 1)) + (br $out + (block + (set_local $x (i32.const 0)) + (i32.const 1) + ) + ) + ) + (unreachable) + ) + ) + ) + (i32.add (get_local $x) (get_local $y)) + ) + (func $if-to-br_if-value-sideeffect (param $x i32) (param $y i32) (result i32) + (block $leave + (set_local $y + (block $out + (if + (get_local $x) + (br $out + (block + (drop (call $if-to-br_if-value-sideeffect (i32.const 0) (i32.const 1))) + (nop) + (i32.const 1) + ) + ) + ) + (unreachable) + ) + ) + ) + (i32.add (get_local $x) (get_local $y)) + ) ) diff --git a/test/passes/simplify-locals.txt b/test/passes/simplify-locals.txt index 72bd7aa12..4b7cd2bb3 100644 --- a/test/passes/simplify-locals.txt +++ b/test/passes/simplify-locals.txt @@ -7,11 +7,13 @@ (type $4 (func (param i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32 i32 i32 i32))) - (type $7 (func (param i32 i32))) + (type $FUNCSIG$iii (func (param i32 i32) (result i32))) + (type $8 (func (param i32 i32))) (import "env" "waka" (func $waka)) (import "env" "waka_int" (func $waka_int (result i32))) (import "env" "i64sub" (func $_i64Subtract (param i32 i32 i32 i32) (result i32))) (import "env" "moddi" (func $___udivmoddi4 (param i32 i32 i32 i32 i32) (result i32))) + (import "env" "lp" (func $lp (param i32 i32) (result i32))) (func $b0-yes (type $4) (param $i1 i32) (local $x i32) (local $y i32) @@ -576,14 +578,18 @@ (block $out (nop) (br_if $out - (block $waka - (nop) - (br_if $waka - (i32.const 12) - (i32.const 1) + (tee_local $x + (block $waka + (nop) + (br_if $waka + (tee_local $x + (i32.const 12) + ) + (i32.const 1) + ) + (nop) + (i32.const 34) ) - (nop) - (i32.const 34) ) (i32.const 1) ) @@ -607,15 +613,17 @@ (nop) ) (br_if $out - (if - (i32.const 1) - (block $block3 - (nop) - (i32.const 14) - ) - (block $block5 - (nop) - (i32.const 25) + (tee_local $x + (if + (i32.const 1) + (block $block3 + (nop) + (i32.const 14) + ) + (block $block5 + (nop) + (i32.const 25) + ) ) ) (i32.const 1) @@ -674,7 +682,7 @@ (get_local $i1) ) ) - (func $no-out-of-label (type $7) (param $x i32) (param $y i32) + (func $no-out-of-label (type $8) (param $x i32) (param $y i32) (loop $moar (set_local $x (block $block0 @@ -702,4 +710,29 @@ (get_local $y) ) ) + (func $freetype-cd (type $5) (param $a i32) (result i32) + (local $e i32) + (loop $while-in$1 + (set_local $a + (block $while-out$0 + (set_local $e + (get_local $a) + ) + (nop) + (br_if $while-out$0 + (tee_local $a + (i32.const 4) + ) + (get_local $e) + ) + (nop) + (i32.add + (get_local $a) + (i32.const 0) + ) + ) + ) + ) + (get_local $a) + ) ) diff --git a/test/passes/simplify-locals.wast b/test/passes/simplify-locals.wast index 2b5b84a5f..b703613d8 100644 --- a/test/passes/simplify-locals.wast +++ b/test/passes/simplify-locals.wast @@ -11,6 +11,7 @@ (import $waka_int "env" "waka_int" (result i32)) (import $_i64Subtract "env" "i64sub" (param i32 i32 i32 i32) (result i32)) (import $___udivmoddi4 "env" "moddi" (param i32 i32 i32 i32 i32) (result i32)) + (import $lp "env" "lp" (param i32 i32) (result i32)) (func $b0-yes (type $4) (param $i1 i32) (local $x i32) (local $y i32) @@ -751,4 +752,27 @@ ) (drop (get_local $y)) ) + (func $freetype-cd (param $a i32) (result i32) + (local $e i32) + (loop $while-in$1 + (block $while-out$0 + (set_local $e + (get_local $a) + ) + (set_local $a ;; this set must happen, so that if the br_if does not break, we have the right $a later down - once we use a block return value, the $a set's outside the block + (i32.const 4) + ) + (br_if $while-out$0 + (get_local $e) + ) + (set_local $a + (i32.add + (get_local $a) + (i32.const 0) + ) + ) + ) + ) + (get_local $a) + ) ) diff --git a/test/passes/vacuum.txt b/test/passes/vacuum.txt index 1adcc3e6f..04a04efc0 100644 --- a/test/passes/vacuum.txt +++ b/test/passes/vacuum.txt @@ -7,6 +7,7 @@ (type $4 (func (param i32 f64 i32 i32))) (type $FUNCSIG$i (func (result i32))) (import "env" "int" (func $int (result i32))) + (global $Int i32 (i32.const 0)) (func $b (type $0) (nop) ) @@ -42,16 +43,10 @@ ) (func $binary (type $2) (result f32) (drop - (f32.add - (unreachable) - (f32.const 3) - ) + (unreachable) ) (drop - (f32.add - (f32.const 4) - (unreachable) - ) + (unreachable) ) (f32.add (unreachable) @@ -64,25 +59,13 @@ ) (func $select (type $3) (result i32) (drop - (select - (unreachable) - (i32.const 4) - (i32.const 5) - ) + (unreachable) ) (drop - (select - (i32.const 6) - (unreachable) - (i32.const 7) - ) + (unreachable) ) (drop - (select - (i32.const 8) - (i32.const 9) - (unreachable) - ) + (unreachable) ) (select (unreachable) @@ -178,4 +161,50 @@ ) ) ) + (func $drop-silly (type $0) + (drop + (call_import $int) + ) + (drop + (call_import $int) + ) + (drop + (call_import $int) + ) + (drop + (i32.add + (call_import $int) + (call_import $int) + ) + ) + ) + (func $drop-get-global (type $0) + (call $drop-get-global) + ) + (func $relooperJumpThreading1 (type $0) + (local $$vararg_ptr5 i32) + (local $$11 i32) + (loop $while-in$1 + (drop + (block $jumpthreading$outer$8 + (block $jumpthreading$inner$8 + (br $jumpthreading$outer$8 + (i32.const 0) + ) + ) + (i32.store + (get_local $$vararg_ptr5) + (get_local $$11) + ) + (i32.const 0) + ) + ) + ) + ) + (func $relooperJumpThreading2 (type $0) + (nop) + ) + (func $relooperJumpThreading3 (type $0) + (nop) + ) ) diff --git a/test/passes/vacuum.wast b/test/passes/vacuum.wast index 3630512b4..84f3eeb6f 100644 --- a/test/passes/vacuum.wast +++ b/test/passes/vacuum.wast @@ -6,6 +6,7 @@ (type $3 (func (result i32))) (type $4 (func (param i32 f64 i32 i32))) (import $int "env" "int" (result i32)) + (global $Int i32 (i32.const 0)) (func $b (type $0) (drop (i32.const 50) @@ -314,4 +315,101 @@ ) ) ) + (func $drop-silly + (drop + (i32.eqz + (i32.eqz + (i32.const 1) + ) + ) + ) + (drop + (i32.eqz + (i32.eqz + (call_import $int) + ) + ) + ) + (drop + (i32.add + (i32.const 2) + (i32.const 3) + ) + ) + (drop + (i32.add + (i32.const 4) + (call_import $int) + ) + ) + (drop + (i32.add + (call_import $int) + (i32.const 5) + ) + ) + (drop + (i32.add + (call_import $int) + (call_import $int) + ) + ) + ) + (func $drop-get-global + (drop + (block + (call $drop-get-global) + (get_global $Int) ;; this is not needed due to the block being drop'd, but make sure the call is not then dropped either + ) + ) + ) + (func $relooperJumpThreading1 + (local $$vararg_ptr5 i32) + (local $$11 i32) + (loop $while-in$1 + (drop + (block $jumpthreading$outer$8 + (block $jumpthreading$inner$8 + (br $jumpthreading$outer$8 ;; the rest is dead in the outer block, but be careful to leave the return value! + (i32.const 0) + ) + ) + (i32.store + (get_local $$vararg_ptr5) + (get_local $$11) + ) + (i32.const 0) + ) + ) + ) + ) + (func $relooperJumpThreading2 + (loop $while-in$1 + (drop + (block $jumpthreading$outer$8 + (block $jumpthreading$inner$8 + (br $jumpthreading$outer$8 + (i32.const 0) + ) + ) + (i32.const 0) + ) + ) + ) + ) + (func $relooperJumpThreading3 + (loop $while-in$1 + (drop + (block $jumpthreading$outer$8 + (br $jumpthreading$outer$8 ;; code after this is dead, can kill it, but preserve the return value at the end! + (i32.const 0) + ) + (drop (i32.const 3)) + (drop (i32.const 2)) + (drop (i32.const 1)) + (i32.const 0) + ) + ) + ) + ) ) diff --git a/test/unit.asm.js b/test/unit.asm.js index e76ae1ef9..d4426bd90 100644 --- a/test/unit.asm.js +++ b/test/unit.asm.js @@ -9,11 +9,13 @@ function asm(global, env, buffer) { var Math_ceil = global.Math.ceil; var tempDoublePtr = env.tempDoublePtr | 0; var n = env.gb | 0; + var STACKTOP = env.STACKTOP | 0; var setTempRet0=env.setTempRet0; var abort = env.abort; var print = env.print; var h = env.h; + var return_int = env.return_int; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -330,11 +332,246 @@ function asm(global, env, buffer) { y = 3 ? +abort(7) : 4.5; } + function loadSigned(x) { + x = x | 0; + loadSigned(HEAP8[x >> 0] << 24 >> 24); + loadSigned(HEAPU8[x >> 0] << 24 >> 24); + loadSigned(HEAP16[x >> 1] << 16 >> 16); + loadSigned(HEAPU16[x >> 1] << 16 >> 16); + loadSigned(HEAP8[x >> 0] << 24 >> 16); + loadSigned(HEAPU8[x >> 0] << 16 >> 24); + loadSigned(HEAP16[x >> 1] << 16 >> 24); + loadSigned(HEAPU16[x >> 1] << 24 >> 16); + } + function z() { } function w() { } + function globalOpts() { + var x = 0, y = +0; + x = Int; + y = Double; + HEAP8[13] = HEAP32[3]; // access memory, should not confuse the global writes + Double = y; + Int = x; + globalOpts(); + x = Int; + if (1) Int = 20; // but this does interfere + Int = x; + globalOpts(); + x = Int; + globalOpts(); // this too + Int = x; + } + + function dropCallImport() { + if (1) return_int() | 0; + } + + function loophi(x, y) { + x = x | 0; + y = y | 0; + var temp = 0, inc = 0, loopvar = 0; // this order matters + loopvar = x; + while(1) { + loophi(loopvar | 0, 0); + temp = loopvar; + if (temp) { + if (temp) { + break; + } + } + inc = loopvar + 1 | 0; + if (inc == y) { + loopvar = inc; + } else { + break; + } + } + } + + function loophi2() { + var jnc = 0, i = 0, i$lcssa = 0, temp = 0, j = 0; + i = 0; + L7: while(1) { + j = 0; + while(1) { + temp = j; + if (1) { + if (temp) { + i$lcssa = i; + break L7; + } + } + jnc = j + 1 | 0; + if (jnc) { + j = jnc; + } else { + break; + } + } + } + return i$lcssa | 0 + } + + function relooperJumpThreading(x) { + x = x | 0; + var label = 0; + // from if + if (x) { + h(0); + label = 1; + } + if ((label|0) == 1) { + h(1); + } + h(-1); + // from loop + while (1) { + x = x + 1; + if (x) { + h(2); + label = 2; + break; + } + } + if ((label|0) == 2) { + h(3); + } + h(-2); + // if-else afterward + if (x) { + h(4); + if (x == 3) { + label = 3; + } else { + label = 4; + } + } + if ((label|0) == 3) { + h(5); + } else if ((label|0) == 4) { + h(6); + } + h(-3); + // two ifs afterward + if (x) { + h(7); + if (x == 5) { + label = 5; + } else { + label = 6; + } + } + if ((label|0) == 5) { + h(8); + if (x == 6) { + label = 6; + } + } + if ((label|0) == 6) { + h(9); + } + h(-4); + // labeled if after + if (x) { + h(10); + label = 7; + } + L1: do { + if ((label|0) == 7) { + h(11); + break L1; + } + } while (0); + h(-5); + // labeled if after normal if + if (x) { + h(12); + if (x == 8) { + label = 8; + } else { + label = 9; + } + } + if ((label|0) == 8) { + h(13); + if (x) label = 9; + } + L1: do { + if ((label|0) == 9) { + h(14); + break L1; + } + } while (0); + h(-6); + // TODO + // labeled if after a first if + // do-enclosed if after (?) + // test multiple labels, some should be ignored initially by JumpUpdater + return x; + } + + function relooperJumpThreading__ZN4game14preloadweaponsEv() { + var $12 = 0, $14 = 0, $or$cond8 = 0, $or$cond6 = 0, $vararg_ptr5 = 0, $11 = 0, $exitcond = 0, label = 0; + while(1) { + if ($14) { + if ($or$cond8) { + label = 7; + } else { + label = 8; + } + } else { + if ($or$cond6) { + label = 7; + } else { + label = 8; + } + } + if ((label|0) == 7) { + label = 0; + } + else if ((label|0) == 8) { + label = 0; + HEAP32[$vararg_ptr5>>2] = $11; + } + } + } + + function __Z12multi_varargiz($0) { + $0 = $0|0; + var $2 = 0, $$06$i4 = 0, $exitcond$i6 = 0, $12 = 0, $20 = 0; + if ($2) { + while(1) { + $12 = $$06$i4; + if ($exitcond$i6) { + break; + } else { + $$06$i4 = $20; + } + } + } else { + lb(1) | 0; // returns a value, and the while is unreachable + } + } + + function jumpThreadDrop() { + var label = 0, temp = 0; + temp = return_int() | 0; + while (1) { + label = 14; + break; + } + if ((label | 0) == 10) { + } else if ((label | 0) == 12) { + return_int() | 0; // drop in the middle of an if-else chain for threading + } else if ((label | 0) == 14) { + } + return temp | 0; + } + var FUNCTION_TABLE_a = [ z, big_negative, z, z ]; var FUNCTION_TABLE_b = [ w, w, importedDoubles, w ]; var FUNCTION_TABLE_c = [ z, cneg ]; diff --git a/test/unit.fromasm b/test/unit.fromasm index 33dd153af..6dd442a36 100644 --- a/test/unit.fromasm +++ b/test/unit.fromasm @@ -8,14 +8,17 @@ (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$dd (func (param f64) (result f64))) + (type $FUNCSIG$i (func (result i32))) (import "global" "NaN" (global $t f64)) (import "global" "Infinity" (global $u f64)) (import "env" "tempDoublePtr" (global $tempDoublePtr i32)) (import "env" "gb" (global $n i32)) + (import "env" "STACKTOP" (global $STACKTOP i32)) (import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32))) (import "env" "abort" (func $abort (param f64) (result f64))) (import "env" "print" (func $print (param i32))) (import "env" "h" (func $h (param i32))) + (import "env" "return_int" (func $return_int (result i32))) (import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32))) (import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64))) (import "asm2wasm" "i32u-div" (func $i32u-div (param i32 i32) (result i32))) @@ -109,14 +112,10 @@ (get_local $0) ) ) - (drop - (f64.convert_s/i32 - (tee_local $2 - (call_import $f64-to-int - (f64.promote/f32 - (get_local $1) - ) - ) + (set_local $2 + (call_import $f64-to-int + (f64.promote/f32 + (get_local $1) ) ) ) @@ -178,27 +177,24 @@ (block $label$break$L1 (loop $label$continue$L3 (block $label$break$L3 - (block $switch$17 - (block $switch-default$21 - (block $switch-case$20 - (block $switch-case$19 - (block $switch-case$18 - (br_table $switch-case$18 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$20 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$19 $switch-default$21 - (i32.sub - (get_local $0) - (i32.const -1) - ) + (block $switch-default$21 + (block $switch-case$20 + (block $switch-case$19 + (block $switch-case$18 + (br_table $switch-case$18 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$20 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$19 $switch-default$21 + (i32.sub + (get_local $0) + (i32.const -1) ) ) - (br $label$break$L1) ) - (br $switch$17) + (br $label$break$L1) ) - (br $label$break$L3) + (br $label$continue$L3) ) - (br $label$break$L1) + (br $label$break$L3) ) - (br $label$continue$L3) + (br $label$break$L1) ) ) (call_import $h @@ -295,23 +291,23 @@ (i32.const 1) ) (loop $for-in$1 - (block $for-out$0 - (br_if $for-out$0 - (i32.ge_s - (get_local $0) - (i32.const 200) - ) - ) - (call_import $h + (if + (i32.lt_s (get_local $0) + (i32.const 200) ) - (set_local $0 - (i32.add + (block + (call_import $h (get_local $0) - (i32.const 1) ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $for-in$1) ) - (br $for-in$1) ) ) ) @@ -488,8 +484,10 @@ (get_local $1) (i32.const 3) ) - (call $lb - (i32.const 2) + (drop + (call $lb + (i32.const 2) + ) ) ) ) @@ -616,4 +614,408 @@ ) ) ) + (func $loadSigned (param $0 i32) + (call $loadSigned + (i32.load8_s + (get_local $0) + ) + ) + (call $loadSigned + (i32.load8_s + (get_local $0) + ) + ) + (call $loadSigned + (i32.load16_s + (get_local $0) + ) + ) + (call $loadSigned + (i32.load16_s + (get_local $0) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $0) + ) + (i32.const 24) + ) + (i32.const 16) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_u + (get_local $0) + ) + (i32.const 16) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_s + (get_local $0) + ) + (i32.const 16) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_u + (get_local $0) + ) + (i32.const 24) + ) + (i32.const 16) + ) + ) + ) + (func $globalOpts + (local $0 i32) + (i32.store8 + (i32.const 13) + (i32.load + (i32.const 12) + ) + ) + (call $globalOpts) + (set_local $0 + (get_global $Int) + ) + (if + (i32.const 1) + (set_global $Int + (i32.const 20) + ) + ) + (set_global $Int + (get_local $0) + ) + (call $globalOpts) + (set_local $0 + (get_global $Int) + ) + (call $globalOpts) + (set_global $Int + (get_local $0) + ) + ) + (func $dropCallImport + (if + (i32.const 1) + (drop + (call_import $return_int) + ) + ) + ) + (func $loophi (param $0 i32) (param $1 i32) + (local $2 i32) + (loop $while-in$1 + (block $while-out$0 + (call $loophi + (get_local $0) + (i32.const 0) + ) + (if + (tee_local $2 + (get_local $0) + ) + (br_if $while-out$0 + (get_local $2) + ) + ) + (br_if $while-in$1 + (i32.eq + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (get_local $1) + ) + ) + ) + ) + ) + (func $loophi2 (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (set_local $1 + (i32.const 0) + ) + (loop $label$continue$L7 + (block $label$break$L7 + (set_local $0 + (i32.const 0) + ) + (loop $while-in$1 + (set_local $2 + (get_local $0) + ) + (if + (i32.const 1) + (br_if $label$break$L7 + (get_local $2) + ) + ) + (br_if $while-in$1 + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + ) + ) + (br $label$continue$L7) + ) + ) + (get_local $1) + ) + (func $relooperJumpThreading (param $0 i32) (result i32) + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 + (if + (get_local $0) + (block + (call_import $h + (i32.const 0) + ) + (br $jumpthreading$inner$0) + ) + ) + (br $jumpthreading$outer$0) + ) + (call_import $h + (i32.const 1) + ) + ) + (call_import $h + (i32.const -1) + ) + (block $jumpthreading$inner$1 + (loop $while-in$1 + (br_if $while-in$1 + (i32.eqz + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + ) + ) + (call_import $h + (i32.const 2) + ) + (br $jumpthreading$inner$1) + ) + ) + (call_import $h + (i32.const 3) + ) + (call_import $h + (i32.const -2) + ) + (block $jumpthreading$outer$3 + (block $jumpthreading$inner$3 + (block $jumpthreading$inner$2 + (if + (get_local $0) + (block + (call_import $h + (i32.const 4) + ) + (br_if $jumpthreading$inner$2 + (i32.eq + (get_local $0) + (i32.const 3) + ) + ) + (br $jumpthreading$inner$3) + ) + ) + (br $jumpthreading$outer$3) + ) + (call_import $h + (i32.const 5) + ) + (br $jumpthreading$outer$3) + ) + (call_import $h + (i32.const 6) + ) + ) + (call_import $h + (i32.const -3) + ) + (block $jumpthreading$outer$5 + (block $jumpthreading$inner$5 + (block $jumpthreading$inner$4 + (if + (get_local $0) + (block + (call_import $h + (i32.const 7) + ) + (br_if $jumpthreading$inner$4 + (i32.eq + (get_local $0) + (i32.const 5) + ) + ) + (br $jumpthreading$inner$5) + ) + ) + (br $jumpthreading$outer$5) + ) + (call_import $h + (i32.const 8) + ) + (br_if $jumpthreading$inner$5 + (i32.eq + (get_local $0) + (i32.const 6) + ) + ) + (br $jumpthreading$outer$5) + ) + (call_import $h + (i32.const 9) + ) + ) + (call_import $h + (i32.const -4) + ) + (block $jumpthreading$outer$6 + (block $jumpthreading$inner$6 + (if + (get_local $0) + (block + (call_import $h + (i32.const 10) + ) + (br $jumpthreading$inner$6) + ) + ) + (br $jumpthreading$outer$6) + ) + (call_import $h + (i32.const 11) + ) + ) + (call_import $h + (i32.const -5) + ) + (block $jumpthreading$outer$8 + (block $jumpthreading$inner$8 + (block $jumpthreading$outer$7 + (block $jumpthreading$inner$7 + (if + (get_local $0) + (block + (call_import $h + (i32.const 12) + ) + (br_if $jumpthreading$inner$7 + (i32.eq + (get_local $0) + (i32.const 8) + ) + ) + (br $jumpthreading$inner$8) + ) + ) + (br $jumpthreading$outer$8) + ) + (call_import $h + (i32.const 13) + ) + (br_if $jumpthreading$inner$8 + (get_local $0) + ) + ) + (br $jumpthreading$outer$8) + ) + (call_import $h + (i32.const 14) + ) + ) + (call_import $h + (i32.const -6) + ) + (get_local $0) + ) + (func $relooperJumpThreading__ZN4game14preloadweaponsEv + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (loop $while-in$1 + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (if + (get_local $0) + (br_if $jumpthreading$inner$1 + (i32.eqz + (get_local $1) + ) + ) + (br_if $jumpthreading$inner$1 + (i32.eqz + (get_local $2) + ) + ) + ) + (br $while-in$1) + ) + (i32.store + (get_local $3) + (get_local $4) + ) + ) + (br $while-in$1) + ) + ) + (func $__Z12multi_varargiz (param $0 i32) + (local $1 i32) + (local $2 i32) + (if + (get_local $1) + (loop $while-in$1 + (br_if $while-in$1 + (i32.eqz + (get_local $2) + ) + ) + ) + (drop + (call $lb + (i32.const 1) + ) + ) + ) + ) + (func $jumpThreadDrop (result i32) + (local $0 i32) + (set_local $0 + (call_import $return_int) + ) + (block $jumpthreading$outer$2 + ) + (get_local $0) + ) ) diff --git a/test/unit.fromasm.imprecise b/test/unit.fromasm.imprecise index 35b8b1768..d007a4d82 100644 --- a/test/unit.fromasm.imprecise +++ b/test/unit.fromasm.imprecise @@ -5,14 +5,17 @@ (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$dd (func (param f64) (result f64))) + (type $FUNCSIG$i (func (result i32))) (import "global" "NaN" (global $t f64)) (import "global" "Infinity" (global $u f64)) (import "env" "tempDoublePtr" (global $tempDoublePtr i32)) (import "env" "gb" (global $n i32)) + (import "env" "STACKTOP" (global $STACKTOP i32)) (import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32))) (import "env" "abort" (func $abort (param f64) (result f64))) (import "env" "print" (func $print (param i32))) (import "env" "h" (func $h (param i32))) + (import "env" "return_int" (func $return_int (result i32))) (import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64))) (import "env" "memory" (memory $memory)) (import "env" "table" (table $table)) @@ -98,13 +101,9 @@ (func $conversions (local $0 f32) (local $1 i32) - (drop - (f64.convert_s/i32 - (tee_local $1 - (i32.trunc_s/f32 - (get_local $0) - ) - ) + (set_local $1 + (i32.trunc_s/f32 + (get_local $0) ) ) ) @@ -165,27 +164,24 @@ (block $label$break$L1 (loop $label$continue$L3 (block $label$break$L3 - (block $switch$17 - (block $switch-default$21 - (block $switch-case$20 - (block $switch-case$19 - (block $switch-case$18 - (br_table $switch-case$18 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$20 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$19 $switch-default$21 - (i32.sub - (get_local $0) - (i32.const -1) - ) + (block $switch-default$21 + (block $switch-case$20 + (block $switch-case$19 + (block $switch-case$18 + (br_table $switch-case$18 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$20 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-default$21 $switch-case$19 $switch-default$21 + (i32.sub + (get_local $0) + (i32.const -1) ) ) - (br $label$break$L1) ) - (br $switch$17) + (br $label$break$L1) ) - (br $label$break$L3) + (br $label$continue$L3) ) - (br $label$break$L1) + (br $label$break$L3) ) - (br $label$continue$L3) + (br $label$break$L1) ) ) (call_import $h @@ -276,23 +272,23 @@ (i32.const 1) ) (loop $for-in$1 - (block $for-out$0 - (br_if $for-out$0 - (i32.ge_s - (get_local $0) - (i32.const 200) - ) - ) - (call_import $h + (if + (i32.lt_s (get_local $0) + (i32.const 200) ) - (set_local $0 - (i32.add + (block + (call_import $h (get_local $0) - (i32.const 1) ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $for-in$1) ) - (br $for-in$1) ) ) ) @@ -469,8 +465,10 @@ (get_local $1) (i32.const 3) ) - (call $lb - (i32.const 2) + (drop + (call $lb + (i32.const 2) + ) ) ) ) @@ -597,4 +595,408 @@ ) ) ) + (func $loadSigned (param $0 i32) + (call $loadSigned + (i32.load8_s + (get_local $0) + ) + ) + (call $loadSigned + (i32.load8_s + (get_local $0) + ) + ) + (call $loadSigned + (i32.load16_s + (get_local $0) + ) + ) + (call $loadSigned + (i32.load16_s + (get_local $0) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $0) + ) + (i32.const 24) + ) + (i32.const 16) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_u + (get_local $0) + ) + (i32.const 16) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_s + (get_local $0) + ) + (i32.const 16) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_u + (get_local $0) + ) + (i32.const 24) + ) + (i32.const 16) + ) + ) + ) + (func $globalOpts + (local $0 i32) + (i32.store8 + (i32.const 13) + (i32.load + (i32.const 12) + ) + ) + (call $globalOpts) + (set_local $0 + (get_global $Int) + ) + (if + (i32.const 1) + (set_global $Int + (i32.const 20) + ) + ) + (set_global $Int + (get_local $0) + ) + (call $globalOpts) + (set_local $0 + (get_global $Int) + ) + (call $globalOpts) + (set_global $Int + (get_local $0) + ) + ) + (func $dropCallImport + (if + (i32.const 1) + (drop + (call_import $return_int) + ) + ) + ) + (func $loophi (param $0 i32) (param $1 i32) + (local $2 i32) + (loop $while-in$1 + (block $while-out$0 + (call $loophi + (get_local $0) + (i32.const 0) + ) + (if + (tee_local $2 + (get_local $0) + ) + (br_if $while-out$0 + (get_local $2) + ) + ) + (br_if $while-in$1 + (i32.eq + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (get_local $1) + ) + ) + ) + ) + ) + (func $loophi2 (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (set_local $1 + (i32.const 0) + ) + (loop $label$continue$L7 + (block $label$break$L7 + (set_local $0 + (i32.const 0) + ) + (loop $while-in$1 + (set_local $2 + (get_local $0) + ) + (if + (i32.const 1) + (br_if $label$break$L7 + (get_local $2) + ) + ) + (br_if $while-in$1 + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + ) + ) + (br $label$continue$L7) + ) + ) + (get_local $1) + ) + (func $relooperJumpThreading (param $0 i32) (result i32) + (block $jumpthreading$outer$0 + (block $jumpthreading$inner$0 + (if + (get_local $0) + (block + (call_import $h + (i32.const 0) + ) + (br $jumpthreading$inner$0) + ) + ) + (br $jumpthreading$outer$0) + ) + (call_import $h + (i32.const 1) + ) + ) + (call_import $h + (i32.const -1) + ) + (block $jumpthreading$inner$1 + (loop $while-in$1 + (br_if $while-in$1 + (i32.eqz + (tee_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + ) + ) + (call_import $h + (i32.const 2) + ) + (br $jumpthreading$inner$1) + ) + ) + (call_import $h + (i32.const 3) + ) + (call_import $h + (i32.const -2) + ) + (block $jumpthreading$outer$3 + (block $jumpthreading$inner$3 + (block $jumpthreading$inner$2 + (if + (get_local $0) + (block + (call_import $h + (i32.const 4) + ) + (br_if $jumpthreading$inner$2 + (i32.eq + (get_local $0) + (i32.const 3) + ) + ) + (br $jumpthreading$inner$3) + ) + ) + (br $jumpthreading$outer$3) + ) + (call_import $h + (i32.const 5) + ) + (br $jumpthreading$outer$3) + ) + (call_import $h + (i32.const 6) + ) + ) + (call_import $h + (i32.const -3) + ) + (block $jumpthreading$outer$5 + (block $jumpthreading$inner$5 + (block $jumpthreading$inner$4 + (if + (get_local $0) + (block + (call_import $h + (i32.const 7) + ) + (br_if $jumpthreading$inner$4 + (i32.eq + (get_local $0) + (i32.const 5) + ) + ) + (br $jumpthreading$inner$5) + ) + ) + (br $jumpthreading$outer$5) + ) + (call_import $h + (i32.const 8) + ) + (br_if $jumpthreading$inner$5 + (i32.eq + (get_local $0) + (i32.const 6) + ) + ) + (br $jumpthreading$outer$5) + ) + (call_import $h + (i32.const 9) + ) + ) + (call_import $h + (i32.const -4) + ) + (block $jumpthreading$outer$6 + (block $jumpthreading$inner$6 + (if + (get_local $0) + (block + (call_import $h + (i32.const 10) + ) + (br $jumpthreading$inner$6) + ) + ) + (br $jumpthreading$outer$6) + ) + (call_import $h + (i32.const 11) + ) + ) + (call_import $h + (i32.const -5) + ) + (block $jumpthreading$outer$8 + (block $jumpthreading$inner$8 + (block $jumpthreading$outer$7 + (block $jumpthreading$inner$7 + (if + (get_local $0) + (block + (call_import $h + (i32.const 12) + ) + (br_if $jumpthreading$inner$7 + (i32.eq + (get_local $0) + (i32.const 8) + ) + ) + (br $jumpthreading$inner$8) + ) + ) + (br $jumpthreading$outer$8) + ) + (call_import $h + (i32.const 13) + ) + (br_if $jumpthreading$inner$8 + (get_local $0) + ) + ) + (br $jumpthreading$outer$8) + ) + (call_import $h + (i32.const 14) + ) + ) + (call_import $h + (i32.const -6) + ) + (get_local $0) + ) + (func $relooperJumpThreading__ZN4game14preloadweaponsEv + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (loop $while-in$1 + (block $jumpthreading$outer$1 + (block $jumpthreading$inner$1 + (if + (get_local $0) + (br_if $jumpthreading$inner$1 + (i32.eqz + (get_local $1) + ) + ) + (br_if $jumpthreading$inner$1 + (i32.eqz + (get_local $2) + ) + ) + ) + (br $while-in$1) + ) + (i32.store + (get_local $3) + (get_local $4) + ) + ) + (br $while-in$1) + ) + ) + (func $__Z12multi_varargiz (param $0 i32) + (local $1 i32) + (local $2 i32) + (if + (get_local $1) + (loop $while-in$1 + (br_if $while-in$1 + (i32.eqz + (get_local $2) + ) + ) + ) + (drop + (call $lb + (i32.const 1) + ) + ) + ) + ) + (func $jumpThreadDrop (result i32) + (local $0 i32) + (set_local $0 + (call_import $return_int) + ) + (block $jumpthreading$outer$2 + ) + (get_local $0) + ) ) diff --git a/test/unit.fromasm.imprecise.no-opts b/test/unit.fromasm.imprecise.no-opts index c41075df0..1e8b46835 100644 --- a/test/unit.fromasm.imprecise.no-opts +++ b/test/unit.fromasm.imprecise.no-opts @@ -5,14 +5,17 @@ (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$dd (func (param f64) (result f64))) + (type $FUNCSIG$i (func (result i32))) (import "global" "NaN" (global $t f64)) (import "global" "Infinity" (global $u f64)) (import "env" "tempDoublePtr" (global $tempDoublePtr i32)) (import "env" "gb" (global $n i32)) + (import "env" "STACKTOP" (global $STACKTOP i32)) (import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32))) (import "env" "abort" (func $abort (param f64) (result f64))) (import "env" "print" (func $print (param i32))) (import "env" "h" (func $h (param i32))) + (import "env" "return_int" (func $return_int (result i32))) (import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64))) (import "env" "memory" (memory $memory)) (import "env" "table" (table $table)) @@ -817,8 +820,10 @@ (get_local $y) (i32.const 3) ) - (call $lb - (i32.const 2) + (drop + (call $lb + (i32.const 2) + ) ) ) ) @@ -1001,10 +1006,619 @@ ) ) ) + (func $loadSigned (param $x i32) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $x) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_u + (get_local $x) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_s + (get_local $x) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_u + (get_local $x) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $x) + ) + (i32.const 24) + ) + (i32.const 16) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_u + (get_local $x) + ) + (i32.const 16) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_s + (get_local $x) + ) + (i32.const 16) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_u + (get_local $x) + ) + (i32.const 24) + ) + (i32.const 16) + ) + ) + ) (func $z (nop) ) (func $w (nop) ) + (func $globalOpts + (local $x i32) + (local $y f64) + (set_local $x + (get_global $Int) + ) + (set_local $y + (get_global $Double) + ) + (i32.store8 + (i32.const 13) + (i32.load + (i32.const 12) + ) + ) + (set_global $Double + (get_local $y) + ) + (set_global $Int + (get_local $x) + ) + (call $globalOpts) + (set_local $x + (get_global $Int) + ) + (if + (i32.const 1) + (set_global $Int + (i32.const 20) + ) + ) + (set_global $Int + (get_local $x) + ) + (call $globalOpts) + (set_local $x + (get_global $Int) + ) + (call $globalOpts) + (set_global $Int + (get_local $x) + ) + ) + (func $dropCallImport + (if + (i32.const 1) + (drop + (call_import $return_int) + ) + ) + ) + (func $loophi (param $x i32) (param $y i32) + (local $temp i32) + (local $inc i32) + (local $loopvar i32) + (set_local $loopvar + (get_local $x) + ) + (loop $while-in$1 + (block $while-out$0 + (call $loophi + (get_local $loopvar) + (i32.const 0) + ) + (set_local $temp + (get_local $loopvar) + ) + (if + (get_local $temp) + (if + (get_local $temp) + (br $while-out$0) + ) + ) + (set_local $inc + (i32.add + (get_local $loopvar) + (i32.const 1) + ) + ) + (if + (i32.eq + (get_local $inc) + (get_local $y) + ) + (set_local $loopvar + (get_local $inc) + ) + (br $while-out$0) + ) + (br $while-in$1) + ) + ) + ) + (func $loophi2 (result i32) + (local $jnc i32) + (local $i i32) + (local $i$lcssa i32) + (local $temp i32) + (local $j i32) + (set_local $i + (i32.const 0) + ) + (loop $label$continue$L7 + (block $label$break$L7 + (set_local $j + (i32.const 0) + ) + (loop $while-in$1 + (block $while-out$0 + (set_local $temp + (get_local $j) + ) + (if + (i32.const 1) + (if + (get_local $temp) + (block + (set_local $i$lcssa + (get_local $i) + ) + (br $label$break$L7) + ) + ) + ) + (set_local $jnc + (i32.add + (get_local $j) + (i32.const 1) + ) + ) + (if + (get_local $jnc) + (set_local $j + (get_local $jnc) + ) + (br $while-out$0) + ) + (br $while-in$1) + ) + ) + (br $label$continue$L7) + ) + ) + (return + (get_local $i$lcssa) + ) + ) + (func $relooperJumpThreading (param $x i32) (result i32) + (local $label i32) + (if + (get_local $x) + (block + (call_import $h + (i32.const 0) + ) + (set_local $label + (i32.const 1) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 1) + ) + (call_import $h + (i32.const 1) + ) + ) + (call_import $h + (i32.const -1) + ) + (loop $while-in$1 + (block $while-out$0 + (set_local $x + (i32.add + (get_local $x) + (i32.const 1) + ) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 2) + ) + (set_local $label + (i32.const 2) + ) + (br $while-out$0) + ) + ) + (br $while-in$1) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 2) + ) + (call_import $h + (i32.const 3) + ) + ) + (call_import $h + (i32.const -2) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 4) + ) + (if + (i32.eq + (get_local $x) + (i32.const 3) + ) + (set_local $label + (i32.const 3) + ) + (set_local $label + (i32.const 4) + ) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 3) + ) + (call_import $h + (i32.const 5) + ) + (if + (i32.eq + (get_local $label) + (i32.const 4) + ) + (call_import $h + (i32.const 6) + ) + ) + ) + (call_import $h + (i32.const -3) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 7) + ) + (if + (i32.eq + (get_local $x) + (i32.const 5) + ) + (set_local $label + (i32.const 5) + ) + (set_local $label + (i32.const 6) + ) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 5) + ) + (block + (call_import $h + (i32.const 8) + ) + (if + (i32.eq + (get_local $x) + (i32.const 6) + ) + (set_local $label + (i32.const 6) + ) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 6) + ) + (call_import $h + (i32.const 9) + ) + ) + (call_import $h + (i32.const -4) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 10) + ) + (set_local $label + (i32.const 7) + ) + ) + ) + (block $label$break$L1 + (if + (i32.eq + (get_local $label) + (i32.const 7) + ) + (block + (call_import $h + (i32.const 11) + ) + (br $label$break$L1) + ) + ) + ) + (call_import $h + (i32.const -5) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 12) + ) + (if + (i32.eq + (get_local $x) + (i32.const 8) + ) + (set_local $label + (i32.const 8) + ) + (set_local $label + (i32.const 9) + ) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 8) + ) + (block + (call_import $h + (i32.const 13) + ) + (if + (get_local $x) + (set_local $label + (i32.const 9) + ) + ) + ) + ) + (block $label$break$L1 + (if + (i32.eq + (get_local $label) + (i32.const 9) + ) + (block + (call_import $h + (i32.const 14) + ) + (br $label$break$L1) + ) + ) + ) + (call_import $h + (i32.const -6) + ) + (return + (get_local $x) + ) + ) + (func $relooperJumpThreading__ZN4game14preloadweaponsEv + (local $$12 i32) + (local $$14 i32) + (local $$or$cond8 i32) + (local $$or$cond6 i32) + (local $$vararg_ptr5 i32) + (local $$11 i32) + (local $$exitcond i32) + (local $label i32) + (loop $while-in$1 + (block $while-out$0 + (if + (get_local $$14) + (if + (get_local $$or$cond8) + (set_local $label + (i32.const 7) + ) + (set_local $label + (i32.const 8) + ) + ) + (if + (get_local $$or$cond6) + (set_local $label + (i32.const 7) + ) + (set_local $label + (i32.const 8) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 7) + ) + (set_local $label + (i32.const 0) + ) + (if + (i32.eq + (get_local $label) + (i32.const 8) + ) + (block + (set_local $label + (i32.const 0) + ) + (i32.store + (get_local $$vararg_ptr5) + (get_local $$11) + ) + ) + ) + ) + (br $while-in$1) + ) + ) + ) + (func $__Z12multi_varargiz (param $$0 i32) + (local $$2 i32) + (local $$$06$i4 i32) + (local $$exitcond$i6 i32) + (local $$12 i32) + (local $$20 i32) + (if + (get_local $$2) + (loop $while-in$1 + (block $while-out$0 + (set_local $$12 + (get_local $$$06$i4) + ) + (if + (get_local $$exitcond$i6) + (br $while-out$0) + (set_local $$$06$i4 + (get_local $$20) + ) + ) + (br $while-in$1) + ) + ) + (drop + (call $lb + (i32.const 1) + ) + ) + ) + ) + (func $jumpThreadDrop (result i32) + (local $label i32) + (local $temp i32) + (set_local $temp + (call_import $return_int) + ) + (loop $while-in$1 + (block $while-out$0 + (set_local $label + (i32.const 14) + ) + (br $while-out$0) + (br $while-in$1) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 10) + ) + (nop) + (if + (i32.eq + (get_local $label) + (i32.const 12) + ) + (drop + (call_import $return_int) + ) + (if + (i32.eq + (get_local $label) + (i32.const 14) + ) + (nop) + ) + ) + ) + (return + (get_local $temp) + ) + ) ) diff --git a/test/unit.fromasm.no-opts b/test/unit.fromasm.no-opts index 2162d9ed7..846ef21a0 100644 --- a/test/unit.fromasm.no-opts +++ b/test/unit.fromasm.no-opts @@ -7,14 +7,17 @@ (type $FUNCSIG$vi (func (param i32))) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$dd (func (param f64) (result f64))) + (type $FUNCSIG$i (func (result i32))) (import "global" "NaN" (global $t f64)) (import "global" "Infinity" (global $u f64)) (import "env" "tempDoublePtr" (global $tempDoublePtr i32)) (import "env" "gb" (global $n i32)) + (import "env" "STACKTOP" (global $STACKTOP i32)) (import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32))) (import "env" "abort" (func $abort (param f64) (result f64))) (import "env" "print" (func $print (param i32))) (import "env" "h" (func $h (param i32))) + (import "env" "return_int" (func $return_int (result i32))) (import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32))) (import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64))) (import "asm2wasm" "i32u-div" (func $i32u-div (param i32 i32) (result i32))) @@ -823,8 +826,10 @@ (get_local $y) (i32.const 3) ) - (call $lb - (i32.const 2) + (drop + (call $lb + (i32.const 2) + ) ) ) ) @@ -1007,10 +1012,619 @@ ) ) ) + (func $loadSigned (param $x i32) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $x) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_u + (get_local $x) + ) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_s + (get_local $x) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_u + (get_local $x) + ) + (i32.const 16) + ) + (i32.const 16) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_s + (get_local $x) + ) + (i32.const 24) + ) + (i32.const 16) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load8_u + (get_local $x) + ) + (i32.const 16) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_s + (get_local $x) + ) + (i32.const 16) + ) + (i32.const 24) + ) + ) + (call $loadSigned + (i32.shr_s + (i32.shl + (i32.load16_u + (get_local $x) + ) + (i32.const 24) + ) + (i32.const 16) + ) + ) + ) (func $z (nop) ) (func $w (nop) ) + (func $globalOpts + (local $x i32) + (local $y f64) + (set_local $x + (get_global $Int) + ) + (set_local $y + (get_global $Double) + ) + (i32.store8 + (i32.const 13) + (i32.load + (i32.const 12) + ) + ) + (set_global $Double + (get_local $y) + ) + (set_global $Int + (get_local $x) + ) + (call $globalOpts) + (set_local $x + (get_global $Int) + ) + (if + (i32.const 1) + (set_global $Int + (i32.const 20) + ) + ) + (set_global $Int + (get_local $x) + ) + (call $globalOpts) + (set_local $x + (get_global $Int) + ) + (call $globalOpts) + (set_global $Int + (get_local $x) + ) + ) + (func $dropCallImport + (if + (i32.const 1) + (drop + (call_import $return_int) + ) + ) + ) + (func $loophi (param $x i32) (param $y i32) + (local $temp i32) + (local $inc i32) + (local $loopvar i32) + (set_local $loopvar + (get_local $x) + ) + (loop $while-in$1 + (block $while-out$0 + (call $loophi + (get_local $loopvar) + (i32.const 0) + ) + (set_local $temp + (get_local $loopvar) + ) + (if + (get_local $temp) + (if + (get_local $temp) + (br $while-out$0) + ) + ) + (set_local $inc + (i32.add + (get_local $loopvar) + (i32.const 1) + ) + ) + (if + (i32.eq + (get_local $inc) + (get_local $y) + ) + (set_local $loopvar + (get_local $inc) + ) + (br $while-out$0) + ) + (br $while-in$1) + ) + ) + ) + (func $loophi2 (result i32) + (local $jnc i32) + (local $i i32) + (local $i$lcssa i32) + (local $temp i32) + (local $j i32) + (set_local $i + (i32.const 0) + ) + (loop $label$continue$L7 + (block $label$break$L7 + (set_local $j + (i32.const 0) + ) + (loop $while-in$1 + (block $while-out$0 + (set_local $temp + (get_local $j) + ) + (if + (i32.const 1) + (if + (get_local $temp) + (block + (set_local $i$lcssa + (get_local $i) + ) + (br $label$break$L7) + ) + ) + ) + (set_local $jnc + (i32.add + (get_local $j) + (i32.const 1) + ) + ) + (if + (get_local $jnc) + (set_local $j + (get_local $jnc) + ) + (br $while-out$0) + ) + (br $while-in$1) + ) + ) + (br $label$continue$L7) + ) + ) + (return + (get_local $i$lcssa) + ) + ) + (func $relooperJumpThreading (param $x i32) (result i32) + (local $label i32) + (if + (get_local $x) + (block + (call_import $h + (i32.const 0) + ) + (set_local $label + (i32.const 1) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 1) + ) + (call_import $h + (i32.const 1) + ) + ) + (call_import $h + (i32.const -1) + ) + (loop $while-in$1 + (block $while-out$0 + (set_local $x + (i32.add + (get_local $x) + (i32.const 1) + ) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 2) + ) + (set_local $label + (i32.const 2) + ) + (br $while-out$0) + ) + ) + (br $while-in$1) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 2) + ) + (call_import $h + (i32.const 3) + ) + ) + (call_import $h + (i32.const -2) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 4) + ) + (if + (i32.eq + (get_local $x) + (i32.const 3) + ) + (set_local $label + (i32.const 3) + ) + (set_local $label + (i32.const 4) + ) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 3) + ) + (call_import $h + (i32.const 5) + ) + (if + (i32.eq + (get_local $label) + (i32.const 4) + ) + (call_import $h + (i32.const 6) + ) + ) + ) + (call_import $h + (i32.const -3) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 7) + ) + (if + (i32.eq + (get_local $x) + (i32.const 5) + ) + (set_local $label + (i32.const 5) + ) + (set_local $label + (i32.const 6) + ) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 5) + ) + (block + (call_import $h + (i32.const 8) + ) + (if + (i32.eq + (get_local $x) + (i32.const 6) + ) + (set_local $label + (i32.const 6) + ) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 6) + ) + (call_import $h + (i32.const 9) + ) + ) + (call_import $h + (i32.const -4) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 10) + ) + (set_local $label + (i32.const 7) + ) + ) + ) + (block $label$break$L1 + (if + (i32.eq + (get_local $label) + (i32.const 7) + ) + (block + (call_import $h + (i32.const 11) + ) + (br $label$break$L1) + ) + ) + ) + (call_import $h + (i32.const -5) + ) + (if + (get_local $x) + (block + (call_import $h + (i32.const 12) + ) + (if + (i32.eq + (get_local $x) + (i32.const 8) + ) + (set_local $label + (i32.const 8) + ) + (set_local $label + (i32.const 9) + ) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 8) + ) + (block + (call_import $h + (i32.const 13) + ) + (if + (get_local $x) + (set_local $label + (i32.const 9) + ) + ) + ) + ) + (block $label$break$L1 + (if + (i32.eq + (get_local $label) + (i32.const 9) + ) + (block + (call_import $h + (i32.const 14) + ) + (br $label$break$L1) + ) + ) + ) + (call_import $h + (i32.const -6) + ) + (return + (get_local $x) + ) + ) + (func $relooperJumpThreading__ZN4game14preloadweaponsEv + (local $$12 i32) + (local $$14 i32) + (local $$or$cond8 i32) + (local $$or$cond6 i32) + (local $$vararg_ptr5 i32) + (local $$11 i32) + (local $$exitcond i32) + (local $label i32) + (loop $while-in$1 + (block $while-out$0 + (if + (get_local $$14) + (if + (get_local $$or$cond8) + (set_local $label + (i32.const 7) + ) + (set_local $label + (i32.const 8) + ) + ) + (if + (get_local $$or$cond6) + (set_local $label + (i32.const 7) + ) + (set_local $label + (i32.const 8) + ) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 7) + ) + (set_local $label + (i32.const 0) + ) + (if + (i32.eq + (get_local $label) + (i32.const 8) + ) + (block + (set_local $label + (i32.const 0) + ) + (i32.store + (get_local $$vararg_ptr5) + (get_local $$11) + ) + ) + ) + ) + (br $while-in$1) + ) + ) + ) + (func $__Z12multi_varargiz (param $$0 i32) + (local $$2 i32) + (local $$$06$i4 i32) + (local $$exitcond$i6 i32) + (local $$12 i32) + (local $$20 i32) + (if + (get_local $$2) + (loop $while-in$1 + (block $while-out$0 + (set_local $$12 + (get_local $$$06$i4) + ) + (if + (get_local $$exitcond$i6) + (br $while-out$0) + (set_local $$$06$i4 + (get_local $$20) + ) + ) + (br $while-in$1) + ) + ) + (drop + (call $lb + (i32.const 1) + ) + ) + ) + ) + (func $jumpThreadDrop (result i32) + (local $label i32) + (local $temp i32) + (set_local $temp + (call_import $return_int) + ) + (loop $while-in$1 + (block $while-out$0 + (set_local $label + (i32.const 14) + ) + (br $while-out$0) + (br $while-in$1) + ) + ) + (if + (i32.eq + (get_local $label) + (i32.const 10) + ) + (nop) + (if + (i32.eq + (get_local $label) + (i32.const 12) + ) + (drop + (call_import $return_int) + ) + (if + (i32.eq + (get_local $label) + (i32.const 14) + ) + (nop) + ) + ) + ) + (return + (get_local $temp) + ) + ) ) |